@hitachivantara/uikit-react-core 5.57.0 → 5.58.1
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/Button/Button.cjs +11 -0
- package/dist/cjs/Button/Button.cjs.map +1 -1
- package/dist/cjs/Button/Button.styles.cjs +79 -54
- package/dist/cjs/Button/Button.styles.cjs.map +1 -1
- package/dist/cjs/Button/types.cjs +9 -0
- package/dist/cjs/Button/types.cjs.map +1 -1
- package/dist/cjs/Calendar/model.cjs +23 -14
- package/dist/cjs/Calendar/model.cjs.map +1 -1
- package/dist/cjs/Calendar/utils.cjs +2 -3
- package/dist/cjs/Calendar/utils.cjs.map +1 -1
- package/dist/cjs/Carousel/Carousel.cjs +2 -2
- package/dist/cjs/Carousel/Carousel.cjs.map +1 -1
- package/dist/cjs/DotPagination/DotPagination.cjs +2 -2
- package/dist/cjs/DotPagination/DotPagination.cjs.map +1 -1
- package/dist/cjs/FileUploader/DropZone/DropZone.cjs +2 -4
- package/dist/cjs/FileUploader/DropZone/DropZone.cjs.map +1 -1
- package/dist/cjs/FilterGroup/FilterGroupContext.cjs +2 -4
- package/dist/cjs/FilterGroup/FilterGroupContext.cjs.map +1 -1
- package/dist/cjs/FilterGroup/RightPanel/RightPanel.cjs +1 -4
- package/dist/cjs/FilterGroup/RightPanel/RightPanel.cjs.map +1 -1
- package/dist/cjs/Grid/Grid.cjs +1 -3
- package/dist/cjs/Grid/Grid.cjs.map +1 -1
- package/dist/cjs/Loading/Loading.cjs +2 -4
- package/dist/cjs/Loading/Loading.cjs.map +1 -1
- package/dist/cjs/MultiButton/MultiButton.cjs +2 -1
- package/dist/cjs/MultiButton/MultiButton.cjs.map +1 -1
- package/dist/cjs/MultiButton/MultiButton.styles.cjs +3 -2
- package/dist/cjs/MultiButton/MultiButton.styles.cjs.map +1 -1
- package/dist/cjs/ProgressBar/ProgressBar.cjs +2 -4
- package/dist/cjs/ProgressBar/ProgressBar.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/QueryBuilder.cjs +4 -8
- package/dist/cjs/QueryBuilder/QueryBuilder.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +2 -3
- package/dist/cjs/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -1
- package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +4 -7
- package/dist/cjs/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
- package/dist/cjs/Snackbar/Snackbar.cjs +2 -3
- package/dist/cjs/Snackbar/Snackbar.cjs.map +1 -1
- package/dist/cjs/Stack/Stack.cjs +2 -6
- package/dist/cjs/Stack/Stack.cjs.map +1 -1
- package/dist/cjs/Table/TableCell/TableCell.cjs +3 -5
- package/dist/cjs/Table/TableCell/TableCell.cjs.map +1 -1
- package/dist/cjs/Table/TableHeader/TableHeader.cjs +4 -6
- package/dist/cjs/Table/TableHeader/TableHeader.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/EventManager.cjs +3 -5
- package/dist/cjs/TreeView/internals/utils/EventManager.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.cjs +5 -7
- package/dist/cjs/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.cjs.map +1 -1
- package/dist/cjs/TreeView/internals/utils/TimerBasedCleanupTracking.cjs +2 -2
- package/dist/cjs/TreeView/internals/utils/TimerBasedCleanupTracking.cjs.map +1 -1
- package/dist/cjs/Typography/Typography.cjs +1 -0
- package/dist/cjs/Typography/Typography.cjs.map +1 -1
- package/dist/cjs/Typography/Typography.styles.cjs +1 -0
- package/dist/cjs/Typography/Typography.styles.cjs.map +1 -1
- package/dist/cjs/Typography/utils.cjs +1 -0
- package/dist/cjs/Typography/utils.cjs.map +1 -1
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs +3 -5
- package/dist/cjs/VerticalNavigation/Navigation/Navigation.cjs.map +1 -1
- package/dist/cjs/utils/Random.cjs +3 -0
- package/dist/cjs/utils/Random.cjs.map +1 -1
- package/dist/cjs/utils/classes.cjs +1 -1
- package/dist/cjs/utils/classes.cjs.map +1 -1
- package/dist/cjs/utils/helpers.cjs +33 -0
- package/dist/cjs/utils/helpers.cjs.map +1 -0
- package/dist/cjs/utils/setId.cjs +2 -4
- package/dist/cjs/utils/setId.cjs.map +1 -1
- package/dist/esm/Button/Button.js +12 -1
- package/dist/esm/Button/Button.js.map +1 -1
- package/dist/esm/Button/Button.styles.js +79 -54
- package/dist/esm/Button/Button.styles.js.map +1 -1
- package/dist/esm/Button/types.js +9 -0
- package/dist/esm/Button/types.js.map +1 -1
- package/dist/esm/Calendar/model.js +23 -14
- package/dist/esm/Calendar/model.js.map +1 -1
- package/dist/esm/Calendar/utils.js +1 -1
- package/dist/esm/Calendar/utils.js.map +1 -1
- package/dist/esm/Carousel/Carousel.js +2 -2
- package/dist/esm/Carousel/Carousel.js.map +1 -1
- package/dist/esm/DotPagination/DotPagination.js +1 -1
- package/dist/esm/DotPagination/DotPagination.js.map +1 -1
- package/dist/esm/FileUploader/DropZone/DropZone.js +1 -1
- package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
- package/dist/esm/FilterGroup/FilterGroupContext.js +1 -1
- package/dist/esm/FilterGroup/FilterGroupContext.js.map +1 -1
- package/dist/esm/FilterGroup/RightPanel/RightPanel.js +1 -2
- package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
- package/dist/esm/Grid/Grid.js +1 -2
- package/dist/esm/Grid/Grid.js.map +1 -1
- package/dist/esm/Loading/Loading.js +2 -2
- package/dist/esm/Loading/Loading.js.map +1 -1
- package/dist/esm/MultiButton/MultiButton.js +2 -1
- package/dist/esm/MultiButton/MultiButton.js.map +1 -1
- package/dist/esm/MultiButton/MultiButton.styles.js +3 -2
- package/dist/esm/MultiButton/MultiButton.styles.js.map +1 -1
- package/dist/esm/ProgressBar/ProgressBar.js +2 -2
- package/dist/esm/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/esm/QueryBuilder/QueryBuilder.js +3 -4
- package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
- package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +3 -4
- package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
- package/dist/esm/Snackbar/Snackbar.js +1 -1
- package/dist/esm/Snackbar/Snackbar.js.map +1 -1
- package/dist/esm/Stack/Stack.js +2 -4
- package/dist/esm/Stack/Stack.js.map +1 -1
- package/dist/esm/Table/TableCell/TableCell.js +1 -1
- package/dist/esm/Table/TableCell/TableCell.js.map +1 -1
- package/dist/esm/Table/TableHeader/TableHeader.js +1 -1
- package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/EventManager.js +3 -5
- package/dist/esm/TreeView/internals/utils/EventManager.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js +5 -7
- package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +1 -1
- package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js +2 -2
- package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +1 -1
- package/dist/esm/Typography/Typography.js +1 -0
- package/dist/esm/Typography/Typography.js.map +1 -1
- package/dist/esm/Typography/Typography.styles.js +1 -0
- package/dist/esm/Typography/Typography.styles.js.map +1 -1
- package/dist/esm/Typography/utils.js +1 -0
- package/dist/esm/Typography/utils.js.map +1 -1
- package/dist/esm/VerticalNavigation/Navigation/Navigation.js +1 -1
- package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/esm/utils/Random.js +3 -0
- package/dist/esm/utils/Random.js.map +1 -1
- package/dist/esm/utils/classes.js +1 -1
- package/dist/esm/utils/classes.js.map +1 -1
- package/dist/esm/utils/helpers.js +33 -0
- package/dist/esm/utils/helpers.js.map +1 -0
- package/dist/esm/utils/setId.js +1 -1
- package/dist/esm/utils/setId.js.map +1 -1
- package/dist/types/index.d.ts +22 -14
- package/package.json +5 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DotPagination.cjs","sources":["../../../src/DotPagination/DotPagination.tsx"],"sourcesContent":["import { cloneElement } from \"react\";\nimport { CurrentStep, OtherStep } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvRadio } from \"../Radio\";\nimport { HvRadioGroup, HvRadioGroupProps } from \"../RadioGroup\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { staticClasses, useClasses } from \"./DotPagination.styles\";\n\nexport { staticClasses as dotPaginationClasses };\n\nexport type HvDotPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDotPaginationProps\n extends Omit<HvRadioGroupProps, \"classes\"> {\n /**\n * Icon to override the default one used for the unselected state.\n *\n * The default icon is `OtherStep`.\n */\n unselectedIcon?: React.ReactElement;\n /**\n * Icon to override the default one used for the selected state.\n *\n * The default icon is `CurrentStep`.\n */\n selectedIcon?: React.ReactElement;\n /**\n * The number of pages the component has.\n */\n pages?: number;\n /**\n * The currently selected page.\n */\n page?: number;\n /**\n * The callback fired when the page value changes.\n */\n onPageChange?: (\n event: React.ChangeEvent<HTMLInputElement>,\n page: number\n ) => void;\n /**\n * The callback fired to get the page aria label.\n */\n getItemAriaLabel?: (page: number) => string;\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes?: HvDotPaginationClasses;\n}\n\nconst getSelectorIcons = (\n radioIcon?: React.ReactElement,\n radioCheckedIcon?: React.ReactElement,\n classes?: HvDotPaginationClasses\n) => {\n return {\n radio: cloneElement(radioIcon || <OtherStep width={8} height={8} />, {\n className: classes?.icon,\n }),\n radioChecked: cloneElement(\n radioCheckedIcon || <CurrentStep width={8} height={8} />,\n {\n className: classes?.icon,\n }\n ),\n };\n};\n\
|
|
1
|
+
{"version":3,"file":"DotPagination.cjs","sources":["../../../src/DotPagination/DotPagination.tsx"],"sourcesContent":["import { cloneElement } from \"react\";\nimport { CurrentStep, OtherStep } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvRadio } from \"../Radio\";\nimport { HvRadioGroup, HvRadioGroupProps } from \"../RadioGroup\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { range } from \"../utils/helpers\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { staticClasses, useClasses } from \"./DotPagination.styles\";\n\nexport { staticClasses as dotPaginationClasses };\n\nexport type HvDotPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDotPaginationProps\n extends Omit<HvRadioGroupProps, \"classes\"> {\n /**\n * Icon to override the default one used for the unselected state.\n *\n * The default icon is `OtherStep`.\n */\n unselectedIcon?: React.ReactElement;\n /**\n * Icon to override the default one used for the selected state.\n *\n * The default icon is `CurrentStep`.\n */\n selectedIcon?: React.ReactElement;\n /**\n * The number of pages the component has.\n */\n pages?: number;\n /**\n * The currently selected page.\n */\n page?: number;\n /**\n * The callback fired when the page value changes.\n */\n onPageChange?: (\n event: React.ChangeEvent<HTMLInputElement>,\n page: number\n ) => void;\n /**\n * The callback fired to get the page aria label.\n */\n getItemAriaLabel?: (page: number) => string;\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes?: HvDotPaginationClasses;\n}\n\nconst getSelectorIcons = (\n radioIcon?: React.ReactElement,\n radioCheckedIcon?: React.ReactElement,\n classes?: HvDotPaginationClasses\n) => {\n return {\n radio: cloneElement(radioIcon || <OtherStep width={8} height={8} />, {\n className: classes?.icon,\n }),\n radioChecked: cloneElement(\n radioCheckedIcon || <CurrentStep width={8} height={8} />,\n {\n className: classes?.icon,\n }\n ),\n };\n};\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact with structured content on a website or application.\n * This component uses Radio Buttons to represent each page.\n */\nexport const HvDotPagination = (props: HvDotPaginationProps) => {\n const {\n className,\n classes: classesProp,\n unselectedIcon,\n selectedIcon,\n pages = 1,\n page = 0,\n onPageChange,\n getItemAriaLabel,\n ...others\n } = useDefaultProps(\"HvDotPagination\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const icons = getSelectorIcons(unselectedIcon, selectedIcon, classes);\n\n return (\n <HvRadioGroup\n className={cx(classes.root, className)}\n classes={{\n horizontal: classes.horizontal,\n }}\n orientation=\"horizontal\"\n {...others}\n >\n {range(pages).map((i) => (\n <HvRadio\n classes={{\n radio: classes.radio,\n root: classes.radioRoot,\n }}\n key={i}\n value={i}\n checked={page === i}\n onChange={(event) => onPageChange?.(event, i)}\n icon={icons.radio}\n checkedIcon={icons.radioChecked}\n aria-label={getItemAriaLabel?.(i)}\n />\n ))}\n </HvRadioGroup>\n );\n};\n"],"names":["cloneElement","jsx","OtherStep","CurrentStep","useDefaultProps","useClasses","HvRadioGroup","range","HvRadio"],"mappings":";;;;;;;;;;AAuDA,MAAM,mBAAmB,CACvB,WACA,kBACA,YACG;AACI,SAAA;AAAA,IACL,OAAOA,mBAAa,aAAaC,2BAAAA,IAACC,6BAAU,OAAO,GAAG,QAAQ,EAAA,CAAG,GAAI;AAAA,MACnE,WAAW,SAAS;AAAA,IAAA,CACrB;AAAA,IACD,cAAcF,MAAA;AAAA,MACZ,oBAAqBC,2BAAA,IAAAE,6BAAA,EAAY,OAAO,GAAG,QAAQ,GAAG;AAAA,MACtD;AAAA,QACE,WAAW,SAAS;AAAA,MACtB;AAAA,IACF;AAAA,EAAA;AAEJ;AAMa,MAAA,kBAAkB,CAAC,UAAgC;AACxD,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACDC,gBAAgB,gBAAA,mBAAmB,KAAK;AAE5C,QAAM,EAAE,SAAS,GAAG,IAAIC,gCAAW,WAAW;AAE9C,QAAM,QAAQ,iBAAiB,gBAAgB,cAAc,OAAO;AAGlE,SAAAJ,2BAAA;AAAA,IAACK,WAAA;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,MACrC,SAAS;AAAA,QACP,YAAY,QAAQ;AAAA,MACtB;AAAA,MACA,aAAY;AAAA,MACX,GAAG;AAAA,MAEH,UAAMC,QAAA,MAAA,KAAK,EAAE,IAAI,CAAC,MACjBN,2BAAA;AAAA,QAACO,MAAA;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,YACP,OAAO,QAAQ;AAAA,YACf,MAAM,QAAQ;AAAA,UAChB;AAAA,UAEA,OAAO;AAAA,UACP,SAAS,SAAS;AAAA,UAClB,UAAU,CAAC,UAAU,eAAe,OAAO,CAAC;AAAA,UAC5C,MAAM,MAAM;AAAA,UACZ,aAAa,MAAM;AAAA,UACnB,cAAY,mBAAmB,CAAC;AAAA,QAAA;AAAA,QAN3B;AAAA,MAAA,CAQR;AAAA,IAAA;AAAA,EAAA;AAGP;;;"}
|
|
@@ -2,18 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const React = require("react");
|
|
5
|
-
const uniqueId = require("lodash/uniqueId");
|
|
6
5
|
const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
|
|
7
6
|
const setId = require("../../utils/setId.cjs");
|
|
8
7
|
const useUniqueId = require("../../hooks/useUniqueId.cjs");
|
|
8
|
+
const helpers = require("../../utils/helpers.cjs");
|
|
9
9
|
const useDefaultProps = require("../../hooks/useDefaultProps.cjs");
|
|
10
10
|
const utils = require("../utils.cjs");
|
|
11
11
|
const DropZone_styles = require("./DropZone.styles.cjs");
|
|
12
12
|
const Label = require("../../Forms/Label/Label.cjs");
|
|
13
13
|
const InfoMessage = require("../../Forms/InfoMessage/InfoMessage.cjs");
|
|
14
14
|
const Typography = require("../../Typography/Typography.cjs");
|
|
15
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
16
|
-
const uniqueId__default = /* @__PURE__ */ _interopDefault(uniqueId);
|
|
17
15
|
function validateAccept(file, acceptAttr) {
|
|
18
16
|
if (!file || !acceptAttr)
|
|
19
17
|
return true;
|
|
@@ -66,7 +64,7 @@ const HvDropZone = (props) => {
|
|
|
66
64
|
type: file.type,
|
|
67
65
|
lastModified: file.lastModified
|
|
68
66
|
});
|
|
69
|
-
newFile.id =
|
|
67
|
+
newFile.id = helpers.uniqueId("uploaded-file-data-");
|
|
70
68
|
const isSizeAllowed = file.size <= maxFileSize;
|
|
71
69
|
const isFileAccepted = !accept || accept.includes(file.type?.split("/")[1]) || // TODO: remove in v6
|
|
72
70
|
validateAccept(file, accept);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.cjs","sources":["../../../../src/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\n\nimport uniqueId from \"lodash/uniqueId\";\n\nimport { Doc } from \"@hitachivantara/uikit-react-icons\";\n\nimport { setId } from \"../../utils/setId\";\nimport { useUniqueId } from \"../../hooks/useUniqueId\";\n\nimport { HvTypography } from \"../../Typography\";\nimport { HvInfoMessage, HvLabel } from \"../../Forms\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\n\nimport { convertUnits } from \"../utils\";\nimport { HvFileData, HvFilesAddedEvent } from \"../File\";\n\nimport { staticClasses, useClasses } from \"./DropZone.styles\";\n\nexport { staticClasses as dropZoneClasses };\n\nexport type HvDropZoneClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropZoneLabels {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n}\n\nexport interface HvDropZoneProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n accept?: React.InputHTMLAttributes<HTMLInputElement>[\"accept\"];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n}\n\n// TODO: remove/review in `v6`: delegate to HTML `accept` and/or add custom validation\nfunction validateAccept(file?: File, acceptAttr?: string) {\n if (!file || !acceptAttr) return true;\n\n const acceptEntries = acceptAttr.split(\",\");\n const fileName = file.name || \"\";\n const mimeType = (file.type || \"\").toLowerCase();\n const baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n return acceptEntries.some((type) => {\n const validType = type.trim().toLowerCase();\n if (validType.charAt(0) === \".\") {\n return fileName.toLowerCase().endsWith(validType);\n }\n // This is something like a image/* mime type\n if (validType.endsWith(\"/*\")) {\n return baseMimeType === validType.replace(/\\/.*$/, \"\");\n }\n return mimeType === validType;\n });\n}\n\nexport const HvDropZone = (props: HvDropZoneProps) => {\n const {\n id: idProp,\n classes: classesProp,\n labels,\n accept,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n } = useDefaultProps(\"HvDropZone\", props);\n const id = useUniqueId(idProp, \"dropzone\");\n\n const { classes, cx } = useClasses(classesProp);\n\n const [dragState, setDragState] = useState(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const handleDragLeave = () => {\n setDragState(false);\n };\n\n const handleDragEnter: React.DragEventHandler = (event) => {\n if (disabled) return;\n event.stopPropagation();\n event.preventDefault();\n setDragState(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.values(filesList);\n\n const newFiles = filesToProcess.map((file) => {\n const newFile: HvFileData = new File([file], file.name, {\n type: file.type,\n lastModified: file.lastModified,\n });\n newFile.id = uniqueId(\"uploaded-file-data-\");\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !accept ||\n accept.includes(file.type?.split(\"/\")[1]) || // TODO: remove in v6\n validateAccept(file, accept);\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n return newFile;\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <div id={id} className={classes.dropZoneLabelsGroup}>\n <HvLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={classes.dropZoneLabel}\n />\n <HvInfoMessage id={setId(id, \"description\")}>\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles\n ? labels.acceptedFiles\n : accept && `\\u00A0(${accept?.replaceAll(\",\", \", \")})`}\n </HvInfoMessage>\n </div>\n )}\n <div\n id={setId(id, \"input-file-container\")}\n className={cx(classes.dropZoneContainer, {\n [classes.dragAction]: dragState,\n [classes.dropZoneContainerDisabled]: disabled,\n })}\n >\n <input\n id={setId(id, \"input-file\")}\n className={classes.inputArea}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n onDragEnter={handleDragEnter}\n onDragOver={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDropCapture={handleDragLeave}\n onDrop={(event) => {\n if (disabled) return;\n\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }}\n ref={inputRef}\n accept={accept}\n {...inputProps}\n />\n <div className={classes?.dropArea}>\n {dragState ? (\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.dropFiles}\n </HvTypography>\n </div>\n ) : (\n <>\n <Doc\n iconSize=\"M\"\n className={classes.dropZoneAreaIcon}\n color={disabled ? \"secondary_60\" : \"secondary\"}\n />\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.drag}\n <span\n className={classes.selectFilesText}\n >{`\\xa0${labels?.selectFiles}`}</span>\n </HvTypography>\n </div>\n </>\n )}\n </div>\n </div>\n </>\n );\n};\n"],"names":["useDefaultProps","useUniqueId","useClasses","useState","useRef","uniqueId","jsxs","Fragment","jsx","HvLabel","setId","HvInfoMessage","convertUnits","HvTypography","Doc"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropZone.cjs","sources":["../../../../src/FileUploader/DropZone/DropZone.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport { Doc } from \"@hitachivantara/uikit-react-icons\";\n\nimport { setId } from \"../../utils/setId\";\nimport { useUniqueId } from \"../../hooks/useUniqueId\";\nimport { uniqueId } from \"../../utils/helpers\";\nimport { HvTypography } from \"../../Typography\";\nimport { HvInfoMessage, HvLabel } from \"../../Forms\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\n\nimport { convertUnits } from \"../utils\";\nimport { HvFileData, HvFilesAddedEvent } from \"../File\";\n\nimport { staticClasses, useClasses } from \"./DropZone.styles\";\n\nexport { staticClasses as dropZoneClasses };\n\nexport type HvDropZoneClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvDropZoneLabels {\n /**\n * Extensions of the accepted file types\n */\n acceptedFiles?: string;\n /**\n * Dropzone area label.\n */\n dropzone?: string;\n /**\n * Size file warning label.\n */\n sizeWarning?: string;\n /**\n * Size file warning label.\n */\n drag?: string;\n /**\n * Size file warning label.\n */\n selectFiles?: string;\n /**\n * Theming sheet used to style components\n * */\n dropFiles?: string;\n /**\n * Message to display when file size is greater than allowed\n * */\n fileSizeError?: string;\n /**\n * Message to display when file type is greater than allowed\n * */\n fileTypeError?: string;\n}\n\nexport interface HvDropZoneProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Labels to present in FileUploader.\n */\n labels?: HvDropZoneLabels;\n /**\n * Whether the Dropzone should accept multiple files at once.\n */\n multiple?: boolean;\n /**\n * If the input is disabled or not\n */\n disabled?: boolean;\n /**\n * Files extensions accepted for upload.\n */\n accept?: React.InputHTMLAttributes<HTMLInputElement>[\"accept\"];\n /**\n * Max upload size\n * */\n maxFileSize: number;\n /**\n * Function responsible for processing files added to the drop zone.\n */\n onFilesAdded?: HvFilesAddedEvent;\n /**\n * Whether the DropZone should hide labels or not.\n */\n hideLabels?: boolean;\n /**\n * Attributes applied to the input element.\n */\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvDropZoneClasses;\n}\n\n// TODO: remove/review in `v6`: delegate to HTML `accept` and/or add custom validation\nfunction validateAccept(file?: File, acceptAttr?: string) {\n if (!file || !acceptAttr) return true;\n\n const acceptEntries = acceptAttr.split(\",\");\n const fileName = file.name || \"\";\n const mimeType = (file.type || \"\").toLowerCase();\n const baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n return acceptEntries.some((type) => {\n const validType = type.trim().toLowerCase();\n if (validType.charAt(0) === \".\") {\n return fileName.toLowerCase().endsWith(validType);\n }\n // This is something like a image/* mime type\n if (validType.endsWith(\"/*\")) {\n return baseMimeType === validType.replace(/\\/.*$/, \"\");\n }\n return mimeType === validType;\n });\n}\n\nexport const HvDropZone = (props: HvDropZoneProps) => {\n const {\n id: idProp,\n classes: classesProp,\n labels,\n accept,\n maxFileSize,\n inputProps,\n hideLabels,\n multiple = true,\n disabled = false,\n onFilesAdded,\n } = useDefaultProps(\"HvDropZone\", props);\n const id = useUniqueId(idProp, \"dropzone\");\n\n const { classes, cx } = useClasses(classesProp);\n\n const [dragState, setDragState] = useState(false);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const handleDragLeave = () => {\n setDragState(false);\n };\n\n const handleDragEnter: React.DragEventHandler = (event) => {\n if (disabled) return;\n event.stopPropagation();\n event.preventDefault();\n setDragState(true);\n };\n\n const onChangeHandler = (filesList: FileList) => {\n const filesToProcess = Object.values(filesList);\n\n const newFiles = filesToProcess.map((file) => {\n const newFile: HvFileData = new File([file], file.name, {\n type: file.type,\n lastModified: file.lastModified,\n });\n newFile.id = uniqueId(\"uploaded-file-data-\");\n\n const isSizeAllowed = file.size <= maxFileSize;\n const isFileAccepted =\n !accept ||\n accept.includes(file.type?.split(\"/\")[1]) || // TODO: remove in v6\n validateAccept(file, accept);\n\n if (!isFileAccepted) {\n newFile.errorMessage = labels?.fileTypeError;\n newFile.status = \"fail\";\n } else if (!isSizeAllowed) {\n newFile.errorMessage = labels?.fileSizeError;\n newFile.status = \"fail\";\n }\n\n return newFile;\n });\n\n onFilesAdded?.(newFiles);\n };\n\n return (\n <>\n {!hideLabels && (\n <div id={id} className={classes.dropZoneLabelsGroup}>\n <HvLabel\n id={setId(id, \"input-file-label\")}\n htmlFor={setId(id, \"input-file\")}\n label={labels?.dropzone}\n className={classes.dropZoneLabel}\n />\n <HvInfoMessage id={setId(id, \"description\")}>\n {Number.isInteger(maxFileSize) &&\n `${labels?.sizeWarning} ${convertUnits(maxFileSize)}`}\n {labels?.acceptedFiles\n ? labels.acceptedFiles\n : accept && `\\u00A0(${accept?.replaceAll(\",\", \", \")})`}\n </HvInfoMessage>\n </div>\n )}\n <div\n id={setId(id, \"input-file-container\")}\n className={cx(classes.dropZoneContainer, {\n [classes.dragAction]: dragState,\n [classes.dropZoneContainerDisabled]: disabled,\n })}\n >\n <input\n id={setId(id, \"input-file\")}\n className={classes.inputArea}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n title={!disabled ? `${labels?.drag}\\xa0${labels?.selectFiles}` : \"\"}\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.value = \"\";\n }\n }}\n onChange={() => {\n if (!disabled && inputRef.current?.files) {\n onChangeHandler(inputRef.current.files);\n }\n }}\n onDragEnter={handleDragEnter}\n onDragOver={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDropCapture={handleDragLeave}\n onDrop={(event) => {\n if (disabled) return;\n\n const { files } = event.dataTransfer;\n if (multiple === true || files.length === 1) {\n event.stopPropagation();\n event.preventDefault();\n onChangeHandler(files);\n }\n }}\n ref={inputRef}\n accept={accept}\n {...inputProps}\n />\n <div className={classes?.dropArea}>\n {dragState ? (\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.dropFiles}\n </HvTypography>\n </div>\n ) : (\n <>\n <Doc\n iconSize=\"M\"\n className={classes.dropZoneAreaIcon}\n color={disabled ? \"secondary_60\" : \"secondary\"}\n />\n <div className={classes.dropZoneAreaLabels}>\n <HvTypography className={classes.dragText}>\n {labels?.drag}\n <span\n className={classes.selectFilesText}\n >{`\\xa0${labels?.selectFiles}`}</span>\n </HvTypography>\n </div>\n </>\n )}\n </div>\n </div>\n </>\n );\n};\n"],"names":["useDefaultProps","useUniqueId","useClasses","useState","useRef","uniqueId","jsxs","Fragment","jsx","HvLabel","setId","HvInfoMessage","convertUnits","HvTypography","Doc"],"mappings":"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"}
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const React = require("react");
|
|
5
|
-
const
|
|
5
|
+
const helpers = require("../utils/helpers.cjs");
|
|
6
6
|
const useDefaultProps = require("../hooks/useDefaultProps.cjs");
|
|
7
7
|
const useSavedState = require("../utils/useSavedState.cjs");
|
|
8
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
9
|
-
const isEqual__default = /* @__PURE__ */ _interopDefault(isEqual);
|
|
10
8
|
const HvFilterGroupContext = React.createContext({
|
|
11
9
|
activeGroup: 0,
|
|
12
10
|
setActiveGroup: () => {
|
|
@@ -38,7 +36,7 @@ const HvFilterGroupProvider = (props) => {
|
|
|
38
36
|
setFilterValues(value, true);
|
|
39
37
|
}, [value, setFilterValues]);
|
|
40
38
|
React.useEffect(() => {
|
|
41
|
-
setApplyDisabled(
|
|
39
|
+
setApplyDisabled(helpers.isEqual(filterValues, appliedFilters));
|
|
42
40
|
}, [filterValues, appliedFilters]);
|
|
43
41
|
const clearFilters = React.useCallback(() => {
|
|
44
42
|
setFilterValues(defaultValue || groups(filters));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterGroupContext.cjs","sources":["../../../src/FilterGroup/FilterGroupContext.tsx"],"sourcesContent":["import {\n Dispatch,\n SetStateAction,\n createContext,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport isEqual from \"
|
|
1
|
+
{"version":3,"file":"FilterGroupContext.cjs","sources":["../../../src/FilterGroup/FilterGroupContext.tsx"],"sourcesContent":["import {\n Dispatch,\n SetStateAction,\n createContext,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\n\nimport { isEqual } from \"../utils/helpers\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useSavedState } from \"../utils/useSavedState\";\nimport { HvFilterGroupFilters, HvFilterGroupValue } from \"./types\";\n\ninterface HvFilterGroupContextValue {\n activeGroup: number;\n setActiveGroup: Dispatch<SetStateAction<number>>;\n filterOptions: HvFilterGroupFilters;\n setFilterValues: (value?: HvFilterGroupValue, save?: boolean) => void;\n rollbackFilters: () => void;\n clearFilters: () => void;\n applyFilters: () => void;\n applyDisabled: boolean;\n appliedFilters?: HvFilterGroupValue;\n defaultValue?: HvFilterGroupValue;\n filterValues?: HvFilterGroupValue;\n}\n\nexport const HvFilterGroupContext = createContext<HvFilterGroupContextValue>({\n activeGroup: 0,\n setActiveGroup: () => {},\n filterOptions: [],\n setFilterValues: () => {},\n rollbackFilters: () => {},\n clearFilters: () => {},\n applyFilters: () => {},\n applyDisabled: false,\n filterValues: [],\n appliedFilters: undefined,\n defaultValue: undefined,\n});\n\nconst groups = (filters: HvFilterGroupFilters) => filters.map(() => []);\n\ninterface HvFilterGroupProviderProps {\n children: React.ReactNode;\n filters: HvFilterGroupFilters;\n defaultValue?: HvFilterGroupValue;\n value?: HvFilterGroupValue;\n}\n\nexport const HvFilterGroupProvider = (props: HvFilterGroupProviderProps) => {\n const { defaultValue, value, filters, children } = useDefaultProps(\n \"HvFilterGroupProvider\",\n props\n );\n\n const [group, setActiveGroup] = useState<number>(0);\n const [filterValues, setFilterValues, rollbackFilters, appliedFilters] =\n useSavedState<HvFilterGroupValue>(value || groups(filters));\n const [applyDisabled, setApplyDisabled] = useState<boolean>(false);\n\n useEffect(() => {\n setFilterValues(value, true);\n }, [value, setFilterValues]);\n\n useEffect(() => {\n setApplyDisabled(isEqual(filterValues, appliedFilters));\n }, [filterValues, appliedFilters]);\n\n const clearFilters = useCallback(() => {\n setFilterValues(defaultValue || groups(filters));\n }, [filters, setFilterValues, defaultValue]);\n\n const applyFilters = useCallback(() => {\n setFilterValues(filterValues, true);\n }, [filterValues, setFilterValues]);\n\n const contextValue: HvFilterGroupContextValue = useMemo(\n () => ({\n activeGroup: group,\n setActiveGroup,\n filterOptions: filters,\n filterValues,\n setFilterValues,\n appliedFilters,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n defaultValue,\n }),\n [\n appliedFilters,\n applyDisabled,\n applyFilters,\n clearFilters,\n filterValues,\n filters,\n group,\n rollbackFilters,\n setFilterValues,\n defaultValue,\n ]\n );\n\n return (\n <HvFilterGroupContext.Provider value={contextValue}>\n {children}\n </HvFilterGroupContext.Provider>\n );\n};\n"],"names":["createContext","useDefaultProps","useState","useSavedState","useEffect","isEqual","useCallback","useMemo"],"mappings":";;;;;;;AA6BO,MAAM,uBAAuBA,MAAAA,cAAyC;AAAA,EAC3E,aAAa;AAAA,EACb,gBAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,eAAe,CAAC;AAAA,EAChB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,eAAe;AAAA,EACf,cAAc,CAAC;AAAA,EACf,gBAAgB;AAAA,EAChB,cAAc;AAChB,CAAC;AAED,MAAM,SAAS,CAAC,YAAkC,QAAQ,IAAI,MAAM,CAAE,CAAA;AASzD,MAAA,wBAAwB,CAAC,UAAsC;AAC1E,QAAM,EAAE,cAAc,OAAO,SAAS,SAAa,IAAAC,gBAAA;AAAA,IACjD;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,CAAC,OAAO,cAAc,IAAIC,eAAiB,CAAC;AAC5C,QAAA,CAAC,cAAc,iBAAiB,iBAAiB,cAAc,IACnEC,cAAkC,cAAA,SAAS,OAAO,OAAO,CAAC;AAC5D,QAAM,CAAC,eAAe,gBAAgB,IAAID,eAAkB,KAAK;AAEjEE,QAAAA,UAAU,MAAM;AACd,oBAAgB,OAAO,IAAI;AAAA,EAAA,GAC1B,CAAC,OAAO,eAAe,CAAC;AAE3BA,QAAAA,UAAU,MAAM;AACG,qBAAAC,QAAA,QAAQ,cAAc,cAAc,CAAC;AAAA,EAAA,GACrD,CAAC,cAAc,cAAc,CAAC;AAE3B,QAAA,eAAeC,MAAAA,YAAY,MAAM;AACrB,oBAAA,gBAAgB,OAAO,OAAO,CAAC;AAAA,EAC9C,GAAA,CAAC,SAAS,iBAAiB,YAAY,CAAC;AAErC,QAAA,eAAeA,MAAAA,YAAY,MAAM;AACrC,oBAAgB,cAAc,IAAI;AAAA,EAAA,GACjC,CAAC,cAAc,eAAe,CAAC;AAElC,QAAM,eAA0CC,MAAA;AAAA,IAC9C,OAAO;AAAA,MACL,aAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAGF,wCACG,qBAAqB,UAArB,EAA8B,OAAO,cACnC,SACH,CAAA;AAEJ;;;"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const React = require("react");
|
|
5
|
-
const cloneDeep = require("lodash/cloneDeep");
|
|
6
5
|
const setId = require("../../utils/setId.cjs");
|
|
7
6
|
const FilterGroupContext = require("../FilterGroupContext.cjs");
|
|
8
7
|
const RightPanel_styles = require("./RightPanel.styles.cjs");
|
|
@@ -11,8 +10,6 @@ const CheckBox = require("../../CheckBox/CheckBox.cjs");
|
|
|
11
10
|
const Panel = require("../../Panel/Panel.cjs");
|
|
12
11
|
const Input = require("../../Input/Input.cjs");
|
|
13
12
|
const List = require("../../List/List.cjs");
|
|
14
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
15
|
-
const cloneDeep__default = /* @__PURE__ */ _interopDefault(cloneDeep);
|
|
16
13
|
const HvFilterGroupRightPanel = ({
|
|
17
14
|
id,
|
|
18
15
|
className,
|
|
@@ -72,7 +69,7 @@ const HvFilterGroupRightPanel = ({
|
|
|
72
69
|
setFilterValues(newFilterValues);
|
|
73
70
|
};
|
|
74
71
|
const handleSelectAll = React.useCallback(() => {
|
|
75
|
-
const newFilterValues =
|
|
72
|
+
const newFilterValues = structuredClone(filterValues);
|
|
76
73
|
if (anySelected) {
|
|
77
74
|
if (searchStr !== "") {
|
|
78
75
|
newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RightPanel.cjs","sources":["../../../../src/FilterGroup/RightPanel/RightPanel.tsx"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport cloneDeep from \"lodash/cloneDeep\";\n\nimport { HvCheckBox } from \"../../CheckBox\";\nimport { HvInput } from \"../../Input\";\nimport { HvList, HvListProps } from \"../../List\";\nimport { HvPanel } from \"../../Panel\";\nimport { HvTypography } from \"../../Typography\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { staticClasses, useClasses } from \"./RightPanel.styles\";\n\nexport { staticClasses as filterGroupRightPanelClasses };\n\nexport type HvFilterGroupRightPanelClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFilterGroupRightPanelProps {\n id?: string;\n className?: string;\n labels?: {\n searchBoxPlaceholder?: string;\n selectAll?: string;\n multiSelectionConjunction?: string;\n };\n emptyElement?: React.ReactNode;\n classes?: HvFilterGroupRightPanelClasses;\n}\n\nexport const HvFilterGroupRightPanel = ({\n id,\n className,\n labels,\n emptyElement,\n classes: classesProp,\n}: HvFilterGroupRightPanelProps) => {\n const { classes } = useClasses(classesProp);\n const [searchStr, setSearchStr] = useState<string>(\"\");\n const [allSelected, setAllSelected] = useState<boolean>(false);\n const [anySelected, setAnySelected] = useState<boolean>(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(HvFilterGroupContext);\n\n const { all: allActiveGroupOptions, enabled: enabledActiveGroupOptions } =\n useMemo(() => {\n const filteredOptions = filterOptions[activeGroup]?.data.filter(\n (option) => option.name.toLowerCase().includes(searchStr.toLowerCase())\n );\n\n return {\n all: filteredOptions.map((option) => option.id) || [],\n enabled:\n filteredOptions\n .filter((option) => !option.disabled)\n .map((option) => option.id) || [],\n };\n }, [filterOptions, activeGroup, searchStr]);\n\n const activeFilterValues = useMemo(\n () =>\n filterValues[activeGroup]?.filter((value) =>\n allActiveGroupOptions.includes(value)\n ) || [],\n [filterValues, allActiveGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup]?.data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden:\n option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })) || [],\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === allActiveGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, allActiveGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler: HvListProps[\"onChange\"] = (values) => {\n const newFilterValues = filterOptions.map((_, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues as any);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = cloneDeep(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !enabledActiveGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n const currentOptions = newFilterValues[activeGroup] || [];\n newFilterValues[activeGroup] = [\n ...currentOptions,\n ...enabledActiveGroupOptions,\n ];\n }\n\n setFilterValues(newFilterValues);\n }, [\n activeGroup,\n enabledActiveGroupOptions,\n anySelected,\n filterValues,\n setFilterValues,\n searchStr,\n ]);\n\n const SelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${labels?.multiSelectionConjunction} ${allActiveGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{labels?.selectAll}</b>\n {` (${allActiveGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n allActiveGroupOptions.length,\n allSelected,\n anySelected,\n handleSelectAll,\n id,\n labels,\n classes?.selectAllContainer,\n classes?.selectAll,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={className}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels?.searchBoxPlaceholder}\n value={searchStr}\n onChange={(_, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n values={listValues}\n className={classes.list}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n"],"names":["useClasses","useState","useContext","HvFilterGroupContext","useMemo","useCallback","useEffect","cloneDeep","jsx","HvTypography","jsxs","Fragment","HvCheckBox","setId","HvPanel","HvInput","HvList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RightPanel.cjs","sources":["../../../../src/FilterGroup/RightPanel/RightPanel.tsx"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\n\nimport { HvCheckBox } from \"../../CheckBox\";\nimport { HvInput } from \"../../Input\";\nimport { HvList, HvListProps } from \"../../List\";\nimport { HvPanel } from \"../../Panel\";\nimport { HvTypography } from \"../../Typography\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { staticClasses, useClasses } from \"./RightPanel.styles\";\n\nexport { staticClasses as filterGroupRightPanelClasses };\n\nexport type HvFilterGroupRightPanelClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFilterGroupRightPanelProps {\n id?: string;\n className?: string;\n labels?: {\n searchBoxPlaceholder?: string;\n selectAll?: string;\n multiSelectionConjunction?: string;\n };\n emptyElement?: React.ReactNode;\n classes?: HvFilterGroupRightPanelClasses;\n}\n\nexport const HvFilterGroupRightPanel = ({\n id,\n className,\n labels,\n emptyElement,\n classes: classesProp,\n}: HvFilterGroupRightPanelProps) => {\n const { classes } = useClasses(classesProp);\n const [searchStr, setSearchStr] = useState<string>(\"\");\n const [allSelected, setAllSelected] = useState<boolean>(false);\n const [anySelected, setAnySelected] = useState<boolean>(false);\n\n const {\n filterOptions,\n filterValues = [],\n setFilterValues,\n activeGroup,\n } = useContext(HvFilterGroupContext);\n\n const { all: allActiveGroupOptions, enabled: enabledActiveGroupOptions } =\n useMemo(() => {\n const filteredOptions = filterOptions[activeGroup]?.data.filter(\n (option) => option.name.toLowerCase().includes(searchStr.toLowerCase())\n );\n\n return {\n all: filteredOptions.map((option) => option.id) || [],\n enabled:\n filteredOptions\n .filter((option) => !option.disabled)\n .map((option) => option.id) || [],\n };\n }, [filterOptions, activeGroup, searchStr]);\n\n const activeFilterValues = useMemo(\n () =>\n filterValues[activeGroup]?.filter((value) =>\n allActiveGroupOptions.includes(value)\n ) || [],\n [filterValues, allActiveGroupOptions, activeGroup]\n );\n\n const listValues = useMemo(\n () =>\n filterOptions[activeGroup]?.data.map((option) => ({\n ...option,\n label: option.name,\n selected: filterValues[activeGroup]?.includes(option.id),\n isHidden:\n option.name.toLowerCase().indexOf(searchStr.toLowerCase()) < 0,\n })) || [],\n [filterOptions, filterValues, activeGroup, searchStr]\n );\n\n const updateSelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n const hasSelection = nbrSelected > 0;\n const allSelect = nbrSelected === allActiveGroupOptions.length;\n\n setAnySelected(hasSelection);\n setAllSelected(hasSelection && allSelect);\n }, [activeFilterValues, allActiveGroupOptions]);\n\n useEffect(() => {\n updateSelectAll();\n }, [activeFilterValues, updateSelectAll]);\n\n useEffect(() => setSearchStr(\"\"), [activeGroup]);\n\n const onChangeHandler: HvListProps[\"onChange\"] = (values) => {\n const newFilterValues = filterOptions.map((_, i) =>\n activeGroup === i\n ? values.filter((v) => v.selected).map((v) => v.id)\n : [...(filterValues[i] || [])]\n );\n setFilterValues(newFilterValues as any);\n };\n\n const handleSelectAll = useCallback(() => {\n const newFilterValues = structuredClone(filterValues);\n\n if (anySelected) {\n if (searchStr !== \"\") {\n newFilterValues[activeGroup] = filterValues[activeGroup]?.filter(\n (value) => !enabledActiveGroupOptions.includes(value)\n );\n } else {\n newFilterValues[activeGroup] = [];\n }\n } else {\n const currentOptions = newFilterValues[activeGroup] || [];\n newFilterValues[activeGroup] = [\n ...currentOptions,\n ...enabledActiveGroupOptions,\n ];\n }\n\n setFilterValues(newFilterValues);\n }, [\n activeGroup,\n enabledActiveGroupOptions,\n anySelected,\n filterValues,\n setFilterValues,\n searchStr,\n ]);\n\n const SelectAll = useCallback(() => {\n const nbrSelected = activeFilterValues?.length;\n\n const defaultLabel = (\n <HvTypography component=\"span\">\n {nbrSelected > 0 ? (\n <>\n <b>{nbrSelected}</b>\n {` ${labels?.multiSelectionConjunction} ${allActiveGroupOptions.length}`}\n </>\n ) : (\n <>\n <b>{labels?.selectAll}</b>\n {` (${allActiveGroupOptions.length})`}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <div className={classes.selectAllContainer}>\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={defaultLabel}\n onChange={() => handleSelectAll()}\n className={classes.selectAll}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n </div>\n );\n }, [\n activeFilterValues?.length,\n allActiveGroupOptions.length,\n allSelected,\n anySelected,\n handleSelectAll,\n id,\n labels,\n classes?.selectAllContainer,\n classes?.selectAll,\n ]);\n\n return (\n <HvPanel id={setId(id, \"rightPanel\")} className={className}>\n {listValues.length > 0 ? (\n <>\n <HvInput\n id={setId(id, \"search\")}\n classes={{\n root: classes.search,\n }}\n type=\"search\"\n placeholder={labels?.searchBoxPlaceholder}\n value={searchStr}\n onChange={(_, str) => setSearchStr(str)}\n />\n <SelectAll />\n <HvList\n key={activeGroup}\n id={setId(id, \"list\")}\n values={listValues}\n className={classes.list}\n multiSelect\n useSelector\n showSelectAll={false}\n onChange={onChangeHandler}\n selectable\n condensed\n hasTooltips\n />\n </>\n ) : (\n emptyElement\n )}\n </HvPanel>\n );\n};\n"],"names":["useClasses","useState","useContext","HvFilterGroupContext","useMemo","useCallback","useEffect","jsx","HvTypography","jsxs","Fragment","HvCheckBox","setId","HvPanel","HvInput","HvList"],"mappings":"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"}
|
package/dist/cjs/Grid/Grid.cjs
CHANGED
|
@@ -3,13 +3,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const React = require("react");
|
|
5
5
|
const MuiGrid = require("@mui/material/Grid");
|
|
6
|
-
const isString = require("lodash/isString");
|
|
7
6
|
const useDefaultProps = require("../hooks/useDefaultProps.cjs");
|
|
8
7
|
const useWidth = require("../hooks/useWidth.cjs");
|
|
9
8
|
const Grid_styles = require("./Grid.styles.cjs");
|
|
10
9
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
11
10
|
const MuiGrid__default = /* @__PURE__ */ _interopDefault(MuiGrid);
|
|
12
|
-
const isString__default = /* @__PURE__ */ _interopDefault(isString);
|
|
13
11
|
const BREAKPOINT_GUTTERS = {
|
|
14
12
|
xs: 2,
|
|
15
13
|
sm: 2,
|
|
@@ -26,7 +24,7 @@ const BREAKPOINT_COLUMNS = {
|
|
|
26
24
|
};
|
|
27
25
|
function getGridSpacing(spacing) {
|
|
28
26
|
let gridSpacing;
|
|
29
|
-
if (
|
|
27
|
+
if (typeof spacing === "string") {
|
|
30
28
|
if (spacing === "auto") {
|
|
31
29
|
gridSpacing = BREAKPOINT_GUTTERS;
|
|
32
30
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.cjs","sources":["../../../src/Grid/Grid.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport MuiGrid, { GridProps as MuiGridProps } from \"@mui/material/Grid\";\n\nimport isString from \"lodash/isString\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useWidth } from \"../hooks/useWidth\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Grid.styles\";\n\nexport { staticClasses as gridClasses };\n\nexport type HvGridClasses = ExtractNames<typeof useClasses>;\n\nconst BREAKPOINT_GUTTERS = {\n xs: 2,\n sm: 2,\n md: 4,\n lg: 4,\n xl: 4,\n};\n\nconst BREAKPOINT_COLUMNS = {\n xs: 4,\n sm: 8,\n md: 12,\n lg: 12,\n xl: 12,\n};\n\nexport type HvGridDirection =\n | \"row\"\n | \"row-reverse\"\n | \"column\"\n | \"column-reverse\";\n\nexport type HvGridSpacing =\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"auto\"\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10;\n\nexport interface HvGridProps extends Omit<MuiGridProps, \"classes\" | \"columns\"> {\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n */\n container?: boolean;\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n */\n item?: boolean;\n /**\n * Defines the space between the type item component. It can only be used on a type container component.\n * Based in the 8x factor defined in the theme, it allows the definition of this factor based on the factor\n * (number between 0 and 10), breakpoint or auto.\n */\n spacing?: HvGridSpacing | number;\n /**\n * Defines the vertical space between the type item component. It can only be used on a type container component.\n * Based in the 8x factor defined in the theme, it allows the definition of this factor based on the factor\n * (number between 0 and 10), breakpoint or auto.\n * It overrides the value of the spacing prop.\n */\n rowSpacing?: HvGridSpacing | number;\n /**\n * Defines the horizontal space between the type item component. It can only be used on a type container component.\n * Based in the 8x factor defined in the theme, it allows the definition of this factor based on the factor\n * (number between 0 and 10), breakpoint or auto.\n * It overrides the value of the spacing prop.\n */\n columnSpacing?: HvGridSpacing | number;\n /**\n * The number of columns.\n * Defaults to a 12-column grid.\n * The value \"auto\" implements the Design System directives in terms of variable number of columns.\n * @default 12\n */\n columns?: \"auto\" | MuiGridProps[\"columns\"];\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n */\n direction?: HvGridDirection;\n /**\n * Defines the `justify-content` style property.\n * It is applied for all screen sizes.\n */\n justify?:\n | \"flex-start\"\n | \"center\"\n | \"flex-end\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for all the screen sizes with the lowest priority.\n */\n xs?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `sm` breakpoint and wider screens if not overridden.\n */\n sm?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `md` breakpoint and wider screens if not overridden.\n */\n md?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `lg` breakpoint and wider screens if not overridden.\n */\n lg?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `xl` breakpoint and wider screens.\n */\n xl?: number | boolean;\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n */\n wrap?: \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n */\n zeroMinWidth?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvGridClasses;\n}\n\nfunction getGridSpacing(spacing: HvGridProps[\"spacing\"]) {\n let gridSpacing: MuiGridProps[\"spacing\"];\n\n if (isString(spacing)) {\n if (spacing === \"auto\") {\n gridSpacing = BREAKPOINT_GUTTERS;\n } else {\n gridSpacing = BREAKPOINT_GUTTERS[spacing];\n }\n } else if (typeof spacing === \"object\") {\n gridSpacing = Object.keys(spacing).reduce(\n (acc, breakpoint) => ({\n ...acc,\n [breakpoint]:\n BREAKPOINT_GUTTERS[spacing[breakpoint]] ?? spacing[breakpoint],\n }),\n {}\n );\n } else if (spacing === 0) {\n gridSpacing = { xs: 0 };\n } else {\n gridSpacing = spacing;\n }\n\n return gridSpacing;\n}\n\nfunction getNumberOfColumns(columns: HvGridProps[\"columns\"]) {\n let numberOfColumns: MuiGridProps[\"columns\"];\n\n if (columns === \"auto\") {\n numberOfColumns = BREAKPOINT_COLUMNS;\n } else {\n numberOfColumns = columns;\n }\n\n return numberOfColumns;\n}\n\nfunction getContainerProps(\n spacing: HvGridProps[\"spacing\"],\n rowSpacing: HvGridProps[\"rowSpacing\"],\n columnSpacing: HvGridProps[\"columnSpacing\"],\n columns: HvGridProps[\"columns\"]\n) {\n const containerProps: Pick<\n MuiGridProps,\n \"container\" | \"spacing\" | \"rowSpacing\" | \"columnSpacing\" | \"columns\"\n > = { container: true };\n\n if (spacing != null) {\n containerProps.spacing = getGridSpacing(spacing);\n }\n if (rowSpacing != null) {\n containerProps.rowSpacing = getGridSpacing(rowSpacing);\n }\n if (columnSpacing != null) {\n containerProps.columnSpacing = getGridSpacing(columnSpacing);\n }\n if (columns != null) {\n containerProps.columns = getNumberOfColumns(columns);\n }\n\n return containerProps;\n}\n\nconst WidthGrid = forwardRef<HTMLDivElement, HvGridProps>((props, ref) => {\n const { container, spacing, rowSpacing, columnSpacing, columns, ...others } =\n props;\n\n const width = useWidth();\n\n const containerProps = container\n ? getContainerProps(\n spacing === \"auto\" ? width : spacing,\n rowSpacing === \"auto\" ? width : rowSpacing,\n columnSpacing === \"auto\" ? width : columnSpacing,\n columns\n )\n : {};\n\n return <MuiGrid ref={ref} {...containerProps} {...others} />;\n});\n\n/**\n * The grid creates visual consistency between layouts while allowing flexibility\n * across a wide variety of designs. This component is based on a 12-column grid layout.\n *\n * It's based on the [Material UI Grid](https://mui.com/material-ui/react-grid/).\n *\n * The definitions were set following the Design System directives:\n *\n * | Breakpoint | Width (in px) | Gutters (in px) | Number of columns |\n * | ---------- | ------------- | --------------- | ----------------- |\n * | xs | [0-600[ | 16 | 4 |\n * | sm | [600-960[ | 16 | 8 |\n * | md | [960-1270[ | 32 | 12 |\n * | lg | [1270-1920[ | 32 | 12 |\n * | xl | [1920-...[ | 32 | 12 |\n *\n * However, the number of columns is set to 12 for all breakpoints, as it serves most\n * of the use cases and simplifies the implementation.\n * To opt-in to the Design System directives, you can set the `columns` prop to `auto`.\n *\n * Also, the Design System specifications are omissive about the horizontal gutters.\n * The HvGrid sets them to the same value as the vertical gutters, depending on the breakpoint.\n * It can be overridden by setting the `rowSpacing` prop.\n */\nexport const HvGrid = forwardRef<HTMLDivElement, HvGridProps>((props, ref) => {\n const {\n item,\n container,\n spacing = \"auto\",\n rowSpacing,\n columnSpacing,\n columns,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvGrid\", props);\n\n const { classes } = useClasses(classesProp);\n\n // Fixes MUI error when using spacings as objects and the grid is an item and container\n // When set to \"auto\", the spacing changes depending on the screen's breakpoint\n // The condition avoids using useWidth and re-rendering the component unnecessarily\n if (\n container &&\n item &&\n (spacing === \"auto\" || rowSpacing === \"auto\" || columnSpacing === \"auto\")\n ) {\n return (\n <WidthGrid\n ref={ref}\n classes={classes}\n item={item}\n container={container}\n spacing={spacing}\n rowSpacing={rowSpacing}\n columnSpacing={columnSpacing}\n columns={columns}\n {...others}\n />\n );\n }\n\n const containerProps = container\n ? getContainerProps(spacing, rowSpacing, columnSpacing, columns)\n : {};\n\n return (\n <MuiGrid\n ref={ref}\n classes={classes}\n item={item}\n {...containerProps}\n {...others}\n />\n );\n});\n"],"names":["isString","forwardRef","useWidth","MuiGrid","useDefaultProps","useClasses","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grid.cjs","sources":["../../../src/Grid/Grid.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport MuiGrid, { GridProps as MuiGridProps } from \"@mui/material/Grid\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useWidth } from \"../hooks/useWidth\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Grid.styles\";\n\nexport { staticClasses as gridClasses };\n\nexport type HvGridClasses = ExtractNames<typeof useClasses>;\n\nconst BREAKPOINT_GUTTERS = {\n xs: 2,\n sm: 2,\n md: 4,\n lg: 4,\n xl: 4,\n};\n\nconst BREAKPOINT_COLUMNS = {\n xs: 4,\n sm: 8,\n md: 12,\n lg: 12,\n xl: 12,\n};\n\nexport type HvGridDirection =\n | \"row\"\n | \"row-reverse\"\n | \"column\"\n | \"column-reverse\";\n\nexport type HvGridSpacing =\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"auto\"\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10;\n\nexport interface HvGridProps extends Omit<MuiGridProps, \"classes\" | \"columns\"> {\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n */\n container?: boolean;\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n */\n item?: boolean;\n /**\n * Defines the space between the type item component. It can only be used on a type container component.\n * Based in the 8x factor defined in the theme, it allows the definition of this factor based on the factor\n * (number between 0 and 10), breakpoint or auto.\n */\n spacing?: HvGridSpacing | number;\n /**\n * Defines the vertical space between the type item component. It can only be used on a type container component.\n * Based in the 8x factor defined in the theme, it allows the definition of this factor based on the factor\n * (number between 0 and 10), breakpoint or auto.\n * It overrides the value of the spacing prop.\n */\n rowSpacing?: HvGridSpacing | number;\n /**\n * Defines the horizontal space between the type item component. It can only be used on a type container component.\n * Based in the 8x factor defined in the theme, it allows the definition of this factor based on the factor\n * (number between 0 and 10), breakpoint or auto.\n * It overrides the value of the spacing prop.\n */\n columnSpacing?: HvGridSpacing | number;\n /**\n * The number of columns.\n * Defaults to a 12-column grid.\n * The value \"auto\" implements the Design System directives in terms of variable number of columns.\n * @default 12\n */\n columns?: \"auto\" | MuiGridProps[\"columns\"];\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n */\n direction?: HvGridDirection;\n /**\n * Defines the `justify-content` style property.\n * It is applied for all screen sizes.\n */\n justify?:\n | \"flex-start\"\n | \"center\"\n | \"flex-end\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for all the screen sizes with the lowest priority.\n */\n xs?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `sm` breakpoint and wider screens if not overridden.\n */\n sm?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `md` breakpoint and wider screens if not overridden.\n */\n md?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `lg` breakpoint and wider screens if not overridden.\n */\n lg?: number | boolean;\n /**\n * Defines the number of grids the component is going to use.\n * It's applied for the `xl` breakpoint and wider screens.\n */\n xl?: number | boolean;\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n */\n wrap?: \"nowrap\" | \"wrap\" | \"wrap-reverse\";\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n */\n zeroMinWidth?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvGridClasses;\n}\n\nfunction getGridSpacing(spacing: HvGridProps[\"spacing\"]) {\n let gridSpacing: MuiGridProps[\"spacing\"];\n\n if (typeof spacing === \"string\") {\n if (spacing === \"auto\") {\n gridSpacing = BREAKPOINT_GUTTERS;\n } else {\n gridSpacing = BREAKPOINT_GUTTERS[spacing];\n }\n } else if (typeof spacing === \"object\") {\n gridSpacing = Object.keys(spacing).reduce(\n (acc, breakpoint) => ({\n ...acc,\n [breakpoint]:\n BREAKPOINT_GUTTERS[spacing[breakpoint]] ?? spacing[breakpoint],\n }),\n {}\n );\n } else if (spacing === 0) {\n gridSpacing = { xs: 0 };\n } else {\n gridSpacing = spacing;\n }\n\n return gridSpacing;\n}\n\nfunction getNumberOfColumns(columns: HvGridProps[\"columns\"]) {\n let numberOfColumns: MuiGridProps[\"columns\"];\n\n if (columns === \"auto\") {\n numberOfColumns = BREAKPOINT_COLUMNS;\n } else {\n numberOfColumns = columns;\n }\n\n return numberOfColumns;\n}\n\nfunction getContainerProps(\n spacing: HvGridProps[\"spacing\"],\n rowSpacing: HvGridProps[\"rowSpacing\"],\n columnSpacing: HvGridProps[\"columnSpacing\"],\n columns: HvGridProps[\"columns\"]\n) {\n const containerProps: Pick<\n MuiGridProps,\n \"container\" | \"spacing\" | \"rowSpacing\" | \"columnSpacing\" | \"columns\"\n > = { container: true };\n\n if (spacing != null) {\n containerProps.spacing = getGridSpacing(spacing);\n }\n if (rowSpacing != null) {\n containerProps.rowSpacing = getGridSpacing(rowSpacing);\n }\n if (columnSpacing != null) {\n containerProps.columnSpacing = getGridSpacing(columnSpacing);\n }\n if (columns != null) {\n containerProps.columns = getNumberOfColumns(columns);\n }\n\n return containerProps;\n}\n\nconst WidthGrid = forwardRef<HTMLDivElement, HvGridProps>((props, ref) => {\n const { container, spacing, rowSpacing, columnSpacing, columns, ...others } =\n props;\n\n const width = useWidth();\n\n const containerProps = container\n ? getContainerProps(\n spacing === \"auto\" ? width : spacing,\n rowSpacing === \"auto\" ? width : rowSpacing,\n columnSpacing === \"auto\" ? width : columnSpacing,\n columns\n )\n : {};\n\n return <MuiGrid ref={ref} {...containerProps} {...others} />;\n});\n\n/**\n * The grid creates visual consistency between layouts while allowing flexibility\n * across a wide variety of designs. This component is based on a 12-column grid layout.\n *\n * It's based on the [Material UI Grid](https://mui.com/material-ui/react-grid/).\n *\n * The definitions were set following the Design System directives:\n *\n * | Breakpoint | Width (in px) | Gutters (in px) | Number of columns |\n * | ---------- | ------------- | --------------- | ----------------- |\n * | xs | [0-600[ | 16 | 4 |\n * | sm | [600-960[ | 16 | 8 |\n * | md | [960-1270[ | 32 | 12 |\n * | lg | [1270-1920[ | 32 | 12 |\n * | xl | [1920-...[ | 32 | 12 |\n *\n * However, the number of columns is set to 12 for all breakpoints, as it serves most\n * of the use cases and simplifies the implementation.\n * To opt-in to the Design System directives, you can set the `columns` prop to `auto`.\n *\n * Also, the Design System specifications are omissive about the horizontal gutters.\n * The HvGrid sets them to the same value as the vertical gutters, depending on the breakpoint.\n * It can be overridden by setting the `rowSpacing` prop.\n */\nexport const HvGrid = forwardRef<HTMLDivElement, HvGridProps>((props, ref) => {\n const {\n item,\n container,\n spacing = \"auto\",\n rowSpacing,\n columnSpacing,\n columns,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvGrid\", props);\n\n const { classes } = useClasses(classesProp);\n\n // Fixes MUI error when using spacings as objects and the grid is an item and container\n // When set to \"auto\", the spacing changes depending on the screen's breakpoint\n // The condition avoids using useWidth and re-rendering the component unnecessarily\n if (\n container &&\n item &&\n (spacing === \"auto\" || rowSpacing === \"auto\" || columnSpacing === \"auto\")\n ) {\n return (\n <WidthGrid\n ref={ref}\n classes={classes}\n item={item}\n container={container}\n spacing={spacing}\n rowSpacing={rowSpacing}\n columnSpacing={columnSpacing}\n columns={columns}\n {...others}\n />\n );\n }\n\n const containerProps = container\n ? getContainerProps(spacing, rowSpacing, columnSpacing, columns)\n : {};\n\n return (\n <MuiGrid\n ref={ref}\n classes={classes}\n item={item}\n {...containerProps}\n {...others}\n />\n );\n});\n"],"names":["forwardRef","useWidth","MuiGrid","useDefaultProps","useClasses","jsx"],"mappings":"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"}
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const uikitStyles = require("@hitachivantara/uikit-styles");
|
|
5
|
-
const
|
|
5
|
+
const helpers = require("../utils/helpers.cjs");
|
|
6
6
|
const useDefaultProps = require("../hooks/useDefaultProps.cjs");
|
|
7
7
|
const Loading_styles = require("./Loading.styles.cjs");
|
|
8
8
|
const Typography = require("../Typography/Typography.cjs");
|
|
9
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
10
|
-
const range__default = /* @__PURE__ */ _interopDefault(range);
|
|
11
9
|
const HvLoading = (props) => {
|
|
12
10
|
const {
|
|
13
11
|
color,
|
|
@@ -38,7 +36,7 @@ const HvLoading = (props) => {
|
|
|
38
36
|
),
|
|
39
37
|
...others,
|
|
40
38
|
children: [
|
|
41
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.barContainer, children:
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.barContainer, children: helpers.range(3).map((e) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
40
|
"div",
|
|
43
41
|
{
|
|
44
42
|
style: inline,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.cjs","sources":["../../../src/Loading/Loading.tsx"],"sourcesContent":["import { HvColorAny, getColor } from \"@hitachivantara/uikit-styles\";\n\nimport range from \"
|
|
1
|
+
{"version":3,"file":"Loading.cjs","sources":["../../../src/Loading/Loading.tsx"],"sourcesContent":["import { HvColorAny, getColor } from \"@hitachivantara/uikit-styles\";\n\nimport { range } from \"../utils/helpers\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvTypography } from \"../Typography\";\n\nimport { staticClasses, useClasses } from \"./Loading.styles\";\n\nexport { staticClasses as loadingClasses };\n\nexport type HvLoadingClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvLoadingProps extends HvBaseProps {\n /** Indicates if the component should be render in a small size. */\n small?: boolean;\n /** The label to be displayed. */\n label?: string | React.ReactNode;\n /** Whether the loading animation is hidden. */\n hidden?: boolean;\n /** Color applied to the bars. */\n color?: HvColorAny;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvLoadingClasses;\n}\n\n/**\n * Loading provides feedback about a process that is taking place in the application.\n */\nexport const HvLoading = (props: HvLoadingProps) => {\n const {\n color,\n hidden,\n small,\n label,\n classes: classesProp,\n className,\n ...others\n } = useDefaultProps(\"HvLoading\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const size = small ? \"small\" : \"regular\";\n const colorVariant = color ? \"Color\" : \"\";\n const variant = `${size}${colorVariant}` as const;\n\n const inline = {\n backgroundColor: getColor(color, small ? \"secondary\" : \"brand\"),\n };\n return (\n <div\n hidden={!!hidden}\n className={cx(\n classes.root,\n {\n [classes.hidden]: hidden,\n },\n className\n )}\n {...others}\n >\n <div className={classes.barContainer}>\n {range(3).map((e) => (\n <div\n key={e}\n style={inline}\n className={cx(classes.loadingBar, classes[variant])}\n />\n ))}\n </div>\n {label && (\n <HvTypography variant=\"caption1\" className={classes.label}>\n {label}\n </HvTypography>\n )}\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","getColor","jsxs","jsx","HvTypography"],"mappings":";;;;;;;;AA8Ba,MAAA,YAAY,CAAC,UAA0B;AAC5C,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,aAAa,KAAK;AAEtC,QAAM,EAAE,SAAS,GAAG,IAAIC,0BAAW,WAAW;AAExC,QAAA,OAAO,QAAQ,UAAU;AACzB,QAAA,eAAe,QAAQ,UAAU;AACvC,QAAM,UAAU,GAAG,IAAI,GAAG,YAAY;AAEtC,QAAM,SAAS;AAAA,IACb,iBAAiBC,YAAAA,SAAS,OAAO,QAAQ,cAAc,OAAO;AAAA,EAAA;AAG9D,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ,CAAC,CAAC;AAAA,MACV,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,MAAM,GAAG;AAAA,QACpB;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,UAAA;AAAA,QAACC,2BAAAA,IAAA,OAAA,EAAI,WAAW,QAAQ,cACrB,wBAAM,CAAC,EAAE,IAAI,CAAC,MACbA,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAO;AAAA,YACP,WAAW,GAAG,QAAQ,YAAY,QAAQ,OAAO,CAAC;AAAA,UAAA;AAAA,UAF7C;AAAA,QAIR,CAAA,GACH;AAAA,QACC,wCACEC,yBAAa,EAAA,SAAQ,YAAW,WAAW,QAAQ,OACjD,UACH,MAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiButton.cjs","sources":["../../../src/MultiButton/MultiButton.tsx"],"sourcesContent":["import React, { cloneElement } from \"react\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvButtonSize, HvButtonVariant } from \"../Button\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./MultiButton.styles\";\n\nexport { staticClasses as multiButtonClasses };\nexport type HvMultiButtonClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvMultiButtonProps extends HvBaseProps {\n /** If all the buttons are disabled. */\n disabled?: boolean;\n /** If the MultiButton is to be displayed vertically. */\n vertical?: boolean;\n /** Category of button to use */\n variant?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvMultiButtonClasses;\n /** Button size. */\n size?: HvButtonSize;\n /** Add a split between buttons */\n split?: boolean;\n}\n\nexport const HvMultiButton = (props: HvMultiButtonProps) => {\n const {\n className,\n children,\n classes: classesProp,\n disabled = false,\n vertical = false,\n variant = \"secondarySubtle\",\n size,\n split,\n ...others\n } = useDefaultProps(\"HvMultiButton\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div\n className={cx(\n classes.root,\n {\n [classes.vertical]: vertical,\n [classes[variant]]: variant,\n [classes.splitGroup]: split,\n },\n className\n )}\n {...others}\n >\n {React.Children.map(children, (child, index) => {\n if (React.isValidElement(child)) {\n const childIsSelected = !!child.props.selected;\n\n return (\n <>\n {cloneElement(child as React.ReactElement, {\n variant,\n disabled: disabled || child.props.disabled,\n size,\n className: cx(child.props.className, classes.button, {\n [classes.firstButton]: index === 0,\n [classes.lastButton]:\n index === React.Children.count(children) - 1,\n [classes.selected]: childIsSelected,\n }),\n })}\n {split && index < React.Children.count(children) - 1 && (\n <div\n className={cx(classes.splitContainer, classes[variant], {\n [classes.splitDisabled]: disabled,\n })}\n >\n <div className={cx(classes.split)} />\n </div>\n )}\n </>\n );\n }\n })}\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","jsx","React","jsxs","Fragment","cloneElement"],"mappings":";;;;;;;;AA2Ba,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,iBAAiB,KAAK;AAC1C,QAAM,EAAE,SAAS,GAAG,IAAIC,8BAAW,WAAW;AAG5C,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,QAAQ,GAAG;AAAA,UACpB,CAAC,QAAQ,OAAO,CAAC,GAAG;AAAA,UACpB,CAAC,QAAQ,UAAU,GAAG;AAAA,
|
|
1
|
+
{"version":3,"file":"MultiButton.cjs","sources":["../../../src/MultiButton/MultiButton.tsx"],"sourcesContent":["import React, { cloneElement } from \"react\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { HvButtonSize, HvButtonVariant } from \"../Button\";\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./MultiButton.styles\";\n\nexport { staticClasses as multiButtonClasses };\nexport type HvMultiButtonClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvMultiButtonProps extends HvBaseProps {\n /** If all the buttons are disabled. */\n disabled?: boolean;\n /** If the MultiButton is to be displayed vertically. */\n vertical?: boolean;\n /** Category of button to use */\n variant?: HvButtonVariant;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvMultiButtonClasses;\n /** Button size. */\n size?: HvButtonSize;\n /** Add a split between buttons */\n split?: boolean;\n}\n\nexport const HvMultiButton = (props: HvMultiButtonProps) => {\n const {\n className,\n children,\n classes: classesProp,\n disabled = false,\n vertical = false,\n variant = \"secondarySubtle\",\n size,\n split,\n ...others\n } = useDefaultProps(\"HvMultiButton\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div\n className={cx(\n classes.root,\n {\n [classes.vertical]: vertical,\n [classes[variant]]: variant,\n [classes.splitGroup]: split,\n [classes.splitGroupDisabled]: split && disabled,\n },\n className\n )}\n {...others}\n >\n {React.Children.map(children, (child, index) => {\n if (React.isValidElement(child)) {\n const childIsSelected = !!child.props.selected;\n\n return (\n <>\n {cloneElement(child as React.ReactElement, {\n variant,\n disabled: disabled || child.props.disabled,\n size,\n className: cx(child.props.className, classes.button, {\n [classes.firstButton]: index === 0,\n [classes.lastButton]:\n index === React.Children.count(children) - 1,\n [classes.selected]: childIsSelected,\n }),\n })}\n {split && index < React.Children.count(children) - 1 && (\n <div\n className={cx(classes.splitContainer, classes[variant], {\n [classes.splitDisabled]: disabled,\n })}\n >\n <div className={cx(classes.split)} />\n </div>\n )}\n </>\n );\n }\n })}\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","jsx","React","jsxs","Fragment","cloneElement"],"mappings":";;;;;;;;AA2Ba,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,iBAAiB,KAAK;AAC1C,QAAM,EAAE,SAAS,GAAG,IAAIC,8BAAW,WAAW;AAG5C,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,QAAQ,GAAG;AAAA,UACpB,CAAC,QAAQ,OAAO,CAAC,GAAG;AAAA,UACpB,CAAC,QAAQ,UAAU,GAAG;AAAA,UACtB,CAAC,QAAQ,kBAAkB,GAAG,SAAS;AAAA,QACzC;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH,iCAAM,SAAS,IAAI,UAAU,CAAC,OAAO,UAAU;AAC1C,YAAAC,eAAA,QAAM,eAAe,KAAK,GAAG;AAC/B,gBAAM,kBAAkB,CAAC,CAAC,MAAM,MAAM;AAEtC,iBAEKC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,YAAAC,MAAAA,aAAa,OAA6B;AAAA,cACzC;AAAA,cACA,UAAU,YAAY,MAAM,MAAM;AAAA,cAClC;AAAA,cACA,WAAW,GAAG,MAAM,MAAM,WAAW,QAAQ,QAAQ;AAAA,gBACnD,CAAC,QAAQ,WAAW,GAAG,UAAU;AAAA,gBACjC,CAAC,QAAQ,UAAU,GACjB,UAAUH,eAAAA,QAAM,SAAS,MAAM,QAAQ,IAAI;AAAA,gBAC7C,CAAC,QAAQ,QAAQ,GAAG;AAAA,cAAA,CACrB;AAAA,YAAA,CACF;AAAA,YACA,SAAS,QAAQA,uBAAM,SAAS,MAAM,QAAQ,IAAI,KACjDD,2BAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,GAAG,QAAQ,gBAAgB,QAAQ,OAAO,GAAG;AAAA,kBACtD,CAAC,QAAQ,aAAa,GAAG;AAAA,gBAAA,CAC1B;AAAA,gBAED,yCAAC,OAAI,EAAA,WAAW,GAAG,QAAQ,KAAK,GAAG;AAAA,cAAA;AAAA,YACrC;AAAA,UAEJ,EAAA,CAAA;AAAA,QAEJ;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAAA;AAGP;;;"}
|
|
@@ -89,7 +89,7 @@ const { staticClasses, useClasses } = classes.createClasses("HvMultiButton", {
|
|
|
89
89
|
zIndex: 1,
|
|
90
90
|
color: uikitStyles.theme.colors.secondary_60,
|
|
91
91
|
background: uikitStyles.theme.colors.atmo1,
|
|
92
|
-
border: `solid 1px ${uikitStyles.theme.colors.
|
|
92
|
+
border: `solid 1px ${uikitStyles.theme.colors.atmo4}`
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
},
|
|
@@ -297,6 +297,7 @@ const { staticClasses, useClasses } = classes.createClasses("HvMultiButton", {
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
},
|
|
300
|
+
splitGroupDisabled: { background: "transparent" },
|
|
300
301
|
button: {},
|
|
301
302
|
selected: {},
|
|
302
303
|
// vertical button display Styling
|
|
@@ -499,7 +500,7 @@ const { staticClasses, useClasses } = classes.createClasses("HvMultiButton", {
|
|
|
499
500
|
color: uikitStyles.theme.colors.secondary
|
|
500
501
|
},
|
|
501
502
|
"&$splitDisabled": {
|
|
502
|
-
background:
|
|
503
|
+
background: "transparent",
|
|
503
504
|
color: uikitStyles.theme.colors.secondary_60,
|
|
504
505
|
borderTop: "none",
|
|
505
506
|
borderBottom: "none"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiButton.styles.cjs","sources":["../../../src/MultiButton/MultiButton.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { dropDownMenuClasses } from \"../DropDownMenu\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvMultiButton\", {\n root: {\n display: \"flex\",\n alignItems: \"center\",\n transition: \"none\",\n background: theme.colors.atmo2,\n position: \"relative\",\n zIndex: 0,\n\n // prevent the focus ring to be hidden by sibling hover background\n \"&>.HvIsFocusVisible\": {\n zIndex: 5,\n },\n\n \"& button$button\": {\n minWidth: \"unset\",\n width: \"100%\",\n maxWidth: 200,\n padding: 0,\n transition: \"none\",\n flex: \"1 0 0px\",\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n borderRadius: 0,\n fontWeight: theme.typography.body.fontWeight,\n fontSize: theme.typography.body.fontSize,\n \"&:disabled\": {\n color: theme.colors.secondary_60,\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n \"&:hover\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n },\n },\n \"&$firstButton\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderTopLeftRadius: theme.radii.base,\n borderBottomLeftRadius: theme.radii.base,\n \"&:disabled\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n \"&$lastButton\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTopRightRadius: theme.radii.base,\n borderBottomRightRadius: theme.radii.base,\n \"&:disabled\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n \"&:disabled:hover\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n \"&:not($firstButton)\": {\n marginLeft: \"-1px\",\n },\n \"&$selected\": {\n background: theme.colors.atmo1,\n ...theme.typography.label,\n borderRadius: theme.radii.base,\n border: `solid 1px ${theme.colors.secondary}`,\n zIndex: 2,\n \"&:hover\": {\n background: theme.colors.atmo3,\n \"&:not(:disabled)\": {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n \"&:disabled\": {\n border: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n // prevent the focus ring to be hidden by sibling hover background\n // even when selected\n \"&.HvIsFocusVisible\": {\n zIndex: 5,\n },\n \"&:disabled\": {\n zIndex: 1,\n color: theme.colors.secondary_60,\n background: theme.colors.atmo1,\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n },\n // dropdown menu styles\n \"& $button\": {\n [`&.${dropDownMenuClasses.container}`]: {\n width: \"unset\",\n },\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n borderRadius: 0,\n \"&:disabled\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n \"&:hover\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n },\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderTopLeftRadius: theme.radii.base,\n borderBottomLeftRadius: theme.radii.base,\n \"&:disabled\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTopRightRadius: theme.radii.base,\n borderBottomRightRadius: theme.radii.base,\n \"&:disabled\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n \"&:disabled:hover\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&:not($firstButton) > button\": {\n marginLeft: \"-1px\",\n },\n },\n },\n splitGroup: {\n background: theme.colors.atmo1,\n \"& button$button\": {\n marginLeft: -1,\n \"&:disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n \"&$firstButton\": {\n \"&:not($selected):disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n \"&$lastButton\": {\n \"&:not($selected):disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n \"&:not($firstButton)\": {\n marginLeft: 0,\n },\n },\n // dropdown menu styles\n \"& $button\": {\n marginLeft: -1,\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n zIndex: 2,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n },\n \"&:not($firstButton) > button\": {\n marginLeft: 0,\n },\n },\n \"&$secondarySubtle\": {\n \"& button$button\": {\n borderTop: `solid 1px ${theme.colors.secondary}`,\n borderBottom: `solid 1px ${theme.colors.secondary}`,\n \"&$firstButton\": {\n borderLeft: `solid 1px ${theme.colors.secondary}`,\n },\n \"&$lastButton\": {\n borderRight: `solid 1px ${theme.colors.secondary}`,\n },\n \"&:not($selected):disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n \"&$firstButton\": {\n \"&:not($selected):disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n \"&$lastButton\": {\n \"&:not($selected):disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n },\n },\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: `solid 1px ${theme.colors.secondary}`,\n borderBottom: `solid 1px ${theme.colors.secondary}`,\n \"&:disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: `solid 1px ${theme.colors.secondary}`,\n \"&:disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: `solid 1px ${theme.colors.secondary}`,\n \"&:disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n },\n },\n },\n },\n button: {},\n selected: {},\n // vertical button display Styling\n vertical: {\n flexDirection: \"column\",\n height: \"auto\",\n btnSecondary: {\n flex: \"1 1 20px\",\n },\n \"& button$button\": {\n minWidth: 32,\n width: \"100%\",\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTop: \"solid 1px transparent\",\n borderBottom: \"solid 1px transparent\",\n \"&:disabled\": {\n color: theme.colors.secondary_60,\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTop: \"solid 1px transparent\",\n borderBottom: \"solid 1px transparent\",\n \"&:hover\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTop: \"solid 1px transparent\",\n borderBottom: \"solid 1px transparent\",\n },\n },\n \"&$firstButton\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderTopLeftRadius: theme.radii.base,\n borderTopRightRadius: theme.radii.base,\n },\n \"&$lastButton\": {\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderBottomLeftRadius: theme.radii.base,\n borderBottomRightRadius: theme.radii.base,\n \"&:disabled:hover\": {\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n \"&:not($firstButton)\": {\n marginLeft: 0,\n marginTop: -1,\n },\n \"&$selected\": {\n height: 32,\n width: `calc(100% + 2px) !important`,\n background: theme.colors.atmo1,\n ...theme.typography.label,\n borderRadius: theme.radii.base,\n border: `solid 1px ${theme.colors.secondary}`,\n zIndex: 2,\n \"&:hover, &:focus\": {\n background: theme.colors.atmo3,\n },\n \"&:disabled\": {\n zIndex: 1,\n color: theme.colors.secondary_60,\n background: theme.colors.atmo1,\n border: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n },\n },\n primary: {\n \"& button$button\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n\n \"&$firstButton\": {\n borderLeft: \"none\",\n },\n \"&$lastButton\": {\n borderRight: \"none\",\n },\n \"&$selected\": {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n\n // dropdown menu styles\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: \"none\",\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n borderLeft: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: \"none\",\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n borderRight: `solid 1px ${theme.colors.secondary}`,\n },\n },\n },\n },\n primarySubtle: {\n \"& button$button\": {\n borderTop: `solid 1px ${theme.colors.primary}`,\n borderBottom: `solid 1px ${theme.colors.primary}`,\n \"&$firstButton\": {\n borderLeft: `solid 1px ${theme.colors.primary}`,\n },\n \"&$lastButton\": {\n borderRight: `solid 1px ${theme.colors.primary}`,\n },\n },\n // dropdown menu styles\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: `solid 1px ${theme.colors.primary}`,\n borderBottom: `solid 1px ${theme.colors.primary}`,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: `solid 1px ${theme.colors.primary}`,\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: `solid 1px ${theme.colors.primary}`,\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n },\n },\n primaryGhost: {},\n secondary: {},\n secondarySubtle: {},\n secondaryGhost: {\n \"& button$button\": {\n \"&:disabled\": {\n background: theme.colors.atmo3,\n },\n },\n // dropdown menu styles\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n background: theme.colors.atmo3,\n },\n },\n },\n },\n firstButton: {},\n lastButton: {},\n split: {\n width: 1,\n height: \"100%\",\n background: \"currentColor\",\n },\n splitContainer: {\n zIndex: 1,\n marginLeft: -1,\n width: 1,\n height: \"100%\",\n paddingTop: 4,\n paddingBottom: 4,\n color: theme.colors.secondary,\n borderTop: `1px solid ${theme.colors.atmo4}`,\n borderBottom: `1px solid ${theme.colors.atmo4}`,\n \"&$primary\": {\n color: theme.colors.atmo1,\n backgroundColor: theme.colors.primary,\n borderTop: `1px solid ${theme.colors.primary}`,\n borderBottom: `1px solid ${theme.colors.primary}`,\n },\n \"&$primarySubtle\": {\n color: theme.colors.primary,\n borderTop: `1px solid ${theme.colors.primary}`,\n borderBottom: `1px solid ${theme.colors.primary}`,\n },\n \"&$primaryGhost\": {\n color: theme.colors.primary,\n borderTop: `1px solid ${theme.colors.primary}`,\n borderBottom: `1px solid ${theme.colors.primary}`,\n },\n \"&$secondarySubtle\": {\n color: theme.colors.secondary,\n borderTop: `1px solid ${theme.colors.secondary}`,\n borderBottom: `1px solid ${theme.colors.secondary}`,\n },\n \"&$secondaryGhost\": {\n color: theme.colors.secondary,\n },\n \"&$splitDisabled\": {\n background: theme.colors.atmo3,\n color: theme.colors.secondary_60,\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n splitDisabled: {},\n});\n"],"names":["createClasses","theme","dropDownMenuClasses"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiButton.styles.cjs","sources":["../../../src/MultiButton/MultiButton.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { dropDownMenuClasses } from \"../DropDownMenu\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvMultiButton\", {\n root: {\n display: \"flex\",\n alignItems: \"center\",\n transition: \"none\",\n background: theme.colors.atmo2,\n position: \"relative\",\n zIndex: 0,\n\n // prevent the focus ring to be hidden by sibling hover background\n \"&>.HvIsFocusVisible\": {\n zIndex: 5,\n },\n\n \"& button$button\": {\n minWidth: \"unset\",\n width: \"100%\",\n maxWidth: 200,\n padding: 0,\n transition: \"none\",\n flex: \"1 0 0px\",\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n borderRadius: 0,\n fontWeight: theme.typography.body.fontWeight,\n fontSize: theme.typography.body.fontSize,\n \"&:disabled\": {\n color: theme.colors.secondary_60,\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n \"&:hover\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n },\n },\n \"&$firstButton\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderTopLeftRadius: theme.radii.base,\n borderBottomLeftRadius: theme.radii.base,\n \"&:disabled\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n \"&$lastButton\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTopRightRadius: theme.radii.base,\n borderBottomRightRadius: theme.radii.base,\n \"&:disabled\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n \"&:disabled:hover\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n \"&:not($firstButton)\": {\n marginLeft: \"-1px\",\n },\n \"&$selected\": {\n background: theme.colors.atmo1,\n ...theme.typography.label,\n borderRadius: theme.radii.base,\n border: `solid 1px ${theme.colors.secondary}`,\n zIndex: 2,\n \"&:hover\": {\n background: theme.colors.atmo3,\n \"&:not(:disabled)\": {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n \"&:disabled\": {\n border: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n // prevent the focus ring to be hidden by sibling hover background\n // even when selected\n \"&.HvIsFocusVisible\": {\n zIndex: 5,\n },\n \"&:disabled\": {\n zIndex: 1,\n color: theme.colors.secondary_60,\n background: theme.colors.atmo1,\n border: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n },\n\n // dropdown menu styles\n \"& $button\": {\n [`&.${dropDownMenuClasses.container}`]: {\n width: \"unset\",\n },\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n borderRadius: 0,\n \"&:disabled\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n \"&:hover\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderLeft: \"solid 1px transparent\",\n borderRight: \"solid 1px transparent\",\n },\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderTopLeftRadius: theme.radii.base,\n borderBottomLeftRadius: theme.radii.base,\n \"&:disabled\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTopRightRadius: theme.radii.base,\n borderBottomRightRadius: theme.radii.base,\n \"&:disabled\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n \"&:disabled:hover\": {\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&:not($firstButton) > button\": {\n marginLeft: \"-1px\",\n },\n },\n },\n splitGroup: {\n background: theme.colors.atmo1,\n \"& button$button\": {\n marginLeft: -1,\n \"&:disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n \"&$firstButton\": {\n \"&:not($selected):disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n \"&$lastButton\": {\n \"&:not($selected):disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n \"&:not($firstButton)\": {\n marginLeft: 0,\n },\n },\n // dropdown menu styles\n \"& $button\": {\n marginLeft: -1,\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n zIndex: 2,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n },\n \"&:not($firstButton) > button\": {\n marginLeft: 0,\n },\n },\n \"&$secondarySubtle\": {\n \"& button$button\": {\n borderTop: `solid 1px ${theme.colors.secondary}`,\n borderBottom: `solid 1px ${theme.colors.secondary}`,\n \"&$firstButton\": {\n borderLeft: `solid 1px ${theme.colors.secondary}`,\n },\n \"&$lastButton\": {\n borderRight: `solid 1px ${theme.colors.secondary}`,\n },\n \"&:not($selected):disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n \"&$firstButton\": {\n \"&:not($selected):disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n \"&$lastButton\": {\n \"&:not($selected):disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n },\n },\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: `solid 1px ${theme.colors.secondary}`,\n borderBottom: `solid 1px ${theme.colors.secondary}`,\n \"&:disabled\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n \"&:hover\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: `solid 1px ${theme.colors.secondary}`,\n \"&:disabled\": {\n borderLeft: \"none\",\n \"&:hover\": {\n borderLeft: \"none\",\n },\n },\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: `solid 1px ${theme.colors.secondary}`,\n \"&:disabled\": {\n borderRight: \"none\",\n \"&:hover\": {\n borderRight: \"none\",\n },\n },\n },\n },\n },\n },\n },\n splitGroupDisabled: { background: \"transparent\" },\n button: {},\n selected: {},\n // vertical button display Styling\n vertical: {\n flexDirection: \"column\",\n height: \"auto\",\n btnSecondary: {\n flex: \"1 1 20px\",\n },\n \"& button$button\": {\n minWidth: 32,\n width: \"100%\",\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTop: \"solid 1px transparent\",\n borderBottom: \"solid 1px transparent\",\n \"&:disabled\": {\n color: theme.colors.secondary_60,\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTop: \"solid 1px transparent\",\n borderBottom: \"solid 1px transparent\",\n \"&:hover\": {\n borderLeft: `solid 1px ${theme.colors.atmo4}`,\n borderRight: `solid 1px ${theme.colors.atmo4}`,\n borderTop: \"solid 1px transparent\",\n borderBottom: \"solid 1px transparent\",\n },\n },\n \"&$firstButton\": {\n borderTop: `solid 1px ${theme.colors.atmo4}`,\n borderTopLeftRadius: theme.radii.base,\n borderTopRightRadius: theme.radii.base,\n },\n \"&$lastButton\": {\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n borderBottomLeftRadius: theme.radii.base,\n borderBottomRightRadius: theme.radii.base,\n \"&:disabled:hover\": {\n borderBottom: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n \"&:not($firstButton)\": {\n marginLeft: 0,\n marginTop: -1,\n },\n \"&$selected\": {\n height: 32,\n width: `calc(100% + 2px) !important`,\n background: theme.colors.atmo1,\n ...theme.typography.label,\n borderRadius: theme.radii.base,\n border: `solid 1px ${theme.colors.secondary}`,\n zIndex: 2,\n \"&:hover, &:focus\": {\n background: theme.colors.atmo3,\n },\n \"&:disabled\": {\n zIndex: 1,\n color: theme.colors.secondary_60,\n background: theme.colors.atmo1,\n border: `solid 1px ${theme.colors.atmo4}`,\n },\n },\n },\n },\n primary: {\n \"& button$button\": {\n borderTop: \"none\",\n borderBottom: \"none\",\n\n \"&$firstButton\": {\n borderLeft: \"none\",\n },\n \"&$lastButton\": {\n borderRight: \"none\",\n },\n \"&$selected\": {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n\n // dropdown menu styles\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: \"none\",\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n borderLeft: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: \"none\",\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n borderRight: `solid 1px ${theme.colors.secondary}`,\n },\n },\n },\n },\n primarySubtle: {\n \"& button$button\": {\n borderTop: `solid 1px ${theme.colors.primary}`,\n borderBottom: `solid 1px ${theme.colors.primary}`,\n \"&$firstButton\": {\n borderLeft: `solid 1px ${theme.colors.primary}`,\n },\n \"&$lastButton\": {\n borderRight: `solid 1px ${theme.colors.primary}`,\n },\n },\n // dropdown menu styles\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderTop: `solid 1px ${theme.colors.primary}`,\n borderBottom: `solid 1px ${theme.colors.primary}`,\n },\n \"&$firstButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderLeft: `solid 1px ${theme.colors.primary}`,\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n \"&$lastButton\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n borderRight: `solid 1px ${theme.colors.primary}`,\n },\n [`& .${dropDownMenuClasses.iconSelected}`]: {\n border: `solid 1px ${theme.colors.secondary}`,\n },\n },\n },\n },\n primaryGhost: {},\n secondary: {},\n secondarySubtle: {},\n secondaryGhost: {\n \"& button$button\": {\n \"&:disabled\": {\n background: theme.colors.atmo3,\n },\n },\n // dropdown menu styles\n \"& $button\": {\n [`& .${dropDownMenuClasses.icon}`]: {\n \"&:disabled\": {\n background: theme.colors.atmo3,\n },\n },\n },\n },\n firstButton: {},\n lastButton: {},\n split: {\n width: 1,\n height: \"100%\",\n background: \"currentColor\",\n },\n splitContainer: {\n zIndex: 1,\n marginLeft: -1,\n width: 1,\n height: \"100%\",\n paddingTop: 4,\n paddingBottom: 4,\n color: theme.colors.secondary,\n borderTop: `1px solid ${theme.colors.atmo4}`,\n borderBottom: `1px solid ${theme.colors.atmo4}`,\n \"&$primary\": {\n color: theme.colors.atmo1,\n backgroundColor: theme.colors.primary,\n borderTop: `1px solid ${theme.colors.primary}`,\n borderBottom: `1px solid ${theme.colors.primary}`,\n },\n \"&$primarySubtle\": {\n color: theme.colors.primary,\n borderTop: `1px solid ${theme.colors.primary}`,\n borderBottom: `1px solid ${theme.colors.primary}`,\n },\n \"&$primaryGhost\": {\n color: theme.colors.primary,\n borderTop: `1px solid ${theme.colors.primary}`,\n borderBottom: `1px solid ${theme.colors.primary}`,\n },\n \"&$secondarySubtle\": {\n color: theme.colors.secondary,\n borderTop: `1px solid ${theme.colors.secondary}`,\n borderBottom: `1px solid ${theme.colors.secondary}`,\n },\n \"&$secondaryGhost\": {\n color: theme.colors.secondary,\n },\n \"&$splitDisabled\": {\n background: \"transparent\",\n color: theme.colors.secondary_60,\n borderTop: \"none\",\n borderBottom: \"none\",\n },\n },\n splitDisabled: {},\n});\n"],"names":["createClasses","theme","dropDownMenuClasses"],"mappings":"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"}
|