@blateral/b.kit 2.8.0 → 2.8.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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultiselectDropdown-10ab18cf.js","sources":["../src/components/fields/MultiselectDropdown.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\n\nimport AngleDown from 'components/base/icons/AngleDown';\nimport AngleUp from 'components/base/icons/AngleUp';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport {\n getColors as color,\n getFonts as font,\n spacings,\n getGlobals as global,\n withRange,\n} from 'utils/styles';\nimport FieldWrapper from './FormField';\nimport { FormProps } from './Textfield';\nimport { getFormFieldTextSize } from 'utils/formFieldText';\nimport useMounted from 'utils/useMounted';\nimport Checkbox from './Checkbox';\n\nconst Select = styled.button<{\n hasError?: boolean;\n isOpen?: boolean;\n isInverted?: boolean;\n inlined?: boolean;\n}>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n min-height: 45px;\n box-shadow: none;\n position: relative;\n\n -webkit-appearance: none;\n outline: none;\n cursor: ${({ inlined }) => (inlined ? 'default' : 'pointer')};\n\n padding: ${spacings.nudge}px;\n\n border: 1px solid\n ${({ theme, isInverted, hasError }) => {\n if (isInverted) {\n return hasError\n ? color(theme).errorInverted\n : color(theme).elementBg.light;\n }\n return hasError ? color(theme).error : color(theme).elementBg.dark;\n }};\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n\n background: transparent;\n\n ${copyStyle('copy', 'small')}\n /** Clamping min font size to 16px to prevent browser zooming */\n ${({ theme }) => withRange(getFormFieldTextSize(theme), 'font-size')}\n \n color: ${({ theme, isInverted, hasError }) => {\n if (isInverted) {\n return hasError\n ? color(theme).text.errorInverted\n : font(theme).copy.small.colorInverted;\n }\n return hasError\n ? color(theme).text.error\n : font(theme).copy.small.color;\n }};\n line-height: normal;\n\n &:focus {\n outline: ${({ theme, isInverted, isOpen }) =>\n `1px solid ${\n isOpen\n ? 'transparent'\n : isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default\n }`};\n outline-offset: 0;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst SelectMain = styled.span`\n display: flex;\n align-items: center;\n user-select: none;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst Indicator = styled.span`\n display: flex;\n align-items: center;\n pointer-events: none;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n`;\n\nconst Flyout = styled.ul<{\n isVisible?: boolean;\n isInverted?: boolean;\n inlined?: boolean;\n}>`\n list-style: none;\n padding: ${spacings.nudge}px ${spacings.nudge * 2}px;\n margin: 0;\n margin-top: ${({ inlined }) => inlined && '3px'};\n\n position: ${({ inlined }) => (inlined ? 'relative' : 'absolute')};\n top: calc(100% + 3px);\n left: 0;\n width: 100%;\n z-index: 2;\n\n display: ${({ isVisible }) => (isVisible ? 'block' : 'none')};\n background: ${({ theme }) => color(theme).elementBg.light};\n border: 1px solid\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).elementBg.light\n : color(theme).elementBg.dark};\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n\n max-height: 300px;\n /* overflow-y: auto; */\n scrollbar-width: none;\n\n outline: none;\n\n ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 14px;\n }\n\n ::-webkit-scrollbar-thumb {\n border-radius: 8px;\n background-color: ${({ theme }) => color(theme).elementBg.medium};\n border: 4px solid rgba(0, 0, 0, 0);\n background-clip: padding-box;\n }\n`;\n\nconst ItemStyle = styled.li`\n width: 100%;\n cursor: pointer;\n position: relative;\n\n padding: 5px 0px;\n`;\n\nconst ItemCheckbox = styled(Checkbox)`\n width: 100%;\n`;\n\nconst Container = styled.div`\n position: relative;\n outline: none;\n`;\n\nconst Counter = styled(Copy)`\n flex: 0 0 20px;\n\n position: relative;\n background: ${({ theme }) => color(theme).text.default};\n\n line-height: normal;\n color: ${({ theme }) => color(theme).text.inverted};\n\n max-height: 20px;\n max-width: 20px;\n\n height: 20px;\n width: 20px;\n\n border-radius: 50px;\n\n & > * {\n position: absolute;\n top: 50%;\n left: 50%;\n\n transform: translate(-50%, -50%);\n }\n`;\n\nconst Reset = styled.button`\n background: none;\n border: none;\n padding: 0;\n\n ${copyStyle('copy', 'small')};\n margin-top: ${spacings.nudge * 2}px;\n\n cursor: pointer;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n outline: 1px dashed ${({ theme }) => font(theme).link.color};\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n`;\nconst Icon = styled.div`\n display: flex;\n align-items: center;\n padding-left: ${spacings.nudge}px;\n color: inherit;\n\n transition: transform 0.2s ease-in-out;\n`;\n\ninterface FilterItem {\n value: string;\n label: string;\n}\n\nexport type MultiselectDropdownProps = Omit<FormProps, 'value'> & {\n enableMemo?: boolean;\n inlined?: boolean;\n placeholder?: string;\n name?: string;\n selectedItems?: string[];\n items: FilterItem[];\n resetLabel?: string;\n\n onChange?: (values: string[]) => void;\n onBlur?: () => void;\n icon?: (isInverted?: boolean) => React.ReactNode;\n indicator?: (props: {\n isOpen: boolean;\n isDisabled?: boolean;\n }) => React.ReactNode;\n};\n\nconst MultiselectDropdown: React.FC<\n MultiselectDropdownProps & { className?: string }\n> = ({\n label,\n isRequired,\n errorMessage,\n infoMessage,\n isDisabled,\n isInverted,\n items,\n name,\n selectedItems,\n placeholder,\n resetLabel,\n inlined,\n icon,\n onChange,\n onBlur,\n indicator,\n className,\n}) => {\n const { colors } = useLibTheme();\n const [isOpen, setIsOpen] = useState(inlined || false);\n const [selected, setSelected] = useState<string[]>(selectedItems || []);\n\n const selectBtnRef = useRef<HTMLButtonElement>(null);\n const selectContainerRef = useRef<HTMLDivElement>(null);\n const isMounted = useMounted();\n const itemHasBeenClicked = useRef<boolean>(false);\n\n useEffect(() => {\n if (selectedItems) {\n setSelected(selectedItems);\n }\n }, [selectedItems]);\n\n useEffect(() => {\n if (isMounted) {\n onChange?.(selected);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n if (isDisabled) {\n errorMessage = '';\n }\n\n const toggleSelected = (value: string) => {\n if (selected.includes(value)) {\n setSelected((prev) => prev.filter((v) => v !== value));\n return;\n }\n\n setSelected((prev) => [...prev, value]);\n };\n\n const iconElement = icon?.(isInverted);\n\n return (\n <FieldWrapper.View isDisabled={isDisabled} className={className}>\n <FieldWrapper.Head\n label={label}\n isRequired={isRequired}\n isInverted={isInverted}\n />\n <FieldWrapper.Content>\n <Container\n ref={selectContainerRef}\n onBlur={(ev) => {\n if (\n !inlined &&\n !selectContainerRef.current?.contains(\n ev.relatedTarget\n ) &&\n !itemHasBeenClicked.current\n ) {\n setIsOpen(false);\n onBlur?.();\n }\n }}\n >\n <Select\n ref={selectBtnRef}\n type=\"button\"\n isOpen={isOpen}\n inlined={inlined}\n isInverted={isInverted}\n hasError={!!errorMessage}\n onClick={() => {\n if (inlined) return;\n setIsOpen((prev) => !prev);\n }}\n aria-expanded={isOpen}\n >\n <SelectMain>\n {iconElement && <Icon>{iconElement}</Icon>}\n <span>{placeholder}</span>\n </SelectMain>\n <Indicator>\n <Counter size=\"small\">\n <span>{selected.length}</span>\n </Counter>\n {indicator &&\n indicator({ isOpen, isDisabled: isDisabled })}\n {!indicator &&\n (isOpen ? (\n <AngleUp\n iconColor={\n isDisabled\n ? colors.elementBg.medium\n : colors.elementBg.dark\n }\n />\n ) : (\n <AngleDown\n iconColor={\n isDisabled\n ? colors.elementBg.medium\n : colors.elementBg.dark\n }\n />\n ))}\n </Indicator>\n </Select>\n <Flyout isVisible={isOpen} inlined={inlined}>\n {items.map((item, i) => {\n const isSelected = selected.includes(item.value);\n\n return (\n <ItemStyle\n key={`key_${i + 1}`}\n onMouseDown={() => {\n itemHasBeenClicked.current = true;\n }}\n >\n <ItemCheckbox\n isSelected={isSelected}\n value={item.value}\n onChange={() => {\n toggleSelected(item.value);\n itemHasBeenClicked.current = false;\n }}\n label={item.label}\n />\n </ItemStyle>\n );\n })}\n {resetLabel && (\n <Reset onClick={() => setSelected([])}>\n {resetLabel}\n </Reset>\n )}\n </Flyout>\n </Container>\n <select name={name} multiple hidden defaultValue={selected}>\n {items.map((item, i) => {\n return (\n <option key={`key_${i}`} value={item.value}>\n {item.label}\n </option>\n );\n })}\n </select>\n </FieldWrapper.Content>\n <FieldWrapper.Messages\n infoMessage={infoMessage}\n errorMessage={errorMessage}\n isInverted={isInverted}\n />\n </FieldWrapper.View>\n );\n};\n\n/**\n * Function to compare both field prop states\n * @param prev Previous props\n * @param next Next props\n * @returns\n */\nconst areEqual = (\n prev: MultiselectDropdownProps,\n next: MultiselectDropdownProps\n) => {\n // only apply logic if memo functionality is enabled\n if (!prev.enableMemo) return false;\n\n if (prev.selectedItems !== next.selectedItems) return false;\n if (prev.errorMessage !== next.errorMessage) return false;\n if (prev.infoMessage !== next.infoMessage) return false;\n if (prev.label !== next.label) return false;\n if (prev.placeholder !== next.placeholder) return false;\n if (prev.resetLabel !== next.resetLabel) return false;\n if (prev.isInverted !== next.isInverted) return false;\n if (prev.isDisabled !== next.isDisabled) return false;\n if (prev.inlined !== next.inlined) return false;\n\n // compare items\n if (prev.items.length !== next.items.length) return false;\n for (let i = 0; i < prev.items.length; i++) {\n if (\n prev.items[i].label !== next.items[i].label ||\n prev.items[i].value !== next.items[i].value\n ) {\n return false;\n }\n }\n\n return true;\n};\n\nexport default React.memo(MultiselectDropdown, areEqual);\n"],"names":["Select","styled","button","templateObject_1","__makeTemplateObject","_a","inlined","spacings","nudge","theme","isInverted","hasError","color","errorInverted","elementBg","light","error","dark","global","sections","edgeRadius","copyStyle","withRange","getFormFieldTextSize","text","font","copy","small","colorInverted","isOpen","primary","inverted","default","SelectMain","span","templateObject_2","Indicator","templateObject_3","Flyout","ul","isVisible","medium","ItemStyle","li","templateObject_5","ItemCheckbox","Checkbox","templateObject_6","Container","div","templateObject_7","Counter","Copy","templateObject_8","Reset","templateObject_9","link","Icon","templateObject_10","MultiselectDropdown","label","isRequired","errorMessage","infoMessage","isDisabled","items","name","selectedItems","placeholder","resetLabel","icon","onChange","onBlur","indicator","className","colors","useLibTheme","_b","useState","setIsOpen","_c","selected","setSelected","selectBtnRef","useRef","selectContainerRef","isMounted","useMounted","itemHasBeenClicked","useEffect","toggleSelected","value","includes","prev","filter","v","__spreadArray","iconElement","React","createElement","FieldWrapper","View","Head","Content","ref","ev","current","contains","relatedTarget","type","onClick","size","length","AngleUp","iconColor","AngleDown","map","item","i","isSelected","key","concat","onMouseDown","multiple","hidden","defaultValue","Messages","areEqual","next","enableMemo","memo"],"mappings":"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"}