@entur/form 5.1.4 → 5.1.5
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/CHANGELOG.md +6 -0
- package/dist/form.cjs.development.js +5 -4
- package/dist/form.cjs.development.js.map +1 -1
- package/dist/form.cjs.production.min.js +1 -1
- package/dist/form.cjs.production.min.js.map +1 -1
- package/dist/form.esm.js +5 -4
- package/dist/form.esm.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.1.5](https://bitbucket.org/enturas/design-system/compare/@entur/form@5.1.4...@entur/form@5.1.5) (2021-12-10)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **textfield:** consistent rendering of clearbutton if clearable ([87a42ba](https://bitbucket.org/enturas/design-system/commits/87a42baadebfffbc07c8636db26aa2be6203d523))
|
|
11
|
+
|
|
6
12
|
## [5.1.4](https://bitbucket.org/enturas/design-system/compare/@entur/form@5.1.3...@entur/form@5.1.4) (2021-11-17)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
|
@@ -697,8 +697,7 @@ var TextField = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
697
697
|
variant: variant,
|
|
698
698
|
prepend: prepend,
|
|
699
699
|
append: clearable ? React__default.createElement(ClearButton, {
|
|
700
|
-
onClear: onClear
|
|
701
|
-
hasValue: value ? true : false
|
|
700
|
+
onClear: onClear
|
|
702
701
|
}) : append,
|
|
703
702
|
className: className,
|
|
704
703
|
style: style,
|
|
@@ -767,8 +766,10 @@ var TextFieldBase = /*#__PURE__*/React__default.forwardRef(function (_ref2, forw
|
|
|
767
766
|
|
|
768
767
|
var ClearButton = function ClearButton(_ref3) {
|
|
769
768
|
var onClear = _ref3.onClear,
|
|
770
|
-
|
|
771
|
-
|
|
769
|
+
props = _objectWithoutPropertiesLoose(_ref3, ["onClear"]);
|
|
770
|
+
|
|
771
|
+
var _useInputGroupContext2 = useInputGroupContext(),
|
|
772
|
+
hasValue = _useInputGroupContext2.isFilled;
|
|
772
773
|
|
|
773
774
|
return React__default.createElement("div", {
|
|
774
775
|
className: "eds-textfield__clear-button-wrapper"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.cjs.development.js","sources":["../src/FeedbackText.tsx","../src/InputGroupContext.tsx","../src/InputGroupLabel.tsx","../src/VariantProvider.tsx","../src/BaseFormControl.tsx","../src/Checkbox.tsx","../src/Fieldset.tsx","../src/RadioGroupContext.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/RadioPanel.tsx","../src/Switch.tsx","../src/TravelSwitch.tsx","../src/utils.ts","../src/TextArea.tsx","../src/TextField.tsx","../src/segmented-control/SegmentedContext.tsx","../src/segmented-control/SegmentedChoice.tsx","../src/segmented-control/SegmentedControl.tsx","../src/segmented-control/MultipleSegmentedControl.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ValidationCheckIcon,\n ValidationErrorIcon,\n ValidationExclamationIcon,\n} from '@entur/icons';\nimport { SubLabel } from '@entur/typography';\nimport { VariantType } from './VariantProvider';\nimport classNames from 'classnames';\nimport './FeedbackText.scss';\n\nconst AlertIcon: React.FC<{ variant: VariantType }> = ({ variant }) => {\n const iconClass = `eds-feedback-text__icon eds-feedback-text__icon--${variant}`;\n switch (variant) {\n case 'success':\n return <ValidationCheckIcon className={iconClass} />;\n case 'error':\n return <ValidationErrorIcon className={iconClass} />;\n case 'info':\n return null;\n case 'warning':\n return <ValidationExclamationIcon className={iconClass} />;\n default:\n return null;\n }\n};\n\nexport type FeedbackTextProps = {\n /** Teksten som vises */\n children: React.ReactNode;\n /** Skjuler ikonet */\n hideIcon?: boolean;\n /** Feedbackvarianten */\n variant: VariantType;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\nexport const FeedbackText: React.FC<FeedbackTextProps> = ({\n children,\n hideIcon = false,\n variant,\n className,\n ...rest\n}) => {\n return (\n <SubLabel\n className={classNames(\n 'eds-feedback-text',\n { 'eds-feedback-text--info': variant === 'info' },\n className,\n )}\n {...rest}\n >\n {!hideIcon && <AlertIcon variant={variant} />}\n <span className=\"eds-feedback-text__text\">{children}</span>\n </SubLabel>\n );\n};\n","import * as React from 'react';\n\ntype InputGroupContextType = {\n isFilled: boolean;\n setFilled: (e: boolean) => void;\n};\n\nconst InputGroupContext = React.createContext<InputGroupContextType>({\n isFilled: false,\n setFilled: () => null,\n});\n\nexport const InputGroupContextProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [filled, setFilled] = React.useState(false);\n return (\n <InputGroupContext.Provider\n value={{ isFilled: filled, setFilled: setFilled }}\n >\n {children}\n </InputGroupContext.Provider>\n );\n};\n\nexport const useInputGroupContext: () => InputGroupContextType = () =>\n React.useContext(InputGroupContext);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { useInputGroupContext } from './InputGroupContext';\nimport './InputGroupLabel.scss';\n\nexport type InputGroupLabelProps = {\n label?: React.ReactNode;\n required?: boolean;\n labelTooltip?: string;\n labelId: string;\n staticAnimation?: boolean;\n} & React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n>;\n\nexport const InputGroupLabel: React.FC<InputGroupLabelProps> = ({\n label,\n required,\n labelId,\n staticAnimation = false,\n ...rest\n}) => {\n const { isFilled } = useInputGroupContext();\n const filler = staticAnimation || isFilled;\n return (\n <label\n className={classNames(rest.className, {\n 'eds-input-group-label-wrapper--filled': filler,\n })}\n id={labelId}\n {...rest}\n >\n <span\n className={classNames('eds-input-group__label', {\n 'eds-input-group__label--filled': filler,\n })}\n >\n {label} {required && <span>*</span>}\n </span>\n </label>\n );\n};\n","import React from 'react';\n\nexport type VariantType = 'success' | 'error' | 'warning' | 'info';\n\nconst VariantContext = React.createContext<VariantType | null>(null);\n\nexport type VariantProviderProps = {\n variant?: VariantType;\n};\nexport const VariantProvider: React.FC<VariantProviderProps> = ({\n children,\n variant = null,\n}) => {\n return (\n <VariantContext.Provider value={variant}>\n {children}\n </VariantContext.Provider>\n );\n};\n\nexport const useVariant: () => VariantType | null = () => {\n const context = React.useContext(VariantContext);\n return context;\n};\n","import { Tooltip } from '@entur/tooltip';\nimport classNames from 'classnames';\nimport React from 'react';\nimport './BaseFormControl.scss';\nimport { FeedbackText } from './FeedbackText';\nimport { InputGroupContextProvider } from './InputGroupContext';\nimport { InputGroupLabel } from './InputGroupLabel';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { QuestionIcon } from '@entur/icons';\n\nexport type BaseFormControlProps = {\n /** Et skjemaelement med `eds-form-control`-klassen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Sett til true om skjema-elementet skal ha mørkt design i contrast mode */\n dark?: boolean;\n /** Sett til true om skjema-elementet er disabled */\n disabled?: boolean;\n /** Sett til true om skjema-elementet er i read-only modus */\n readOnly?: boolean;\n /** Tekst eller ikon som vises foran skjema-elementet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som vises etter skjema-elementet */\n append?: React.ReactNode;\n /** Valideringsvariant */\n variant?: VariantType;\n /**Størrelsen på skjemaelementet\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Label til inputfeltet */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Illustrerer om inputfeltet er påkrevd eller ikke */\n required?: boolean;\n /** ID som settes på labelen til inputfeltet */\n labelId: string;\n /** Varselmelding, som vil komme under form-komponenten */\n feedback?: string;\n /** Om inputfeltet er fylt med data. Brukes for plassering av label */\n isFilled?: boolean;\n /**Ekstra props som sendes til label */\n labelProps?: { [key: string]: any };\n /** Ekstra styling */\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet */\n disableLabelAnimation?: boolean;\n};\n\nexport const BaseFormControl = React.forwardRef<\n HTMLDivElement,\n BaseFormControlProps\n>(\n (\n {\n children,\n className,\n dark = false,\n disabled = false,\n readOnly = false,\n variant,\n prepend,\n append,\n size = 'medium',\n isFilled,\n label,\n required,\n labelTooltip,\n feedback,\n labelId,\n labelProps,\n style,\n disableLabelAnimation = false,\n ...rest\n },\n ref,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n\n return (\n <InputGroupContextProvider>\n <div\n className={classNames(\n 'eds-form-control-wrapper',\n className,\n `eds-form-control-wrapper--size-${size}`,\n {\n 'eds-form-control-wrapper--success': currentVariant === 'success',\n 'eds-form-control-wrapper--error': currentVariant === 'error',\n 'eds-form-control-wrapper--dark': dark,\n 'eds-form-control-wrapper--disabled': disabled,\n 'eds-form-control-wrapper--readonly': readOnly,\n 'eds-form-control-wrapper--is-filled': isFilled,\n },\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {prepend && (\n <div className=\"eds-form-control__prepend\">{prepend}</div>\n )}\n <InputGroupLabel\n label={label}\n required={required}\n labelId={labelId}\n staticAnimation={disableLabelAnimation}\n {...labelProps}\n />\n {children}\n {append && <div className=\"eds-form-control__append\">{append}</div>}\n {labelTooltip && (\n <div className=\"eds-form-control__append eds-form-control__append--tooltip\">\n <Tooltip content={labelTooltip} placement=\"right\">\n <span className=\"eds-input-group__label-tooltip-icon\">\n <QuestionIcon />\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n {feedback && currentVariant && (\n <FeedbackText variant={currentVariant}>{feedback}</FeedbackText>\n )}\n </InputGroupContextProvider>\n );\n },\n);\n","import React, { CSSProperties } from 'react';\nimport { Paragraph } from '@entur/typography';\nimport cx from 'classnames';\nimport './Checkbox.scss';\n\nexport type CheckboxProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for checkboxen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om Checkbox er avmerket, eller om den */\n checked?: 'indeterminate' | boolean;\n /** Callback for Checkbox */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Om checkboxen er disabled eller ikke\n * @default false\n */\n disabled?: boolean;\n /**Ekstra styling til komponenten */\n style?: CSSProperties;\n /** Reduserer klikkflaten for Checkbox'en\n * @default false\n */\n reduceClickArea?: boolean;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked'>;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n className,\n children,\n style,\n disabled = false,\n reduceClickArea,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n // Trick to allow using a ref locally, while still allowing for ref forwarding\n // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n const innerRef = React.useRef<HTMLInputElement>(null);\n //eslint-disable-next-line\n React.useImperativeHandle(ref, () => innerRef.current!);\n\n const isIndeterminate = checked === 'indeterminate';\n const isControlled = checked !== undefined;\n\n React.useEffect(() => {\n if (innerRef && innerRef.current) {\n innerRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label\n className={cx('eds-checkbox__container', className, {\n 'eds-checkbox--disabled': disabled,\n 'eds-checkbox__container--reduced-click-area': reduceClickArea,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n ref={innerRef}\n checked={isControlled ? checked === true : undefined}\n disabled={disabled}\n {...rest}\n />\n <span\n className={cx('eds-checkbox__icon', {\n 'eds-checkbox__icon--disabled': disabled,\n 'eds-checkbox__icon--reduced-click-area': reduceClickArea,\n })}\n >\n <CheckboxIcon indeterminate={isIndeterminate} />\n </span>\n {children && (\n <Paragraph className=\"eds-checkbox__label\" margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n\nconst CheckboxIcon: React.FC<{ indeterminate: boolean }> = ({\n indeterminate = false,\n}) => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n {indeterminate ? (\n <rect x=\"10\" y=\"25\" width=\"28\" height=\"5\" fill=\"white\" />\n ) : (\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n )}\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\nimport './Fieldset.scss';\n\nexport type FieldsetProps = {\n /** Innholdet i felt-gruppen. */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Labelen til felt-gruppen. */\n label?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const Fieldset: React.FC<FieldsetProps> = ({\n children,\n className,\n label,\n ...rest\n}) => (\n <fieldset className={classNames('eds-fieldset', className)} {...rest}>\n {label && (\n <Label as=\"legend\" className=\"eds-legend\">\n {label}\n </Label>\n )}\n {children}\n </fieldset>\n);\n","import React from 'react';\n\ntype RadioGroupContextProps = {\n name: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value: string | null;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextProps | null>(\n null,\n);\n\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\n\nexport const useRadioGroupContext: () => RadioGroupContextProps = () => {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your RadioButtons in a RadioGroup component',\n );\n }\n return context;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './Radio.scss';\n\nexport type RadioProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label til radio-button. Vises ved høyre side. */\n children?: React.ReactNode;\n /** Verdien til radioknappen */\n value: string;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n { className, children, value, disabled, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = cx(className, 'eds-form-component--radio__radio', {\n 'eds-form-component--radio__radio--disabled': disabled,\n });\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n return (\n <label className=\"eds-form-component--radio__container\">\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n <span className={classList}>\n <span className=\"eds-form-component--radio__circle\"></span>\n </span>\n {children && (\n <Paragraph\n margin=\"none\"\n as=\"span\"\n className=\"eds-form-component--radio__label\"\n >\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { RadioGroupContextProvider } from './RadioGroupContext';\nimport { Fieldset } from './Fieldset';\n\nexport type RadioGroupProps = {\n /** Navnet til radiogruppen. */\n name: string;\n /** Overskrift over radiogruppen */\n label?: string;\n /** Verdien til den valgte radioknappen */\n value: string | null;\n /** Radioknappene sendes inn som children */\n children: React.ReactNode;\n /** En callback som blir kalles hver gang en radioknapp klikkes på */\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n [key: string]: any;\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n children,\n onChange,\n label,\n ...rest\n}) => {\n const contextValue = React.useMemo(() => ({ name, value, onChange }), [\n name,\n value,\n onChange,\n ]);\n return (\n <RadioGroupContextProvider value={contextValue}>\n {label ? (\n <Fieldset label={label} {...rest}>\n {children}\n </Fieldset>\n ) : (\n children\n )}\n </RadioGroupContextProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './RadioPanel.scss';\nimport { useRandomId } from '@entur/utils';\n\nexport type RadioPanelProps = {\n /** Verdien til RadioPanel */\n value: string;\n /** Hovedtittelen til RadioPanel */\n title: React.ReactNode;\n /** Ektstra label som står høyrestilt mot Checkboxen */\n secondaryLabel?: React.ReactNode;\n /** Ekstra informasjon som legges nederst i RadioPanel */\n children?: React.ReactNode;\n /** Størrelse på RadioPanel\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /**Skjuler checkbox-en i RadioPanel\n * @default false\n */\n hideCheckbox?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Om RadioPanel er deaktivert eller ikke\n * @default false\n */\n disabled?: boolean;\n /** */\n style?: React.CSSProperties;\n} & Omit<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >,\n 'title' | 'size'\n>;\n\nexport const RadioPanel = React.forwardRef<HTMLInputElement, RadioPanelProps>(\n (\n {\n className,\n children,\n value,\n title,\n secondaryLabel,\n size = 'medium',\n hideCheckbox = false,\n style,\n id,\n disabled = false,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = classNames(\n className,\n 'eds-radio-panel__container',\n `eds-radio-panel--${size}`,\n { 'eds-radio-panel--disabled': disabled },\n );\n\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n const randomId = useRandomId('eds-radiopanel');\n const radioPanelId = id || randomId;\n return (\n <label className=\"eds-radio-panel__wrapper\" htmlFor={radioPanelId}>\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n id={radioPanelId}\n disabled={disabled}\n {...rest}\n />\n <div className={classList} style={style}>\n <div className=\"eds-radio-panel__title-wrapper\">\n <div className=\"eds-radio-panel__title\">{title}</div>\n <div className=\"eds-radio-panel__label\">\n {secondaryLabel && <span>{secondaryLabel}</span>}\n {!(disabled || hideCheckbox) && (\n <span className=\"eds-radio-panel__check\">\n <RadioPanelCheck />\n </span>\n )}\n </div>\n </div>\n {children && (\n <div className=\"eds-radio-panel__additional-content\">\n {children}\n </div>\n )}\n </div>\n </label>\n );\n },\n);\n\nconst RadioPanelCheck: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"22px\"\n height=\"16px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { colors } from '@entur/tokens';\nimport './Switch.scss';\n\nexport type SwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for Switchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Ikonet som skal stå inne i sirkelen på Switchen */\n icon?: React.ReactNode;\n /** Farge som settes på ikon og bakgrunnen når Switchen er \"checked\". Default er mint-contrast\n * @default colors.validation .mintContrast\n */\n color?: string;\n /** Lik som color, men når Switchen står i en kontrast seksjon. Default er samme farge som color. */\n contrastColor?: string;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n className,\n children,\n icon,\n color = colors.validation.mintContrast,\n contrastColor,\n size = 'medium',\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const chosenContrastColor = (contrastColor && contrastColor) || color;\n return (\n <label\n className={classNames('eds-switch', className)}\n style={{ ...rest.style }}\n >\n <input type=\"checkbox\" ref={ref} {...rest} />\n <span\n className={classNames('eds-switch__switch', {\n 'eds-switch__switch--large': size === 'large',\n })}\n style={\n {\n '--eds-switch-color': color,\n '--eds-switch-contrast-color': chosenContrastColor,\n } as React.CSSProperties\n }\n >\n <span className=\"eds-switch__circle\">{icon && icon}</span>\n </span>\n {children && (\n <Paragraph margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Switch } from './Switch';\nimport { colors } from '@entur/tokens';\nimport {\n BusIcon,\n FerryIcon,\n TramIcon,\n PlaneIcon,\n TrainIcon,\n BicycleIcon,\n ScooterIcon,\n SubwayIcon,\n} from '@entur/icons';\nimport './Switch.scss';\n\nexport type TravelSwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Label for TravelSwitchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Hvilken type reise som skal vises rikig ikon og farge for */\n transport: // When adding a new submode, check https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/825393529/Norwegian+submodes+and+their+definitions for names\n | 'bus'\n | 'metro'\n | 'air'\n | 'tram'\n | 'rail'\n | 'water'\n | 'bike'\n | 'airportLinkBus'\n | 'airportLinkRail'\n | 'scooter';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const TravelSwitch: React.FC<TravelSwitchProps> = ({\n className,\n children,\n transport,\n size,\n ...rest\n}) => {\n const { color, contrast, Icon } = modeCalc(transport);\n return (\n <Switch\n className={className}\n color={color}\n contrastColor={contrast}\n icon={<Icon />}\n size={size}\n {...rest}\n >\n {children}\n </Switch>\n );\n};\n\nfunction modeCalc(mode: string) {\n switch (mode) {\n case 'bus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.bus,\n contrast: colors.transport.contrast.bus,\n };\n case 'metro':\n return {\n Icon: SubwayIcon,\n color: colors.transport.default.metro,\n contrast: colors.transport.contrast.metro,\n };\n case 'air':\n return {\n Icon: PlaneIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'tram':\n return {\n Icon: TramIcon,\n color: colors.transport.default.tram,\n contrast: colors.transport.contrast.tram,\n };\n case 'rail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.train,\n contrast: colors.transport.contrast.train,\n };\n case 'water':\n return {\n Icon: FerryIcon,\n color: colors.transport.default.ferry,\n contrast: colors.transport.contrast.ferry,\n };\n case 'bike':\n return {\n Icon: BicycleIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'scooter':\n return {\n Icon: ScooterIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'airportLinkBus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'airportLinkRail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n default:\n throw Error('Please select a transport for the TravelSwitch.');\n }\n}\n","export function hasValue(value: any) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj: any, SSR = false) {\n return (\n obj &&\n ((hasValue(obj.value) && obj.value !== '') ||\n (SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''))\n );\n}\n","import React from 'react';\nimport { VariantType } from './VariantProvider';\nimport { BaseFormControl } from './BaseFormControl';\nimport './TextArea.scss';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useRandomId, useOnMount } from '@entur/utils';\nimport { isFilled } from './utils';\n\nexport type TextAreaProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Deaktiverer tekstområdet */\n disabled?: boolean;\n /** Setter tekstområdet i read-only modus */\n readOnly?: boolean;\n /** Label over TextArea */\n label: string;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextArea */\n feedback?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n label,\n feedback,\n labelTooltip,\n onChange,\n disableLabelAnimation,\n ...rest\n },\n ref: React.Ref<HTMLTextAreaElement>,\n ) => {\n const textAreaId = useRandomId('eds-textarea');\n return (\n <BaseFormControl\n className={className}\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n style={style}\n label={label}\n labelId={textAreaId}\n feedback={feedback}\n labelTooltip={labelTooltip}\n labelProps={{ className: 'eds-textarea__label' }}\n disableLabelAnimation={disableLabelAnimation}\n >\n <TextAreaBase\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n aria-labelledby={textAreaId}\n onChange={onChange}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextAreaBaseProps = {\n readOnly?: boolean;\n disabled?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst TextAreaBase = React.forwardRef<HTMLTextAreaElement, TextAreaBaseProps>(\n ({ readOnly, disabled, onChange, value, ...rest }, ref) => {\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <textarea\n className=\"eds-form-control eds-textarea\"\n ref={ref}\n readOnly={readOnly}\n disabled={disabled}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n","import { useRandomId, useOnMount } from '@entur/utils';\nimport React from 'react';\nimport { BaseFormControl } from './BaseFormControl';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { isFilled } from './utils';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './TextField.scss';\n\nexport type TextFieldProps = {\n /** Tekst eller ikon som kommer før inputfeltet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som kommer etter inputfeltet */\n append?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TextField */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextField */\n feedback?: string;\n /** Hvilken valideringsfarge som vises */\n variant?: VariantType;\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n /** Størrelsen på TextField\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra props som sendes til label-elementet */\n labelProps?: React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n >;\n /** Om man skal ha muliget for å nullstille TextField. Viser lukkekryss hvis feltet er fylt.\n * @default false\n */\n clearable?: boolean;\n /** Callback for clearable */\n onClear?: () => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'label'>;\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n prepend,\n append,\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n size = 'medium',\n label,\n required,\n labelTooltip,\n feedback,\n onChange,\n disableLabelAnimation,\n labelProps,\n clearable = false,\n onClear,\n value,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const textFieldId =\n labelProps && labelProps.id\n ? labelProps.id\n : useRandomId('eds-textfield');\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n prepend={prepend}\n append={\n clearable ? (\n <ClearButton onClear={onClear} hasValue={value ? true : false} />\n ) : (\n append\n )\n }\n className={className}\n style={style}\n size={size}\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n labelId={textFieldId}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n labelProps={labelProps}\n >\n <TextFieldBase\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n aria-labelledby={textFieldId}\n onChange={onChange}\n value={value}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextFieldBaseProps = {\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst TextFieldBase = React.forwardRef<HTMLInputElement, TextFieldBaseProps>(\n (\n { disabled, readOnly, placeholder, onChange, value, variant, ...rest },\n forwardRef,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <input\n aria-invalid={currentVariant === 'error'}\n className=\"eds-form-control\"\n disabled={disabled}\n readOnly={readOnly}\n ref={forwardRef}\n placeholder={placeholder}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n\nconst ClearButton: React.FC<{\n hasValue?: boolean;\n onClear?: () => void;\n [key: string]: any;\n}> = ({ onClear, hasValue, ...props }) => {\n return (\n <div className=\"eds-textfield__clear-button-wrapper\">\n {hasValue && <div className=\"eds-textfield__divider\"></div>}\n {hasValue && (\n <button\n className=\"eds-textfield__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={onClear}\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useRandomId } from '@entur/utils';\n\nexport type SelectedValues = { [key: string]: boolean };\nexport type SelectedValue = string | null;\nexport type SegmentedContextProps =\n | {\n name: string;\n onChange: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name: string;\n onChange: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nconst SegmentedContext = React.createContext<SegmentedContextProps | null>(\n null,\n);\n\nexport type SegmentedProviderProps =\n | {\n name?: string;\n onChange?: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name?: string;\n onChange?: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nexport const SegmentedProvider: React.FC<SegmentedProviderProps> = ({\n name,\n onChange = () => {},\n selectedValue,\n multiple,\n size,\n ...rest\n}) => {\n const generatedName = useRandomId('eds-segmented-control');\n const contextValue = React.useMemo(\n () => ({\n name: name || generatedName,\n onChange,\n multiple,\n selectedValue,\n size,\n }),\n [generatedName, multiple, name, onChange, selectedValue, size],\n ) as SegmentedContextProps;\n return <SegmentedContext.Provider value={contextValue} {...rest} />;\n};\n\nexport const useSegmentedContext = () => {\n const context = React.useContext(SegmentedContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl',\n );\n }\n return context;\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n useSegmentedContext,\n SelectedValues,\n SelectedValue,\n} from './SegmentedContext';\nimport './SegmentedChoice.scss';\n\nexport type SegmentedChoiceProps = {\n /** Verdien til valget */\n value: string;\n /** Innhold som beskriver valget */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback som kalles når komponenten endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nexport const SegmentedChoice = React.forwardRef<\n HTMLInputElement,\n SegmentedChoiceProps\n>(\n (\n { children, className, style, value, name, onChange = () => {}, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const {\n name: commonName,\n selectedValue,\n onChange: commonOnChange,\n multiple,\n size,\n } = useSegmentedContext();\n\n const isChecked = multiple\n ? (selectedValue as SelectedValues)[value]\n : (selectedValue as SelectedValue) === value;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e);\n if (multiple) {\n commonOnChange({\n ...(selectedValue as SelectedValues),\n [value]: e.target.checked,\n } as any);\n } else if (e.target.checked) {\n commonOnChange(value as any);\n }\n };\n\n return (\n <label\n className={classNames('eds-segmented-choice', className, {\n 'eds-segmented-choide--large': size === 'large',\n })}\n style={style}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n name={name || commonName}\n checked={isChecked}\n value={value}\n onChange={handleChange}\n ref={ref}\n {...rest}\n />\n <div\n className={classNames('eds-base-segmented', {\n 'eds-base-segmented--large': size === 'large',\n })}\n >\n {children}\n </div>\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValue } from './SegmentedContext';\nimport './SegmentedControl.scss';\nimport classNames from 'classnames';\n\nexport type SegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den valgte verdien */\n selectedValue: SelectedValue;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValue) => void;\n /** Størrelsen på SegmentedChoice-komponentene */\n size?: 'medium' | 'large';\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\n\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n size = 'medium',\n className,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={false}\n size={size}\n >\n <Label as=\"div\">{label}</Label>\n <div className={classNames('eds-segmented-control', className)} {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValues } from './SegmentedContext';\nimport './SegmentedControl.scss';\n\nexport type MultipleSegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den eller de valgte verdiene */\n selectedValue: SelectedValues;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValues) => void;\n [key: string]: any;\n};\n\n/**This component is not used by anyone, and is therefore deprecated\n * @deprecated\n */\nexport const MultipleSegmentedControl: React.FC<MultipleSegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={true}\n size=\"medium\"\n >\n <Label as=\"div\">{label}</Label>\n <div className=\"eds-segmented-control\" {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('form', 'icons', 'typography');\n\nexport * from './BaseFormControl';\nexport * from './Checkbox';\nexport * from './FeedbackText';\nexport * from './Fieldset';\nexport * from './InputGroupLabel';\nexport * from './InputGroupContext';\nexport * from './Radio';\nexport * from './RadioGroup';\nexport * from './RadioPanel';\nexport * from './Switch';\nexport * from './TravelSwitch';\nexport * from './TextArea';\nexport * from './TextField';\nexport * from './VariantProvider';\nexport * from './utils';\nexport * from './segmented-control/SegmentedChoice';\nexport * from './segmented-control/SegmentedControl';\nexport * from './segmented-control/MultipleSegmentedControl';\n"],"names":["AlertIcon","variant","iconClass","React","ValidationCheckIcon","className","ValidationErrorIcon","ValidationExclamationIcon","FeedbackText","children","hideIcon","rest","SubLabel","classNames","InputGroupContext","isFilled","setFilled","InputGroupContextProvider","filled","Provider","value","useInputGroupContext","InputGroupLabel","label","required","labelId","staticAnimation","filler","id","VariantContext","createContext","VariantProvider","useVariant","context","useContext","BaseFormControl","forwardRef","ref","dark","disabled","readOnly","prepend","append","size","labelTooltip","feedback","labelProps","style","disableLabelAnimation","contextVariant","currentVariant","Tooltip","content","placement","QuestionIcon","Checkbox","checked","reduceClickArea","innerRef","useRef","useImperativeHandle","current","isIndeterminate","isControlled","undefined","useEffect","indeterminate","cx","type","CheckboxIcon","Paragraph","margin","as","width","height","viewBox","x","y","fill","d","Fieldset","Label","RadioGroupContext","RadioGroupContextProvider","useRadioGroupContext","Error","Radio","classList","name","selectedValue","onChange","RadioGroup","contextValue","useMemo","RadioPanel","title","secondaryLabel","hideCheckbox","randomId","useRandomId","radioPanelId","htmlFor","RadioPanelCheck","Switch","icon","color","colors","validation","mintContrast","contrastColor","chosenContrastColor","TravelSwitch","transport","modeCalc","contrast","Icon","mode","BusIcon","bus","SubwayIcon","metro","PlaneIcon","plane","TramIcon","tram","TrainIcon","train","FerryIcon","ferry","BicycleIcon","mobility","ScooterIcon","hasValue","Array","isArray","length","obj","SSR","defaultValue","TextArea","textAreaId","TextAreaBase","isInputFilled","setFiller","useOnMount","handleChange","event","target","TextField","clearable","onClear","textFieldId","ClearButton","TextFieldBase","placeholder","props","tabIndex","onClick","CloseSmallIcon","SegmentedContext","SegmentedProvider","multiple","generatedName","useSegmentedContext","SegmentedChoice","commonName","commonOnChange","isChecked","e","SegmentedControl","MultipleSegmentedControl","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.cjs.development.js","sources":["../src/FeedbackText.tsx","../src/InputGroupContext.tsx","../src/InputGroupLabel.tsx","../src/VariantProvider.tsx","../src/BaseFormControl.tsx","../src/Checkbox.tsx","../src/Fieldset.tsx","../src/RadioGroupContext.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/RadioPanel.tsx","../src/Switch.tsx","../src/TravelSwitch.tsx","../src/utils.ts","../src/TextArea.tsx","../src/TextField.tsx","../src/segmented-control/SegmentedContext.tsx","../src/segmented-control/SegmentedChoice.tsx","../src/segmented-control/SegmentedControl.tsx","../src/segmented-control/MultipleSegmentedControl.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ValidationCheckIcon,\n ValidationErrorIcon,\n ValidationExclamationIcon,\n} from '@entur/icons';\nimport { SubLabel } from '@entur/typography';\nimport { VariantType } from './VariantProvider';\nimport classNames from 'classnames';\nimport './FeedbackText.scss';\n\nconst AlertIcon: React.FC<{ variant: VariantType }> = ({ variant }) => {\n const iconClass = `eds-feedback-text__icon eds-feedback-text__icon--${variant}`;\n switch (variant) {\n case 'success':\n return <ValidationCheckIcon className={iconClass} />;\n case 'error':\n return <ValidationErrorIcon className={iconClass} />;\n case 'info':\n return null;\n case 'warning':\n return <ValidationExclamationIcon className={iconClass} />;\n default:\n return null;\n }\n};\n\nexport type FeedbackTextProps = {\n /** Teksten som vises */\n children: React.ReactNode;\n /** Skjuler ikonet */\n hideIcon?: boolean;\n /** Feedbackvarianten */\n variant: VariantType;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\nexport const FeedbackText: React.FC<FeedbackTextProps> = ({\n children,\n hideIcon = false,\n variant,\n className,\n ...rest\n}) => {\n return (\n <SubLabel\n className={classNames(\n 'eds-feedback-text',\n { 'eds-feedback-text--info': variant === 'info' },\n className,\n )}\n {...rest}\n >\n {!hideIcon && <AlertIcon variant={variant} />}\n <span className=\"eds-feedback-text__text\">{children}</span>\n </SubLabel>\n );\n};\n","import * as React from 'react';\n\ntype InputGroupContextType = {\n isFilled: boolean;\n setFilled: (e: boolean) => void;\n};\n\nconst InputGroupContext = React.createContext<InputGroupContextType>({\n isFilled: false,\n setFilled: () => null,\n});\n\nexport const InputGroupContextProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [filled, setFilled] = React.useState(false);\n return (\n <InputGroupContext.Provider\n value={{ isFilled: filled, setFilled: setFilled }}\n >\n {children}\n </InputGroupContext.Provider>\n );\n};\n\nexport const useInputGroupContext: () => InputGroupContextType = () =>\n React.useContext(InputGroupContext);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { useInputGroupContext } from './InputGroupContext';\nimport './InputGroupLabel.scss';\n\nexport type InputGroupLabelProps = {\n label?: React.ReactNode;\n required?: boolean;\n labelTooltip?: string;\n labelId: string;\n staticAnimation?: boolean;\n} & React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n>;\n\nexport const InputGroupLabel: React.FC<InputGroupLabelProps> = ({\n label,\n required,\n labelId,\n staticAnimation = false,\n ...rest\n}) => {\n const { isFilled } = useInputGroupContext();\n const filler = staticAnimation || isFilled;\n return (\n <label\n className={classNames(rest.className, {\n 'eds-input-group-label-wrapper--filled': filler,\n })}\n id={labelId}\n {...rest}\n >\n <span\n className={classNames('eds-input-group__label', {\n 'eds-input-group__label--filled': filler,\n })}\n >\n {label} {required && <span>*</span>}\n </span>\n </label>\n );\n};\n","import React from 'react';\n\nexport type VariantType = 'success' | 'error' | 'warning' | 'info';\n\nconst VariantContext = React.createContext<VariantType | null>(null);\n\nexport type VariantProviderProps = {\n variant?: VariantType;\n};\nexport const VariantProvider: React.FC<VariantProviderProps> = ({\n children,\n variant = null,\n}) => {\n return (\n <VariantContext.Provider value={variant}>\n {children}\n </VariantContext.Provider>\n );\n};\n\nexport const useVariant: () => VariantType | null = () => {\n const context = React.useContext(VariantContext);\n return context;\n};\n","import { Tooltip } from '@entur/tooltip';\nimport classNames from 'classnames';\nimport React from 'react';\nimport './BaseFormControl.scss';\nimport { FeedbackText } from './FeedbackText';\nimport { InputGroupContextProvider } from './InputGroupContext';\nimport { InputGroupLabel } from './InputGroupLabel';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { QuestionIcon } from '@entur/icons';\n\nexport type BaseFormControlProps = {\n /** Et skjemaelement med `eds-form-control`-klassen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Sett til true om skjema-elementet skal ha mørkt design i contrast mode */\n dark?: boolean;\n /** Sett til true om skjema-elementet er disabled */\n disabled?: boolean;\n /** Sett til true om skjema-elementet er i read-only modus */\n readOnly?: boolean;\n /** Tekst eller ikon som vises foran skjema-elementet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som vises etter skjema-elementet */\n append?: React.ReactNode;\n /** Valideringsvariant */\n variant?: VariantType;\n /**Størrelsen på skjemaelementet\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Label til inputfeltet */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Illustrerer om inputfeltet er påkrevd eller ikke */\n required?: boolean;\n /** ID som settes på labelen til inputfeltet */\n labelId: string;\n /** Varselmelding, som vil komme under form-komponenten */\n feedback?: string;\n /** Om inputfeltet er fylt med data. Brukes for plassering av label */\n isFilled?: boolean;\n /**Ekstra props som sendes til label */\n labelProps?: { [key: string]: any };\n /** Ekstra styling */\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet */\n disableLabelAnimation?: boolean;\n};\n\nexport const BaseFormControl = React.forwardRef<\n HTMLDivElement,\n BaseFormControlProps\n>(\n (\n {\n children,\n className,\n dark = false,\n disabled = false,\n readOnly = false,\n variant,\n prepend,\n append,\n size = 'medium',\n isFilled,\n label,\n required,\n labelTooltip,\n feedback,\n labelId,\n labelProps,\n style,\n disableLabelAnimation = false,\n ...rest\n },\n ref,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n\n return (\n <InputGroupContextProvider>\n <div\n className={classNames(\n 'eds-form-control-wrapper',\n className,\n `eds-form-control-wrapper--size-${size}`,\n {\n 'eds-form-control-wrapper--success': currentVariant === 'success',\n 'eds-form-control-wrapper--error': currentVariant === 'error',\n 'eds-form-control-wrapper--dark': dark,\n 'eds-form-control-wrapper--disabled': disabled,\n 'eds-form-control-wrapper--readonly': readOnly,\n 'eds-form-control-wrapper--is-filled': isFilled,\n },\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {prepend && (\n <div className=\"eds-form-control__prepend\">{prepend}</div>\n )}\n <InputGroupLabel\n label={label}\n required={required}\n labelId={labelId}\n staticAnimation={disableLabelAnimation}\n {...labelProps}\n />\n {children}\n {append && <div className=\"eds-form-control__append\">{append}</div>}\n {labelTooltip && (\n <div className=\"eds-form-control__append eds-form-control__append--tooltip\">\n <Tooltip content={labelTooltip} placement=\"right\">\n <span className=\"eds-input-group__label-tooltip-icon\">\n <QuestionIcon />\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n {feedback && currentVariant && (\n <FeedbackText variant={currentVariant}>{feedback}</FeedbackText>\n )}\n </InputGroupContextProvider>\n );\n },\n);\n","import React, { CSSProperties } from 'react';\nimport { Paragraph } from '@entur/typography';\nimport cx from 'classnames';\nimport './Checkbox.scss';\n\nexport type CheckboxProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for checkboxen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om Checkbox er avmerket, eller om den */\n checked?: 'indeterminate' | boolean;\n /** Callback for Checkbox */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Om checkboxen er disabled eller ikke\n * @default false\n */\n disabled?: boolean;\n /**Ekstra styling til komponenten */\n style?: CSSProperties;\n /** Reduserer klikkflaten for Checkbox'en\n * @default false\n */\n reduceClickArea?: boolean;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked'>;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n className,\n children,\n style,\n disabled = false,\n reduceClickArea,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n // Trick to allow using a ref locally, while still allowing for ref forwarding\n // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n const innerRef = React.useRef<HTMLInputElement>(null);\n //eslint-disable-next-line\n React.useImperativeHandle(ref, () => innerRef.current!);\n\n const isIndeterminate = checked === 'indeterminate';\n const isControlled = checked !== undefined;\n\n React.useEffect(() => {\n if (innerRef && innerRef.current) {\n innerRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label\n className={cx('eds-checkbox__container', className, {\n 'eds-checkbox--disabled': disabled,\n 'eds-checkbox__container--reduced-click-area': reduceClickArea,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n ref={innerRef}\n checked={isControlled ? checked === true : undefined}\n disabled={disabled}\n {...rest}\n />\n <span\n className={cx('eds-checkbox__icon', {\n 'eds-checkbox__icon--disabled': disabled,\n 'eds-checkbox__icon--reduced-click-area': reduceClickArea,\n })}\n >\n <CheckboxIcon indeterminate={isIndeterminate} />\n </span>\n {children && (\n <Paragraph className=\"eds-checkbox__label\" margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n\nconst CheckboxIcon: React.FC<{ indeterminate: boolean }> = ({\n indeterminate = false,\n}) => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n {indeterminate ? (\n <rect x=\"10\" y=\"25\" width=\"28\" height=\"5\" fill=\"white\" />\n ) : (\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n )}\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\nimport './Fieldset.scss';\n\nexport type FieldsetProps = {\n /** Innholdet i felt-gruppen. */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Labelen til felt-gruppen. */\n label?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const Fieldset: React.FC<FieldsetProps> = ({\n children,\n className,\n label,\n ...rest\n}) => (\n <fieldset className={classNames('eds-fieldset', className)} {...rest}>\n {label && (\n <Label as=\"legend\" className=\"eds-legend\">\n {label}\n </Label>\n )}\n {children}\n </fieldset>\n);\n","import React from 'react';\n\ntype RadioGroupContextProps = {\n name: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value: string | null;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextProps | null>(\n null,\n);\n\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\n\nexport const useRadioGroupContext: () => RadioGroupContextProps = () => {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your RadioButtons in a RadioGroup component',\n );\n }\n return context;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './Radio.scss';\n\nexport type RadioProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label til radio-button. Vises ved høyre side. */\n children?: React.ReactNode;\n /** Verdien til radioknappen */\n value: string;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n { className, children, value, disabled, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = cx(className, 'eds-form-component--radio__radio', {\n 'eds-form-component--radio__radio--disabled': disabled,\n });\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n return (\n <label className=\"eds-form-component--radio__container\">\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n <span className={classList}>\n <span className=\"eds-form-component--radio__circle\"></span>\n </span>\n {children && (\n <Paragraph\n margin=\"none\"\n as=\"span\"\n className=\"eds-form-component--radio__label\"\n >\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { RadioGroupContextProvider } from './RadioGroupContext';\nimport { Fieldset } from './Fieldset';\n\nexport type RadioGroupProps = {\n /** Navnet til radiogruppen. */\n name: string;\n /** Overskrift over radiogruppen */\n label?: string;\n /** Verdien til den valgte radioknappen */\n value: string | null;\n /** Radioknappene sendes inn som children */\n children: React.ReactNode;\n /** En callback som blir kalles hver gang en radioknapp klikkes på */\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n [key: string]: any;\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n children,\n onChange,\n label,\n ...rest\n}) => {\n const contextValue = React.useMemo(() => ({ name, value, onChange }), [\n name,\n value,\n onChange,\n ]);\n return (\n <RadioGroupContextProvider value={contextValue}>\n {label ? (\n <Fieldset label={label} {...rest}>\n {children}\n </Fieldset>\n ) : (\n children\n )}\n </RadioGroupContextProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './RadioPanel.scss';\nimport { useRandomId } from '@entur/utils';\n\nexport type RadioPanelProps = {\n /** Verdien til RadioPanel */\n value: string;\n /** Hovedtittelen til RadioPanel */\n title: React.ReactNode;\n /** Ektstra label som står høyrestilt mot Checkboxen */\n secondaryLabel?: React.ReactNode;\n /** Ekstra informasjon som legges nederst i RadioPanel */\n children?: React.ReactNode;\n /** Størrelse på RadioPanel\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /**Skjuler checkbox-en i RadioPanel\n * @default false\n */\n hideCheckbox?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Om RadioPanel er deaktivert eller ikke\n * @default false\n */\n disabled?: boolean;\n /** */\n style?: React.CSSProperties;\n} & Omit<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >,\n 'title' | 'size'\n>;\n\nexport const RadioPanel = React.forwardRef<HTMLInputElement, RadioPanelProps>(\n (\n {\n className,\n children,\n value,\n title,\n secondaryLabel,\n size = 'medium',\n hideCheckbox = false,\n style,\n id,\n disabled = false,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = classNames(\n className,\n 'eds-radio-panel__container',\n `eds-radio-panel--${size}`,\n { 'eds-radio-panel--disabled': disabled },\n );\n\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n const randomId = useRandomId('eds-radiopanel');\n const radioPanelId = id || randomId;\n return (\n <label className=\"eds-radio-panel__wrapper\" htmlFor={radioPanelId}>\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n id={radioPanelId}\n disabled={disabled}\n {...rest}\n />\n <div className={classList} style={style}>\n <div className=\"eds-radio-panel__title-wrapper\">\n <div className=\"eds-radio-panel__title\">{title}</div>\n <div className=\"eds-radio-panel__label\">\n {secondaryLabel && <span>{secondaryLabel}</span>}\n {!(disabled || hideCheckbox) && (\n <span className=\"eds-radio-panel__check\">\n <RadioPanelCheck />\n </span>\n )}\n </div>\n </div>\n {children && (\n <div className=\"eds-radio-panel__additional-content\">\n {children}\n </div>\n )}\n </div>\n </label>\n );\n },\n);\n\nconst RadioPanelCheck: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"22px\"\n height=\"16px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { colors } from '@entur/tokens';\nimport './Switch.scss';\n\nexport type SwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for Switchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Ikonet som skal stå inne i sirkelen på Switchen */\n icon?: React.ReactNode;\n /** Farge som settes på ikon og bakgrunnen når Switchen er \"checked\". Default er mint-contrast\n * @default colors.validation .mintContrast\n */\n color?: string;\n /** Lik som color, men når Switchen står i en kontrast seksjon. Default er samme farge som color. */\n contrastColor?: string;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n className,\n children,\n icon,\n color = colors.validation.mintContrast,\n contrastColor,\n size = 'medium',\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const chosenContrastColor = (contrastColor && contrastColor) || color;\n return (\n <label\n className={classNames('eds-switch', className)}\n style={{ ...rest.style }}\n >\n <input type=\"checkbox\" ref={ref} {...rest} />\n <span\n className={classNames('eds-switch__switch', {\n 'eds-switch__switch--large': size === 'large',\n })}\n style={\n {\n '--eds-switch-color': color,\n '--eds-switch-contrast-color': chosenContrastColor,\n } as React.CSSProperties\n }\n >\n <span className=\"eds-switch__circle\">{icon && icon}</span>\n </span>\n {children && (\n <Paragraph margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Switch } from './Switch';\nimport { colors } from '@entur/tokens';\nimport {\n BusIcon,\n FerryIcon,\n TramIcon,\n PlaneIcon,\n TrainIcon,\n BicycleIcon,\n ScooterIcon,\n SubwayIcon,\n} from '@entur/icons';\nimport './Switch.scss';\n\nexport type TravelSwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Label for TravelSwitchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Hvilken type reise som skal vises rikig ikon og farge for */\n transport: // When adding a new submode, check https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/825393529/Norwegian+submodes+and+their+definitions for names\n | 'bus'\n | 'metro'\n | 'air'\n | 'tram'\n | 'rail'\n | 'water'\n | 'bike'\n | 'airportLinkBus'\n | 'airportLinkRail'\n | 'scooter';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const TravelSwitch: React.FC<TravelSwitchProps> = ({\n className,\n children,\n transport,\n size,\n ...rest\n}) => {\n const { color, contrast, Icon } = modeCalc(transport);\n return (\n <Switch\n className={className}\n color={color}\n contrastColor={contrast}\n icon={<Icon />}\n size={size}\n {...rest}\n >\n {children}\n </Switch>\n );\n};\n\nfunction modeCalc(mode: string) {\n switch (mode) {\n case 'bus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.bus,\n contrast: colors.transport.contrast.bus,\n };\n case 'metro':\n return {\n Icon: SubwayIcon,\n color: colors.transport.default.metro,\n contrast: colors.transport.contrast.metro,\n };\n case 'air':\n return {\n Icon: PlaneIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'tram':\n return {\n Icon: TramIcon,\n color: colors.transport.default.tram,\n contrast: colors.transport.contrast.tram,\n };\n case 'rail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.train,\n contrast: colors.transport.contrast.train,\n };\n case 'water':\n return {\n Icon: FerryIcon,\n color: colors.transport.default.ferry,\n contrast: colors.transport.contrast.ferry,\n };\n case 'bike':\n return {\n Icon: BicycleIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'scooter':\n return {\n Icon: ScooterIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'airportLinkBus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'airportLinkRail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n default:\n throw Error('Please select a transport for the TravelSwitch.');\n }\n}\n","export function hasValue(value: any) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj: any, SSR = false) {\n return (\n obj &&\n ((hasValue(obj.value) && obj.value !== '') ||\n (SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''))\n );\n}\n","import React from 'react';\nimport { VariantType } from './VariantProvider';\nimport { BaseFormControl } from './BaseFormControl';\nimport './TextArea.scss';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useRandomId, useOnMount } from '@entur/utils';\nimport { isFilled } from './utils';\n\nexport type TextAreaProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Deaktiverer tekstområdet */\n disabled?: boolean;\n /** Setter tekstområdet i read-only modus */\n readOnly?: boolean;\n /** Label over TextArea */\n label: string;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextArea */\n feedback?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n label,\n feedback,\n labelTooltip,\n onChange,\n disableLabelAnimation,\n ...rest\n },\n ref: React.Ref<HTMLTextAreaElement>,\n ) => {\n const textAreaId = useRandomId('eds-textarea');\n return (\n <BaseFormControl\n className={className}\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n style={style}\n label={label}\n labelId={textAreaId}\n feedback={feedback}\n labelTooltip={labelTooltip}\n labelProps={{ className: 'eds-textarea__label' }}\n disableLabelAnimation={disableLabelAnimation}\n >\n <TextAreaBase\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n aria-labelledby={textAreaId}\n onChange={onChange}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextAreaBaseProps = {\n readOnly?: boolean;\n disabled?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst TextAreaBase = React.forwardRef<HTMLTextAreaElement, TextAreaBaseProps>(\n ({ readOnly, disabled, onChange, value, ...rest }, ref) => {\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <textarea\n className=\"eds-form-control eds-textarea\"\n ref={ref}\n readOnly={readOnly}\n disabled={disabled}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n","import { useRandomId, useOnMount } from '@entur/utils';\nimport React from 'react';\nimport { BaseFormControl } from './BaseFormControl';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { isFilled } from './utils';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './TextField.scss';\n\nexport type TextFieldProps = {\n /** Tekst eller ikon som kommer før inputfeltet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som kommer etter inputfeltet */\n append?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TextField */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextField */\n feedback?: string;\n /** Hvilken valideringsfarge som vises */\n variant?: VariantType;\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n /** Størrelsen på TextField\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra props som sendes til label-elementet */\n labelProps?: React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n >;\n /** Om man skal ha muliget for å nullstille TextField. Viser lukkekryss hvis feltet er fylt.\n * @default false\n */\n clearable?: boolean;\n /** Callback for clearable */\n onClear?: () => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'label'>;\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n prepend,\n append,\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n size = 'medium',\n label,\n required,\n labelTooltip,\n feedback,\n onChange,\n disableLabelAnimation,\n labelProps,\n clearable = false,\n onClear,\n value,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const textFieldId =\n labelProps && labelProps.id\n ? labelProps.id\n : useRandomId('eds-textfield');\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n prepend={prepend}\n append={clearable ? <ClearButton onClear={onClear} /> : append}\n className={className}\n style={style}\n size={size}\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n labelId={textFieldId}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n labelProps={labelProps}\n >\n <TextFieldBase\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n aria-labelledby={textFieldId}\n onChange={onChange}\n value={value}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextFieldBaseProps = {\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst TextFieldBase = React.forwardRef<HTMLInputElement, TextFieldBaseProps>(\n (\n { disabled, readOnly, placeholder, onChange, value, variant, ...rest },\n forwardRef,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <input\n aria-invalid={currentVariant === 'error'}\n className=\"eds-form-control\"\n disabled={disabled}\n readOnly={readOnly}\n ref={forwardRef}\n placeholder={placeholder}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n\nconst ClearButton: React.FC<{\n onClear?: () => void;\n [key: string]: any;\n}> = ({ onClear, ...props }) => {\n const { isFilled: hasValue } = useInputGroupContext();\n return (\n <div className=\"eds-textfield__clear-button-wrapper\">\n {hasValue && <div className=\"eds-textfield__divider\"></div>}\n {hasValue && (\n <button\n className=\"eds-textfield__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={onClear}\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useRandomId } from '@entur/utils';\n\nexport type SelectedValues = { [key: string]: boolean };\nexport type SelectedValue = string | null;\nexport type SegmentedContextProps =\n | {\n name: string;\n onChange: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name: string;\n onChange: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nconst SegmentedContext = React.createContext<SegmentedContextProps | null>(\n null,\n);\n\nexport type SegmentedProviderProps =\n | {\n name?: string;\n onChange?: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name?: string;\n onChange?: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nexport const SegmentedProvider: React.FC<SegmentedProviderProps> = ({\n name,\n onChange = () => {},\n selectedValue,\n multiple,\n size,\n ...rest\n}) => {\n const generatedName = useRandomId('eds-segmented-control');\n const contextValue = React.useMemo(\n () => ({\n name: name || generatedName,\n onChange,\n multiple,\n selectedValue,\n size,\n }),\n [generatedName, multiple, name, onChange, selectedValue, size],\n ) as SegmentedContextProps;\n return <SegmentedContext.Provider value={contextValue} {...rest} />;\n};\n\nexport const useSegmentedContext = () => {\n const context = React.useContext(SegmentedContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl',\n );\n }\n return context;\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n useSegmentedContext,\n SelectedValues,\n SelectedValue,\n} from './SegmentedContext';\nimport './SegmentedChoice.scss';\n\nexport type SegmentedChoiceProps = {\n /** Verdien til valget */\n value: string;\n /** Innhold som beskriver valget */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback som kalles når komponenten endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nexport const SegmentedChoice = React.forwardRef<\n HTMLInputElement,\n SegmentedChoiceProps\n>(\n (\n { children, className, style, value, name, onChange = () => {}, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const {\n name: commonName,\n selectedValue,\n onChange: commonOnChange,\n multiple,\n size,\n } = useSegmentedContext();\n\n const isChecked = multiple\n ? (selectedValue as SelectedValues)[value]\n : (selectedValue as SelectedValue) === value;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e);\n if (multiple) {\n commonOnChange({\n ...(selectedValue as SelectedValues),\n [value]: e.target.checked,\n } as any);\n } else if (e.target.checked) {\n commonOnChange(value as any);\n }\n };\n\n return (\n <label\n className={classNames('eds-segmented-choice', className, {\n 'eds-segmented-choide--large': size === 'large',\n })}\n style={style}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n name={name || commonName}\n checked={isChecked}\n value={value}\n onChange={handleChange}\n ref={ref}\n {...rest}\n />\n <div\n className={classNames('eds-base-segmented', {\n 'eds-base-segmented--large': size === 'large',\n })}\n >\n {children}\n </div>\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValue } from './SegmentedContext';\nimport './SegmentedControl.scss';\nimport classNames from 'classnames';\n\nexport type SegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den valgte verdien */\n selectedValue: SelectedValue;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValue) => void;\n /** Størrelsen på SegmentedChoice-komponentene */\n size?: 'medium' | 'large';\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\n\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n size = 'medium',\n className,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={false}\n size={size}\n >\n <Label as=\"div\">{label}</Label>\n <div className={classNames('eds-segmented-control', className)} {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValues } from './SegmentedContext';\nimport './SegmentedControl.scss';\n\nexport type MultipleSegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den eller de valgte verdiene */\n selectedValue: SelectedValues;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValues) => void;\n [key: string]: any;\n};\n\n/**This component is not used by anyone, and is therefore deprecated\n * @deprecated\n */\nexport const MultipleSegmentedControl: React.FC<MultipleSegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={true}\n size=\"medium\"\n >\n <Label as=\"div\">{label}</Label>\n <div className=\"eds-segmented-control\" {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('form', 'icons', 'typography');\n\nexport * from './BaseFormControl';\nexport * from './Checkbox';\nexport * from './FeedbackText';\nexport * from './Fieldset';\nexport * from './InputGroupLabel';\nexport * from './InputGroupContext';\nexport * from './Radio';\nexport * from './RadioGroup';\nexport * from './RadioPanel';\nexport * from './Switch';\nexport * from './TravelSwitch';\nexport * from './TextArea';\nexport * from './TextField';\nexport * from './VariantProvider';\nexport * from './utils';\nexport * from './segmented-control/SegmentedChoice';\nexport * from './segmented-control/SegmentedControl';\nexport * from './segmented-control/MultipleSegmentedControl';\n"],"names":["AlertIcon","variant","iconClass","React","ValidationCheckIcon","className","ValidationErrorIcon","ValidationExclamationIcon","FeedbackText","children","hideIcon","rest","SubLabel","classNames","InputGroupContext","isFilled","setFilled","InputGroupContextProvider","filled","Provider","value","useInputGroupContext","InputGroupLabel","label","required","labelId","staticAnimation","filler","id","VariantContext","createContext","VariantProvider","useVariant","context","useContext","BaseFormControl","forwardRef","ref","dark","disabled","readOnly","prepend","append","size","labelTooltip","feedback","labelProps","style","disableLabelAnimation","contextVariant","currentVariant","Tooltip","content","placement","QuestionIcon","Checkbox","checked","reduceClickArea","innerRef","useRef","useImperativeHandle","current","isIndeterminate","isControlled","undefined","useEffect","indeterminate","cx","type","CheckboxIcon","Paragraph","margin","as","width","height","viewBox","x","y","fill","d","Fieldset","Label","RadioGroupContext","RadioGroupContextProvider","useRadioGroupContext","Error","Radio","classList","name","selectedValue","onChange","RadioGroup","contextValue","useMemo","RadioPanel","title","secondaryLabel","hideCheckbox","randomId","useRandomId","radioPanelId","htmlFor","RadioPanelCheck","Switch","icon","color","colors","validation","mintContrast","contrastColor","chosenContrastColor","TravelSwitch","transport","modeCalc","contrast","Icon","mode","BusIcon","bus","SubwayIcon","metro","PlaneIcon","plane","TramIcon","tram","TrainIcon","train","FerryIcon","ferry","BicycleIcon","mobility","ScooterIcon","hasValue","Array","isArray","length","obj","SSR","defaultValue","TextArea","textAreaId","TextAreaBase","isInputFilled","setFiller","useOnMount","handleChange","event","target","TextField","clearable","onClear","textFieldId","ClearButton","TextFieldBase","placeholder","props","tabIndex","onClick","CloseSmallIcon","SegmentedContext","SegmentedProvider","multiple","generatedName","useSegmentedContext","SegmentedChoice","commonName","commonOnChange","isChecked","e","SegmentedControl","MultipleSegmentedControl","warnAboutMissingStyles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var a=require("@entur/utils"),t=require("@entur/tooltip"),r=e(require("classnames")),n=require("react"),l=e(n),o=require("@entur/icons"),s=require("@entur/typography"),c=require("@entur/tokens");function i(){return(i=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function d(e,a){if(null==e)return{};var t,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a.indexOf(t=l[r])>=0||(n[t]=e[t]);return n}var u=function(e){var a=e.variant,t="eds-feedback-text__icon eds-feedback-text__icon--"+a;switch(a){case"success":return l.createElement(o.ValidationCheckIcon,{className:t});case"error":return l.createElement(o.ValidationErrorIcon,{className:t});case"info":return null;case"warning":return l.createElement(o.ValidationExclamationIcon,{className:t});default:return null}},m=function(e){var a=e.children,t=e.hideIcon,n=void 0!==t&&t,o=e.variant,c=e.className,i=d(e,["children","hideIcon","variant","className"]);return l.createElement(s.SubLabel,Object.assign({className:r("eds-feedback-text",{"eds-feedback-text--info":"info"===o},c)},i),!n&&l.createElement(u,{variant:o}),l.createElement("span",{className:"eds-feedback-text__text"},a))},p=n.createContext({isFilled:!1,setFilled:function(){return null}}),b=function(e){var a=e.children,t=n.useState(!1);return n.createElement(p.Provider,{value:{isFilled:t[0],setFilled:t[1]}},a)},f=function(){return n.useContext(p)},h=function(e){var a=e.label,t=e.required,n=e.labelId,o=e.staticAnimation,s=void 0!==o&&o,c=d(e,["label","required","labelId","staticAnimation"]),i=f(),u=s||i.isFilled;return l.createElement("label",Object.assign({className:r(c.className,{"eds-input-group-label-wrapper--filled":u}),id:n},c),l.createElement("span",{className:r("eds-input-group__label",{"eds-input-group__label--filled":u})},a," ",t&&l.createElement("span",null,"*")))},v=l.createContext(null),g=function(){return l.useContext(v)},E=l.forwardRef((function(e,a){var n=e.children,s=e.className,c=e.dark,i=void 0!==c&&c,u=e.disabled,p=void 0!==u&&u,f=e.readOnly,v=void 0!==f&&f,E=e.variant,x=e.prepend,_=e.append,y=e.size,N=void 0===y?"medium":y,C=e.isFilled,k=e.label,w=e.required,I=e.labelTooltip,O=e.feedback,j=e.labelId,V=e.labelProps,z=e.style,R=e.disableLabelAnimation,P=void 0!==R&&R,F=d(e,["children","className","dark","disabled","readOnly","variant","prepend","append","size","isFilled","label","required","labelTooltip","feedback","labelId","labelProps","style","disableLabelAnimation"]),A=g(),L=E||A;return l.createElement(b,null,l.createElement("div",Object.assign({className:r("eds-form-control-wrapper",s,"eds-form-control-wrapper--size-"+N,{"eds-form-control-wrapper--success":"success"===L,"eds-form-control-wrapper--error":"error"===L,"eds-form-control-wrapper--dark":i,"eds-form-control-wrapper--disabled":p,"eds-form-control-wrapper--readonly":v,"eds-form-control-wrapper--is-filled":C}),ref:a,style:z},F),x&&l.createElement("div",{className:"eds-form-control__prepend"},x),l.createElement(h,Object.assign({label:k,required:w,labelId:j,staticAnimation:P},V)),n,_&&l.createElement("div",{className:"eds-form-control__append"},_),I&&l.createElement("div",{className:"eds-form-control__append eds-form-control__append--tooltip"},l.createElement(t.Tooltip,{content:I,placement:"right"},l.createElement("span",{className:"eds-input-group__label-tooltip-icon"},l.createElement(o.QuestionIcon,null))))),O&&L&&l.createElement(m,{variant:L},O))})),x=l.forwardRef((function(e,a){var t=e.checked,n=e.className,o=e.children,c=e.style,i=e.disabled,u=void 0!==i&&i,m=e.reduceClickArea,p=d(e,["checked","className","children","style","disabled","reduceClickArea"]),b=l.useRef(null);l.useImperativeHandle(a,(function(){return b.current}));var f="indeterminate"===t,h=void 0!==t;return l.useEffect((function(){b&&b.current&&(b.current.indeterminate=f)}),[f]),l.createElement("label",{className:r("eds-checkbox__container",n,{"eds-checkbox--disabled":u,"eds-checkbox__container--reduced-click-area":m}),style:c},l.createElement("input",Object.assign({type:"checkbox",ref:b,checked:h?!0===t:void 0,disabled:u},p)),l.createElement("span",{className:r("eds-checkbox__icon",{"eds-checkbox__icon--disabled":u,"eds-checkbox__icon--reduced-click-area":m})},l.createElement(_,{indeterminate:f})),o&&l.createElement(s.Paragraph,{className:"eds-checkbox__label",margin:"none",as:"span"},o))})),_=function(e){var a=e.indeterminate;return l.createElement("svg",{className:"eds-checkbox-icon",width:"11px",height:"9px",viewBox:"6 11 37 33"},void 0!==a&&a?l.createElement("rect",{x:"10",y:"25",width:"28",height:"5",fill:"white"}):l.createElement("path",{className:"eds-checkbox-icon__path",d:"M14.1 27.2l7.1 7.2 14.6-14.8",fill:"none"}))},y=function(e){var a=e.children,t=e.className,n=e.label,o=d(e,["children","className","label"]);return l.createElement("fieldset",Object.assign({className:r("eds-fieldset",t)},o),n&&l.createElement(s.Label,{as:"legend",className:"eds-legend"},n),a)},N=l.createContext(null),C=N.Provider,k=function(){var e=l.useContext(N);if(!e)throw new Error("You need to wrap your RadioButtons in a RadioGroup component");return e},w=l.forwardRef((function(e,a){var t=e.className,n=e.children,o=e.value,c=e.disabled,i=d(e,["className","children","value","disabled"]),u=r(t,"eds-form-component--radio__radio",{"eds-form-component--radio__radio--disabled":c}),m=k();return l.createElement("label",{className:"eds-form-component--radio__container"},l.createElement("input",Object.assign({type:"radio",name:m.name,ref:a,value:o,checked:m.value===o,onChange:m.onChange,disabled:c},i)),l.createElement("span",{className:u},l.createElement("span",{className:"eds-form-component--radio__circle"})),n&&l.createElement(s.Paragraph,{margin:"none",as:"span",className:"eds-form-component--radio__label"},n))})),I=l.forwardRef((function(e,t){var n=e.className,o=e.children,s=e.value,c=e.title,i=e.secondaryLabel,u=e.size,m=void 0===u?"medium":u,p=e.hideCheckbox,b=void 0!==p&&p,f=e.style,h=e.id,v=e.disabled,g=void 0!==v&&v,E=d(e,["className","children","value","title","secondaryLabel","size","hideCheckbox","style","id","disabled"]),x=r(n,"eds-radio-panel__container","eds-radio-panel--"+m,{"eds-radio-panel--disabled":g}),_=k(),y=_.name,N=_.value,C=_.onChange,w=a.useRandomId("eds-radiopanel"),I=h||w;return l.createElement("label",{className:"eds-radio-panel__wrapper",htmlFor:I},l.createElement("input",Object.assign({type:"radio",name:y,ref:t,value:s,checked:N===s,onChange:C,id:I,disabled:g},E)),l.createElement("div",{className:x,style:f},l.createElement("div",{className:"eds-radio-panel__title-wrapper"},l.createElement("div",{className:"eds-radio-panel__title"},c),l.createElement("div",{className:"eds-radio-panel__label"},i&&l.createElement("span",null,i),!(g||b)&&l.createElement("span",{className:"eds-radio-panel__check"},l.createElement(O,null)))),o&&l.createElement("div",{className:"eds-radio-panel__additional-content"},o)))})),O=function(){return l.createElement("svg",{className:"eds-checkbox-icon",width:"22px",height:"16px",viewBox:"6 11 37 33"},l.createElement("path",{className:"eds-checkbox-icon__path",d:"M14.1 27.2l7.1 7.2 14.6-14.8",fill:"none"}))},j=l.forwardRef((function(e,a){var t=e.className,n=e.children,o=e.icon,u=e.color,m=void 0===u?c.colors.validation.mintContrast:u,p=e.contrastColor,b=e.size,f=void 0===b?"medium":b,h=d(e,["className","children","icon","color","contrastColor","size"]),v=p&&p||m;return l.createElement("label",{className:r("eds-switch",t),style:i({},h.style)},l.createElement("input",Object.assign({type:"checkbox",ref:a},h)),l.createElement("span",{className:r("eds-switch__switch",{"eds-switch__switch--large":"large"===f}),style:{"--eds-switch-color":m,"--eds-switch-contrast-color":v}},l.createElement("span",{className:"eds-switch__circle"},o&&o)),n&&l.createElement(s.Paragraph,{margin:"none",as:"span"},n))}));function V(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function z(e,a){return void 0===a&&(a=!1),e&&(V(e.value)&&""!==e.value||a&&V(e.defaultValue)&&""!==e.defaultValue)}var R=l.forwardRef((function(e,t){var r=e.variant,n=e.disabled,o=void 0!==n&&n,s=e.readOnly,c=void 0!==s&&s,i=e.className,u=e.style,m=e.label,p=e.feedback,b=e.labelTooltip,f=e.onChange,h=e.disableLabelAnimation,v=d(e,["variant","disabled","readOnly","className","style","label","feedback","labelTooltip","onChange","disableLabelAnimation"]),g=a.useRandomId("eds-textarea");return l.createElement(E,{className:i,disabled:o,readOnly:c,variant:r,style:u,label:m,labelId:g,feedback:p,labelTooltip:b,labelProps:{className:"eds-textarea__label"},disableLabelAnimation:h},l.createElement(P,Object.assign({readOnly:c,disabled:o,ref:t,"aria-labelledby":g,onChange:f},v)))})),P=l.forwardRef((function(e,t){var r=e.readOnly,n=e.disabled,o=e.onChange,s=e.value,c=d(e,["readOnly","disabled","onChange","value"]),i=f(),u=i.isFilled,m=i.setFilled;return a.useOnMount((function(){(s||c.defaultValue)&&m&&!u&&m(!0)})),l.createElement("textarea",Object.assign({className:"eds-form-control eds-textarea",ref:t,readOnly:r,disabled:n,onChange:function(e){z(e.target)?m&&!u&&m(!0):m&&u&&m(!1),o&&o(e)},value:s},c))})),F=l.forwardRef((function(e,t){var r=e.prepend,n=e.append,o=e.variant,s=e.disabled,c=void 0!==s&&s,i=e.readOnly,u=void 0!==i&&i,m=e.className,p=e.style,b=e.size,f=void 0===b?"medium":b,h=e.label,v=e.required,g=e.labelTooltip,x=e.feedback,_=e.onChange,y=e.disableLabelAnimation,N=e.labelProps,C=e.clearable,k=void 0!==C&&C,w=e.onClear,I=e.value,O=d(e,["prepend","append","variant","disabled","readOnly","className","style","size","label","required","labelTooltip","feedback","onChange","disableLabelAnimation","labelProps","clearable","onClear","value"]),j=N&&N.id?N.id:a.useRandomId("eds-textfield");return l.createElement(E,{disabled:c,readOnly:u,variant:o,prepend:r,append:k?l.createElement(L,{onClear:w,hasValue:!!I}):n,className:m,style:p,size:f,label:h,required:v,labelTooltip:g,labelId:j,feedback:x,disableLabelAnimation:y,labelProps:N},l.createElement(A,Object.assign({disabled:c,readOnly:u,ref:t,"aria-labelledby":j,onChange:_,value:I},O)))})),A=l.forwardRef((function(e,t){var r=e.disabled,n=e.readOnly,o=e.placeholder,s=e.onChange,c=e.value,i=e.variant,u=d(e,["disabled","readOnly","placeholder","onChange","value","variant"]),m=g(),p=i||m,b=f(),h=b.isFilled,v=b.setFilled;return a.useOnMount((function(){(c||u.defaultValue)&&v&&!h&&v(!0)})),l.createElement("input",Object.assign({"aria-invalid":"error"===p,className:"eds-form-control",disabled:r,readOnly:n,ref:t,placeholder:o,onChange:function(e){z(e.target)?v&&!h&&v(!0):v&&h&&v(!1),s&&s(e)},value:c},u))})),L=function(e){var a=e.onClear,t=e.hasValue,r=d(e,["onClear","hasValue"]);return l.createElement("div",{className:"eds-textfield__clear-button-wrapper"},t&&l.createElement("div",{className:"eds-textfield__divider"}),t&&l.createElement("button",Object.assign({className:"eds-textfield__clear-button",type:"button",tabIndex:-1,onClick:a},r),l.createElement(o.CloseSmallIcon,null)))},T=l.createContext(null),q=function(e){var t=e.name,r=e.onChange,n=void 0===r?function(){}:r,o=e.selectedValue,s=e.multiple,c=e.size,i=d(e,["name","onChange","selectedValue","multiple","size"]),u=a.useRandomId("eds-segmented-control"),m=l.useMemo((function(){return{name:t||u,onChange:n,multiple:s,selectedValue:o,size:c}}),[u,s,t,n,o,c]);return l.createElement(T.Provider,Object.assign({value:m},i))},S=l.forwardRef((function(e,a){var t=e.children,n=e.className,o=e.style,s=e.value,c=e.name,u=e.onChange,m=void 0===u?function(){}:u,p=d(e,["children","className","style","value","name","onChange"]),b=function(){var e=l.useContext(T);if(!e)throw new Error("You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl");return e}(),f=b.name,h=b.selectedValue,v=b.onChange,g=b.multiple,E=b.size,x=g?h[s]:h===s;return l.createElement("label",{className:r("eds-segmented-choice",n,{"eds-segmented-choide--large":"large"===E}),style:o},l.createElement("input",Object.assign({type:g?"checkbox":"radio",name:c||f,checked:x,value:s,onChange:function(e){var a;m(e),g?v(i({},h,((a={})[s]=e.target.checked,a))):e.target.checked&&v(s)},ref:a},p)),l.createElement("div",{className:r("eds-base-segmented",{"eds-base-segmented--large":"large"===E})},t))}));a.warnAboutMissingStyles("form","icons","typography"),exports.BaseFormControl=E,exports.Checkbox=x,exports.FeedbackText=m,exports.Fieldset=y,exports.InputGroupContextProvider=b,exports.InputGroupLabel=h,exports.MultipleSegmentedControl=function(e){var a=e.children,t=e.label,r=e.name,n=e.onChange,o=e.selectedValue,c=d(e,["children","label","name","onChange","selectedValue"]);return l.createElement(q,{name:r,selectedValue:o,onChange:n,multiple:!0,size:"medium"},l.createElement(s.Label,{as:"div"},t),l.createElement("div",Object.assign({className:"eds-segmented-control"},c),a))},exports.Radio=w,exports.RadioGroup=function(e){var a=e.name,t=e.value,r=e.children,n=e.onChange,o=e.label,s=d(e,["name","value","children","onChange","label"]),c=l.useMemo((function(){return{name:a,value:t,onChange:n}}),[a,t,n]);return l.createElement(C,{value:c},o?l.createElement(y,Object.assign({label:o},s),r):r)},exports.RadioPanel=I,exports.SegmentedChoice=S,exports.SegmentedControl=function(e){var a=e.children,t=e.label,n=e.name,o=e.onChange,c=e.selectedValue,i=e.size,u=void 0===i?"medium":i,m=e.className,p=d(e,["children","label","name","onChange","selectedValue","size","className"]);return l.createElement(q,{name:n,selectedValue:c,onChange:o,multiple:!1,size:u},l.createElement(s.Label,{as:"div"},t),l.createElement("div",Object.assign({className:r("eds-segmented-control",m)},p),a))},exports.Switch=j,exports.TextArea=R,exports.TextField=F,exports.TravelSwitch=function(e){var a=e.className,t=e.children,r=e.transport,n=e.size,s=d(e,["className","children","transport","size"]),i=function(e){switch(e){case"bus":return{Icon:o.BusIcon,color:c.colors.transport.default.bus,contrast:c.colors.transport.contrast.bus};case"metro":return{Icon:o.SubwayIcon,color:c.colors.transport.default.metro,contrast:c.colors.transport.contrast.metro};case"air":return{Icon:o.PlaneIcon,color:c.colors.transport.default.plane,contrast:c.colors.transport.contrast.plane};case"tram":return{Icon:o.TramIcon,color:c.colors.transport.default.tram,contrast:c.colors.transport.contrast.tram};case"rail":return{Icon:o.TrainIcon,color:c.colors.transport.default.train,contrast:c.colors.transport.contrast.train};case"water":return{Icon:o.FerryIcon,color:c.colors.transport.default.ferry,contrast:c.colors.transport.contrast.ferry};case"bike":return{Icon:o.BicycleIcon,color:c.colors.transport.default.mobility,contrast:c.colors.transport.contrast.mobility};case"scooter":return{Icon:o.ScooterIcon,color:c.colors.transport.default.mobility,contrast:c.colors.transport.contrast.mobility};case"airportLinkBus":return{Icon:o.BusIcon,color:c.colors.transport.default.plane,contrast:c.colors.transport.contrast.plane};case"airportLinkRail":return{Icon:o.TrainIcon,color:c.colors.transport.default.plane,contrast:c.colors.transport.contrast.plane};default:throw Error("Please select a transport for the TravelSwitch.")}}(r);return l.createElement(j,Object.assign({className:a,color:i.color,contrastColor:i.contrast,icon:l.createElement(i.Icon,null),size:n},s),t)},exports.VariantProvider=function(e){var a=e.variant;return l.createElement(v.Provider,{value:void 0===a?null:a},e.children)},exports.hasValue=V,exports.isFilled=z,exports.useInputGroupContext=f,exports.useVariant=g;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var a=require("@entur/utils"),t=require("@entur/tooltip"),r=e(require("classnames")),n=require("react"),l=e(n),o=require("@entur/icons"),s=require("@entur/typography"),c=require("@entur/tokens");function i(){return(i=Object.assign||function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function d(e,a){if(null==e)return{};var t,r,n={},l=Object.keys(e);for(r=0;r<l.length;r++)a.indexOf(t=l[r])>=0||(n[t]=e[t]);return n}var u=function(e){var a=e.variant,t="eds-feedback-text__icon eds-feedback-text__icon--"+a;switch(a){case"success":return l.createElement(o.ValidationCheckIcon,{className:t});case"error":return l.createElement(o.ValidationErrorIcon,{className:t});case"info":return null;case"warning":return l.createElement(o.ValidationExclamationIcon,{className:t});default:return null}},m=function(e){var a=e.children,t=e.hideIcon,n=void 0!==t&&t,o=e.variant,c=e.className,i=d(e,["children","hideIcon","variant","className"]);return l.createElement(s.SubLabel,Object.assign({className:r("eds-feedback-text",{"eds-feedback-text--info":"info"===o},c)},i),!n&&l.createElement(u,{variant:o}),l.createElement("span",{className:"eds-feedback-text__text"},a))},p=n.createContext({isFilled:!1,setFilled:function(){return null}}),b=function(e){var a=e.children,t=n.useState(!1);return n.createElement(p.Provider,{value:{isFilled:t[0],setFilled:t[1]}},a)},f=function(){return n.useContext(p)},h=function(e){var a=e.label,t=e.required,n=e.labelId,o=e.staticAnimation,s=void 0!==o&&o,c=d(e,["label","required","labelId","staticAnimation"]),i=f(),u=s||i.isFilled;return l.createElement("label",Object.assign({className:r(c.className,{"eds-input-group-label-wrapper--filled":u}),id:n},c),l.createElement("span",{className:r("eds-input-group__label",{"eds-input-group__label--filled":u})},a," ",t&&l.createElement("span",null,"*")))},v=l.createContext(null),g=function(){return l.useContext(v)},E=l.forwardRef((function(e,a){var n=e.children,s=e.className,c=e.dark,i=void 0!==c&&c,u=e.disabled,p=void 0!==u&&u,f=e.readOnly,v=void 0!==f&&f,E=e.variant,x=e.prepend,_=e.append,y=e.size,N=void 0===y?"medium":y,C=e.isFilled,k=e.label,w=e.required,I=e.labelTooltip,O=e.feedback,j=e.labelId,z=e.labelProps,R=e.style,P=e.disableLabelAnimation,V=void 0!==P&&P,F=d(e,["children","className","dark","disabled","readOnly","variant","prepend","append","size","isFilled","label","required","labelTooltip","feedback","labelId","labelProps","style","disableLabelAnimation"]),A=g(),L=E||A;return l.createElement(b,null,l.createElement("div",Object.assign({className:r("eds-form-control-wrapper",s,"eds-form-control-wrapper--size-"+N,{"eds-form-control-wrapper--success":"success"===L,"eds-form-control-wrapper--error":"error"===L,"eds-form-control-wrapper--dark":i,"eds-form-control-wrapper--disabled":p,"eds-form-control-wrapper--readonly":v,"eds-form-control-wrapper--is-filled":C}),ref:a,style:R},F),x&&l.createElement("div",{className:"eds-form-control__prepend"},x),l.createElement(h,Object.assign({label:k,required:w,labelId:j,staticAnimation:V},z)),n,_&&l.createElement("div",{className:"eds-form-control__append"},_),I&&l.createElement("div",{className:"eds-form-control__append eds-form-control__append--tooltip"},l.createElement(t.Tooltip,{content:I,placement:"right"},l.createElement("span",{className:"eds-input-group__label-tooltip-icon"},l.createElement(o.QuestionIcon,null))))),O&&L&&l.createElement(m,{variant:L},O))})),x=l.forwardRef((function(e,a){var t=e.checked,n=e.className,o=e.children,c=e.style,i=e.disabled,u=void 0!==i&&i,m=e.reduceClickArea,p=d(e,["checked","className","children","style","disabled","reduceClickArea"]),b=l.useRef(null);l.useImperativeHandle(a,(function(){return b.current}));var f="indeterminate"===t,h=void 0!==t;return l.useEffect((function(){b&&b.current&&(b.current.indeterminate=f)}),[f]),l.createElement("label",{className:r("eds-checkbox__container",n,{"eds-checkbox--disabled":u,"eds-checkbox__container--reduced-click-area":m}),style:c},l.createElement("input",Object.assign({type:"checkbox",ref:b,checked:h?!0===t:void 0,disabled:u},p)),l.createElement("span",{className:r("eds-checkbox__icon",{"eds-checkbox__icon--disabled":u,"eds-checkbox__icon--reduced-click-area":m})},l.createElement(_,{indeterminate:f})),o&&l.createElement(s.Paragraph,{className:"eds-checkbox__label",margin:"none",as:"span"},o))})),_=function(e){var a=e.indeterminate;return l.createElement("svg",{className:"eds-checkbox-icon",width:"11px",height:"9px",viewBox:"6 11 37 33"},void 0!==a&&a?l.createElement("rect",{x:"10",y:"25",width:"28",height:"5",fill:"white"}):l.createElement("path",{className:"eds-checkbox-icon__path",d:"M14.1 27.2l7.1 7.2 14.6-14.8",fill:"none"}))},y=function(e){var a=e.children,t=e.className,n=e.label,o=d(e,["children","className","label"]);return l.createElement("fieldset",Object.assign({className:r("eds-fieldset",t)},o),n&&l.createElement(s.Label,{as:"legend",className:"eds-legend"},n),a)},N=l.createContext(null),C=N.Provider,k=function(){var e=l.useContext(N);if(!e)throw new Error("You need to wrap your RadioButtons in a RadioGroup component");return e},w=l.forwardRef((function(e,a){var t=e.className,n=e.children,o=e.value,c=e.disabled,i=d(e,["className","children","value","disabled"]),u=r(t,"eds-form-component--radio__radio",{"eds-form-component--radio__radio--disabled":c}),m=k();return l.createElement("label",{className:"eds-form-component--radio__container"},l.createElement("input",Object.assign({type:"radio",name:m.name,ref:a,value:o,checked:m.value===o,onChange:m.onChange,disabled:c},i)),l.createElement("span",{className:u},l.createElement("span",{className:"eds-form-component--radio__circle"})),n&&l.createElement(s.Paragraph,{margin:"none",as:"span",className:"eds-form-component--radio__label"},n))})),I=l.forwardRef((function(e,t){var n=e.className,o=e.children,s=e.value,c=e.title,i=e.secondaryLabel,u=e.size,m=void 0===u?"medium":u,p=e.hideCheckbox,b=void 0!==p&&p,f=e.style,h=e.id,v=e.disabled,g=void 0!==v&&v,E=d(e,["className","children","value","title","secondaryLabel","size","hideCheckbox","style","id","disabled"]),x=r(n,"eds-radio-panel__container","eds-radio-panel--"+m,{"eds-radio-panel--disabled":g}),_=k(),y=_.name,N=_.value,C=_.onChange,w=a.useRandomId("eds-radiopanel"),I=h||w;return l.createElement("label",{className:"eds-radio-panel__wrapper",htmlFor:I},l.createElement("input",Object.assign({type:"radio",name:y,ref:t,value:s,checked:N===s,onChange:C,id:I,disabled:g},E)),l.createElement("div",{className:x,style:f},l.createElement("div",{className:"eds-radio-panel__title-wrapper"},l.createElement("div",{className:"eds-radio-panel__title"},c),l.createElement("div",{className:"eds-radio-panel__label"},i&&l.createElement("span",null,i),!(g||b)&&l.createElement("span",{className:"eds-radio-panel__check"},l.createElement(O,null)))),o&&l.createElement("div",{className:"eds-radio-panel__additional-content"},o)))})),O=function(){return l.createElement("svg",{className:"eds-checkbox-icon",width:"22px",height:"16px",viewBox:"6 11 37 33"},l.createElement("path",{className:"eds-checkbox-icon__path",d:"M14.1 27.2l7.1 7.2 14.6-14.8",fill:"none"}))},j=l.forwardRef((function(e,a){var t=e.className,n=e.children,o=e.icon,u=e.color,m=void 0===u?c.colors.validation.mintContrast:u,p=e.contrastColor,b=e.size,f=void 0===b?"medium":b,h=d(e,["className","children","icon","color","contrastColor","size"]),v=p&&p||m;return l.createElement("label",{className:r("eds-switch",t),style:i({},h.style)},l.createElement("input",Object.assign({type:"checkbox",ref:a},h)),l.createElement("span",{className:r("eds-switch__switch",{"eds-switch__switch--large":"large"===f}),style:{"--eds-switch-color":m,"--eds-switch-contrast-color":v}},l.createElement("span",{className:"eds-switch__circle"},o&&o)),n&&l.createElement(s.Paragraph,{margin:"none",as:"span"},n))}));function z(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function R(e,a){return void 0===a&&(a=!1),e&&(z(e.value)&&""!==e.value||a&&z(e.defaultValue)&&""!==e.defaultValue)}var P=l.forwardRef((function(e,t){var r=e.variant,n=e.disabled,o=void 0!==n&&n,s=e.readOnly,c=void 0!==s&&s,i=e.className,u=e.style,m=e.label,p=e.feedback,b=e.labelTooltip,f=e.onChange,h=e.disableLabelAnimation,v=d(e,["variant","disabled","readOnly","className","style","label","feedback","labelTooltip","onChange","disableLabelAnimation"]),g=a.useRandomId("eds-textarea");return l.createElement(E,{className:i,disabled:o,readOnly:c,variant:r,style:u,label:m,labelId:g,feedback:p,labelTooltip:b,labelProps:{className:"eds-textarea__label"},disableLabelAnimation:h},l.createElement(V,Object.assign({readOnly:c,disabled:o,ref:t,"aria-labelledby":g,onChange:f},v)))})),V=l.forwardRef((function(e,t){var r=e.readOnly,n=e.disabled,o=e.onChange,s=e.value,c=d(e,["readOnly","disabled","onChange","value"]),i=f(),u=i.isFilled,m=i.setFilled;return a.useOnMount((function(){(s||c.defaultValue)&&m&&!u&&m(!0)})),l.createElement("textarea",Object.assign({className:"eds-form-control eds-textarea",ref:t,readOnly:r,disabled:n,onChange:function(e){R(e.target)?m&&!u&&m(!0):m&&u&&m(!1),o&&o(e)},value:s},c))})),F=l.forwardRef((function(e,t){var r=e.prepend,n=e.append,o=e.variant,s=e.disabled,c=void 0!==s&&s,i=e.readOnly,u=void 0!==i&&i,m=e.className,p=e.style,b=e.size,f=void 0===b?"medium":b,h=e.label,v=e.required,g=e.labelTooltip,x=e.feedback,_=e.onChange,y=e.disableLabelAnimation,N=e.labelProps,C=e.clearable,k=void 0!==C&&C,w=e.onClear,I=e.value,O=d(e,["prepend","append","variant","disabled","readOnly","className","style","size","label","required","labelTooltip","feedback","onChange","disableLabelAnimation","labelProps","clearable","onClear","value"]),j=N&&N.id?N.id:a.useRandomId("eds-textfield");return l.createElement(E,{disabled:c,readOnly:u,variant:o,prepend:r,append:k?l.createElement(L,{onClear:w}):n,className:m,style:p,size:f,label:h,required:v,labelTooltip:g,labelId:j,feedback:x,disableLabelAnimation:y,labelProps:N},l.createElement(A,Object.assign({disabled:c,readOnly:u,ref:t,"aria-labelledby":j,onChange:_,value:I},O)))})),A=l.forwardRef((function(e,t){var r=e.disabled,n=e.readOnly,o=e.placeholder,s=e.onChange,c=e.value,i=e.variant,u=d(e,["disabled","readOnly","placeholder","onChange","value","variant"]),m=g(),p=i||m,b=f(),h=b.isFilled,v=b.setFilled;return a.useOnMount((function(){(c||u.defaultValue)&&v&&!h&&v(!0)})),l.createElement("input",Object.assign({"aria-invalid":"error"===p,className:"eds-form-control",disabled:r,readOnly:n,ref:t,placeholder:o,onChange:function(e){R(e.target)?v&&!h&&v(!0):v&&h&&v(!1),s&&s(e)},value:c},u))})),L=function(e){var a=e.onClear,t=d(e,["onClear"]),r=f().isFilled;return l.createElement("div",{className:"eds-textfield__clear-button-wrapper"},r&&l.createElement("div",{className:"eds-textfield__divider"}),r&&l.createElement("button",Object.assign({className:"eds-textfield__clear-button",type:"button",tabIndex:-1,onClick:a},t),l.createElement(o.CloseSmallIcon,null)))},T=l.createContext(null),q=function(e){var t=e.name,r=e.onChange,n=void 0===r?function(){}:r,o=e.selectedValue,s=e.multiple,c=e.size,i=d(e,["name","onChange","selectedValue","multiple","size"]),u=a.useRandomId("eds-segmented-control"),m=l.useMemo((function(){return{name:t||u,onChange:n,multiple:s,selectedValue:o,size:c}}),[u,s,t,n,o,c]);return l.createElement(T.Provider,Object.assign({value:m},i))},S=l.forwardRef((function(e,a){var t=e.children,n=e.className,o=e.style,s=e.value,c=e.name,u=e.onChange,m=void 0===u?function(){}:u,p=d(e,["children","className","style","value","name","onChange"]),b=function(){var e=l.useContext(T);if(!e)throw new Error("You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl");return e}(),f=b.name,h=b.selectedValue,v=b.onChange,g=b.multiple,E=b.size,x=g?h[s]:h===s;return l.createElement("label",{className:r("eds-segmented-choice",n,{"eds-segmented-choide--large":"large"===E}),style:o},l.createElement("input",Object.assign({type:g?"checkbox":"radio",name:c||f,checked:x,value:s,onChange:function(e){var a;m(e),g?v(i({},h,((a={})[s]=e.target.checked,a))):e.target.checked&&v(s)},ref:a},p)),l.createElement("div",{className:r("eds-base-segmented",{"eds-base-segmented--large":"large"===E})},t))}));a.warnAboutMissingStyles("form","icons","typography"),exports.BaseFormControl=E,exports.Checkbox=x,exports.FeedbackText=m,exports.Fieldset=y,exports.InputGroupContextProvider=b,exports.InputGroupLabel=h,exports.MultipleSegmentedControl=function(e){var a=e.children,t=e.label,r=e.name,n=e.onChange,o=e.selectedValue,c=d(e,["children","label","name","onChange","selectedValue"]);return l.createElement(q,{name:r,selectedValue:o,onChange:n,multiple:!0,size:"medium"},l.createElement(s.Label,{as:"div"},t),l.createElement("div",Object.assign({className:"eds-segmented-control"},c),a))},exports.Radio=w,exports.RadioGroup=function(e){var a=e.name,t=e.value,r=e.children,n=e.onChange,o=e.label,s=d(e,["name","value","children","onChange","label"]),c=l.useMemo((function(){return{name:a,value:t,onChange:n}}),[a,t,n]);return l.createElement(C,{value:c},o?l.createElement(y,Object.assign({label:o},s),r):r)},exports.RadioPanel=I,exports.SegmentedChoice=S,exports.SegmentedControl=function(e){var a=e.children,t=e.label,n=e.name,o=e.onChange,c=e.selectedValue,i=e.size,u=void 0===i?"medium":i,m=e.className,p=d(e,["children","label","name","onChange","selectedValue","size","className"]);return l.createElement(q,{name:n,selectedValue:c,onChange:o,multiple:!1,size:u},l.createElement(s.Label,{as:"div"},t),l.createElement("div",Object.assign({className:r("eds-segmented-control",m)},p),a))},exports.Switch=j,exports.TextArea=P,exports.TextField=F,exports.TravelSwitch=function(e){var a=e.className,t=e.children,r=e.transport,n=e.size,s=d(e,["className","children","transport","size"]),i=function(e){switch(e){case"bus":return{Icon:o.BusIcon,color:c.colors.transport.default.bus,contrast:c.colors.transport.contrast.bus};case"metro":return{Icon:o.SubwayIcon,color:c.colors.transport.default.metro,contrast:c.colors.transport.contrast.metro};case"air":return{Icon:o.PlaneIcon,color:c.colors.transport.default.plane,contrast:c.colors.transport.contrast.plane};case"tram":return{Icon:o.TramIcon,color:c.colors.transport.default.tram,contrast:c.colors.transport.contrast.tram};case"rail":return{Icon:o.TrainIcon,color:c.colors.transport.default.train,contrast:c.colors.transport.contrast.train};case"water":return{Icon:o.FerryIcon,color:c.colors.transport.default.ferry,contrast:c.colors.transport.contrast.ferry};case"bike":return{Icon:o.BicycleIcon,color:c.colors.transport.default.mobility,contrast:c.colors.transport.contrast.mobility};case"scooter":return{Icon:o.ScooterIcon,color:c.colors.transport.default.mobility,contrast:c.colors.transport.contrast.mobility};case"airportLinkBus":return{Icon:o.BusIcon,color:c.colors.transport.default.plane,contrast:c.colors.transport.contrast.plane};case"airportLinkRail":return{Icon:o.TrainIcon,color:c.colors.transport.default.plane,contrast:c.colors.transport.contrast.plane};default:throw Error("Please select a transport for the TravelSwitch.")}}(r);return l.createElement(j,Object.assign({className:a,color:i.color,contrastColor:i.contrast,icon:l.createElement(i.Icon,null),size:n},s),t)},exports.VariantProvider=function(e){var a=e.variant;return l.createElement(v.Provider,{value:void 0===a?null:a},e.children)},exports.hasValue=z,exports.isFilled=R,exports.useInputGroupContext=f,exports.useVariant=g;
|
|
2
2
|
//# sourceMappingURL=form.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.cjs.production.min.js","sources":["../src/FeedbackText.tsx","../src/InputGroupContext.tsx","../src/InputGroupLabel.tsx","../src/VariantProvider.tsx","../src/BaseFormControl.tsx","../src/Checkbox.tsx","../src/Fieldset.tsx","../src/RadioGroupContext.tsx","../src/Radio.tsx","../src/RadioPanel.tsx","../src/Switch.tsx","../src/utils.ts","../src/TextArea.tsx","../src/TextField.tsx","../src/segmented-control/SegmentedContext.tsx","../src/segmented-control/SegmentedChoice.tsx","../src/index.tsx","../src/segmented-control/MultipleSegmentedControl.tsx","../src/RadioGroup.tsx","../src/segmented-control/SegmentedControl.tsx","../src/TravelSwitch.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ValidationCheckIcon,\n ValidationErrorIcon,\n ValidationExclamationIcon,\n} from '@entur/icons';\nimport { SubLabel } from '@entur/typography';\nimport { VariantType } from './VariantProvider';\nimport classNames from 'classnames';\nimport './FeedbackText.scss';\n\nconst AlertIcon: React.FC<{ variant: VariantType }> = ({ variant }) => {\n const iconClass = `eds-feedback-text__icon eds-feedback-text__icon--${variant}`;\n switch (variant) {\n case 'success':\n return <ValidationCheckIcon className={iconClass} />;\n case 'error':\n return <ValidationErrorIcon className={iconClass} />;\n case 'info':\n return null;\n case 'warning':\n return <ValidationExclamationIcon className={iconClass} />;\n default:\n return null;\n }\n};\n\nexport type FeedbackTextProps = {\n /** Teksten som vises */\n children: React.ReactNode;\n /** Skjuler ikonet */\n hideIcon?: boolean;\n /** Feedbackvarianten */\n variant: VariantType;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\nexport const FeedbackText: React.FC<FeedbackTextProps> = ({\n children,\n hideIcon = false,\n variant,\n className,\n ...rest\n}) => {\n return (\n <SubLabel\n className={classNames(\n 'eds-feedback-text',\n { 'eds-feedback-text--info': variant === 'info' },\n className,\n )}\n {...rest}\n >\n {!hideIcon && <AlertIcon variant={variant} />}\n <span className=\"eds-feedback-text__text\">{children}</span>\n </SubLabel>\n );\n};\n","import * as React from 'react';\n\ntype InputGroupContextType = {\n isFilled: boolean;\n setFilled: (e: boolean) => void;\n};\n\nconst InputGroupContext = React.createContext<InputGroupContextType>({\n isFilled: false,\n setFilled: () => null,\n});\n\nexport const InputGroupContextProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [filled, setFilled] = React.useState(false);\n return (\n <InputGroupContext.Provider\n value={{ isFilled: filled, setFilled: setFilled }}\n >\n {children}\n </InputGroupContext.Provider>\n );\n};\n\nexport const useInputGroupContext: () => InputGroupContextType = () =>\n React.useContext(InputGroupContext);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { useInputGroupContext } from './InputGroupContext';\nimport './InputGroupLabel.scss';\n\nexport type InputGroupLabelProps = {\n label?: React.ReactNode;\n required?: boolean;\n labelTooltip?: string;\n labelId: string;\n staticAnimation?: boolean;\n} & React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n>;\n\nexport const InputGroupLabel: React.FC<InputGroupLabelProps> = ({\n label,\n required,\n labelId,\n staticAnimation = false,\n ...rest\n}) => {\n const { isFilled } = useInputGroupContext();\n const filler = staticAnimation || isFilled;\n return (\n <label\n className={classNames(rest.className, {\n 'eds-input-group-label-wrapper--filled': filler,\n })}\n id={labelId}\n {...rest}\n >\n <span\n className={classNames('eds-input-group__label', {\n 'eds-input-group__label--filled': filler,\n })}\n >\n {label} {required && <span>*</span>}\n </span>\n </label>\n );\n};\n","import React from 'react';\n\nexport type VariantType = 'success' | 'error' | 'warning' | 'info';\n\nconst VariantContext = React.createContext<VariantType | null>(null);\n\nexport type VariantProviderProps = {\n variant?: VariantType;\n};\nexport const VariantProvider: React.FC<VariantProviderProps> = ({\n children,\n variant = null,\n}) => {\n return (\n <VariantContext.Provider value={variant}>\n {children}\n </VariantContext.Provider>\n );\n};\n\nexport const useVariant: () => VariantType | null = () => {\n const context = React.useContext(VariantContext);\n return context;\n};\n","import { Tooltip } from '@entur/tooltip';\nimport classNames from 'classnames';\nimport React from 'react';\nimport './BaseFormControl.scss';\nimport { FeedbackText } from './FeedbackText';\nimport { InputGroupContextProvider } from './InputGroupContext';\nimport { InputGroupLabel } from './InputGroupLabel';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { QuestionIcon } from '@entur/icons';\n\nexport type BaseFormControlProps = {\n /** Et skjemaelement med `eds-form-control`-klassen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Sett til true om skjema-elementet skal ha mørkt design i contrast mode */\n dark?: boolean;\n /** Sett til true om skjema-elementet er disabled */\n disabled?: boolean;\n /** Sett til true om skjema-elementet er i read-only modus */\n readOnly?: boolean;\n /** Tekst eller ikon som vises foran skjema-elementet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som vises etter skjema-elementet */\n append?: React.ReactNode;\n /** Valideringsvariant */\n variant?: VariantType;\n /**Størrelsen på skjemaelementet\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Label til inputfeltet */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Illustrerer om inputfeltet er påkrevd eller ikke */\n required?: boolean;\n /** ID som settes på labelen til inputfeltet */\n labelId: string;\n /** Varselmelding, som vil komme under form-komponenten */\n feedback?: string;\n /** Om inputfeltet er fylt med data. Brukes for plassering av label */\n isFilled?: boolean;\n /**Ekstra props som sendes til label */\n labelProps?: { [key: string]: any };\n /** Ekstra styling */\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet */\n disableLabelAnimation?: boolean;\n};\n\nexport const BaseFormControl = React.forwardRef<\n HTMLDivElement,\n BaseFormControlProps\n>(\n (\n {\n children,\n className,\n dark = false,\n disabled = false,\n readOnly = false,\n variant,\n prepend,\n append,\n size = 'medium',\n isFilled,\n label,\n required,\n labelTooltip,\n feedback,\n labelId,\n labelProps,\n style,\n disableLabelAnimation = false,\n ...rest\n },\n ref,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n\n return (\n <InputGroupContextProvider>\n <div\n className={classNames(\n 'eds-form-control-wrapper',\n className,\n `eds-form-control-wrapper--size-${size}`,\n {\n 'eds-form-control-wrapper--success': currentVariant === 'success',\n 'eds-form-control-wrapper--error': currentVariant === 'error',\n 'eds-form-control-wrapper--dark': dark,\n 'eds-form-control-wrapper--disabled': disabled,\n 'eds-form-control-wrapper--readonly': readOnly,\n 'eds-form-control-wrapper--is-filled': isFilled,\n },\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {prepend && (\n <div className=\"eds-form-control__prepend\">{prepend}</div>\n )}\n <InputGroupLabel\n label={label}\n required={required}\n labelId={labelId}\n staticAnimation={disableLabelAnimation}\n {...labelProps}\n />\n {children}\n {append && <div className=\"eds-form-control__append\">{append}</div>}\n {labelTooltip && (\n <div className=\"eds-form-control__append eds-form-control__append--tooltip\">\n <Tooltip content={labelTooltip} placement=\"right\">\n <span className=\"eds-input-group__label-tooltip-icon\">\n <QuestionIcon />\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n {feedback && currentVariant && (\n <FeedbackText variant={currentVariant}>{feedback}</FeedbackText>\n )}\n </InputGroupContextProvider>\n );\n },\n);\n","import React, { CSSProperties } from 'react';\nimport { Paragraph } from '@entur/typography';\nimport cx from 'classnames';\nimport './Checkbox.scss';\n\nexport type CheckboxProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for checkboxen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om Checkbox er avmerket, eller om den */\n checked?: 'indeterminate' | boolean;\n /** Callback for Checkbox */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Om checkboxen er disabled eller ikke\n * @default false\n */\n disabled?: boolean;\n /**Ekstra styling til komponenten */\n style?: CSSProperties;\n /** Reduserer klikkflaten for Checkbox'en\n * @default false\n */\n reduceClickArea?: boolean;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked'>;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n className,\n children,\n style,\n disabled = false,\n reduceClickArea,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n // Trick to allow using a ref locally, while still allowing for ref forwarding\n // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n const innerRef = React.useRef<HTMLInputElement>(null);\n //eslint-disable-next-line\n React.useImperativeHandle(ref, () => innerRef.current!);\n\n const isIndeterminate = checked === 'indeterminate';\n const isControlled = checked !== undefined;\n\n React.useEffect(() => {\n if (innerRef && innerRef.current) {\n innerRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label\n className={cx('eds-checkbox__container', className, {\n 'eds-checkbox--disabled': disabled,\n 'eds-checkbox__container--reduced-click-area': reduceClickArea,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n ref={innerRef}\n checked={isControlled ? checked === true : undefined}\n disabled={disabled}\n {...rest}\n />\n <span\n className={cx('eds-checkbox__icon', {\n 'eds-checkbox__icon--disabled': disabled,\n 'eds-checkbox__icon--reduced-click-area': reduceClickArea,\n })}\n >\n <CheckboxIcon indeterminate={isIndeterminate} />\n </span>\n {children && (\n <Paragraph className=\"eds-checkbox__label\" margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n\nconst CheckboxIcon: React.FC<{ indeterminate: boolean }> = ({\n indeterminate = false,\n}) => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n {indeterminate ? (\n <rect x=\"10\" y=\"25\" width=\"28\" height=\"5\" fill=\"white\" />\n ) : (\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n )}\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\nimport './Fieldset.scss';\n\nexport type FieldsetProps = {\n /** Innholdet i felt-gruppen. */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Labelen til felt-gruppen. */\n label?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const Fieldset: React.FC<FieldsetProps> = ({\n children,\n className,\n label,\n ...rest\n}) => (\n <fieldset className={classNames('eds-fieldset', className)} {...rest}>\n {label && (\n <Label as=\"legend\" className=\"eds-legend\">\n {label}\n </Label>\n )}\n {children}\n </fieldset>\n);\n","import React from 'react';\n\ntype RadioGroupContextProps = {\n name: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value: string | null;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextProps | null>(\n null,\n);\n\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\n\nexport const useRadioGroupContext: () => RadioGroupContextProps = () => {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your RadioButtons in a RadioGroup component',\n );\n }\n return context;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './Radio.scss';\n\nexport type RadioProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label til radio-button. Vises ved høyre side. */\n children?: React.ReactNode;\n /** Verdien til radioknappen */\n value: string;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n { className, children, value, disabled, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = cx(className, 'eds-form-component--radio__radio', {\n 'eds-form-component--radio__radio--disabled': disabled,\n });\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n return (\n <label className=\"eds-form-component--radio__container\">\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n <span className={classList}>\n <span className=\"eds-form-component--radio__circle\"></span>\n </span>\n {children && (\n <Paragraph\n margin=\"none\"\n as=\"span\"\n className=\"eds-form-component--radio__label\"\n >\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './RadioPanel.scss';\nimport { useRandomId } from '@entur/utils';\n\nexport type RadioPanelProps = {\n /** Verdien til RadioPanel */\n value: string;\n /** Hovedtittelen til RadioPanel */\n title: React.ReactNode;\n /** Ektstra label som står høyrestilt mot Checkboxen */\n secondaryLabel?: React.ReactNode;\n /** Ekstra informasjon som legges nederst i RadioPanel */\n children?: React.ReactNode;\n /** Størrelse på RadioPanel\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /**Skjuler checkbox-en i RadioPanel\n * @default false\n */\n hideCheckbox?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Om RadioPanel er deaktivert eller ikke\n * @default false\n */\n disabled?: boolean;\n /** */\n style?: React.CSSProperties;\n} & Omit<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >,\n 'title' | 'size'\n>;\n\nexport const RadioPanel = React.forwardRef<HTMLInputElement, RadioPanelProps>(\n (\n {\n className,\n children,\n value,\n title,\n secondaryLabel,\n size = 'medium',\n hideCheckbox = false,\n style,\n id,\n disabled = false,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = classNames(\n className,\n 'eds-radio-panel__container',\n `eds-radio-panel--${size}`,\n { 'eds-radio-panel--disabled': disabled },\n );\n\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n const randomId = useRandomId('eds-radiopanel');\n const radioPanelId = id || randomId;\n return (\n <label className=\"eds-radio-panel__wrapper\" htmlFor={radioPanelId}>\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n id={radioPanelId}\n disabled={disabled}\n {...rest}\n />\n <div className={classList} style={style}>\n <div className=\"eds-radio-panel__title-wrapper\">\n <div className=\"eds-radio-panel__title\">{title}</div>\n <div className=\"eds-radio-panel__label\">\n {secondaryLabel && <span>{secondaryLabel}</span>}\n {!(disabled || hideCheckbox) && (\n <span className=\"eds-radio-panel__check\">\n <RadioPanelCheck />\n </span>\n )}\n </div>\n </div>\n {children && (\n <div className=\"eds-radio-panel__additional-content\">\n {children}\n </div>\n )}\n </div>\n </label>\n );\n },\n);\n\nconst RadioPanelCheck: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"22px\"\n height=\"16px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { colors } from '@entur/tokens';\nimport './Switch.scss';\n\nexport type SwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for Switchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Ikonet som skal stå inne i sirkelen på Switchen */\n icon?: React.ReactNode;\n /** Farge som settes på ikon og bakgrunnen når Switchen er \"checked\". Default er mint-contrast\n * @default colors.validation .mintContrast\n */\n color?: string;\n /** Lik som color, men når Switchen står i en kontrast seksjon. Default er samme farge som color. */\n contrastColor?: string;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n className,\n children,\n icon,\n color = colors.validation.mintContrast,\n contrastColor,\n size = 'medium',\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const chosenContrastColor = (contrastColor && contrastColor) || color;\n return (\n <label\n className={classNames('eds-switch', className)}\n style={{ ...rest.style }}\n >\n <input type=\"checkbox\" ref={ref} {...rest} />\n <span\n className={classNames('eds-switch__switch', {\n 'eds-switch__switch--large': size === 'large',\n })}\n style={\n {\n '--eds-switch-color': color,\n '--eds-switch-contrast-color': chosenContrastColor,\n } as React.CSSProperties\n }\n >\n <span className=\"eds-switch__circle\">{icon && icon}</span>\n </span>\n {children && (\n <Paragraph margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","export function hasValue(value: any) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj: any, SSR = false) {\n return (\n obj &&\n ((hasValue(obj.value) && obj.value !== '') ||\n (SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''))\n );\n}\n","import React from 'react';\nimport { VariantType } from './VariantProvider';\nimport { BaseFormControl } from './BaseFormControl';\nimport './TextArea.scss';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useRandomId, useOnMount } from '@entur/utils';\nimport { isFilled } from './utils';\n\nexport type TextAreaProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Deaktiverer tekstområdet */\n disabled?: boolean;\n /** Setter tekstområdet i read-only modus */\n readOnly?: boolean;\n /** Label over TextArea */\n label: string;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextArea */\n feedback?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n label,\n feedback,\n labelTooltip,\n onChange,\n disableLabelAnimation,\n ...rest\n },\n ref: React.Ref<HTMLTextAreaElement>,\n ) => {\n const textAreaId = useRandomId('eds-textarea');\n return (\n <BaseFormControl\n className={className}\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n style={style}\n label={label}\n labelId={textAreaId}\n feedback={feedback}\n labelTooltip={labelTooltip}\n labelProps={{ className: 'eds-textarea__label' }}\n disableLabelAnimation={disableLabelAnimation}\n >\n <TextAreaBase\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n aria-labelledby={textAreaId}\n onChange={onChange}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextAreaBaseProps = {\n readOnly?: boolean;\n disabled?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst TextAreaBase = React.forwardRef<HTMLTextAreaElement, TextAreaBaseProps>(\n ({ readOnly, disabled, onChange, value, ...rest }, ref) => {\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <textarea\n className=\"eds-form-control eds-textarea\"\n ref={ref}\n readOnly={readOnly}\n disabled={disabled}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n","import { useRandomId, useOnMount } from '@entur/utils';\nimport React from 'react';\nimport { BaseFormControl } from './BaseFormControl';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { isFilled } from './utils';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './TextField.scss';\n\nexport type TextFieldProps = {\n /** Tekst eller ikon som kommer før inputfeltet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som kommer etter inputfeltet */\n append?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TextField */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextField */\n feedback?: string;\n /** Hvilken valideringsfarge som vises */\n variant?: VariantType;\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n /** Størrelsen på TextField\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra props som sendes til label-elementet */\n labelProps?: React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n >;\n /** Om man skal ha muliget for å nullstille TextField. Viser lukkekryss hvis feltet er fylt.\n * @default false\n */\n clearable?: boolean;\n /** Callback for clearable */\n onClear?: () => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'label'>;\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n prepend,\n append,\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n size = 'medium',\n label,\n required,\n labelTooltip,\n feedback,\n onChange,\n disableLabelAnimation,\n labelProps,\n clearable = false,\n onClear,\n value,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const textFieldId =\n labelProps && labelProps.id\n ? labelProps.id\n : useRandomId('eds-textfield');\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n prepend={prepend}\n append={\n clearable ? (\n <ClearButton onClear={onClear} hasValue={value ? true : false} />\n ) : (\n append\n )\n }\n className={className}\n style={style}\n size={size}\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n labelId={textFieldId}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n labelProps={labelProps}\n >\n <TextFieldBase\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n aria-labelledby={textFieldId}\n onChange={onChange}\n value={value}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextFieldBaseProps = {\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst TextFieldBase = React.forwardRef<HTMLInputElement, TextFieldBaseProps>(\n (\n { disabled, readOnly, placeholder, onChange, value, variant, ...rest },\n forwardRef,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <input\n aria-invalid={currentVariant === 'error'}\n className=\"eds-form-control\"\n disabled={disabled}\n readOnly={readOnly}\n ref={forwardRef}\n placeholder={placeholder}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n\nconst ClearButton: React.FC<{\n hasValue?: boolean;\n onClear?: () => void;\n [key: string]: any;\n}> = ({ onClear, hasValue, ...props }) => {\n return (\n <div className=\"eds-textfield__clear-button-wrapper\">\n {hasValue && <div className=\"eds-textfield__divider\"></div>}\n {hasValue && (\n <button\n className=\"eds-textfield__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={onClear}\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useRandomId } from '@entur/utils';\n\nexport type SelectedValues = { [key: string]: boolean };\nexport type SelectedValue = string | null;\nexport type SegmentedContextProps =\n | {\n name: string;\n onChange: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name: string;\n onChange: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nconst SegmentedContext = React.createContext<SegmentedContextProps | null>(\n null,\n);\n\nexport type SegmentedProviderProps =\n | {\n name?: string;\n onChange?: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name?: string;\n onChange?: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nexport const SegmentedProvider: React.FC<SegmentedProviderProps> = ({\n name,\n onChange = () => {},\n selectedValue,\n multiple,\n size,\n ...rest\n}) => {\n const generatedName = useRandomId('eds-segmented-control');\n const contextValue = React.useMemo(\n () => ({\n name: name || generatedName,\n onChange,\n multiple,\n selectedValue,\n size,\n }),\n [generatedName, multiple, name, onChange, selectedValue, size],\n ) as SegmentedContextProps;\n return <SegmentedContext.Provider value={contextValue} {...rest} />;\n};\n\nexport const useSegmentedContext = () => {\n const context = React.useContext(SegmentedContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl',\n );\n }\n return context;\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n useSegmentedContext,\n SelectedValues,\n SelectedValue,\n} from './SegmentedContext';\nimport './SegmentedChoice.scss';\n\nexport type SegmentedChoiceProps = {\n /** Verdien til valget */\n value: string;\n /** Innhold som beskriver valget */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback som kalles når komponenten endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nexport const SegmentedChoice = React.forwardRef<\n HTMLInputElement,\n SegmentedChoiceProps\n>(\n (\n { children, className, style, value, name, onChange = () => {}, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const {\n name: commonName,\n selectedValue,\n onChange: commonOnChange,\n multiple,\n size,\n } = useSegmentedContext();\n\n const isChecked = multiple\n ? (selectedValue as SelectedValues)[value]\n : (selectedValue as SelectedValue) === value;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e);\n if (multiple) {\n commonOnChange({\n ...(selectedValue as SelectedValues),\n [value]: e.target.checked,\n } as any);\n } else if (e.target.checked) {\n commonOnChange(value as any);\n }\n };\n\n return (\n <label\n className={classNames('eds-segmented-choice', className, {\n 'eds-segmented-choide--large': size === 'large',\n })}\n style={style}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n name={name || commonName}\n checked={isChecked}\n value={value}\n onChange={handleChange}\n ref={ref}\n {...rest}\n />\n <div\n className={classNames('eds-base-segmented', {\n 'eds-base-segmented--large': size === 'large',\n })}\n >\n {children}\n </div>\n </label>\n );\n },\n);\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('form', 'icons', 'typography');\n\nexport * from './BaseFormControl';\nexport * from './Checkbox';\nexport * from './FeedbackText';\nexport * from './Fieldset';\nexport * from './InputGroupLabel';\nexport * from './InputGroupContext';\nexport * from './Radio';\nexport * from './RadioGroup';\nexport * from './RadioPanel';\nexport * from './Switch';\nexport * from './TravelSwitch';\nexport * from './TextArea';\nexport * from './TextField';\nexport * from './VariantProvider';\nexport * from './utils';\nexport * from './segmented-control/SegmentedChoice';\nexport * from './segmented-control/SegmentedControl';\nexport * from './segmented-control/MultipleSegmentedControl';\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValues } from './SegmentedContext';\nimport './SegmentedControl.scss';\n\nexport type MultipleSegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den eller de valgte verdiene */\n selectedValue: SelectedValues;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValues) => void;\n [key: string]: any;\n};\n\n/**This component is not used by anyone, and is therefore deprecated\n * @deprecated\n */\nexport const MultipleSegmentedControl: React.FC<MultipleSegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={true}\n size=\"medium\"\n >\n <Label as=\"div\">{label}</Label>\n <div className=\"eds-segmented-control\" {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { RadioGroupContextProvider } from './RadioGroupContext';\nimport { Fieldset } from './Fieldset';\n\nexport type RadioGroupProps = {\n /** Navnet til radiogruppen. */\n name: string;\n /** Overskrift over radiogruppen */\n label?: string;\n /** Verdien til den valgte radioknappen */\n value: string | null;\n /** Radioknappene sendes inn som children */\n children: React.ReactNode;\n /** En callback som blir kalles hver gang en radioknapp klikkes på */\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n [key: string]: any;\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n children,\n onChange,\n label,\n ...rest\n}) => {\n const contextValue = React.useMemo(() => ({ name, value, onChange }), [\n name,\n value,\n onChange,\n ]);\n return (\n <RadioGroupContextProvider value={contextValue}>\n {label ? (\n <Fieldset label={label} {...rest}>\n {children}\n </Fieldset>\n ) : (\n children\n )}\n </RadioGroupContextProvider>\n );\n};\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValue } from './SegmentedContext';\nimport './SegmentedControl.scss';\nimport classNames from 'classnames';\n\nexport type SegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den valgte verdien */\n selectedValue: SelectedValue;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValue) => void;\n /** Størrelsen på SegmentedChoice-komponentene */\n size?: 'medium' | 'large';\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\n\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n size = 'medium',\n className,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={false}\n size={size}\n >\n <Label as=\"div\">{label}</Label>\n <div className={classNames('eds-segmented-control', className)} {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { Switch } from './Switch';\nimport { colors } from '@entur/tokens';\nimport {\n BusIcon,\n FerryIcon,\n TramIcon,\n PlaneIcon,\n TrainIcon,\n BicycleIcon,\n ScooterIcon,\n SubwayIcon,\n} from '@entur/icons';\nimport './Switch.scss';\n\nexport type TravelSwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Label for TravelSwitchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Hvilken type reise som skal vises rikig ikon og farge for */\n transport: // When adding a new submode, check https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/825393529/Norwegian+submodes+and+their+definitions for names\n | 'bus'\n | 'metro'\n | 'air'\n | 'tram'\n | 'rail'\n | 'water'\n | 'bike'\n | 'airportLinkBus'\n | 'airportLinkRail'\n | 'scooter';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const TravelSwitch: React.FC<TravelSwitchProps> = ({\n className,\n children,\n transport,\n size,\n ...rest\n}) => {\n const { color, contrast, Icon } = modeCalc(transport);\n return (\n <Switch\n className={className}\n color={color}\n contrastColor={contrast}\n icon={<Icon />}\n size={size}\n {...rest}\n >\n {children}\n </Switch>\n );\n};\n\nfunction modeCalc(mode: string) {\n switch (mode) {\n case 'bus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.bus,\n contrast: colors.transport.contrast.bus,\n };\n case 'metro':\n return {\n Icon: SubwayIcon,\n color: colors.transport.default.metro,\n contrast: colors.transport.contrast.metro,\n };\n case 'air':\n return {\n Icon: PlaneIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'tram':\n return {\n Icon: TramIcon,\n color: colors.transport.default.tram,\n contrast: colors.transport.contrast.tram,\n };\n case 'rail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.train,\n contrast: colors.transport.contrast.train,\n };\n case 'water':\n return {\n Icon: FerryIcon,\n color: colors.transport.default.ferry,\n contrast: colors.transport.contrast.ferry,\n };\n case 'bike':\n return {\n Icon: BicycleIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'scooter':\n return {\n Icon: ScooterIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'airportLinkBus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'airportLinkRail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n default:\n throw Error('Please select a transport for the TravelSwitch.');\n }\n}\n"],"names":["AlertIcon","variant","iconClass","React","ValidationCheckIcon","className","ValidationErrorIcon","ValidationExclamationIcon","FeedbackText","children","hideIcon","rest","SubLabel","classNames","InputGroupContext","isFilled","setFilled","InputGroupContextProvider","Provider","value","useInputGroupContext","InputGroupLabel","label","required","labelId","staticAnimation","filler","id","VariantContext","createContext","useVariant","useContext","BaseFormControl","forwardRef","ref","dark","disabled","readOnly","prepend","append","size","labelTooltip","feedback","labelProps","style","disableLabelAnimation","contextVariant","currentVariant","Tooltip","content","placement","QuestionIcon","Checkbox","checked","reduceClickArea","innerRef","useRef","useImperativeHandle","current","isIndeterminate","isControlled","undefined","useEffect","indeterminate","cx","type","CheckboxIcon","Paragraph","margin","as","width","height","viewBox","x","y","fill","d","Fieldset","Label","RadioGroupContext","RadioGroupContextProvider","useRadioGroupContext","context","Error","Radio","classList","name","onChange","RadioPanel","title","secondaryLabel","hideCheckbox","selectedValue","randomId","useRandomId","radioPanelId","htmlFor","RadioPanelCheck","Switch","icon","color","colors","validation","mintContrast","contrastColor","chosenContrastColor","hasValue","Array","isArray","length","obj","SSR","defaultValue","TextArea","textAreaId","TextAreaBase","isInputFilled","setFiller","useOnMount","event","target","TextField","clearable","onClear","textFieldId","ClearButton","TextFieldBase","placeholder","props","tabIndex","onClick","CloseSmallIcon","SegmentedContext","SegmentedProvider","multiple","generatedName","contextValue","useMemo","SegmentedChoice","useSegmentedContext","commonName","commonOnChange","isChecked","e","warnAboutMissingStyles","transport","mode","Icon","BusIcon","bus","contrast","SubwayIcon","metro","PlaneIcon","plane","TramIcon","tram","TrainIcon","train","FerryIcon","ferry","BicycleIcon","mobility","ScooterIcon","modeCalc"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.cjs.production.min.js","sources":["../src/FeedbackText.tsx","../src/InputGroupContext.tsx","../src/InputGroupLabel.tsx","../src/VariantProvider.tsx","../src/BaseFormControl.tsx","../src/Checkbox.tsx","../src/Fieldset.tsx","../src/RadioGroupContext.tsx","../src/Radio.tsx","../src/RadioPanel.tsx","../src/Switch.tsx","../src/utils.ts","../src/TextArea.tsx","../src/TextField.tsx","../src/segmented-control/SegmentedContext.tsx","../src/segmented-control/SegmentedChoice.tsx","../src/index.tsx","../src/segmented-control/MultipleSegmentedControl.tsx","../src/RadioGroup.tsx","../src/segmented-control/SegmentedControl.tsx","../src/TravelSwitch.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ValidationCheckIcon,\n ValidationErrorIcon,\n ValidationExclamationIcon,\n} from '@entur/icons';\nimport { SubLabel } from '@entur/typography';\nimport { VariantType } from './VariantProvider';\nimport classNames from 'classnames';\nimport './FeedbackText.scss';\n\nconst AlertIcon: React.FC<{ variant: VariantType }> = ({ variant }) => {\n const iconClass = `eds-feedback-text__icon eds-feedback-text__icon--${variant}`;\n switch (variant) {\n case 'success':\n return <ValidationCheckIcon className={iconClass} />;\n case 'error':\n return <ValidationErrorIcon className={iconClass} />;\n case 'info':\n return null;\n case 'warning':\n return <ValidationExclamationIcon className={iconClass} />;\n default:\n return null;\n }\n};\n\nexport type FeedbackTextProps = {\n /** Teksten som vises */\n children: React.ReactNode;\n /** Skjuler ikonet */\n hideIcon?: boolean;\n /** Feedbackvarianten */\n variant: VariantType;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\nexport const FeedbackText: React.FC<FeedbackTextProps> = ({\n children,\n hideIcon = false,\n variant,\n className,\n ...rest\n}) => {\n return (\n <SubLabel\n className={classNames(\n 'eds-feedback-text',\n { 'eds-feedback-text--info': variant === 'info' },\n className,\n )}\n {...rest}\n >\n {!hideIcon && <AlertIcon variant={variant} />}\n <span className=\"eds-feedback-text__text\">{children}</span>\n </SubLabel>\n );\n};\n","import * as React from 'react';\n\ntype InputGroupContextType = {\n isFilled: boolean;\n setFilled: (e: boolean) => void;\n};\n\nconst InputGroupContext = React.createContext<InputGroupContextType>({\n isFilled: false,\n setFilled: () => null,\n});\n\nexport const InputGroupContextProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [filled, setFilled] = React.useState(false);\n return (\n <InputGroupContext.Provider\n value={{ isFilled: filled, setFilled: setFilled }}\n >\n {children}\n </InputGroupContext.Provider>\n );\n};\n\nexport const useInputGroupContext: () => InputGroupContextType = () =>\n React.useContext(InputGroupContext);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { useInputGroupContext } from './InputGroupContext';\nimport './InputGroupLabel.scss';\n\nexport type InputGroupLabelProps = {\n label?: React.ReactNode;\n required?: boolean;\n labelTooltip?: string;\n labelId: string;\n staticAnimation?: boolean;\n} & React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n>;\n\nexport const InputGroupLabel: React.FC<InputGroupLabelProps> = ({\n label,\n required,\n labelId,\n staticAnimation = false,\n ...rest\n}) => {\n const { isFilled } = useInputGroupContext();\n const filler = staticAnimation || isFilled;\n return (\n <label\n className={classNames(rest.className, {\n 'eds-input-group-label-wrapper--filled': filler,\n })}\n id={labelId}\n {...rest}\n >\n <span\n className={classNames('eds-input-group__label', {\n 'eds-input-group__label--filled': filler,\n })}\n >\n {label} {required && <span>*</span>}\n </span>\n </label>\n );\n};\n","import React from 'react';\n\nexport type VariantType = 'success' | 'error' | 'warning' | 'info';\n\nconst VariantContext = React.createContext<VariantType | null>(null);\n\nexport type VariantProviderProps = {\n variant?: VariantType;\n};\nexport const VariantProvider: React.FC<VariantProviderProps> = ({\n children,\n variant = null,\n}) => {\n return (\n <VariantContext.Provider value={variant}>\n {children}\n </VariantContext.Provider>\n );\n};\n\nexport const useVariant: () => VariantType | null = () => {\n const context = React.useContext(VariantContext);\n return context;\n};\n","import { Tooltip } from '@entur/tooltip';\nimport classNames from 'classnames';\nimport React from 'react';\nimport './BaseFormControl.scss';\nimport { FeedbackText } from './FeedbackText';\nimport { InputGroupContextProvider } from './InputGroupContext';\nimport { InputGroupLabel } from './InputGroupLabel';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { QuestionIcon } from '@entur/icons';\n\nexport type BaseFormControlProps = {\n /** Et skjemaelement med `eds-form-control`-klassen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Sett til true om skjema-elementet skal ha mørkt design i contrast mode */\n dark?: boolean;\n /** Sett til true om skjema-elementet er disabled */\n disabled?: boolean;\n /** Sett til true om skjema-elementet er i read-only modus */\n readOnly?: boolean;\n /** Tekst eller ikon som vises foran skjema-elementet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som vises etter skjema-elementet */\n append?: React.ReactNode;\n /** Valideringsvariant */\n variant?: VariantType;\n /**Størrelsen på skjemaelementet\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Label til inputfeltet */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Illustrerer om inputfeltet er påkrevd eller ikke */\n required?: boolean;\n /** ID som settes på labelen til inputfeltet */\n labelId: string;\n /** Varselmelding, som vil komme under form-komponenten */\n feedback?: string;\n /** Om inputfeltet er fylt med data. Brukes for plassering av label */\n isFilled?: boolean;\n /**Ekstra props som sendes til label */\n labelProps?: { [key: string]: any };\n /** Ekstra styling */\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet */\n disableLabelAnimation?: boolean;\n};\n\nexport const BaseFormControl = React.forwardRef<\n HTMLDivElement,\n BaseFormControlProps\n>(\n (\n {\n children,\n className,\n dark = false,\n disabled = false,\n readOnly = false,\n variant,\n prepend,\n append,\n size = 'medium',\n isFilled,\n label,\n required,\n labelTooltip,\n feedback,\n labelId,\n labelProps,\n style,\n disableLabelAnimation = false,\n ...rest\n },\n ref,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n\n return (\n <InputGroupContextProvider>\n <div\n className={classNames(\n 'eds-form-control-wrapper',\n className,\n `eds-form-control-wrapper--size-${size}`,\n {\n 'eds-form-control-wrapper--success': currentVariant === 'success',\n 'eds-form-control-wrapper--error': currentVariant === 'error',\n 'eds-form-control-wrapper--dark': dark,\n 'eds-form-control-wrapper--disabled': disabled,\n 'eds-form-control-wrapper--readonly': readOnly,\n 'eds-form-control-wrapper--is-filled': isFilled,\n },\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {prepend && (\n <div className=\"eds-form-control__prepend\">{prepend}</div>\n )}\n <InputGroupLabel\n label={label}\n required={required}\n labelId={labelId}\n staticAnimation={disableLabelAnimation}\n {...labelProps}\n />\n {children}\n {append && <div className=\"eds-form-control__append\">{append}</div>}\n {labelTooltip && (\n <div className=\"eds-form-control__append eds-form-control__append--tooltip\">\n <Tooltip content={labelTooltip} placement=\"right\">\n <span className=\"eds-input-group__label-tooltip-icon\">\n <QuestionIcon />\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n {feedback && currentVariant && (\n <FeedbackText variant={currentVariant}>{feedback}</FeedbackText>\n )}\n </InputGroupContextProvider>\n );\n },\n);\n","import React, { CSSProperties } from 'react';\nimport { Paragraph } from '@entur/typography';\nimport cx from 'classnames';\nimport './Checkbox.scss';\n\nexport type CheckboxProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for checkboxen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om Checkbox er avmerket, eller om den */\n checked?: 'indeterminate' | boolean;\n /** Callback for Checkbox */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Om checkboxen er disabled eller ikke\n * @default false\n */\n disabled?: boolean;\n /**Ekstra styling til komponenten */\n style?: CSSProperties;\n /** Reduserer klikkflaten for Checkbox'en\n * @default false\n */\n reduceClickArea?: boolean;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked'>;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n className,\n children,\n style,\n disabled = false,\n reduceClickArea,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n // Trick to allow using a ref locally, while still allowing for ref forwarding\n // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n const innerRef = React.useRef<HTMLInputElement>(null);\n //eslint-disable-next-line\n React.useImperativeHandle(ref, () => innerRef.current!);\n\n const isIndeterminate = checked === 'indeterminate';\n const isControlled = checked !== undefined;\n\n React.useEffect(() => {\n if (innerRef && innerRef.current) {\n innerRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label\n className={cx('eds-checkbox__container', className, {\n 'eds-checkbox--disabled': disabled,\n 'eds-checkbox__container--reduced-click-area': reduceClickArea,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n ref={innerRef}\n checked={isControlled ? checked === true : undefined}\n disabled={disabled}\n {...rest}\n />\n <span\n className={cx('eds-checkbox__icon', {\n 'eds-checkbox__icon--disabled': disabled,\n 'eds-checkbox__icon--reduced-click-area': reduceClickArea,\n })}\n >\n <CheckboxIcon indeterminate={isIndeterminate} />\n </span>\n {children && (\n <Paragraph className=\"eds-checkbox__label\" margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n\nconst CheckboxIcon: React.FC<{ indeterminate: boolean }> = ({\n indeterminate = false,\n}) => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n {indeterminate ? (\n <rect x=\"10\" y=\"25\" width=\"28\" height=\"5\" fill=\"white\" />\n ) : (\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n )}\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\nimport './Fieldset.scss';\n\nexport type FieldsetProps = {\n /** Innholdet i felt-gruppen. */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Labelen til felt-gruppen. */\n label?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const Fieldset: React.FC<FieldsetProps> = ({\n children,\n className,\n label,\n ...rest\n}) => (\n <fieldset className={classNames('eds-fieldset', className)} {...rest}>\n {label && (\n <Label as=\"legend\" className=\"eds-legend\">\n {label}\n </Label>\n )}\n {children}\n </fieldset>\n);\n","import React from 'react';\n\ntype RadioGroupContextProps = {\n name: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value: string | null;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextProps | null>(\n null,\n);\n\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\n\nexport const useRadioGroupContext: () => RadioGroupContextProps = () => {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your RadioButtons in a RadioGroup component',\n );\n }\n return context;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './Radio.scss';\n\nexport type RadioProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label til radio-button. Vises ved høyre side. */\n children?: React.ReactNode;\n /** Verdien til radioknappen */\n value: string;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n { className, children, value, disabled, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = cx(className, 'eds-form-component--radio__radio', {\n 'eds-form-component--radio__radio--disabled': disabled,\n });\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n return (\n <label className=\"eds-form-component--radio__container\">\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n <span className={classList}>\n <span className=\"eds-form-component--radio__circle\"></span>\n </span>\n {children && (\n <Paragraph\n margin=\"none\"\n as=\"span\"\n className=\"eds-form-component--radio__label\"\n >\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './RadioPanel.scss';\nimport { useRandomId } from '@entur/utils';\n\nexport type RadioPanelProps = {\n /** Verdien til RadioPanel */\n value: string;\n /** Hovedtittelen til RadioPanel */\n title: React.ReactNode;\n /** Ektstra label som står høyrestilt mot Checkboxen */\n secondaryLabel?: React.ReactNode;\n /** Ekstra informasjon som legges nederst i RadioPanel */\n children?: React.ReactNode;\n /** Størrelse på RadioPanel\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /**Skjuler checkbox-en i RadioPanel\n * @default false\n */\n hideCheckbox?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Om RadioPanel er deaktivert eller ikke\n * @default false\n */\n disabled?: boolean;\n /** */\n style?: React.CSSProperties;\n} & Omit<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >,\n 'title' | 'size'\n>;\n\nexport const RadioPanel = React.forwardRef<HTMLInputElement, RadioPanelProps>(\n (\n {\n className,\n children,\n value,\n title,\n secondaryLabel,\n size = 'medium',\n hideCheckbox = false,\n style,\n id,\n disabled = false,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = classNames(\n className,\n 'eds-radio-panel__container',\n `eds-radio-panel--${size}`,\n { 'eds-radio-panel--disabled': disabled },\n );\n\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n const randomId = useRandomId('eds-radiopanel');\n const radioPanelId = id || randomId;\n return (\n <label className=\"eds-radio-panel__wrapper\" htmlFor={radioPanelId}>\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n id={radioPanelId}\n disabled={disabled}\n {...rest}\n />\n <div className={classList} style={style}>\n <div className=\"eds-radio-panel__title-wrapper\">\n <div className=\"eds-radio-panel__title\">{title}</div>\n <div className=\"eds-radio-panel__label\">\n {secondaryLabel && <span>{secondaryLabel}</span>}\n {!(disabled || hideCheckbox) && (\n <span className=\"eds-radio-panel__check\">\n <RadioPanelCheck />\n </span>\n )}\n </div>\n </div>\n {children && (\n <div className=\"eds-radio-panel__additional-content\">\n {children}\n </div>\n )}\n </div>\n </label>\n );\n },\n);\n\nconst RadioPanelCheck: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"22px\"\n height=\"16px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { colors } from '@entur/tokens';\nimport './Switch.scss';\n\nexport type SwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for Switchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Ikonet som skal stå inne i sirkelen på Switchen */\n icon?: React.ReactNode;\n /** Farge som settes på ikon og bakgrunnen når Switchen er \"checked\". Default er mint-contrast\n * @default colors.validation .mintContrast\n */\n color?: string;\n /** Lik som color, men når Switchen står i en kontrast seksjon. Default er samme farge som color. */\n contrastColor?: string;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n className,\n children,\n icon,\n color = colors.validation.mintContrast,\n contrastColor,\n size = 'medium',\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const chosenContrastColor = (contrastColor && contrastColor) || color;\n return (\n <label\n className={classNames('eds-switch', className)}\n style={{ ...rest.style }}\n >\n <input type=\"checkbox\" ref={ref} {...rest} />\n <span\n className={classNames('eds-switch__switch', {\n 'eds-switch__switch--large': size === 'large',\n })}\n style={\n {\n '--eds-switch-color': color,\n '--eds-switch-contrast-color': chosenContrastColor,\n } as React.CSSProperties\n }\n >\n <span className=\"eds-switch__circle\">{icon && icon}</span>\n </span>\n {children && (\n <Paragraph margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","export function hasValue(value: any) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj: any, SSR = false) {\n return (\n obj &&\n ((hasValue(obj.value) && obj.value !== '') ||\n (SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''))\n );\n}\n","import React from 'react';\nimport { VariantType } from './VariantProvider';\nimport { BaseFormControl } from './BaseFormControl';\nimport './TextArea.scss';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useRandomId, useOnMount } from '@entur/utils';\nimport { isFilled } from './utils';\n\nexport type TextAreaProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Deaktiverer tekstområdet */\n disabled?: boolean;\n /** Setter tekstområdet i read-only modus */\n readOnly?: boolean;\n /** Label over TextArea */\n label: string;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextArea */\n feedback?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n label,\n feedback,\n labelTooltip,\n onChange,\n disableLabelAnimation,\n ...rest\n },\n ref: React.Ref<HTMLTextAreaElement>,\n ) => {\n const textAreaId = useRandomId('eds-textarea');\n return (\n <BaseFormControl\n className={className}\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n style={style}\n label={label}\n labelId={textAreaId}\n feedback={feedback}\n labelTooltip={labelTooltip}\n labelProps={{ className: 'eds-textarea__label' }}\n disableLabelAnimation={disableLabelAnimation}\n >\n <TextAreaBase\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n aria-labelledby={textAreaId}\n onChange={onChange}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextAreaBaseProps = {\n readOnly?: boolean;\n disabled?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst TextAreaBase = React.forwardRef<HTMLTextAreaElement, TextAreaBaseProps>(\n ({ readOnly, disabled, onChange, value, ...rest }, ref) => {\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <textarea\n className=\"eds-form-control eds-textarea\"\n ref={ref}\n readOnly={readOnly}\n disabled={disabled}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n","import { useRandomId, useOnMount } from '@entur/utils';\nimport React from 'react';\nimport { BaseFormControl } from './BaseFormControl';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { isFilled } from './utils';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './TextField.scss';\n\nexport type TextFieldProps = {\n /** Tekst eller ikon som kommer før inputfeltet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som kommer etter inputfeltet */\n append?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TextField */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextField */\n feedback?: string;\n /** Hvilken valideringsfarge som vises */\n variant?: VariantType;\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n /** Størrelsen på TextField\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra props som sendes til label-elementet */\n labelProps?: React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n >;\n /** Om man skal ha muliget for å nullstille TextField. Viser lukkekryss hvis feltet er fylt.\n * @default false\n */\n clearable?: boolean;\n /** Callback for clearable */\n onClear?: () => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'label'>;\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n prepend,\n append,\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n size = 'medium',\n label,\n required,\n labelTooltip,\n feedback,\n onChange,\n disableLabelAnimation,\n labelProps,\n clearable = false,\n onClear,\n value,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const textFieldId =\n labelProps && labelProps.id\n ? labelProps.id\n : useRandomId('eds-textfield');\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n prepend={prepend}\n append={clearable ? <ClearButton onClear={onClear} /> : append}\n className={className}\n style={style}\n size={size}\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n labelId={textFieldId}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n labelProps={labelProps}\n >\n <TextFieldBase\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n aria-labelledby={textFieldId}\n onChange={onChange}\n value={value}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextFieldBaseProps = {\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst TextFieldBase = React.forwardRef<HTMLInputElement, TextFieldBaseProps>(\n (\n { disabled, readOnly, placeholder, onChange, value, variant, ...rest },\n forwardRef,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <input\n aria-invalid={currentVariant === 'error'}\n className=\"eds-form-control\"\n disabled={disabled}\n readOnly={readOnly}\n ref={forwardRef}\n placeholder={placeholder}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n\nconst ClearButton: React.FC<{\n onClear?: () => void;\n [key: string]: any;\n}> = ({ onClear, ...props }) => {\n const { isFilled: hasValue } = useInputGroupContext();\n return (\n <div className=\"eds-textfield__clear-button-wrapper\">\n {hasValue && <div className=\"eds-textfield__divider\"></div>}\n {hasValue && (\n <button\n className=\"eds-textfield__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={onClear}\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useRandomId } from '@entur/utils';\n\nexport type SelectedValues = { [key: string]: boolean };\nexport type SelectedValue = string | null;\nexport type SegmentedContextProps =\n | {\n name: string;\n onChange: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name: string;\n onChange: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nconst SegmentedContext = React.createContext<SegmentedContextProps | null>(\n null,\n);\n\nexport type SegmentedProviderProps =\n | {\n name?: string;\n onChange?: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name?: string;\n onChange?: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nexport const SegmentedProvider: React.FC<SegmentedProviderProps> = ({\n name,\n onChange = () => {},\n selectedValue,\n multiple,\n size,\n ...rest\n}) => {\n const generatedName = useRandomId('eds-segmented-control');\n const contextValue = React.useMemo(\n () => ({\n name: name || generatedName,\n onChange,\n multiple,\n selectedValue,\n size,\n }),\n [generatedName, multiple, name, onChange, selectedValue, size],\n ) as SegmentedContextProps;\n return <SegmentedContext.Provider value={contextValue} {...rest} />;\n};\n\nexport const useSegmentedContext = () => {\n const context = React.useContext(SegmentedContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl',\n );\n }\n return context;\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n useSegmentedContext,\n SelectedValues,\n SelectedValue,\n} from './SegmentedContext';\nimport './SegmentedChoice.scss';\n\nexport type SegmentedChoiceProps = {\n /** Verdien til valget */\n value: string;\n /** Innhold som beskriver valget */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback som kalles når komponenten endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nexport const SegmentedChoice = React.forwardRef<\n HTMLInputElement,\n SegmentedChoiceProps\n>(\n (\n { children, className, style, value, name, onChange = () => {}, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const {\n name: commonName,\n selectedValue,\n onChange: commonOnChange,\n multiple,\n size,\n } = useSegmentedContext();\n\n const isChecked = multiple\n ? (selectedValue as SelectedValues)[value]\n : (selectedValue as SelectedValue) === value;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e);\n if (multiple) {\n commonOnChange({\n ...(selectedValue as SelectedValues),\n [value]: e.target.checked,\n } as any);\n } else if (e.target.checked) {\n commonOnChange(value as any);\n }\n };\n\n return (\n <label\n className={classNames('eds-segmented-choice', className, {\n 'eds-segmented-choide--large': size === 'large',\n })}\n style={style}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n name={name || commonName}\n checked={isChecked}\n value={value}\n onChange={handleChange}\n ref={ref}\n {...rest}\n />\n <div\n className={classNames('eds-base-segmented', {\n 'eds-base-segmented--large': size === 'large',\n })}\n >\n {children}\n </div>\n </label>\n );\n },\n);\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('form', 'icons', 'typography');\n\nexport * from './BaseFormControl';\nexport * from './Checkbox';\nexport * from './FeedbackText';\nexport * from './Fieldset';\nexport * from './InputGroupLabel';\nexport * from './InputGroupContext';\nexport * from './Radio';\nexport * from './RadioGroup';\nexport * from './RadioPanel';\nexport * from './Switch';\nexport * from './TravelSwitch';\nexport * from './TextArea';\nexport * from './TextField';\nexport * from './VariantProvider';\nexport * from './utils';\nexport * from './segmented-control/SegmentedChoice';\nexport * from './segmented-control/SegmentedControl';\nexport * from './segmented-control/MultipleSegmentedControl';\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValues } from './SegmentedContext';\nimport './SegmentedControl.scss';\n\nexport type MultipleSegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den eller de valgte verdiene */\n selectedValue: SelectedValues;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValues) => void;\n [key: string]: any;\n};\n\n/**This component is not used by anyone, and is therefore deprecated\n * @deprecated\n */\nexport const MultipleSegmentedControl: React.FC<MultipleSegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={true}\n size=\"medium\"\n >\n <Label as=\"div\">{label}</Label>\n <div className=\"eds-segmented-control\" {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { RadioGroupContextProvider } from './RadioGroupContext';\nimport { Fieldset } from './Fieldset';\n\nexport type RadioGroupProps = {\n /** Navnet til radiogruppen. */\n name: string;\n /** Overskrift over radiogruppen */\n label?: string;\n /** Verdien til den valgte radioknappen */\n value: string | null;\n /** Radioknappene sendes inn som children */\n children: React.ReactNode;\n /** En callback som blir kalles hver gang en radioknapp klikkes på */\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n [key: string]: any;\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n children,\n onChange,\n label,\n ...rest\n}) => {\n const contextValue = React.useMemo(() => ({ name, value, onChange }), [\n name,\n value,\n onChange,\n ]);\n return (\n <RadioGroupContextProvider value={contextValue}>\n {label ? (\n <Fieldset label={label} {...rest}>\n {children}\n </Fieldset>\n ) : (\n children\n )}\n </RadioGroupContextProvider>\n );\n};\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValue } from './SegmentedContext';\nimport './SegmentedControl.scss';\nimport classNames from 'classnames';\n\nexport type SegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den valgte verdien */\n selectedValue: SelectedValue;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValue) => void;\n /** Størrelsen på SegmentedChoice-komponentene */\n size?: 'medium' | 'large';\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\n\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n size = 'medium',\n className,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={false}\n size={size}\n >\n <Label as=\"div\">{label}</Label>\n <div className={classNames('eds-segmented-control', className)} {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { Switch } from './Switch';\nimport { colors } from '@entur/tokens';\nimport {\n BusIcon,\n FerryIcon,\n TramIcon,\n PlaneIcon,\n TrainIcon,\n BicycleIcon,\n ScooterIcon,\n SubwayIcon,\n} from '@entur/icons';\nimport './Switch.scss';\n\nexport type TravelSwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Label for TravelSwitchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Hvilken type reise som skal vises rikig ikon og farge for */\n transport: // When adding a new submode, check https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/825393529/Norwegian+submodes+and+their+definitions for names\n | 'bus'\n | 'metro'\n | 'air'\n | 'tram'\n | 'rail'\n | 'water'\n | 'bike'\n | 'airportLinkBus'\n | 'airportLinkRail'\n | 'scooter';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const TravelSwitch: React.FC<TravelSwitchProps> = ({\n className,\n children,\n transport,\n size,\n ...rest\n}) => {\n const { color, contrast, Icon } = modeCalc(transport);\n return (\n <Switch\n className={className}\n color={color}\n contrastColor={contrast}\n icon={<Icon />}\n size={size}\n {...rest}\n >\n {children}\n </Switch>\n );\n};\n\nfunction modeCalc(mode: string) {\n switch (mode) {\n case 'bus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.bus,\n contrast: colors.transport.contrast.bus,\n };\n case 'metro':\n return {\n Icon: SubwayIcon,\n color: colors.transport.default.metro,\n contrast: colors.transport.contrast.metro,\n };\n case 'air':\n return {\n Icon: PlaneIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'tram':\n return {\n Icon: TramIcon,\n color: colors.transport.default.tram,\n contrast: colors.transport.contrast.tram,\n };\n case 'rail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.train,\n contrast: colors.transport.contrast.train,\n };\n case 'water':\n return {\n Icon: FerryIcon,\n color: colors.transport.default.ferry,\n contrast: colors.transport.contrast.ferry,\n };\n case 'bike':\n return {\n Icon: BicycleIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'scooter':\n return {\n Icon: ScooterIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'airportLinkBus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'airportLinkRail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n default:\n throw Error('Please select a transport for the TravelSwitch.');\n }\n}\n"],"names":["AlertIcon","variant","iconClass","React","ValidationCheckIcon","className","ValidationErrorIcon","ValidationExclamationIcon","FeedbackText","children","hideIcon","rest","SubLabel","classNames","InputGroupContext","isFilled","setFilled","InputGroupContextProvider","Provider","value","useInputGroupContext","InputGroupLabel","label","required","labelId","staticAnimation","filler","id","VariantContext","createContext","useVariant","useContext","BaseFormControl","forwardRef","ref","dark","disabled","readOnly","prepend","append","size","labelTooltip","feedback","labelProps","style","disableLabelAnimation","contextVariant","currentVariant","Tooltip","content","placement","QuestionIcon","Checkbox","checked","reduceClickArea","innerRef","useRef","useImperativeHandle","current","isIndeterminate","isControlled","undefined","useEffect","indeterminate","cx","type","CheckboxIcon","Paragraph","margin","as","width","height","viewBox","x","y","fill","d","Fieldset","Label","RadioGroupContext","RadioGroupContextProvider","useRadioGroupContext","context","Error","Radio","classList","name","onChange","RadioPanel","title","secondaryLabel","hideCheckbox","selectedValue","randomId","useRandomId","radioPanelId","htmlFor","RadioPanelCheck","Switch","icon","color","colors","validation","mintContrast","contrastColor","chosenContrastColor","hasValue","Array","isArray","length","obj","SSR","defaultValue","TextArea","textAreaId","TextAreaBase","isInputFilled","setFiller","useOnMount","event","target","TextField","clearable","onClear","textFieldId","ClearButton","TextFieldBase","placeholder","props","tabIndex","onClick","CloseSmallIcon","SegmentedContext","SegmentedProvider","multiple","generatedName","contextValue","useMemo","SegmentedChoice","useSegmentedContext","commonName","commonOnChange","isChecked","e","warnAboutMissingStyles","transport","mode","Icon","BusIcon","bus","contrast","SubwayIcon","metro","PlaneIcon","plane","TramIcon","tram","TrainIcon","train","FerryIcon","ferry","BicycleIcon","mobility","ScooterIcon","modeCalc"],"mappings":"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"}
|
package/dist/form.esm.js
CHANGED
|
@@ -690,8 +690,7 @@ var TextField = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
690
690
|
variant: variant,
|
|
691
691
|
prepend: prepend,
|
|
692
692
|
append: clearable ? React__default.createElement(ClearButton, {
|
|
693
|
-
onClear: onClear
|
|
694
|
-
hasValue: value ? true : false
|
|
693
|
+
onClear: onClear
|
|
695
694
|
}) : append,
|
|
696
695
|
className: className,
|
|
697
696
|
style: style,
|
|
@@ -760,8 +759,10 @@ var TextFieldBase = /*#__PURE__*/React__default.forwardRef(function (_ref2, forw
|
|
|
760
759
|
|
|
761
760
|
var ClearButton = function ClearButton(_ref3) {
|
|
762
761
|
var onClear = _ref3.onClear,
|
|
763
|
-
|
|
764
|
-
|
|
762
|
+
props = _objectWithoutPropertiesLoose(_ref3, ["onClear"]);
|
|
763
|
+
|
|
764
|
+
var _useInputGroupContext2 = useInputGroupContext(),
|
|
765
|
+
hasValue = _useInputGroupContext2.isFilled;
|
|
765
766
|
|
|
766
767
|
return React__default.createElement("div", {
|
|
767
768
|
className: "eds-textfield__clear-button-wrapper"
|
package/dist/form.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.esm.js","sources":["../src/FeedbackText.tsx","../src/InputGroupContext.tsx","../src/InputGroupLabel.tsx","../src/VariantProvider.tsx","../src/BaseFormControl.tsx","../src/Checkbox.tsx","../src/Fieldset.tsx","../src/RadioGroupContext.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/RadioPanel.tsx","../src/Switch.tsx","../src/TravelSwitch.tsx","../src/utils.ts","../src/TextArea.tsx","../src/TextField.tsx","../src/segmented-control/SegmentedContext.tsx","../src/segmented-control/SegmentedChoice.tsx","../src/segmented-control/SegmentedControl.tsx","../src/segmented-control/MultipleSegmentedControl.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ValidationCheckIcon,\n ValidationErrorIcon,\n ValidationExclamationIcon,\n} from '@entur/icons';\nimport { SubLabel } from '@entur/typography';\nimport { VariantType } from './VariantProvider';\nimport classNames from 'classnames';\nimport './FeedbackText.scss';\n\nconst AlertIcon: React.FC<{ variant: VariantType }> = ({ variant }) => {\n const iconClass = `eds-feedback-text__icon eds-feedback-text__icon--${variant}`;\n switch (variant) {\n case 'success':\n return <ValidationCheckIcon className={iconClass} />;\n case 'error':\n return <ValidationErrorIcon className={iconClass} />;\n case 'info':\n return null;\n case 'warning':\n return <ValidationExclamationIcon className={iconClass} />;\n default:\n return null;\n }\n};\n\nexport type FeedbackTextProps = {\n /** Teksten som vises */\n children: React.ReactNode;\n /** Skjuler ikonet */\n hideIcon?: boolean;\n /** Feedbackvarianten */\n variant: VariantType;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\nexport const FeedbackText: React.FC<FeedbackTextProps> = ({\n children,\n hideIcon = false,\n variant,\n className,\n ...rest\n}) => {\n return (\n <SubLabel\n className={classNames(\n 'eds-feedback-text',\n { 'eds-feedback-text--info': variant === 'info' },\n className,\n )}\n {...rest}\n >\n {!hideIcon && <AlertIcon variant={variant} />}\n <span className=\"eds-feedback-text__text\">{children}</span>\n </SubLabel>\n );\n};\n","import * as React from 'react';\n\ntype InputGroupContextType = {\n isFilled: boolean;\n setFilled: (e: boolean) => void;\n};\n\nconst InputGroupContext = React.createContext<InputGroupContextType>({\n isFilled: false,\n setFilled: () => null,\n});\n\nexport const InputGroupContextProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [filled, setFilled] = React.useState(false);\n return (\n <InputGroupContext.Provider\n value={{ isFilled: filled, setFilled: setFilled }}\n >\n {children}\n </InputGroupContext.Provider>\n );\n};\n\nexport const useInputGroupContext: () => InputGroupContextType = () =>\n React.useContext(InputGroupContext);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { useInputGroupContext } from './InputGroupContext';\nimport './InputGroupLabel.scss';\n\nexport type InputGroupLabelProps = {\n label?: React.ReactNode;\n required?: boolean;\n labelTooltip?: string;\n labelId: string;\n staticAnimation?: boolean;\n} & React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n>;\n\nexport const InputGroupLabel: React.FC<InputGroupLabelProps> = ({\n label,\n required,\n labelId,\n staticAnimation = false,\n ...rest\n}) => {\n const { isFilled } = useInputGroupContext();\n const filler = staticAnimation || isFilled;\n return (\n <label\n className={classNames(rest.className, {\n 'eds-input-group-label-wrapper--filled': filler,\n })}\n id={labelId}\n {...rest}\n >\n <span\n className={classNames('eds-input-group__label', {\n 'eds-input-group__label--filled': filler,\n })}\n >\n {label} {required && <span>*</span>}\n </span>\n </label>\n );\n};\n","import React from 'react';\n\nexport type VariantType = 'success' | 'error' | 'warning' | 'info';\n\nconst VariantContext = React.createContext<VariantType | null>(null);\n\nexport type VariantProviderProps = {\n variant?: VariantType;\n};\nexport const VariantProvider: React.FC<VariantProviderProps> = ({\n children,\n variant = null,\n}) => {\n return (\n <VariantContext.Provider value={variant}>\n {children}\n </VariantContext.Provider>\n );\n};\n\nexport const useVariant: () => VariantType | null = () => {\n const context = React.useContext(VariantContext);\n return context;\n};\n","import { Tooltip } from '@entur/tooltip';\nimport classNames from 'classnames';\nimport React from 'react';\nimport './BaseFormControl.scss';\nimport { FeedbackText } from './FeedbackText';\nimport { InputGroupContextProvider } from './InputGroupContext';\nimport { InputGroupLabel } from './InputGroupLabel';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { QuestionIcon } from '@entur/icons';\n\nexport type BaseFormControlProps = {\n /** Et skjemaelement med `eds-form-control`-klassen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Sett til true om skjema-elementet skal ha mørkt design i contrast mode */\n dark?: boolean;\n /** Sett til true om skjema-elementet er disabled */\n disabled?: boolean;\n /** Sett til true om skjema-elementet er i read-only modus */\n readOnly?: boolean;\n /** Tekst eller ikon som vises foran skjema-elementet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som vises etter skjema-elementet */\n append?: React.ReactNode;\n /** Valideringsvariant */\n variant?: VariantType;\n /**Størrelsen på skjemaelementet\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Label til inputfeltet */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Illustrerer om inputfeltet er påkrevd eller ikke */\n required?: boolean;\n /** ID som settes på labelen til inputfeltet */\n labelId: string;\n /** Varselmelding, som vil komme under form-komponenten */\n feedback?: string;\n /** Om inputfeltet er fylt med data. Brukes for plassering av label */\n isFilled?: boolean;\n /**Ekstra props som sendes til label */\n labelProps?: { [key: string]: any };\n /** Ekstra styling */\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet */\n disableLabelAnimation?: boolean;\n};\n\nexport const BaseFormControl = React.forwardRef<\n HTMLDivElement,\n BaseFormControlProps\n>(\n (\n {\n children,\n className,\n dark = false,\n disabled = false,\n readOnly = false,\n variant,\n prepend,\n append,\n size = 'medium',\n isFilled,\n label,\n required,\n labelTooltip,\n feedback,\n labelId,\n labelProps,\n style,\n disableLabelAnimation = false,\n ...rest\n },\n ref,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n\n return (\n <InputGroupContextProvider>\n <div\n className={classNames(\n 'eds-form-control-wrapper',\n className,\n `eds-form-control-wrapper--size-${size}`,\n {\n 'eds-form-control-wrapper--success': currentVariant === 'success',\n 'eds-form-control-wrapper--error': currentVariant === 'error',\n 'eds-form-control-wrapper--dark': dark,\n 'eds-form-control-wrapper--disabled': disabled,\n 'eds-form-control-wrapper--readonly': readOnly,\n 'eds-form-control-wrapper--is-filled': isFilled,\n },\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {prepend && (\n <div className=\"eds-form-control__prepend\">{prepend}</div>\n )}\n <InputGroupLabel\n label={label}\n required={required}\n labelId={labelId}\n staticAnimation={disableLabelAnimation}\n {...labelProps}\n />\n {children}\n {append && <div className=\"eds-form-control__append\">{append}</div>}\n {labelTooltip && (\n <div className=\"eds-form-control__append eds-form-control__append--tooltip\">\n <Tooltip content={labelTooltip} placement=\"right\">\n <span className=\"eds-input-group__label-tooltip-icon\">\n <QuestionIcon />\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n {feedback && currentVariant && (\n <FeedbackText variant={currentVariant}>{feedback}</FeedbackText>\n )}\n </InputGroupContextProvider>\n );\n },\n);\n","import React, { CSSProperties } from 'react';\nimport { Paragraph } from '@entur/typography';\nimport cx from 'classnames';\nimport './Checkbox.scss';\n\nexport type CheckboxProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for checkboxen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om Checkbox er avmerket, eller om den */\n checked?: 'indeterminate' | boolean;\n /** Callback for Checkbox */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Om checkboxen er disabled eller ikke\n * @default false\n */\n disabled?: boolean;\n /**Ekstra styling til komponenten */\n style?: CSSProperties;\n /** Reduserer klikkflaten for Checkbox'en\n * @default false\n */\n reduceClickArea?: boolean;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked'>;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n className,\n children,\n style,\n disabled = false,\n reduceClickArea,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n // Trick to allow using a ref locally, while still allowing for ref forwarding\n // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n const innerRef = React.useRef<HTMLInputElement>(null);\n //eslint-disable-next-line\n React.useImperativeHandle(ref, () => innerRef.current!);\n\n const isIndeterminate = checked === 'indeterminate';\n const isControlled = checked !== undefined;\n\n React.useEffect(() => {\n if (innerRef && innerRef.current) {\n innerRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label\n className={cx('eds-checkbox__container', className, {\n 'eds-checkbox--disabled': disabled,\n 'eds-checkbox__container--reduced-click-area': reduceClickArea,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n ref={innerRef}\n checked={isControlled ? checked === true : undefined}\n disabled={disabled}\n {...rest}\n />\n <span\n className={cx('eds-checkbox__icon', {\n 'eds-checkbox__icon--disabled': disabled,\n 'eds-checkbox__icon--reduced-click-area': reduceClickArea,\n })}\n >\n <CheckboxIcon indeterminate={isIndeterminate} />\n </span>\n {children && (\n <Paragraph className=\"eds-checkbox__label\" margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n\nconst CheckboxIcon: React.FC<{ indeterminate: boolean }> = ({\n indeterminate = false,\n}) => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n {indeterminate ? (\n <rect x=\"10\" y=\"25\" width=\"28\" height=\"5\" fill=\"white\" />\n ) : (\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n )}\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\nimport './Fieldset.scss';\n\nexport type FieldsetProps = {\n /** Innholdet i felt-gruppen. */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Labelen til felt-gruppen. */\n label?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const Fieldset: React.FC<FieldsetProps> = ({\n children,\n className,\n label,\n ...rest\n}) => (\n <fieldset className={classNames('eds-fieldset', className)} {...rest}>\n {label && (\n <Label as=\"legend\" className=\"eds-legend\">\n {label}\n </Label>\n )}\n {children}\n </fieldset>\n);\n","import React from 'react';\n\ntype RadioGroupContextProps = {\n name: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value: string | null;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextProps | null>(\n null,\n);\n\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\n\nexport const useRadioGroupContext: () => RadioGroupContextProps = () => {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your RadioButtons in a RadioGroup component',\n );\n }\n return context;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './Radio.scss';\n\nexport type RadioProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label til radio-button. Vises ved høyre side. */\n children?: React.ReactNode;\n /** Verdien til radioknappen */\n value: string;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n { className, children, value, disabled, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = cx(className, 'eds-form-component--radio__radio', {\n 'eds-form-component--radio__radio--disabled': disabled,\n });\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n return (\n <label className=\"eds-form-component--radio__container\">\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n <span className={classList}>\n <span className=\"eds-form-component--radio__circle\"></span>\n </span>\n {children && (\n <Paragraph\n margin=\"none\"\n as=\"span\"\n className=\"eds-form-component--radio__label\"\n >\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { RadioGroupContextProvider } from './RadioGroupContext';\nimport { Fieldset } from './Fieldset';\n\nexport type RadioGroupProps = {\n /** Navnet til radiogruppen. */\n name: string;\n /** Overskrift over radiogruppen */\n label?: string;\n /** Verdien til den valgte radioknappen */\n value: string | null;\n /** Radioknappene sendes inn som children */\n children: React.ReactNode;\n /** En callback som blir kalles hver gang en radioknapp klikkes på */\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n [key: string]: any;\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n children,\n onChange,\n label,\n ...rest\n}) => {\n const contextValue = React.useMemo(() => ({ name, value, onChange }), [\n name,\n value,\n onChange,\n ]);\n return (\n <RadioGroupContextProvider value={contextValue}>\n {label ? (\n <Fieldset label={label} {...rest}>\n {children}\n </Fieldset>\n ) : (\n children\n )}\n </RadioGroupContextProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './RadioPanel.scss';\nimport { useRandomId } from '@entur/utils';\n\nexport type RadioPanelProps = {\n /** Verdien til RadioPanel */\n value: string;\n /** Hovedtittelen til RadioPanel */\n title: React.ReactNode;\n /** Ektstra label som står høyrestilt mot Checkboxen */\n secondaryLabel?: React.ReactNode;\n /** Ekstra informasjon som legges nederst i RadioPanel */\n children?: React.ReactNode;\n /** Størrelse på RadioPanel\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /**Skjuler checkbox-en i RadioPanel\n * @default false\n */\n hideCheckbox?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Om RadioPanel er deaktivert eller ikke\n * @default false\n */\n disabled?: boolean;\n /** */\n style?: React.CSSProperties;\n} & Omit<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >,\n 'title' | 'size'\n>;\n\nexport const RadioPanel = React.forwardRef<HTMLInputElement, RadioPanelProps>(\n (\n {\n className,\n children,\n value,\n title,\n secondaryLabel,\n size = 'medium',\n hideCheckbox = false,\n style,\n id,\n disabled = false,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = classNames(\n className,\n 'eds-radio-panel__container',\n `eds-radio-panel--${size}`,\n { 'eds-radio-panel--disabled': disabled },\n );\n\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n const randomId = useRandomId('eds-radiopanel');\n const radioPanelId = id || randomId;\n return (\n <label className=\"eds-radio-panel__wrapper\" htmlFor={radioPanelId}>\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n id={radioPanelId}\n disabled={disabled}\n {...rest}\n />\n <div className={classList} style={style}>\n <div className=\"eds-radio-panel__title-wrapper\">\n <div className=\"eds-radio-panel__title\">{title}</div>\n <div className=\"eds-radio-panel__label\">\n {secondaryLabel && <span>{secondaryLabel}</span>}\n {!(disabled || hideCheckbox) && (\n <span className=\"eds-radio-panel__check\">\n <RadioPanelCheck />\n </span>\n )}\n </div>\n </div>\n {children && (\n <div className=\"eds-radio-panel__additional-content\">\n {children}\n </div>\n )}\n </div>\n </label>\n );\n },\n);\n\nconst RadioPanelCheck: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"22px\"\n height=\"16px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { colors } from '@entur/tokens';\nimport './Switch.scss';\n\nexport type SwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for Switchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Ikonet som skal stå inne i sirkelen på Switchen */\n icon?: React.ReactNode;\n /** Farge som settes på ikon og bakgrunnen når Switchen er \"checked\". Default er mint-contrast\n * @default colors.validation .mintContrast\n */\n color?: string;\n /** Lik som color, men når Switchen står i en kontrast seksjon. Default er samme farge som color. */\n contrastColor?: string;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n className,\n children,\n icon,\n color = colors.validation.mintContrast,\n contrastColor,\n size = 'medium',\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const chosenContrastColor = (contrastColor && contrastColor) || color;\n return (\n <label\n className={classNames('eds-switch', className)}\n style={{ ...rest.style }}\n >\n <input type=\"checkbox\" ref={ref} {...rest} />\n <span\n className={classNames('eds-switch__switch', {\n 'eds-switch__switch--large': size === 'large',\n })}\n style={\n {\n '--eds-switch-color': color,\n '--eds-switch-contrast-color': chosenContrastColor,\n } as React.CSSProperties\n }\n >\n <span className=\"eds-switch__circle\">{icon && icon}</span>\n </span>\n {children && (\n <Paragraph margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Switch } from './Switch';\nimport { colors } from '@entur/tokens';\nimport {\n BusIcon,\n FerryIcon,\n TramIcon,\n PlaneIcon,\n TrainIcon,\n BicycleIcon,\n ScooterIcon,\n SubwayIcon,\n} from '@entur/icons';\nimport './Switch.scss';\n\nexport type TravelSwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Label for TravelSwitchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Hvilken type reise som skal vises rikig ikon og farge for */\n transport: // When adding a new submode, check https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/825393529/Norwegian+submodes+and+their+definitions for names\n | 'bus'\n | 'metro'\n | 'air'\n | 'tram'\n | 'rail'\n | 'water'\n | 'bike'\n | 'airportLinkBus'\n | 'airportLinkRail'\n | 'scooter';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const TravelSwitch: React.FC<TravelSwitchProps> = ({\n className,\n children,\n transport,\n size,\n ...rest\n}) => {\n const { color, contrast, Icon } = modeCalc(transport);\n return (\n <Switch\n className={className}\n color={color}\n contrastColor={contrast}\n icon={<Icon />}\n size={size}\n {...rest}\n >\n {children}\n </Switch>\n );\n};\n\nfunction modeCalc(mode: string) {\n switch (mode) {\n case 'bus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.bus,\n contrast: colors.transport.contrast.bus,\n };\n case 'metro':\n return {\n Icon: SubwayIcon,\n color: colors.transport.default.metro,\n contrast: colors.transport.contrast.metro,\n };\n case 'air':\n return {\n Icon: PlaneIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'tram':\n return {\n Icon: TramIcon,\n color: colors.transport.default.tram,\n contrast: colors.transport.contrast.tram,\n };\n case 'rail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.train,\n contrast: colors.transport.contrast.train,\n };\n case 'water':\n return {\n Icon: FerryIcon,\n color: colors.transport.default.ferry,\n contrast: colors.transport.contrast.ferry,\n };\n case 'bike':\n return {\n Icon: BicycleIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'scooter':\n return {\n Icon: ScooterIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'airportLinkBus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'airportLinkRail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n default:\n throw Error('Please select a transport for the TravelSwitch.');\n }\n}\n","export function hasValue(value: any) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj: any, SSR = false) {\n return (\n obj &&\n ((hasValue(obj.value) && obj.value !== '') ||\n (SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''))\n );\n}\n","import React from 'react';\nimport { VariantType } from './VariantProvider';\nimport { BaseFormControl } from './BaseFormControl';\nimport './TextArea.scss';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useRandomId, useOnMount } from '@entur/utils';\nimport { isFilled } from './utils';\n\nexport type TextAreaProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Deaktiverer tekstområdet */\n disabled?: boolean;\n /** Setter tekstområdet i read-only modus */\n readOnly?: boolean;\n /** Label over TextArea */\n label: string;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextArea */\n feedback?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n label,\n feedback,\n labelTooltip,\n onChange,\n disableLabelAnimation,\n ...rest\n },\n ref: React.Ref<HTMLTextAreaElement>,\n ) => {\n const textAreaId = useRandomId('eds-textarea');\n return (\n <BaseFormControl\n className={className}\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n style={style}\n label={label}\n labelId={textAreaId}\n feedback={feedback}\n labelTooltip={labelTooltip}\n labelProps={{ className: 'eds-textarea__label' }}\n disableLabelAnimation={disableLabelAnimation}\n >\n <TextAreaBase\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n aria-labelledby={textAreaId}\n onChange={onChange}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextAreaBaseProps = {\n readOnly?: boolean;\n disabled?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst TextAreaBase = React.forwardRef<HTMLTextAreaElement, TextAreaBaseProps>(\n ({ readOnly, disabled, onChange, value, ...rest }, ref) => {\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <textarea\n className=\"eds-form-control eds-textarea\"\n ref={ref}\n readOnly={readOnly}\n disabled={disabled}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n","import { useRandomId, useOnMount } from '@entur/utils';\nimport React from 'react';\nimport { BaseFormControl } from './BaseFormControl';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { isFilled } from './utils';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './TextField.scss';\n\nexport type TextFieldProps = {\n /** Tekst eller ikon som kommer før inputfeltet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som kommer etter inputfeltet */\n append?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TextField */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextField */\n feedback?: string;\n /** Hvilken valideringsfarge som vises */\n variant?: VariantType;\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n /** Størrelsen på TextField\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra props som sendes til label-elementet */\n labelProps?: React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n >;\n /** Om man skal ha muliget for å nullstille TextField. Viser lukkekryss hvis feltet er fylt.\n * @default false\n */\n clearable?: boolean;\n /** Callback for clearable */\n onClear?: () => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'label'>;\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n prepend,\n append,\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n size = 'medium',\n label,\n required,\n labelTooltip,\n feedback,\n onChange,\n disableLabelAnimation,\n labelProps,\n clearable = false,\n onClear,\n value,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const textFieldId =\n labelProps && labelProps.id\n ? labelProps.id\n : useRandomId('eds-textfield');\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n prepend={prepend}\n append={\n clearable ? (\n <ClearButton onClear={onClear} hasValue={value ? true : false} />\n ) : (\n append\n )\n }\n className={className}\n style={style}\n size={size}\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n labelId={textFieldId}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n labelProps={labelProps}\n >\n <TextFieldBase\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n aria-labelledby={textFieldId}\n onChange={onChange}\n value={value}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextFieldBaseProps = {\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst TextFieldBase = React.forwardRef<HTMLInputElement, TextFieldBaseProps>(\n (\n { disabled, readOnly, placeholder, onChange, value, variant, ...rest },\n forwardRef,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <input\n aria-invalid={currentVariant === 'error'}\n className=\"eds-form-control\"\n disabled={disabled}\n readOnly={readOnly}\n ref={forwardRef}\n placeholder={placeholder}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n\nconst ClearButton: React.FC<{\n hasValue?: boolean;\n onClear?: () => void;\n [key: string]: any;\n}> = ({ onClear, hasValue, ...props }) => {\n return (\n <div className=\"eds-textfield__clear-button-wrapper\">\n {hasValue && <div className=\"eds-textfield__divider\"></div>}\n {hasValue && (\n <button\n className=\"eds-textfield__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={onClear}\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useRandomId } from '@entur/utils';\n\nexport type SelectedValues = { [key: string]: boolean };\nexport type SelectedValue = string | null;\nexport type SegmentedContextProps =\n | {\n name: string;\n onChange: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name: string;\n onChange: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nconst SegmentedContext = React.createContext<SegmentedContextProps | null>(\n null,\n);\n\nexport type SegmentedProviderProps =\n | {\n name?: string;\n onChange?: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name?: string;\n onChange?: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nexport const SegmentedProvider: React.FC<SegmentedProviderProps> = ({\n name,\n onChange = () => {},\n selectedValue,\n multiple,\n size,\n ...rest\n}) => {\n const generatedName = useRandomId('eds-segmented-control');\n const contextValue = React.useMemo(\n () => ({\n name: name || generatedName,\n onChange,\n multiple,\n selectedValue,\n size,\n }),\n [generatedName, multiple, name, onChange, selectedValue, size],\n ) as SegmentedContextProps;\n return <SegmentedContext.Provider value={contextValue} {...rest} />;\n};\n\nexport const useSegmentedContext = () => {\n const context = React.useContext(SegmentedContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl',\n );\n }\n return context;\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n useSegmentedContext,\n SelectedValues,\n SelectedValue,\n} from './SegmentedContext';\nimport './SegmentedChoice.scss';\n\nexport type SegmentedChoiceProps = {\n /** Verdien til valget */\n value: string;\n /** Innhold som beskriver valget */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback som kalles når komponenten endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nexport const SegmentedChoice = React.forwardRef<\n HTMLInputElement,\n SegmentedChoiceProps\n>(\n (\n { children, className, style, value, name, onChange = () => {}, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const {\n name: commonName,\n selectedValue,\n onChange: commonOnChange,\n multiple,\n size,\n } = useSegmentedContext();\n\n const isChecked = multiple\n ? (selectedValue as SelectedValues)[value]\n : (selectedValue as SelectedValue) === value;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e);\n if (multiple) {\n commonOnChange({\n ...(selectedValue as SelectedValues),\n [value]: e.target.checked,\n } as any);\n } else if (e.target.checked) {\n commonOnChange(value as any);\n }\n };\n\n return (\n <label\n className={classNames('eds-segmented-choice', className, {\n 'eds-segmented-choide--large': size === 'large',\n })}\n style={style}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n name={name || commonName}\n checked={isChecked}\n value={value}\n onChange={handleChange}\n ref={ref}\n {...rest}\n />\n <div\n className={classNames('eds-base-segmented', {\n 'eds-base-segmented--large': size === 'large',\n })}\n >\n {children}\n </div>\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValue } from './SegmentedContext';\nimport './SegmentedControl.scss';\nimport classNames from 'classnames';\n\nexport type SegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den valgte verdien */\n selectedValue: SelectedValue;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValue) => void;\n /** Størrelsen på SegmentedChoice-komponentene */\n size?: 'medium' | 'large';\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\n\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n size = 'medium',\n className,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={false}\n size={size}\n >\n <Label as=\"div\">{label}</Label>\n <div className={classNames('eds-segmented-control', className)} {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValues } from './SegmentedContext';\nimport './SegmentedControl.scss';\n\nexport type MultipleSegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den eller de valgte verdiene */\n selectedValue: SelectedValues;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValues) => void;\n [key: string]: any;\n};\n\n/**This component is not used by anyone, and is therefore deprecated\n * @deprecated\n */\nexport const MultipleSegmentedControl: React.FC<MultipleSegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={true}\n size=\"medium\"\n >\n <Label as=\"div\">{label}</Label>\n <div className=\"eds-segmented-control\" {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('form', 'icons', 'typography');\n\nexport * from './BaseFormControl';\nexport * from './Checkbox';\nexport * from './FeedbackText';\nexport * from './Fieldset';\nexport * from './InputGroupLabel';\nexport * from './InputGroupContext';\nexport * from './Radio';\nexport * from './RadioGroup';\nexport * from './RadioPanel';\nexport * from './Switch';\nexport * from './TravelSwitch';\nexport * from './TextArea';\nexport * from './TextField';\nexport * from './VariantProvider';\nexport * from './utils';\nexport * from './segmented-control/SegmentedChoice';\nexport * from './segmented-control/SegmentedControl';\nexport * from './segmented-control/MultipleSegmentedControl';\n"],"names":["AlertIcon","variant","iconClass","React","ValidationCheckIcon","className","ValidationErrorIcon","ValidationExclamationIcon","FeedbackText","children","hideIcon","rest","SubLabel","classNames","InputGroupContext","isFilled","setFilled","InputGroupContextProvider","filled","Provider","value","useInputGroupContext","InputGroupLabel","label","required","labelId","staticAnimation","filler","id","VariantContext","createContext","VariantProvider","useVariant","context","useContext","BaseFormControl","forwardRef","ref","dark","disabled","readOnly","prepend","append","size","labelTooltip","feedback","labelProps","style","disableLabelAnimation","contextVariant","currentVariant","Tooltip","content","placement","QuestionIcon","Checkbox","checked","reduceClickArea","innerRef","useRef","useImperativeHandle","current","isIndeterminate","isControlled","undefined","useEffect","indeterminate","cx","type","CheckboxIcon","Paragraph","margin","as","width","height","viewBox","x","y","fill","d","Fieldset","Label","RadioGroupContext","RadioGroupContextProvider","useRadioGroupContext","Error","Radio","classList","name","selectedValue","onChange","RadioGroup","contextValue","useMemo","RadioPanel","title","secondaryLabel","hideCheckbox","randomId","useRandomId","radioPanelId","htmlFor","RadioPanelCheck","Switch","icon","color","colors","validation","mintContrast","contrastColor","chosenContrastColor","TravelSwitch","transport","modeCalc","contrast","Icon","mode","BusIcon","bus","SubwayIcon","metro","PlaneIcon","plane","TramIcon","tram","TrainIcon","train","FerryIcon","ferry","BicycleIcon","mobility","ScooterIcon","hasValue","Array","isArray","length","obj","SSR","defaultValue","TextArea","textAreaId","TextAreaBase","isInputFilled","setFiller","useOnMount","handleChange","event","target","TextField","clearable","onClear","textFieldId","ClearButton","TextFieldBase","placeholder","props","tabIndex","onClick","CloseSmallIcon","SegmentedContext","SegmentedProvider","multiple","generatedName","useSegmentedContext","SegmentedChoice","commonName","commonOnChange","isChecked","e","SegmentedControl","MultipleSegmentedControl","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.esm.js","sources":["../src/FeedbackText.tsx","../src/InputGroupContext.tsx","../src/InputGroupLabel.tsx","../src/VariantProvider.tsx","../src/BaseFormControl.tsx","../src/Checkbox.tsx","../src/Fieldset.tsx","../src/RadioGroupContext.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/RadioPanel.tsx","../src/Switch.tsx","../src/TravelSwitch.tsx","../src/utils.ts","../src/TextArea.tsx","../src/TextField.tsx","../src/segmented-control/SegmentedContext.tsx","../src/segmented-control/SegmentedChoice.tsx","../src/segmented-control/SegmentedControl.tsx","../src/segmented-control/MultipleSegmentedControl.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ValidationCheckIcon,\n ValidationErrorIcon,\n ValidationExclamationIcon,\n} from '@entur/icons';\nimport { SubLabel } from '@entur/typography';\nimport { VariantType } from './VariantProvider';\nimport classNames from 'classnames';\nimport './FeedbackText.scss';\n\nconst AlertIcon: React.FC<{ variant: VariantType }> = ({ variant }) => {\n const iconClass = `eds-feedback-text__icon eds-feedback-text__icon--${variant}`;\n switch (variant) {\n case 'success':\n return <ValidationCheckIcon className={iconClass} />;\n case 'error':\n return <ValidationErrorIcon className={iconClass} />;\n case 'info':\n return null;\n case 'warning':\n return <ValidationExclamationIcon className={iconClass} />;\n default:\n return null;\n }\n};\n\nexport type FeedbackTextProps = {\n /** Teksten som vises */\n children: React.ReactNode;\n /** Skjuler ikonet */\n hideIcon?: boolean;\n /** Feedbackvarianten */\n variant: VariantType;\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\nexport const FeedbackText: React.FC<FeedbackTextProps> = ({\n children,\n hideIcon = false,\n variant,\n className,\n ...rest\n}) => {\n return (\n <SubLabel\n className={classNames(\n 'eds-feedback-text',\n { 'eds-feedback-text--info': variant === 'info' },\n className,\n )}\n {...rest}\n >\n {!hideIcon && <AlertIcon variant={variant} />}\n <span className=\"eds-feedback-text__text\">{children}</span>\n </SubLabel>\n );\n};\n","import * as React from 'react';\n\ntype InputGroupContextType = {\n isFilled: boolean;\n setFilled: (e: boolean) => void;\n};\n\nconst InputGroupContext = React.createContext<InputGroupContextType>({\n isFilled: false,\n setFilled: () => null,\n});\n\nexport const InputGroupContextProvider: React.FC<{\n children: React.ReactNode;\n}> = ({ children }) => {\n const [filled, setFilled] = React.useState(false);\n return (\n <InputGroupContext.Provider\n value={{ isFilled: filled, setFilled: setFilled }}\n >\n {children}\n </InputGroupContext.Provider>\n );\n};\n\nexport const useInputGroupContext: () => InputGroupContextType = () =>\n React.useContext(InputGroupContext);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { useInputGroupContext } from './InputGroupContext';\nimport './InputGroupLabel.scss';\n\nexport type InputGroupLabelProps = {\n label?: React.ReactNode;\n required?: boolean;\n labelTooltip?: string;\n labelId: string;\n staticAnimation?: boolean;\n} & React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n>;\n\nexport const InputGroupLabel: React.FC<InputGroupLabelProps> = ({\n label,\n required,\n labelId,\n staticAnimation = false,\n ...rest\n}) => {\n const { isFilled } = useInputGroupContext();\n const filler = staticAnimation || isFilled;\n return (\n <label\n className={classNames(rest.className, {\n 'eds-input-group-label-wrapper--filled': filler,\n })}\n id={labelId}\n {...rest}\n >\n <span\n className={classNames('eds-input-group__label', {\n 'eds-input-group__label--filled': filler,\n })}\n >\n {label} {required && <span>*</span>}\n </span>\n </label>\n );\n};\n","import React from 'react';\n\nexport type VariantType = 'success' | 'error' | 'warning' | 'info';\n\nconst VariantContext = React.createContext<VariantType | null>(null);\n\nexport type VariantProviderProps = {\n variant?: VariantType;\n};\nexport const VariantProvider: React.FC<VariantProviderProps> = ({\n children,\n variant = null,\n}) => {\n return (\n <VariantContext.Provider value={variant}>\n {children}\n </VariantContext.Provider>\n );\n};\n\nexport const useVariant: () => VariantType | null = () => {\n const context = React.useContext(VariantContext);\n return context;\n};\n","import { Tooltip } from '@entur/tooltip';\nimport classNames from 'classnames';\nimport React from 'react';\nimport './BaseFormControl.scss';\nimport { FeedbackText } from './FeedbackText';\nimport { InputGroupContextProvider } from './InputGroupContext';\nimport { InputGroupLabel } from './InputGroupLabel';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { QuestionIcon } from '@entur/icons';\n\nexport type BaseFormControlProps = {\n /** Et skjemaelement med `eds-form-control`-klassen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Sett til true om skjema-elementet skal ha mørkt design i contrast mode */\n dark?: boolean;\n /** Sett til true om skjema-elementet er disabled */\n disabled?: boolean;\n /** Sett til true om skjema-elementet er i read-only modus */\n readOnly?: boolean;\n /** Tekst eller ikon som vises foran skjema-elementet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som vises etter skjema-elementet */\n append?: React.ReactNode;\n /** Valideringsvariant */\n variant?: VariantType;\n /**Størrelsen på skjemaelementet\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Label til inputfeltet */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Illustrerer om inputfeltet er påkrevd eller ikke */\n required?: boolean;\n /** ID som settes på labelen til inputfeltet */\n labelId: string;\n /** Varselmelding, som vil komme under form-komponenten */\n feedback?: string;\n /** Om inputfeltet er fylt med data. Brukes for plassering av label */\n isFilled?: boolean;\n /**Ekstra props som sendes til label */\n labelProps?: { [key: string]: any };\n /** Ekstra styling */\n style?: React.CSSProperties;\n /** Plasserer labelen statisk på toppen av inputfeltet */\n disableLabelAnimation?: boolean;\n};\n\nexport const BaseFormControl = React.forwardRef<\n HTMLDivElement,\n BaseFormControlProps\n>(\n (\n {\n children,\n className,\n dark = false,\n disabled = false,\n readOnly = false,\n variant,\n prepend,\n append,\n size = 'medium',\n isFilled,\n label,\n required,\n labelTooltip,\n feedback,\n labelId,\n labelProps,\n style,\n disableLabelAnimation = false,\n ...rest\n },\n ref,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n\n return (\n <InputGroupContextProvider>\n <div\n className={classNames(\n 'eds-form-control-wrapper',\n className,\n `eds-form-control-wrapper--size-${size}`,\n {\n 'eds-form-control-wrapper--success': currentVariant === 'success',\n 'eds-form-control-wrapper--error': currentVariant === 'error',\n 'eds-form-control-wrapper--dark': dark,\n 'eds-form-control-wrapper--disabled': disabled,\n 'eds-form-control-wrapper--readonly': readOnly,\n 'eds-form-control-wrapper--is-filled': isFilled,\n },\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n {prepend && (\n <div className=\"eds-form-control__prepend\">{prepend}</div>\n )}\n <InputGroupLabel\n label={label}\n required={required}\n labelId={labelId}\n staticAnimation={disableLabelAnimation}\n {...labelProps}\n />\n {children}\n {append && <div className=\"eds-form-control__append\">{append}</div>}\n {labelTooltip && (\n <div className=\"eds-form-control__append eds-form-control__append--tooltip\">\n <Tooltip content={labelTooltip} placement=\"right\">\n <span className=\"eds-input-group__label-tooltip-icon\">\n <QuestionIcon />\n </span>\n </Tooltip>\n </div>\n )}\n </div>\n {feedback && currentVariant && (\n <FeedbackText variant={currentVariant}>{feedback}</FeedbackText>\n )}\n </InputGroupContextProvider>\n );\n },\n);\n","import React, { CSSProperties } from 'react';\nimport { Paragraph } from '@entur/typography';\nimport cx from 'classnames';\nimport './Checkbox.scss';\n\nexport type CheckboxProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for checkboxen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om Checkbox er avmerket, eller om den */\n checked?: 'indeterminate' | boolean;\n /** Callback for Checkbox */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Om checkboxen er disabled eller ikke\n * @default false\n */\n disabled?: boolean;\n /**Ekstra styling til komponenten */\n style?: CSSProperties;\n /** Reduserer klikkflaten for Checkbox'en\n * @default false\n */\n reduceClickArea?: boolean;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'checked'>;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n className,\n children,\n style,\n disabled = false,\n reduceClickArea,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n // Trick to allow using a ref locally, while still allowing for ref forwarding\n // Read more at https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n const innerRef = React.useRef<HTMLInputElement>(null);\n //eslint-disable-next-line\n React.useImperativeHandle(ref, () => innerRef.current!);\n\n const isIndeterminate = checked === 'indeterminate';\n const isControlled = checked !== undefined;\n\n React.useEffect(() => {\n if (innerRef && innerRef.current) {\n innerRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n return (\n <label\n className={cx('eds-checkbox__container', className, {\n 'eds-checkbox--disabled': disabled,\n 'eds-checkbox__container--reduced-click-area': reduceClickArea,\n })}\n style={style}\n >\n <input\n type=\"checkbox\"\n ref={innerRef}\n checked={isControlled ? checked === true : undefined}\n disabled={disabled}\n {...rest}\n />\n <span\n className={cx('eds-checkbox__icon', {\n 'eds-checkbox__icon--disabled': disabled,\n 'eds-checkbox__icon--reduced-click-area': reduceClickArea,\n })}\n >\n <CheckboxIcon indeterminate={isIndeterminate} />\n </span>\n {children && (\n <Paragraph className=\"eds-checkbox__label\" margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n\nconst CheckboxIcon: React.FC<{ indeterminate: boolean }> = ({\n indeterminate = false,\n}) => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"11px\"\n height=\"9px\"\n viewBox=\"6 11 37 33\"\n >\n {indeterminate ? (\n <rect x=\"10\" y=\"25\" width=\"28\" height=\"5\" fill=\"white\" />\n ) : (\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n )}\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\nimport './Fieldset.scss';\n\nexport type FieldsetProps = {\n /** Innholdet i felt-gruppen. */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Labelen til felt-gruppen. */\n label?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const Fieldset: React.FC<FieldsetProps> = ({\n children,\n className,\n label,\n ...rest\n}) => (\n <fieldset className={classNames('eds-fieldset', className)} {...rest}>\n {label && (\n <Label as=\"legend\" className=\"eds-legend\">\n {label}\n </Label>\n )}\n {children}\n </fieldset>\n);\n","import React from 'react';\n\ntype RadioGroupContextProps = {\n name: string;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n value: string | null;\n};\n\nconst RadioGroupContext = React.createContext<RadioGroupContextProps | null>(\n null,\n);\n\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\n\nexport const useRadioGroupContext: () => RadioGroupContextProps = () => {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your RadioButtons in a RadioGroup component',\n );\n }\n return context;\n};\n","import React from 'react';\nimport cx from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './Radio.scss';\n\nexport type RadioProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label til radio-button. Vises ved høyre side. */\n children?: React.ReactNode;\n /** Verdien til radioknappen */\n value: string;\n} & React.InputHTMLAttributes<HTMLInputElement>;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n { className, children, value, disabled, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = cx(className, 'eds-form-component--radio__radio', {\n 'eds-form-component--radio__radio--disabled': disabled,\n });\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n return (\n <label className=\"eds-form-component--radio__container\">\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n disabled={disabled}\n {...rest}\n />\n <span className={classList}>\n <span className=\"eds-form-component--radio__circle\"></span>\n </span>\n {children && (\n <Paragraph\n margin=\"none\"\n as=\"span\"\n className=\"eds-form-component--radio__label\"\n >\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { RadioGroupContextProvider } from './RadioGroupContext';\nimport { Fieldset } from './Fieldset';\n\nexport type RadioGroupProps = {\n /** Navnet til radiogruppen. */\n name: string;\n /** Overskrift over radiogruppen */\n label?: string;\n /** Verdien til den valgte radioknappen */\n value: string | null;\n /** Radioknappene sendes inn som children */\n children: React.ReactNode;\n /** En callback som blir kalles hver gang en radioknapp klikkes på */\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n [key: string]: any;\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n name,\n value,\n children,\n onChange,\n label,\n ...rest\n}) => {\n const contextValue = React.useMemo(() => ({ name, value, onChange }), [\n name,\n value,\n onChange,\n ]);\n return (\n <RadioGroupContextProvider value={contextValue}>\n {label ? (\n <Fieldset label={label} {...rest}>\n {children}\n </Fieldset>\n ) : (\n children\n )}\n </RadioGroupContextProvider>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useRadioGroupContext } from './RadioGroupContext';\nimport './RadioPanel.scss';\nimport { useRandomId } from '@entur/utils';\n\nexport type RadioPanelProps = {\n /** Verdien til RadioPanel */\n value: string;\n /** Hovedtittelen til RadioPanel */\n title: React.ReactNode;\n /** Ektstra label som står høyrestilt mot Checkboxen */\n secondaryLabel?: React.ReactNode;\n /** Ekstra informasjon som legges nederst i RadioPanel */\n children?: React.ReactNode;\n /** Størrelse på RadioPanel\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /**Skjuler checkbox-en i RadioPanel\n * @default false\n */\n hideCheckbox?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Om RadioPanel er deaktivert eller ikke\n * @default false\n */\n disabled?: boolean;\n /** */\n style?: React.CSSProperties;\n} & Omit<\n React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n >,\n 'title' | 'size'\n>;\n\nexport const RadioPanel = React.forwardRef<HTMLInputElement, RadioPanelProps>(\n (\n {\n className,\n children,\n value,\n title,\n secondaryLabel,\n size = 'medium',\n hideCheckbox = false,\n style,\n id,\n disabled = false,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const classList = classNames(\n className,\n 'eds-radio-panel__container',\n `eds-radio-panel--${size}`,\n { 'eds-radio-panel--disabled': disabled },\n );\n\n const { name, value: selectedValue, onChange } = useRadioGroupContext();\n const randomId = useRandomId('eds-radiopanel');\n const radioPanelId = id || randomId;\n return (\n <label className=\"eds-radio-panel__wrapper\" htmlFor={radioPanelId}>\n <input\n type=\"radio\"\n name={name}\n ref={ref}\n value={value}\n checked={selectedValue === value}\n onChange={onChange}\n id={radioPanelId}\n disabled={disabled}\n {...rest}\n />\n <div className={classList} style={style}>\n <div className=\"eds-radio-panel__title-wrapper\">\n <div className=\"eds-radio-panel__title\">{title}</div>\n <div className=\"eds-radio-panel__label\">\n {secondaryLabel && <span>{secondaryLabel}</span>}\n {!(disabled || hideCheckbox) && (\n <span className=\"eds-radio-panel__check\">\n <RadioPanelCheck />\n </span>\n )}\n </div>\n </div>\n {children && (\n <div className=\"eds-radio-panel__additional-content\">\n {children}\n </div>\n )}\n </div>\n </label>\n );\n },\n);\n\nconst RadioPanelCheck: React.FC = () => {\n return (\n <svg\n className=\"eds-checkbox-icon\"\n width=\"22px\"\n height=\"16px\"\n viewBox=\"6 11 37 33\"\n >\n <path\n className=\"eds-checkbox-icon__path\"\n d=\"M14.1 27.2l7.1 7.2 14.6-14.8\"\n fill=\"none\"\n />\n </svg>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Paragraph } from '@entur/typography';\nimport { colors } from '@entur/tokens';\nimport './Switch.scss';\n\nexport type SwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Label for Switchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Ikonet som skal stå inne i sirkelen på Switchen */\n icon?: React.ReactNode;\n /** Farge som settes på ikon og bakgrunnen når Switchen er \"checked\". Default er mint-contrast\n * @default colors.validation .mintContrast\n */\n color?: string;\n /** Lik som color, men når Switchen står i en kontrast seksjon. Default er samme farge som color. */\n contrastColor?: string;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n className,\n children,\n icon,\n color = colors.validation.mintContrast,\n contrastColor,\n size = 'medium',\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const chosenContrastColor = (contrastColor && contrastColor) || color;\n return (\n <label\n className={classNames('eds-switch', className)}\n style={{ ...rest.style }}\n >\n <input type=\"checkbox\" ref={ref} {...rest} />\n <span\n className={classNames('eds-switch__switch', {\n 'eds-switch__switch--large': size === 'large',\n })}\n style={\n {\n '--eds-switch-color': color,\n '--eds-switch-contrast-color': chosenContrastColor,\n } as React.CSSProperties\n }\n >\n <span className=\"eds-switch__circle\">{icon && icon}</span>\n </span>\n {children && (\n <Paragraph margin=\"none\" as=\"span\">\n {children}\n </Paragraph>\n )}\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Switch } from './Switch';\nimport { colors } from '@entur/tokens';\nimport {\n BusIcon,\n FerryIcon,\n TramIcon,\n PlaneIcon,\n TrainIcon,\n BicycleIcon,\n ScooterIcon,\n SubwayIcon,\n} from '@entur/icons';\nimport './Switch.scss';\n\nexport type TravelSwitchProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Om switchen er checked eller ikke */\n checked?: boolean;\n /** Label for TravelSwitchen, som vises ved høyre side. */\n children?: React.ReactNode;\n /** Hvilken type reise som skal vises rikig ikon og farge for */\n transport: // When adding a new submode, check https://enturas.atlassian.net/wiki/spaces/PUBLIC/pages/825393529/Norwegian+submodes+and+their+definitions for names\n | 'bus'\n | 'metro'\n | 'air'\n | 'tram'\n | 'rail'\n | 'water'\n | 'bike'\n | 'airportLinkBus'\n | 'airportLinkRail'\n | 'scooter';\n /** Callback for når verdien endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Størrelsen på Switchen\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>;\n\nexport const TravelSwitch: React.FC<TravelSwitchProps> = ({\n className,\n children,\n transport,\n size,\n ...rest\n}) => {\n const { color, contrast, Icon } = modeCalc(transport);\n return (\n <Switch\n className={className}\n color={color}\n contrastColor={contrast}\n icon={<Icon />}\n size={size}\n {...rest}\n >\n {children}\n </Switch>\n );\n};\n\nfunction modeCalc(mode: string) {\n switch (mode) {\n case 'bus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.bus,\n contrast: colors.transport.contrast.bus,\n };\n case 'metro':\n return {\n Icon: SubwayIcon,\n color: colors.transport.default.metro,\n contrast: colors.transport.contrast.metro,\n };\n case 'air':\n return {\n Icon: PlaneIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'tram':\n return {\n Icon: TramIcon,\n color: colors.transport.default.tram,\n contrast: colors.transport.contrast.tram,\n };\n case 'rail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.train,\n contrast: colors.transport.contrast.train,\n };\n case 'water':\n return {\n Icon: FerryIcon,\n color: colors.transport.default.ferry,\n contrast: colors.transport.contrast.ferry,\n };\n case 'bike':\n return {\n Icon: BicycleIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'scooter':\n return {\n Icon: ScooterIcon,\n color: colors.transport.default.mobility,\n contrast: colors.transport.contrast.mobility,\n };\n case 'airportLinkBus':\n return {\n Icon: BusIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n case 'airportLinkRail':\n return {\n Icon: TrainIcon,\n color: colors.transport.default.plane,\n contrast: colors.transport.contrast.plane,\n };\n default:\n throw Error('Please select a transport for the TravelSwitch.');\n }\n}\n","export function hasValue(value: any) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj: any, SSR = false) {\n return (\n obj &&\n ((hasValue(obj.value) && obj.value !== '') ||\n (SSR && hasValue(obj.defaultValue) && obj.defaultValue !== ''))\n );\n}\n","import React from 'react';\nimport { VariantType } from './VariantProvider';\nimport { BaseFormControl } from './BaseFormControl';\nimport './TextArea.scss';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useRandomId, useOnMount } from '@entur/utils';\nimport { isFilled } from './utils';\n\nexport type TextAreaProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Valideringsvariant */\n variant?: VariantType;\n /** Deaktiverer tekstområdet */\n disabled?: boolean;\n /** Setter tekstområdet i read-only modus */\n readOnly?: boolean;\n /** Label over TextArea */\n label: string;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextArea */\n feedback?: string;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n label,\n feedback,\n labelTooltip,\n onChange,\n disableLabelAnimation,\n ...rest\n },\n ref: React.Ref<HTMLTextAreaElement>,\n ) => {\n const textAreaId = useRandomId('eds-textarea');\n return (\n <BaseFormControl\n className={className}\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n style={style}\n label={label}\n labelId={textAreaId}\n feedback={feedback}\n labelTooltip={labelTooltip}\n labelProps={{ className: 'eds-textarea__label' }}\n disableLabelAnimation={disableLabelAnimation}\n >\n <TextAreaBase\n readOnly={readOnly}\n disabled={disabled}\n ref={ref}\n aria-labelledby={textAreaId}\n onChange={onChange}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextAreaBaseProps = {\n readOnly?: boolean;\n disabled?: boolean;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst TextAreaBase = React.forwardRef<HTMLTextAreaElement, TextAreaBaseProps>(\n ({ readOnly, disabled, onChange, value, ...rest }, ref) => {\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <textarea\n className=\"eds-form-control eds-textarea\"\n ref={ref}\n readOnly={readOnly}\n disabled={disabled}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n","import { useRandomId, useOnMount } from '@entur/utils';\nimport React from 'react';\nimport { BaseFormControl } from './BaseFormControl';\nimport { useInputGroupContext } from './InputGroupContext';\nimport { useVariant, VariantType } from './VariantProvider';\nimport { isFilled } from './utils';\nimport { CloseSmallIcon } from '@entur/icons';\nimport './TextField.scss';\n\nexport type TextFieldProps = {\n /** Tekst eller ikon som kommer før inputfeltet */\n prepend?: React.ReactNode;\n /** Tekst eller ikon som kommer etter inputfeltet */\n append?: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Label over TextField */\n label: React.ReactNode;\n /** En tooltip som forklarer labelen til inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Varselmelding, som vil komme under TextField */\n feedback?: string;\n /** Hvilken valideringsfarge som vises */\n variant?: VariantType;\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n /** Størrelsen på TextField\n * @default \"medium\"\n */\n size?: 'medium' | 'large';\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra props som sendes til label-elementet */\n labelProps?: React.DetailedHTMLProps<\n React.LabelHTMLAttributes<HTMLLabelElement>,\n HTMLLabelElement\n >;\n /** Om man skal ha muliget for å nullstille TextField. Viser lukkekryss hvis feltet er fylt.\n * @default false\n */\n clearable?: boolean;\n /** Callback for clearable */\n onClear?: () => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'label'>;\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n prepend,\n append,\n variant,\n disabled = false,\n readOnly = false,\n className,\n style,\n size = 'medium',\n label,\n required,\n labelTooltip,\n feedback,\n onChange,\n disableLabelAnimation,\n labelProps,\n clearable = false,\n onClear,\n value,\n ...rest\n },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const textFieldId =\n labelProps && labelProps.id\n ? labelProps.id\n : useRandomId('eds-textfield');\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n variant={variant}\n prepend={prepend}\n append={clearable ? <ClearButton onClear={onClear} /> : append}\n className={className}\n style={style}\n size={size}\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n labelId={textFieldId}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n labelProps={labelProps}\n >\n <TextFieldBase\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n aria-labelledby={textFieldId}\n onChange={onChange}\n value={value}\n {...rest}\n />\n </BaseFormControl>\n );\n },\n);\n\ntype TextFieldBaseProps = {\n /** Deaktiver inputfeltet */\n disabled?: boolean;\n /** Setter inputfeltet i read-only modus */\n readOnly?: boolean;\n variant?: VariantType;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nconst TextFieldBase = React.forwardRef<HTMLInputElement, TextFieldBaseProps>(\n (\n { disabled, readOnly, placeholder, onChange, value, variant, ...rest },\n forwardRef,\n ) => {\n const contextVariant = useVariant();\n const currentVariant = variant || contextVariant;\n const { isFilled: isInputFilled, setFilled: setFiller } =\n useInputGroupContext();\n\n useOnMount(() => {\n if (value || rest.defaultValue) {\n setFiller && !isInputFilled && setFiller(true);\n }\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isFilled(event.target)) {\n setFiller && !isInputFilled && setFiller(true);\n } else {\n setFiller && isInputFilled && setFiller(false);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <input\n aria-invalid={currentVariant === 'error'}\n className=\"eds-form-control\"\n disabled={disabled}\n readOnly={readOnly}\n ref={forwardRef}\n placeholder={placeholder}\n onChange={handleChange}\n value={value}\n {...rest}\n />\n );\n },\n);\n\nconst ClearButton: React.FC<{\n onClear?: () => void;\n [key: string]: any;\n}> = ({ onClear, ...props }) => {\n const { isFilled: hasValue } = useInputGroupContext();\n return (\n <div className=\"eds-textfield__clear-button-wrapper\">\n {hasValue && <div className=\"eds-textfield__divider\"></div>}\n {hasValue && (\n <button\n className=\"eds-textfield__clear-button\"\n type=\"button\"\n tabIndex={-1}\n onClick={onClear}\n {...props}\n >\n <CloseSmallIcon />\n </button>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useRandomId } from '@entur/utils';\n\nexport type SelectedValues = { [key: string]: boolean };\nexport type SelectedValue = string | null;\nexport type SegmentedContextProps =\n | {\n name: string;\n onChange: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name: string;\n onChange: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nconst SegmentedContext = React.createContext<SegmentedContextProps | null>(\n null,\n);\n\nexport type SegmentedProviderProps =\n | {\n name?: string;\n onChange?: (value: SelectedValues) => void;\n selectedValue: SelectedValues;\n multiple: true;\n size: 'medium' | 'large';\n }\n | {\n name?: string;\n onChange?: (value: SelectedValue) => void;\n selectedValue: SelectedValue;\n multiple: false;\n size: 'medium' | 'large';\n };\n\nexport const SegmentedProvider: React.FC<SegmentedProviderProps> = ({\n name,\n onChange = () => {},\n selectedValue,\n multiple,\n size,\n ...rest\n}) => {\n const generatedName = useRandomId('eds-segmented-control');\n const contextValue = React.useMemo(\n () => ({\n name: name || generatedName,\n onChange,\n multiple,\n selectedValue,\n size,\n }),\n [generatedName, multiple, name, onChange, selectedValue, size],\n ) as SegmentedContextProps;\n return <SegmentedContext.Provider value={contextValue} {...rest} />;\n};\n\nexport const useSegmentedContext = () => {\n const context = React.useContext(SegmentedContext);\n if (!context) {\n throw new Error(\n 'You need to wrap your SegmentedChoice in either SegmentedControl or MultipleSegmentedControl',\n );\n }\n return context;\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport {\n useSegmentedContext,\n SelectedValues,\n SelectedValue,\n} from './SegmentedContext';\nimport './SegmentedChoice.scss';\n\nexport type SegmentedChoiceProps = {\n /** Verdien til valget */\n value: string;\n /** Innhold som beskriver valget */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Callback som kalles når komponenten endres */\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n} & React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n>;\n\nexport const SegmentedChoice = React.forwardRef<\n HTMLInputElement,\n SegmentedChoiceProps\n>(\n (\n { children, className, style, value, name, onChange = () => {}, ...rest },\n ref: React.Ref<HTMLInputElement>,\n ) => {\n const {\n name: commonName,\n selectedValue,\n onChange: commonOnChange,\n multiple,\n size,\n } = useSegmentedContext();\n\n const isChecked = multiple\n ? (selectedValue as SelectedValues)[value]\n : (selectedValue as SelectedValue) === value;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange(e);\n if (multiple) {\n commonOnChange({\n ...(selectedValue as SelectedValues),\n [value]: e.target.checked,\n } as any);\n } else if (e.target.checked) {\n commonOnChange(value as any);\n }\n };\n\n return (\n <label\n className={classNames('eds-segmented-choice', className, {\n 'eds-segmented-choide--large': size === 'large',\n })}\n style={style}\n >\n <input\n type={multiple ? 'checkbox' : 'radio'}\n name={name || commonName}\n checked={isChecked}\n value={value}\n onChange={handleChange}\n ref={ref}\n {...rest}\n />\n <div\n className={classNames('eds-base-segmented', {\n 'eds-base-segmented--large': size === 'large',\n })}\n >\n {children}\n </div>\n </label>\n );\n },\n);\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValue } from './SegmentedContext';\nimport './SegmentedControl.scss';\nimport classNames from 'classnames';\n\nexport type SegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den valgte verdien */\n selectedValue: SelectedValue;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValue) => void;\n /** Størrelsen på SegmentedChoice-komponentene */\n size?: 'medium' | 'large';\n /** Ekstra klassenavn */\n className?: string;\n [key: string]: any;\n};\n\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n size = 'medium',\n className,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={false}\n size={size}\n >\n <Label as=\"div\">{label}</Label>\n <div className={classNames('eds-segmented-control', className)} {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import React from 'react';\nimport { Label } from '@entur/typography';\nimport { SegmentedProvider, SelectedValues } from './SegmentedContext';\nimport './SegmentedControl.scss';\n\nexport type MultipleSegmentedControlProps = {\n /** Navn på input-elementene */\n name?: string;\n /** Beskrivende tekst */\n label?: string;\n /** En eller flere SegmentedChoice-komponenter */\n children: React.ReactNode;\n /** Den eller de valgte verdiene */\n selectedValue: SelectedValues;\n /** Callback for når det gjøres et valg */\n onChange: (value: SelectedValues) => void;\n [key: string]: any;\n};\n\n/**This component is not used by anyone, and is therefore deprecated\n * @deprecated\n */\nexport const MultipleSegmentedControl: React.FC<MultipleSegmentedControlProps> = ({\n children,\n label,\n name,\n onChange,\n selectedValue,\n ...rest\n}) => {\n return (\n <SegmentedProvider\n name={name}\n selectedValue={selectedValue}\n onChange={onChange}\n multiple={true}\n size=\"medium\"\n >\n <Label as=\"div\">{label}</Label>\n <div className=\"eds-segmented-control\" {...rest}>\n {children}\n </div>\n </SegmentedProvider>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('form', 'icons', 'typography');\n\nexport * from './BaseFormControl';\nexport * from './Checkbox';\nexport * from './FeedbackText';\nexport * from './Fieldset';\nexport * from './InputGroupLabel';\nexport * from './InputGroupContext';\nexport * from './Radio';\nexport * from './RadioGroup';\nexport * from './RadioPanel';\nexport * from './Switch';\nexport * from './TravelSwitch';\nexport * from './TextArea';\nexport * from './TextField';\nexport * from './VariantProvider';\nexport * from './utils';\nexport * from './segmented-control/SegmentedChoice';\nexport * from './segmented-control/SegmentedControl';\nexport * from './segmented-control/MultipleSegmentedControl';\n"],"names":["AlertIcon","variant","iconClass","React","ValidationCheckIcon","className","ValidationErrorIcon","ValidationExclamationIcon","FeedbackText","children","hideIcon","rest","SubLabel","classNames","InputGroupContext","isFilled","setFilled","InputGroupContextProvider","filled","Provider","value","useInputGroupContext","InputGroupLabel","label","required","labelId","staticAnimation","filler","id","VariantContext","createContext","VariantProvider","useVariant","context","useContext","BaseFormControl","forwardRef","ref","dark","disabled","readOnly","prepend","append","size","labelTooltip","feedback","labelProps","style","disableLabelAnimation","contextVariant","currentVariant","Tooltip","content","placement","QuestionIcon","Checkbox","checked","reduceClickArea","innerRef","useRef","useImperativeHandle","current","isIndeterminate","isControlled","undefined","useEffect","indeterminate","cx","type","CheckboxIcon","Paragraph","margin","as","width","height","viewBox","x","y","fill","d","Fieldset","Label","RadioGroupContext","RadioGroupContextProvider","useRadioGroupContext","Error","Radio","classList","name","selectedValue","onChange","RadioGroup","contextValue","useMemo","RadioPanel","title","secondaryLabel","hideCheckbox","randomId","useRandomId","radioPanelId","htmlFor","RadioPanelCheck","Switch","icon","color","colors","validation","mintContrast","contrastColor","chosenContrastColor","TravelSwitch","transport","modeCalc","contrast","Icon","mode","BusIcon","bus","SubwayIcon","metro","PlaneIcon","plane","TramIcon","tram","TrainIcon","train","FerryIcon","ferry","BicycleIcon","mobility","ScooterIcon","hasValue","Array","isArray","length","obj","SSR","defaultValue","TextArea","textAreaId","TextAreaBase","isInputFilled","setFiller","useOnMount","handleChange","event","target","TextField","clearable","onClear","textFieldId","ClearButton","TextFieldBase","placeholder","props","tabIndex","onClick","CloseSmallIcon","SegmentedContext","SegmentedProvider","multiple","generatedName","useSegmentedContext","SegmentedChoice","commonName","commonOnChange","isChecked","e","SegmentedControl","MultipleSegmentedControl","warnAboutMissingStyles"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/form",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.5",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/form.esm.js",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@entur/icons": "^3.4.0",
|
|
31
31
|
"@entur/tokens": "^3.3.0",
|
|
32
|
-
"@entur/tooltip": "^2.
|
|
32
|
+
"@entur/tooltip": "^2.5.0",
|
|
33
33
|
"@entur/typography": "^1.6.10",
|
|
34
34
|
"@entur/utils": "^0.4.2",
|
|
35
35
|
"classnames": "^2.3.1"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "4344fc544585636bf5e7f20a1783cb1807082081"
|
|
38
38
|
}
|