@launchpad-ui/form 0.8.7 → 0.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FieldError.d.ts","sourceRoot":"","sources":["../src/FieldError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAO5C,KAAK,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,UAAU,uEAMb,eAAe,uBAgBjB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"FieldError.d.ts","sourceRoot":"","sources":["../src/FieldError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAQ5C,KAAK,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG;IACvD,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,UAAU,uEAMb,eAAe,uBAiBjB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
package/dist/index.es.js CHANGED
@@ -2,35 +2,36 @@ import './style.css';
2
2
  import { forwardRef, useState, useRef, Children, isValidElement, cloneElement } from "react";
3
3
  import { cx } from "classix";
4
4
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
5
+ import { AlertRhombus } from "@launchpad-ui/icons";
5
6
  import { VisuallyHidden } from "@react-aria/visually-hidden";
6
- const formGroup = "_formGroup_1icaj_10";
7
- const formIncreasedErrorMargin = "_formIncreasedErrorMargin_1icaj_18";
8
- const formInline = "_formInline_1icaj_22";
9
- const form = "_form_1icaj_10";
10
- const formInput = "_formInput_1icaj_36";
11
- const isFocused = "_isFocused_1icaj_56";
12
- const iconField = "_iconField_1icaj_73";
13
- const suffixContainer = "_suffixContainer_1icaj_77";
14
- const isInvalid = "_isInvalid_1icaj_82";
15
- const inlineForm = "_inlineForm_1icaj_93";
16
- const label = "_label_1icaj_98";
17
- const labelDisabled = "_labelDisabled_1icaj_104";
18
- const labelOptional = "_labelOptional_1icaj_108";
19
- const compactTextField = "_compactTextField_1icaj_114";
20
- const fieldError = "_fieldError_1icaj_138";
21
- const hint = "_hint_1icaj_180";
22
- const field = "_field_1icaj_138";
23
- const fieldErrorMessage = "_fieldErrorMessage_1icaj_200";
24
- const isDisabled = "_isDisabled_1icaj_213";
25
- const checkbox = "_checkbox_1icaj_280";
26
- const radio = "_radio_1icaj_287";
27
- const number = "_number_1icaj_291";
28
- const suffix = "_suffix_1icaj_77";
29
- const iconFieldIcon = "_iconFieldIcon_1icaj_329";
30
- const formInputTiny = "_formInputTiny_1icaj_337";
31
- const requiredAsterisk = "_requiredAsterisk_1icaj_346";
32
- const fieldSet = "_fieldSet_1icaj_350";
33
- const isActive = "_isActive_1icaj_361";
7
+ const formGroup = "_formGroup_p76jo_10";
8
+ const formIncreasedErrorMargin = "_formIncreasedErrorMargin_p76jo_18";
9
+ const formInline = "_formInline_p76jo_22";
10
+ const form = "_form_p76jo_10";
11
+ const formInput = "_formInput_p76jo_36";
12
+ const isFocused = "_isFocused_p76jo_56";
13
+ const iconField = "_iconField_p76jo_73";
14
+ const suffixContainer = "_suffixContainer_p76jo_77";
15
+ const isInvalid = "_isInvalid_p76jo_82";
16
+ const inlineForm = "_inlineForm_p76jo_93";
17
+ const label = "_label_p76jo_98";
18
+ const labelDisabled = "_labelDisabled_p76jo_104";
19
+ const labelOptional = "_labelOptional_p76jo_108";
20
+ const compactTextField = "_compactTextField_p76jo_114";
21
+ const fieldError = "_fieldError_p76jo_138";
22
+ const hint = "_hint_p76jo_184";
23
+ const field = "_field_p76jo_138";
24
+ const fieldErrorMessage = "_fieldErrorMessage_p76jo_204";
25
+ const isDisabled = "_isDisabled_p76jo_217";
26
+ const checkbox = "_checkbox_p76jo_284";
27
+ const radio = "_radio_p76jo_291";
28
+ const number = "_number_p76jo_295";
29
+ const suffix = "_suffix_p76jo_77";
30
+ const iconFieldIcon = "_iconFieldIcon_p76jo_333";
31
+ const formInputTiny = "_formInputTiny_p76jo_341";
32
+ const requiredAsterisk = "_requiredAsterisk_p76jo_350";
33
+ const fieldSet = "_fieldSet_p76jo_354";
34
+ const isActive = "_isActive_p76jo_365";
34
35
  const styles = {
35
36
  formGroup,
36
37
  formIncreasedErrorMargin,
@@ -230,13 +231,16 @@ const FieldError = ({
230
231
  if (!errorMessage) {
231
232
  return null;
232
233
  }
233
- return /* @__PURE__ */ jsx("span", {
234
+ return /* @__PURE__ */ jsxs("span", {
234
235
  ...rest,
235
236
  className: cx(styles.fieldError, className),
236
237
  "aria-live": "polite",
237
238
  "data-test-id": testId,
239
+ "aria-label": "Error",
238
240
  id: createFieldErrorId(name),
239
- children: `Error - ${errorMessage}`
241
+ children: [/* @__PURE__ */ jsx(AlertRhombus, {
242
+ size: "small"
243
+ }), " ", errorMessage]
240
244
  });
241
245
  };
242
246
  const FieldSet = ({
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/RequiredAsterisk.tsx","../src/Label.tsx","../src/Checkbox.tsx","../src/utils/index.ts","../src/TextField.tsx","../src/CompactTextField.tsx","../src/FieldError.tsx","../src/FieldSet.tsx","../src/Form.tsx","../src/FormGroup.tsx","../src/FormHint.tsx","../src/FormField.tsx","../src/IconField.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/SelectField.tsx","../src/TextArea.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype RequiredAsteriskProps = HTMLAttributes<HTMLSpanElement> & {\n 'data-test-id'?: string;\n};\n\nconst RequiredAsterisk = ({\n className,\n 'data-test-id': testId = 'required-asterisk',\n ...rest\n}: RequiredAsteriskProps) => {\n const classes = cx(styles.requiredAsterisk, className);\n\n return (\n <span {...rest} data-test-id={testId} className={classes}>\n *\n </span>\n );\n};\n\nexport { RequiredAsterisk };\nexport type { RequiredAsteriskProps };\n","import type { LabelHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { RequiredAsterisk } from './RequiredAsterisk';\nimport styles from './styles/Form.module.css';\n\ntype LabelProps = LabelHTMLAttributes<HTMLLabelElement> & {\n required?: boolean;\n optional?: boolean;\n disabled?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Label = ({\n disabled,\n className,\n children,\n required = false,\n optional = false,\n 'data-test-id': testId = 'label',\n ...rest\n}: LabelProps) => {\n const classes = cx(styles.label, className, disabled && styles.labelDisabled);\n\n return (\n <label {...rest} data-test-id={testId} className={classes}>\n {children}\n {optional && !required && <small className={styles.labelOptional}>(optional)</small>}\n {required && !optional && <RequiredAsterisk />}\n </label>\n );\n};\n\nexport { Label };\nexport type { LabelProps };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { forwardRef } from 'react';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype CheckboxProps = InputHTMLAttributes<HTMLInputElement> & {\n /**\n * The className to pass into the Checkbox's Label component\n */\n labelClassName?: string;\n 'data-test-id'?: string;\n};\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n children,\n disabled,\n checked,\n labelClassName,\n 'data-test-id': testId = 'checkbox',\n ...rest\n },\n ref\n ) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <Label className={labelClassName}>\n <input\n {...rest}\n ref={ref}\n checked={checked}\n aria-checked={checked ? 'true' : 'false'}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={styles.checkbox}\n disabled={disabled}\n type=\"checkbox\"\n data-test-id={testId}\n />{' '}\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\nexport type { CheckboxProps };\n","type FieldPath = string | string[];\n\nconst createFieldErrorId = (fieldIdentifier?: FieldPath) =>\n fieldIdentifier ? `${[...fieldIdentifier].join('')}-err` : undefined;\n\nexport { createFieldErrorId };\nexport type { FieldPath };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextFieldProps = InputHTMLAttributes<HTMLInputElement> & {\n suffix?: string;\n tiny?: boolean;\n overrideWidth?: string;\n 'data-test-id'?: string;\n};\n\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n type = 'text',\n tiny = false,\n readOnly,\n tabIndex = 0,\n suffix,\n overrideWidth,\n 'data-test-id': testId = 'text-field',\n ...rest\n },\n ref\n ) => {\n const classes = overrideWidth\n ? className\n : cx(styles.formInput, tiny && styles.formInputTiny, className);\n\n if (suffix) {\n return (\n <div className={styles.suffixContainer}>\n <input\n {...rest}\n type={type}\n data-test-id={testId}\n className={classes}\n readOnly={readOnly}\n ref={ref}\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n <label className={styles.suffix} htmlFor={rest.id}>\n {suffix}\n </label>\n </div>\n );\n }\n\n return (\n <input\n {...rest}\n type={type}\n className={classes}\n readOnly={readOnly}\n tabIndex={tabIndex}\n ref={ref}\n data-test-id={testId}\n style={\n overrideWidth\n ? {\n width: overrideWidth,\n }\n : undefined\n }\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n );\n }\n);\n\nTextField.displayName = 'TextField';\n\nexport { TextField };\nexport type { TextFieldProps };\n","import type { TextFieldProps } from './TextField';\nimport type { FocusEvent } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef, useState } from 'react';\n\nimport { Label } from './Label';\nimport { TextField } from './TextField';\nimport styles from './styles/Form.module.css';\n\ntype CompactTextFieldProps = TextFieldProps & {\n label: string;\n needsErrorFeedback?: boolean;\n};\n\nconst CompactTextField = forwardRef<HTMLInputElement, CompactTextFieldProps>(\n (\n {\n className,\n id,\n label,\n needsErrorFeedback,\n value,\n onFocus,\n onBlur,\n 'data-test-id': testId = 'compact-text-field',\n ...rest\n },\n ref\n ) => {\n const [isActive, setIsActive] = useState(\n (typeof value === 'boolean' || value ? value.toString() : '').trim().length !== 0\n );\n\n const isActiveState = isActive || needsErrorFeedback;\n\n const classes = cx(styles.compactTextField, className, isActiveState && styles.isActive);\n\n const placeholder = isActiveState ? '' : label;\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n setIsActive(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const value = event.target.value || '';\n setIsActive(value.trim().length !== 0);\n if (onBlur) {\n onBlur(event);\n }\n };\n\n return (\n <div className={classes} data-test-id={testId}>\n <Label htmlFor={id}>{label}</Label>\n <TextField\n {...rest}\n id={id}\n placeholder={placeholder}\n value={value}\n ref={ref}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </div>\n );\n }\n);\n\nCompactTextField.displayName = 'CompactTextField';\n\nexport { CompactTextField };\nexport type { CompactTextFieldProps };\n","import type { FieldPath } from './utils';\nimport type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype FieldErrorProps = HTMLAttributes<HTMLSpanElement> & {\n name: FieldPath;\n errorMessage?: string;\n 'data-test-id'?: string;\n};\n\nconst FieldError = ({\n name,\n errorMessage,\n className,\n 'data-test-id': testId = 'field-error',\n ...rest\n}: FieldErrorProps) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n <span\n {...rest}\n className={cx(styles.fieldError, className)}\n aria-live=\"polite\"\n data-test-id={testId}\n id={createFieldErrorId(name)}\n >\n {`Error - ${errorMessage}`}\n </span>\n );\n};\n\nexport { FieldError };\nexport type { FieldErrorProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FieldSetProps = HTMLAttributes<HTMLFieldSetElement> & {\n 'data-test-id'?: string;\n};\n\nconst FieldSet = ({\n children,\n className,\n 'data-test-id': testId = 'field-set',\n ...rest\n}: FieldSetProps) => {\n const classes = cx(styles.fieldSet, className);\n\n return (\n <fieldset data-test-id={testId} className={classes} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FieldSet };\nexport type { FieldSetProps };\n","import type { FormHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormProps = FormHTMLAttributes<HTMLFormElement> & {\n inline?: boolean;\n // Increases margin between form fields to make room for error messages.\n // This prevents the form from shifting when rendering a field error.\n // This may be desired when the form contains external links that will\n // shift while clicking if the form shifts from validation.\n hasIncreasedErrorMargin?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Form = (props: FormProps) => {\n const {\n className,\n inline,\n children,\n hasIncreasedErrorMargin,\n 'data-test-id': testId = 'form',\n ...rest\n } = props;\n\n const classes = cx(\n styles.form,\n className,\n inline && styles.formInline,\n !!hasIncreasedErrorMargin && styles.formIncreasedErrorMargin\n );\n\n return (\n <form {...rest} data-test-id={testId} className={classes}>\n {children}\n </form>\n );\n};\n\nexport { Form };\nexport type { FormProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormGroupProps = HTMLAttributes<HTMLFieldSetElement> & {\n name?: string | string[];\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n 'data-test-id'?: string;\n};\n\nconst FormGroup = (props: FormGroupProps) => {\n const {\n className,\n name,\n ignoreValidation,\n isInvalid,\n children,\n 'data-test-id': testId = 'form-group',\n ...rest\n } = props;\n\n const classes = cx(\n styles.formGroup,\n className,\n !ignoreValidation && isInvalid && styles.isInvalid\n );\n\n return (\n <fieldset className={classes} data-test-id={testId} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FormGroup };\nexport type { FormGroupProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormHintProps = HTMLAttributes<HTMLDivElement> & {\n 'data-test-id'?: string;\n};\n\nconst FormHint = ({\n className,\n children,\n 'data-test-id': testId = 'form-hint',\n ...rest\n}: FormHintProps) => {\n const classes = cx(styles.hint, className);\n\n return (\n <div {...rest} data-test-id={testId} className={classes}>\n {children}\n </div>\n );\n};\n\nexport { FormHint };\nexport type { FormHintProps };\n","import { cx } from 'classix';\n\nimport { FieldError } from './FieldError';\nimport { FormGroup } from './FormGroup';\nimport { FormHint } from './FormHint';\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype FormFieldProps = {\n isRequired: boolean;\n label?: string;\n name: string;\n htmlFor: string;\n hint?: string;\n errorMessage?: string;\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n children: JSX.Element;\n className?: string;\n onBlur?: (field: string) => void;\n 'data-test-id'?: string;\n};\n\nconst FormField = ({\n isRequired,\n label,\n name,\n htmlFor,\n hint,\n errorMessage,\n ignoreValidation,\n isInvalid,\n children,\n className,\n onBlur,\n 'data-test-id': testId = 'form-field',\n}: FormFieldProps) => {\n const handleBlur = () => {\n onBlur && onBlur(name);\n };\n\n return (\n <FormGroup\n className={cx(styles.field, className)}\n name={name}\n ignoreValidation={ignoreValidation}\n isInvalid={isInvalid}\n onBlur={handleBlur}\n data-test-id={testId}\n >\n {label && (\n <Label htmlFor={htmlFor} required={isRequired}>\n {label}\n </Label>\n )}\n {hint && <FormHint className={styles.hint}>{hint}</FormHint>}\n {children}\n <FieldError className={styles.fieldErrorMessage} name={name} errorMessage={errorMessage} />\n </FormGroup>\n );\n};\n\nexport type { FormFieldProps };\nexport { FormField };\n","import type { IconProps } from '@launchpad-ui/icons';\nimport type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype IconFieldProps = HTMLAttributes<HTMLDivElement> & {\n icon(args: IconProps): JSX.Element;\n children: JSX.Element | JSX.Element[];\n 'data-test-id'?: string;\n};\n\nconst IconField = ({\n icon,\n children,\n className,\n 'data-test-id': testId = 'icon-field',\n ...rest\n}: IconFieldProps) => {\n const Icon = icon;\n\n const classes = cx(styles.iconField, className);\n\n return (\n <div className={classes} data-test-id={testId} {...rest}>\n {children}\n <Icon size=\"small\" className={styles.iconFieldIcon} />\n </div>\n );\n};\n\nexport { IconField };\nexport type { IconFieldProps };\n","import type { CSSProperties, InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype RadioProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n labelClassName?: string;\n labelStyle?: CSSProperties;\n 'data-test-id'?: string;\n};\n\nconst Radio = ({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n checked = false,\n children,\n className,\n disabled = false,\n id,\n labelClassName,\n labelStyle,\n 'data-test-id': testId = 'radio',\n ...rest\n}: RadioProps) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <>\n <input\n {...rest}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={cx(styles.radio, className)}\n checked={checked}\n disabled={disabled}\n id={id}\n data-test-id={testId}\n type=\"radio\"\n />\n <Label className={labelClassName} htmlFor={id} style={labelStyle}>\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n </>\n );\n};\n\nexport { Radio };\nexport type { RadioProps };\n","import type { ChangeEvent, FormEvent, ReactElement, ReactNode } from 'react';\n\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport { Children, cloneElement, isValidElement, useRef } from 'react';\n\nimport { Label } from './Label';\nimport { Radio } from './Radio';\n\ntype RadioGroupProps = {\n /**\n * The legend that describes this groups of radio buttons. The legend\n * is important for screen reader users.\n */\n legend?: string;\n /**\n * The children passed into the RadioGroup.\n */\n children?: ReactNode;\n /**\n * Custom classname(s) passed to the fieldset inner div.\n */\n className?: string;\n /**\n * Set the underlying Radio to disabled if the Radio's disabled prop is undefined.\n */\n disabled?: boolean;\n /**\n * The RadioGroup's id.\n */\n id?: string;\n /**\n * Name to apply to the underlying Radio. The same name value is passed to each Radio when grouping in a RadioGroup for screen reader support.\n */\n name: string;\n /**\n * This function is passed into each Radio onChange synthetic event handler.\n */\n onChange?(e: ChangeEvent | FormEvent<HTMLInputElement>): void;\n /**\n * The value to compare against the Radio's value to determine if the Radio will be checked.\n */\n value: string;\n\n 'data-test-id'?: string;\n};\n\nconst RadioGroup = (props: RadioGroupProps) => {\n const {\n name,\n value,\n onChange,\n children,\n disabled,\n legend,\n 'data-test-id': testId = 'radio-group',\n ...rest\n } = props;\n const fieldsetRef = useRef<HTMLFieldSetElement>(null);\n\n function updateRadioElems(elem: ReactNode): ReactNode {\n if (!isValidElement(elem)) {\n return elem;\n }\n\n const item = elem as ReactElement;\n\n if (item?.type && item.type === Radio) {\n return cloneElement(item, {\n ...item.props,\n name,\n checked: item.props.value === value,\n onChange,\n disabled: typeof item.props?.disabled !== 'undefined' ? item.props.disabled : disabled,\n });\n }\n\n if (item?.type && item.type === Label) {\n return cloneElement(item, {\n ...item.props,\n onChange,\n disabled,\n });\n }\n\n const elemChildren = item?.props?.children;\n if (elemChildren) {\n if (Array.isArray(elemChildren)) {\n return cloneElement(item, {\n children: Children.map(elemChildren, (elemChild) => updateRadioElems(elemChild)),\n });\n }\n return cloneElement(item, {\n children: updateRadioElems(elemChildren),\n });\n }\n\n if (item?.type && item.type !== Radio && item.type !== Label) {\n return item;\n }\n\n return null;\n }\n\n const radios = Children.map(children, (child) => updateRadioElems(child));\n return (\n <fieldset data-test-id={testId} ref={fieldsetRef}>\n {legend && (\n <legend>\n <VisuallyHidden>{legend}</VisuallyHidden>\n </legend>\n )}\n <div {...rest}>{radios}</div>\n </fieldset>\n );\n};\n\nexport { RadioGroup };\nexport type { RadioGroupProps };\n","import type { SelectHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype SelectFieldProps = SelectHTMLAttributes<HTMLSelectElement> & {\n 'data-test-id'?: string;\n};\n\nconst SelectField = ({\n className,\n children,\n 'data-test-id': testId = 'select',\n ...rest\n}: SelectFieldProps) => {\n const classes = cx(styles.formInput, className);\n\n return (\n <select {...rest} data-test-id={testId} className={classes}>\n {children}\n </select>\n );\n};\n\nexport { SelectField };\nexport type { SelectFieldProps };\n","import type { KeyboardEvent, TextareaHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextAreaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n 'data-test-id'?: string;\n};\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, 'data-test-id': testId = 'text-area', ...props }, ref) => {\n const onKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (\n e.key === 'ArrowRight' ||\n e.key === 'ArrowDown' ||\n e.key === 'ArrowUp' ||\n e.key === 'ArrowLeft'\n ) {\n e.stopPropagation();\n }\n if (e.key === 'Escape') {\n e.nativeEvent.stopImmediatePropagation();\n }\n };\n\n return (\n <textarea\n {...props}\n className={cx(styles.formInput, className)}\n ref={ref}\n data-test-id={testId}\n aria-describedby={props['aria-describedby'] || createFieldErrorId(props.id)}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea };\nexport type { TextAreaProps };\n"],"names":["RequiredAsterisk","className","testId","rest","classes","cx","styles","requiredAsterisk","children","Label","disabled","required","optional","label","labelDisabled","labelOptional","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","_jsx","checkbox","type","displayName","TextField","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","htmlFor","style","width","CompactTextField","needsErrorFeedback","value","onFocus","onBlur","isActive","setIsActive","useState","toString","trim","length","isActiveState","compactTextField","placeholder","handleFocus","event","handleBlur","target","FieldError","name","errorMessage","fieldError","FieldSet","fieldSet","Form","props","inline","hasIncreasedErrorMargin","form","formInline","formIncreasedErrorMargin","FormGroup","ignoreValidation","isInvalid","formGroup","FormHint","hint","FormField","isRequired","field","fieldErrorMessage","IconField","icon","Icon","iconField","size","iconFieldIcon","Radio","labelStyle","_Fragment","radio","RadioGroup","onChange","legend","fieldsetRef","useRef","updateRadioElems","elem","isValidElement","item","cloneElement","elemChildren","Array","isArray","Children","map","elemChild","radios","child","VisuallyHidden","SelectField","TextArea","onKeyDown","e","key","stopPropagation","nativeEvent","stopImmediatePropagation"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/RequiredAsterisk.tsx","../src/Label.tsx","../src/Checkbox.tsx","../src/utils/index.ts","../src/TextField.tsx","../src/CompactTextField.tsx","../src/FieldError.tsx","../src/FieldSet.tsx","../src/Form.tsx","../src/FormGroup.tsx","../src/FormHint.tsx","../src/FormField.tsx","../src/IconField.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/SelectField.tsx","../src/TextArea.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype RequiredAsteriskProps = HTMLAttributes<HTMLSpanElement> & {\n 'data-test-id'?: string;\n};\n\nconst RequiredAsterisk = ({\n className,\n 'data-test-id': testId = 'required-asterisk',\n ...rest\n}: RequiredAsteriskProps) => {\n const classes = cx(styles.requiredAsterisk, className);\n\n return (\n <span {...rest} data-test-id={testId} className={classes}>\n *\n </span>\n );\n};\n\nexport { RequiredAsterisk };\nexport type { RequiredAsteriskProps };\n","import type { LabelHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { RequiredAsterisk } from './RequiredAsterisk';\nimport styles from './styles/Form.module.css';\n\ntype LabelProps = LabelHTMLAttributes<HTMLLabelElement> & {\n required?: boolean;\n optional?: boolean;\n disabled?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Label = ({\n disabled,\n className,\n children,\n required = false,\n optional = false,\n 'data-test-id': testId = 'label',\n ...rest\n}: LabelProps) => {\n const classes = cx(styles.label, className, disabled && styles.labelDisabled);\n\n return (\n <label {...rest} data-test-id={testId} className={classes}>\n {children}\n {optional && !required && <small className={styles.labelOptional}>(optional)</small>}\n {required && !optional && <RequiredAsterisk />}\n </label>\n );\n};\n\nexport { Label };\nexport type { LabelProps };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { forwardRef } from 'react';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype CheckboxProps = InputHTMLAttributes<HTMLInputElement> & {\n /**\n * The className to pass into the Checkbox's Label component\n */\n labelClassName?: string;\n 'data-test-id'?: string;\n};\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n children,\n disabled,\n checked,\n labelClassName,\n 'data-test-id': testId = 'checkbox',\n ...rest\n },\n ref\n ) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <Label className={labelClassName}>\n <input\n {...rest}\n ref={ref}\n checked={checked}\n aria-checked={checked ? 'true' : 'false'}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={styles.checkbox}\n disabled={disabled}\n type=\"checkbox\"\n data-test-id={testId}\n />{' '}\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\nexport type { CheckboxProps };\n","type FieldPath = string | string[];\n\nconst createFieldErrorId = (fieldIdentifier?: FieldPath) =>\n fieldIdentifier ? `${[...fieldIdentifier].join('')}-err` : undefined;\n\nexport { createFieldErrorId };\nexport type { FieldPath };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextFieldProps = InputHTMLAttributes<HTMLInputElement> & {\n suffix?: string;\n tiny?: boolean;\n overrideWidth?: string;\n 'data-test-id'?: string;\n};\n\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n type = 'text',\n tiny = false,\n readOnly,\n tabIndex = 0,\n suffix,\n overrideWidth,\n 'data-test-id': testId = 'text-field',\n ...rest\n },\n ref\n ) => {\n const classes = overrideWidth\n ? className\n : cx(styles.formInput, tiny && styles.formInputTiny, className);\n\n if (suffix) {\n return (\n <div className={styles.suffixContainer}>\n <input\n {...rest}\n type={type}\n data-test-id={testId}\n className={classes}\n readOnly={readOnly}\n ref={ref}\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n <label className={styles.suffix} htmlFor={rest.id}>\n {suffix}\n </label>\n </div>\n );\n }\n\n return (\n <input\n {...rest}\n type={type}\n className={classes}\n readOnly={readOnly}\n tabIndex={tabIndex}\n ref={ref}\n data-test-id={testId}\n style={\n overrideWidth\n ? {\n width: overrideWidth,\n }\n : undefined\n }\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n );\n }\n);\n\nTextField.displayName = 'TextField';\n\nexport { TextField };\nexport type { TextFieldProps };\n","import type { TextFieldProps } from './TextField';\nimport type { FocusEvent } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef, useState } from 'react';\n\nimport { Label } from './Label';\nimport { TextField } from './TextField';\nimport styles from './styles/Form.module.css';\n\ntype CompactTextFieldProps = TextFieldProps & {\n label: string;\n needsErrorFeedback?: boolean;\n};\n\nconst CompactTextField = forwardRef<HTMLInputElement, CompactTextFieldProps>(\n (\n {\n className,\n id,\n label,\n needsErrorFeedback,\n value,\n onFocus,\n onBlur,\n 'data-test-id': testId = 'compact-text-field',\n ...rest\n },\n ref\n ) => {\n const [isActive, setIsActive] = useState(\n (typeof value === 'boolean' || value ? value.toString() : '').trim().length !== 0\n );\n\n const isActiveState = isActive || needsErrorFeedback;\n\n const classes = cx(styles.compactTextField, className, isActiveState && styles.isActive);\n\n const placeholder = isActiveState ? '' : label;\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n setIsActive(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const value = event.target.value || '';\n setIsActive(value.trim().length !== 0);\n if (onBlur) {\n onBlur(event);\n }\n };\n\n return (\n <div className={classes} data-test-id={testId}>\n <Label htmlFor={id}>{label}</Label>\n <TextField\n {...rest}\n id={id}\n placeholder={placeholder}\n value={value}\n ref={ref}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </div>\n );\n }\n);\n\nCompactTextField.displayName = 'CompactTextField';\n\nexport { CompactTextField };\nexport type { CompactTextFieldProps };\n","import type { FieldPath } from './utils';\nimport type { HTMLAttributes } from 'react';\n\nimport { AlertRhombus } from '@launchpad-ui/icons';\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype FieldErrorProps = HTMLAttributes<HTMLSpanElement> & {\n name: FieldPath;\n errorMessage?: string;\n 'data-test-id'?: string;\n};\n\nconst FieldError = ({\n name,\n errorMessage,\n className,\n 'data-test-id': testId = 'field-error',\n ...rest\n}: FieldErrorProps) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n <span\n {...rest}\n className={cx(styles.fieldError, className)}\n aria-live=\"polite\"\n data-test-id={testId}\n aria-label=\"Error\"\n id={createFieldErrorId(name)}\n >\n <AlertRhombus size=\"small\" /> {errorMessage}\n </span>\n );\n};\n\nexport { FieldError };\nexport type { FieldErrorProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FieldSetProps = HTMLAttributes<HTMLFieldSetElement> & {\n 'data-test-id'?: string;\n};\n\nconst FieldSet = ({\n children,\n className,\n 'data-test-id': testId = 'field-set',\n ...rest\n}: FieldSetProps) => {\n const classes = cx(styles.fieldSet, className);\n\n return (\n <fieldset data-test-id={testId} className={classes} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FieldSet };\nexport type { FieldSetProps };\n","import type { FormHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormProps = FormHTMLAttributes<HTMLFormElement> & {\n inline?: boolean;\n // Increases margin between form fields to make room for error messages.\n // This prevents the form from shifting when rendering a field error.\n // This may be desired when the form contains external links that will\n // shift while clicking if the form shifts from validation.\n hasIncreasedErrorMargin?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Form = (props: FormProps) => {\n const {\n className,\n inline,\n children,\n hasIncreasedErrorMargin,\n 'data-test-id': testId = 'form',\n ...rest\n } = props;\n\n const classes = cx(\n styles.form,\n className,\n inline && styles.formInline,\n !!hasIncreasedErrorMargin && styles.formIncreasedErrorMargin\n );\n\n return (\n <form {...rest} data-test-id={testId} className={classes}>\n {children}\n </form>\n );\n};\n\nexport { Form };\nexport type { FormProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormGroupProps = HTMLAttributes<HTMLFieldSetElement> & {\n name?: string | string[];\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n 'data-test-id'?: string;\n};\n\nconst FormGroup = (props: FormGroupProps) => {\n const {\n className,\n name,\n ignoreValidation,\n isInvalid,\n children,\n 'data-test-id': testId = 'form-group',\n ...rest\n } = props;\n\n const classes = cx(\n styles.formGroup,\n className,\n !ignoreValidation && isInvalid && styles.isInvalid\n );\n\n return (\n <fieldset className={classes} data-test-id={testId} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FormGroup };\nexport type { FormGroupProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormHintProps = HTMLAttributes<HTMLDivElement> & {\n 'data-test-id'?: string;\n};\n\nconst FormHint = ({\n className,\n children,\n 'data-test-id': testId = 'form-hint',\n ...rest\n}: FormHintProps) => {\n const classes = cx(styles.hint, className);\n\n return (\n <div {...rest} data-test-id={testId} className={classes}>\n {children}\n </div>\n );\n};\n\nexport { FormHint };\nexport type { FormHintProps };\n","import { cx } from 'classix';\n\nimport { FieldError } from './FieldError';\nimport { FormGroup } from './FormGroup';\nimport { FormHint } from './FormHint';\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype FormFieldProps = {\n isRequired: boolean;\n label?: string;\n name: string;\n htmlFor: string;\n hint?: string;\n errorMessage?: string;\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n children: JSX.Element;\n className?: string;\n onBlur?: (field: string) => void;\n 'data-test-id'?: string;\n};\n\nconst FormField = ({\n isRequired,\n label,\n name,\n htmlFor,\n hint,\n errorMessage,\n ignoreValidation,\n isInvalid,\n children,\n className,\n onBlur,\n 'data-test-id': testId = 'form-field',\n}: FormFieldProps) => {\n const handleBlur = () => {\n onBlur && onBlur(name);\n };\n\n return (\n <FormGroup\n className={cx(styles.field, className)}\n name={name}\n ignoreValidation={ignoreValidation}\n isInvalid={isInvalid}\n onBlur={handleBlur}\n data-test-id={testId}\n >\n {label && (\n <Label htmlFor={htmlFor} required={isRequired}>\n {label}\n </Label>\n )}\n {hint && <FormHint className={styles.hint}>{hint}</FormHint>}\n {children}\n <FieldError className={styles.fieldErrorMessage} name={name} errorMessage={errorMessage} />\n </FormGroup>\n );\n};\n\nexport type { FormFieldProps };\nexport { FormField };\n","import type { IconProps } from '@launchpad-ui/icons';\nimport type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype IconFieldProps = HTMLAttributes<HTMLDivElement> & {\n icon(args: IconProps): JSX.Element;\n children: JSX.Element | JSX.Element[];\n 'data-test-id'?: string;\n};\n\nconst IconField = ({\n icon,\n children,\n className,\n 'data-test-id': testId = 'icon-field',\n ...rest\n}: IconFieldProps) => {\n const Icon = icon;\n\n const classes = cx(styles.iconField, className);\n\n return (\n <div className={classes} data-test-id={testId} {...rest}>\n {children}\n <Icon size=\"small\" className={styles.iconFieldIcon} />\n </div>\n );\n};\n\nexport { IconField };\nexport type { IconFieldProps };\n","import type { CSSProperties, InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype RadioProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n labelClassName?: string;\n labelStyle?: CSSProperties;\n 'data-test-id'?: string;\n};\n\nconst Radio = ({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n checked = false,\n children,\n className,\n disabled = false,\n id,\n labelClassName,\n labelStyle,\n 'data-test-id': testId = 'radio',\n ...rest\n}: RadioProps) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <>\n <input\n {...rest}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={cx(styles.radio, className)}\n checked={checked}\n disabled={disabled}\n id={id}\n data-test-id={testId}\n type=\"radio\"\n />\n <Label className={labelClassName} htmlFor={id} style={labelStyle}>\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n </>\n );\n};\n\nexport { Radio };\nexport type { RadioProps };\n","import type { ChangeEvent, FormEvent, ReactElement, ReactNode } from 'react';\n\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport { Children, cloneElement, isValidElement, useRef } from 'react';\n\nimport { Label } from './Label';\nimport { Radio } from './Radio';\n\ntype RadioGroupProps = {\n /**\n * The legend that describes this groups of radio buttons. The legend\n * is important for screen reader users.\n */\n legend?: string;\n /**\n * The children passed into the RadioGroup.\n */\n children?: ReactNode;\n /**\n * Custom classname(s) passed to the fieldset inner div.\n */\n className?: string;\n /**\n * Set the underlying Radio to disabled if the Radio's disabled prop is undefined.\n */\n disabled?: boolean;\n /**\n * The RadioGroup's id.\n */\n id?: string;\n /**\n * Name to apply to the underlying Radio. The same name value is passed to each Radio when grouping in a RadioGroup for screen reader support.\n */\n name: string;\n /**\n * This function is passed into each Radio onChange synthetic event handler.\n */\n onChange?(e: ChangeEvent | FormEvent<HTMLInputElement>): void;\n /**\n * The value to compare against the Radio's value to determine if the Radio will be checked.\n */\n value: string;\n\n 'data-test-id'?: string;\n};\n\nconst RadioGroup = (props: RadioGroupProps) => {\n const {\n name,\n value,\n onChange,\n children,\n disabled,\n legend,\n 'data-test-id': testId = 'radio-group',\n ...rest\n } = props;\n const fieldsetRef = useRef<HTMLFieldSetElement>(null);\n\n function updateRadioElems(elem: ReactNode): ReactNode {\n if (!isValidElement(elem)) {\n return elem;\n }\n\n const item = elem as ReactElement;\n\n if (item?.type && item.type === Radio) {\n return cloneElement(item, {\n ...item.props,\n name,\n checked: item.props.value === value,\n onChange,\n disabled: typeof item.props?.disabled !== 'undefined' ? item.props.disabled : disabled,\n });\n }\n\n if (item?.type && item.type === Label) {\n return cloneElement(item, {\n ...item.props,\n onChange,\n disabled,\n });\n }\n\n const elemChildren = item?.props?.children;\n if (elemChildren) {\n if (Array.isArray(elemChildren)) {\n return cloneElement(item, {\n children: Children.map(elemChildren, (elemChild) => updateRadioElems(elemChild)),\n });\n }\n return cloneElement(item, {\n children: updateRadioElems(elemChildren),\n });\n }\n\n if (item?.type && item.type !== Radio && item.type !== Label) {\n return item;\n }\n\n return null;\n }\n\n const radios = Children.map(children, (child) => updateRadioElems(child));\n return (\n <fieldset data-test-id={testId} ref={fieldsetRef}>\n {legend && (\n <legend>\n <VisuallyHidden>{legend}</VisuallyHidden>\n </legend>\n )}\n <div {...rest}>{radios}</div>\n </fieldset>\n );\n};\n\nexport { RadioGroup };\nexport type { RadioGroupProps };\n","import type { SelectHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype SelectFieldProps = SelectHTMLAttributes<HTMLSelectElement> & {\n 'data-test-id'?: string;\n};\n\nconst SelectField = ({\n className,\n children,\n 'data-test-id': testId = 'select',\n ...rest\n}: SelectFieldProps) => {\n const classes = cx(styles.formInput, className);\n\n return (\n <select {...rest} data-test-id={testId} className={classes}>\n {children}\n </select>\n );\n};\n\nexport { SelectField };\nexport type { SelectFieldProps };\n","import type { KeyboardEvent, TextareaHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextAreaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n 'data-test-id'?: string;\n};\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, 'data-test-id': testId = 'text-area', ...props }, ref) => {\n const onKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (\n e.key === 'ArrowRight' ||\n e.key === 'ArrowDown' ||\n e.key === 'ArrowUp' ||\n e.key === 'ArrowLeft'\n ) {\n e.stopPropagation();\n }\n if (e.key === 'Escape') {\n e.nativeEvent.stopImmediatePropagation();\n }\n };\n\n return (\n <textarea\n {...props}\n className={cx(styles.formInput, className)}\n ref={ref}\n data-test-id={testId}\n aria-describedby={props['aria-describedby'] || createFieldErrorId(props.id)}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea };\nexport type { TextAreaProps };\n"],"names":["RequiredAsterisk","className","testId","rest","classes","cx","styles","requiredAsterisk","children","Label","disabled","required","optional","label","labelDisabled","labelOptional","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","_jsx","checkbox","type","displayName","TextField","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","htmlFor","style","width","CompactTextField","needsErrorFeedback","value","onFocus","onBlur","isActive","setIsActive","useState","toString","trim","length","isActiveState","compactTextField","placeholder","handleFocus","event","handleBlur","target","FieldError","name","errorMessage","fieldError","AlertRhombus","size","FieldSet","fieldSet","Form","props","inline","hasIncreasedErrorMargin","form","formInline","formIncreasedErrorMargin","FormGroup","ignoreValidation","isInvalid","formGroup","FormHint","hint","FormField","isRequired","field","fieldErrorMessage","IconField","icon","Icon","iconField","iconFieldIcon","Radio","labelStyle","_Fragment","radio","RadioGroup","onChange","legend","fieldsetRef","useRef","updateRadioElems","elem","isValidElement","item","cloneElement","elemChildren","Array","isArray","Children","map","elemChild","radios","child","VisuallyHidden","SelectField","TextArea","onKeyDown","e","key","stopPropagation","nativeEvent","stopImmediatePropagation"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,35 +4,36 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
4
4
  const react = require("react");
5
5
  const classix = require("classix");
6
6
  const jsxRuntime = require("react/jsx-runtime");
7
+ const icons = require("@launchpad-ui/icons");
7
8
  const visuallyHidden = require("@react-aria/visually-hidden");
8
- const formGroup = "_formGroup_1icaj_10";
9
- const formIncreasedErrorMargin = "_formIncreasedErrorMargin_1icaj_18";
10
- const formInline = "_formInline_1icaj_22";
11
- const form = "_form_1icaj_10";
12
- const formInput = "_formInput_1icaj_36";
13
- const isFocused = "_isFocused_1icaj_56";
14
- const iconField = "_iconField_1icaj_73";
15
- const suffixContainer = "_suffixContainer_1icaj_77";
16
- const isInvalid = "_isInvalid_1icaj_82";
17
- const inlineForm = "_inlineForm_1icaj_93";
18
- const label = "_label_1icaj_98";
19
- const labelDisabled = "_labelDisabled_1icaj_104";
20
- const labelOptional = "_labelOptional_1icaj_108";
21
- const compactTextField = "_compactTextField_1icaj_114";
22
- const fieldError = "_fieldError_1icaj_138";
23
- const hint = "_hint_1icaj_180";
24
- const field = "_field_1icaj_138";
25
- const fieldErrorMessage = "_fieldErrorMessage_1icaj_200";
26
- const isDisabled = "_isDisabled_1icaj_213";
27
- const checkbox = "_checkbox_1icaj_280";
28
- const radio = "_radio_1icaj_287";
29
- const number = "_number_1icaj_291";
30
- const suffix = "_suffix_1icaj_77";
31
- const iconFieldIcon = "_iconFieldIcon_1icaj_329";
32
- const formInputTiny = "_formInputTiny_1icaj_337";
33
- const requiredAsterisk = "_requiredAsterisk_1icaj_346";
34
- const fieldSet = "_fieldSet_1icaj_350";
35
- const isActive = "_isActive_1icaj_361";
9
+ const formGroup = "_formGroup_p76jo_10";
10
+ const formIncreasedErrorMargin = "_formIncreasedErrorMargin_p76jo_18";
11
+ const formInline = "_formInline_p76jo_22";
12
+ const form = "_form_p76jo_10";
13
+ const formInput = "_formInput_p76jo_36";
14
+ const isFocused = "_isFocused_p76jo_56";
15
+ const iconField = "_iconField_p76jo_73";
16
+ const suffixContainer = "_suffixContainer_p76jo_77";
17
+ const isInvalid = "_isInvalid_p76jo_82";
18
+ const inlineForm = "_inlineForm_p76jo_93";
19
+ const label = "_label_p76jo_98";
20
+ const labelDisabled = "_labelDisabled_p76jo_104";
21
+ const labelOptional = "_labelOptional_p76jo_108";
22
+ const compactTextField = "_compactTextField_p76jo_114";
23
+ const fieldError = "_fieldError_p76jo_138";
24
+ const hint = "_hint_p76jo_184";
25
+ const field = "_field_p76jo_138";
26
+ const fieldErrorMessage = "_fieldErrorMessage_p76jo_204";
27
+ const isDisabled = "_isDisabled_p76jo_217";
28
+ const checkbox = "_checkbox_p76jo_284";
29
+ const radio = "_radio_p76jo_291";
30
+ const number = "_number_p76jo_295";
31
+ const suffix = "_suffix_p76jo_77";
32
+ const iconFieldIcon = "_iconFieldIcon_p76jo_333";
33
+ const formInputTiny = "_formInputTiny_p76jo_341";
34
+ const requiredAsterisk = "_requiredAsterisk_p76jo_350";
35
+ const fieldSet = "_fieldSet_p76jo_354";
36
+ const isActive = "_isActive_p76jo_365";
36
37
  const styles = {
37
38
  formGroup,
38
39
  formIncreasedErrorMargin,
@@ -232,13 +233,16 @@ const FieldError = ({
232
233
  if (!errorMessage) {
233
234
  return null;
234
235
  }
235
- return /* @__PURE__ */ jsxRuntime.jsx("span", {
236
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", {
236
237
  ...rest,
237
238
  className: classix.cx(styles.fieldError, className),
238
239
  "aria-live": "polite",
239
240
  "data-test-id": testId,
241
+ "aria-label": "Error",
240
242
  id: createFieldErrorId(name),
241
- children: `Error - ${errorMessage}`
243
+ children: [/* @__PURE__ */ jsxRuntime.jsx(icons.AlertRhombus, {
244
+ size: "small"
245
+ }), " ", errorMessage]
242
246
  });
243
247
  };
244
248
  const FieldSet = ({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/RequiredAsterisk.tsx","../src/Label.tsx","../src/Checkbox.tsx","../src/utils/index.ts","../src/TextField.tsx","../src/CompactTextField.tsx","../src/FieldError.tsx","../src/FieldSet.tsx","../src/Form.tsx","../src/FormGroup.tsx","../src/FormHint.tsx","../src/FormField.tsx","../src/IconField.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/SelectField.tsx","../src/TextArea.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype RequiredAsteriskProps = HTMLAttributes<HTMLSpanElement> & {\n 'data-test-id'?: string;\n};\n\nconst RequiredAsterisk = ({\n className,\n 'data-test-id': testId = 'required-asterisk',\n ...rest\n}: RequiredAsteriskProps) => {\n const classes = cx(styles.requiredAsterisk, className);\n\n return (\n <span {...rest} data-test-id={testId} className={classes}>\n *\n </span>\n );\n};\n\nexport { RequiredAsterisk };\nexport type { RequiredAsteriskProps };\n","import type { LabelHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { RequiredAsterisk } from './RequiredAsterisk';\nimport styles from './styles/Form.module.css';\n\ntype LabelProps = LabelHTMLAttributes<HTMLLabelElement> & {\n required?: boolean;\n optional?: boolean;\n disabled?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Label = ({\n disabled,\n className,\n children,\n required = false,\n optional = false,\n 'data-test-id': testId = 'label',\n ...rest\n}: LabelProps) => {\n const classes = cx(styles.label, className, disabled && styles.labelDisabled);\n\n return (\n <label {...rest} data-test-id={testId} className={classes}>\n {children}\n {optional && !required && <small className={styles.labelOptional}>(optional)</small>}\n {required && !optional && <RequiredAsterisk />}\n </label>\n );\n};\n\nexport { Label };\nexport type { LabelProps };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { forwardRef } from 'react';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype CheckboxProps = InputHTMLAttributes<HTMLInputElement> & {\n /**\n * The className to pass into the Checkbox's Label component\n */\n labelClassName?: string;\n 'data-test-id'?: string;\n};\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n children,\n disabled,\n checked,\n labelClassName,\n 'data-test-id': testId = 'checkbox',\n ...rest\n },\n ref\n ) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <Label className={labelClassName}>\n <input\n {...rest}\n ref={ref}\n checked={checked}\n aria-checked={checked ? 'true' : 'false'}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={styles.checkbox}\n disabled={disabled}\n type=\"checkbox\"\n data-test-id={testId}\n />{' '}\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\nexport type { CheckboxProps };\n","type FieldPath = string | string[];\n\nconst createFieldErrorId = (fieldIdentifier?: FieldPath) =>\n fieldIdentifier ? `${[...fieldIdentifier].join('')}-err` : undefined;\n\nexport { createFieldErrorId };\nexport type { FieldPath };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextFieldProps = InputHTMLAttributes<HTMLInputElement> & {\n suffix?: string;\n tiny?: boolean;\n overrideWidth?: string;\n 'data-test-id'?: string;\n};\n\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n type = 'text',\n tiny = false,\n readOnly,\n tabIndex = 0,\n suffix,\n overrideWidth,\n 'data-test-id': testId = 'text-field',\n ...rest\n },\n ref\n ) => {\n const classes = overrideWidth\n ? className\n : cx(styles.formInput, tiny && styles.formInputTiny, className);\n\n if (suffix) {\n return (\n <div className={styles.suffixContainer}>\n <input\n {...rest}\n type={type}\n data-test-id={testId}\n className={classes}\n readOnly={readOnly}\n ref={ref}\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n <label className={styles.suffix} htmlFor={rest.id}>\n {suffix}\n </label>\n </div>\n );\n }\n\n return (\n <input\n {...rest}\n type={type}\n className={classes}\n readOnly={readOnly}\n tabIndex={tabIndex}\n ref={ref}\n data-test-id={testId}\n style={\n overrideWidth\n ? {\n width: overrideWidth,\n }\n : undefined\n }\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n );\n }\n);\n\nTextField.displayName = 'TextField';\n\nexport { TextField };\nexport type { TextFieldProps };\n","import type { TextFieldProps } from './TextField';\nimport type { FocusEvent } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef, useState } from 'react';\n\nimport { Label } from './Label';\nimport { TextField } from './TextField';\nimport styles from './styles/Form.module.css';\n\ntype CompactTextFieldProps = TextFieldProps & {\n label: string;\n needsErrorFeedback?: boolean;\n};\n\nconst CompactTextField = forwardRef<HTMLInputElement, CompactTextFieldProps>(\n (\n {\n className,\n id,\n label,\n needsErrorFeedback,\n value,\n onFocus,\n onBlur,\n 'data-test-id': testId = 'compact-text-field',\n ...rest\n },\n ref\n ) => {\n const [isActive, setIsActive] = useState(\n (typeof value === 'boolean' || value ? value.toString() : '').trim().length !== 0\n );\n\n const isActiveState = isActive || needsErrorFeedback;\n\n const classes = cx(styles.compactTextField, className, isActiveState && styles.isActive);\n\n const placeholder = isActiveState ? '' : label;\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n setIsActive(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const value = event.target.value || '';\n setIsActive(value.trim().length !== 0);\n if (onBlur) {\n onBlur(event);\n }\n };\n\n return (\n <div className={classes} data-test-id={testId}>\n <Label htmlFor={id}>{label}</Label>\n <TextField\n {...rest}\n id={id}\n placeholder={placeholder}\n value={value}\n ref={ref}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </div>\n );\n }\n);\n\nCompactTextField.displayName = 'CompactTextField';\n\nexport { CompactTextField };\nexport type { CompactTextFieldProps };\n","import type { FieldPath } from './utils';\nimport type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype FieldErrorProps = HTMLAttributes<HTMLSpanElement> & {\n name: FieldPath;\n errorMessage?: string;\n 'data-test-id'?: string;\n};\n\nconst FieldError = ({\n name,\n errorMessage,\n className,\n 'data-test-id': testId = 'field-error',\n ...rest\n}: FieldErrorProps) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n <span\n {...rest}\n className={cx(styles.fieldError, className)}\n aria-live=\"polite\"\n data-test-id={testId}\n id={createFieldErrorId(name)}\n >\n {`Error - ${errorMessage}`}\n </span>\n );\n};\n\nexport { FieldError };\nexport type { FieldErrorProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FieldSetProps = HTMLAttributes<HTMLFieldSetElement> & {\n 'data-test-id'?: string;\n};\n\nconst FieldSet = ({\n children,\n className,\n 'data-test-id': testId = 'field-set',\n ...rest\n}: FieldSetProps) => {\n const classes = cx(styles.fieldSet, className);\n\n return (\n <fieldset data-test-id={testId} className={classes} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FieldSet };\nexport type { FieldSetProps };\n","import type { FormHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormProps = FormHTMLAttributes<HTMLFormElement> & {\n inline?: boolean;\n // Increases margin between form fields to make room for error messages.\n // This prevents the form from shifting when rendering a field error.\n // This may be desired when the form contains external links that will\n // shift while clicking if the form shifts from validation.\n hasIncreasedErrorMargin?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Form = (props: FormProps) => {\n const {\n className,\n inline,\n children,\n hasIncreasedErrorMargin,\n 'data-test-id': testId = 'form',\n ...rest\n } = props;\n\n const classes = cx(\n styles.form,\n className,\n inline && styles.formInline,\n !!hasIncreasedErrorMargin && styles.formIncreasedErrorMargin\n );\n\n return (\n <form {...rest} data-test-id={testId} className={classes}>\n {children}\n </form>\n );\n};\n\nexport { Form };\nexport type { FormProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormGroupProps = HTMLAttributes<HTMLFieldSetElement> & {\n name?: string | string[];\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n 'data-test-id'?: string;\n};\n\nconst FormGroup = (props: FormGroupProps) => {\n const {\n className,\n name,\n ignoreValidation,\n isInvalid,\n children,\n 'data-test-id': testId = 'form-group',\n ...rest\n } = props;\n\n const classes = cx(\n styles.formGroup,\n className,\n !ignoreValidation && isInvalid && styles.isInvalid\n );\n\n return (\n <fieldset className={classes} data-test-id={testId} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FormGroup };\nexport type { FormGroupProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormHintProps = HTMLAttributes<HTMLDivElement> & {\n 'data-test-id'?: string;\n};\n\nconst FormHint = ({\n className,\n children,\n 'data-test-id': testId = 'form-hint',\n ...rest\n}: FormHintProps) => {\n const classes = cx(styles.hint, className);\n\n return (\n <div {...rest} data-test-id={testId} className={classes}>\n {children}\n </div>\n );\n};\n\nexport { FormHint };\nexport type { FormHintProps };\n","import { cx } from 'classix';\n\nimport { FieldError } from './FieldError';\nimport { FormGroup } from './FormGroup';\nimport { FormHint } from './FormHint';\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype FormFieldProps = {\n isRequired: boolean;\n label?: string;\n name: string;\n htmlFor: string;\n hint?: string;\n errorMessage?: string;\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n children: JSX.Element;\n className?: string;\n onBlur?: (field: string) => void;\n 'data-test-id'?: string;\n};\n\nconst FormField = ({\n isRequired,\n label,\n name,\n htmlFor,\n hint,\n errorMessage,\n ignoreValidation,\n isInvalid,\n children,\n className,\n onBlur,\n 'data-test-id': testId = 'form-field',\n}: FormFieldProps) => {\n const handleBlur = () => {\n onBlur && onBlur(name);\n };\n\n return (\n <FormGroup\n className={cx(styles.field, className)}\n name={name}\n ignoreValidation={ignoreValidation}\n isInvalid={isInvalid}\n onBlur={handleBlur}\n data-test-id={testId}\n >\n {label && (\n <Label htmlFor={htmlFor} required={isRequired}>\n {label}\n </Label>\n )}\n {hint && <FormHint className={styles.hint}>{hint}</FormHint>}\n {children}\n <FieldError className={styles.fieldErrorMessage} name={name} errorMessage={errorMessage} />\n </FormGroup>\n );\n};\n\nexport type { FormFieldProps };\nexport { FormField };\n","import type { IconProps } from '@launchpad-ui/icons';\nimport type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype IconFieldProps = HTMLAttributes<HTMLDivElement> & {\n icon(args: IconProps): JSX.Element;\n children: JSX.Element | JSX.Element[];\n 'data-test-id'?: string;\n};\n\nconst IconField = ({\n icon,\n children,\n className,\n 'data-test-id': testId = 'icon-field',\n ...rest\n}: IconFieldProps) => {\n const Icon = icon;\n\n const classes = cx(styles.iconField, className);\n\n return (\n <div className={classes} data-test-id={testId} {...rest}>\n {children}\n <Icon size=\"small\" className={styles.iconFieldIcon} />\n </div>\n );\n};\n\nexport { IconField };\nexport type { IconFieldProps };\n","import type { CSSProperties, InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype RadioProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n labelClassName?: string;\n labelStyle?: CSSProperties;\n 'data-test-id'?: string;\n};\n\nconst Radio = ({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n checked = false,\n children,\n className,\n disabled = false,\n id,\n labelClassName,\n labelStyle,\n 'data-test-id': testId = 'radio',\n ...rest\n}: RadioProps) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <>\n <input\n {...rest}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={cx(styles.radio, className)}\n checked={checked}\n disabled={disabled}\n id={id}\n data-test-id={testId}\n type=\"radio\"\n />\n <Label className={labelClassName} htmlFor={id} style={labelStyle}>\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n </>\n );\n};\n\nexport { Radio };\nexport type { RadioProps };\n","import type { ChangeEvent, FormEvent, ReactElement, ReactNode } from 'react';\n\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport { Children, cloneElement, isValidElement, useRef } from 'react';\n\nimport { Label } from './Label';\nimport { Radio } from './Radio';\n\ntype RadioGroupProps = {\n /**\n * The legend that describes this groups of radio buttons. The legend\n * is important for screen reader users.\n */\n legend?: string;\n /**\n * The children passed into the RadioGroup.\n */\n children?: ReactNode;\n /**\n * Custom classname(s) passed to the fieldset inner div.\n */\n className?: string;\n /**\n * Set the underlying Radio to disabled if the Radio's disabled prop is undefined.\n */\n disabled?: boolean;\n /**\n * The RadioGroup's id.\n */\n id?: string;\n /**\n * Name to apply to the underlying Radio. The same name value is passed to each Radio when grouping in a RadioGroup for screen reader support.\n */\n name: string;\n /**\n * This function is passed into each Radio onChange synthetic event handler.\n */\n onChange?(e: ChangeEvent | FormEvent<HTMLInputElement>): void;\n /**\n * The value to compare against the Radio's value to determine if the Radio will be checked.\n */\n value: string;\n\n 'data-test-id'?: string;\n};\n\nconst RadioGroup = (props: RadioGroupProps) => {\n const {\n name,\n value,\n onChange,\n children,\n disabled,\n legend,\n 'data-test-id': testId = 'radio-group',\n ...rest\n } = props;\n const fieldsetRef = useRef<HTMLFieldSetElement>(null);\n\n function updateRadioElems(elem: ReactNode): ReactNode {\n if (!isValidElement(elem)) {\n return elem;\n }\n\n const item = elem as ReactElement;\n\n if (item?.type && item.type === Radio) {\n return cloneElement(item, {\n ...item.props,\n name,\n checked: item.props.value === value,\n onChange,\n disabled: typeof item.props?.disabled !== 'undefined' ? item.props.disabled : disabled,\n });\n }\n\n if (item?.type && item.type === Label) {\n return cloneElement(item, {\n ...item.props,\n onChange,\n disabled,\n });\n }\n\n const elemChildren = item?.props?.children;\n if (elemChildren) {\n if (Array.isArray(elemChildren)) {\n return cloneElement(item, {\n children: Children.map(elemChildren, (elemChild) => updateRadioElems(elemChild)),\n });\n }\n return cloneElement(item, {\n children: updateRadioElems(elemChildren),\n });\n }\n\n if (item?.type && item.type !== Radio && item.type !== Label) {\n return item;\n }\n\n return null;\n }\n\n const radios = Children.map(children, (child) => updateRadioElems(child));\n return (\n <fieldset data-test-id={testId} ref={fieldsetRef}>\n {legend && (\n <legend>\n <VisuallyHidden>{legend}</VisuallyHidden>\n </legend>\n )}\n <div {...rest}>{radios}</div>\n </fieldset>\n );\n};\n\nexport { RadioGroup };\nexport type { RadioGroupProps };\n","import type { SelectHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype SelectFieldProps = SelectHTMLAttributes<HTMLSelectElement> & {\n 'data-test-id'?: string;\n};\n\nconst SelectField = ({\n className,\n children,\n 'data-test-id': testId = 'select',\n ...rest\n}: SelectFieldProps) => {\n const classes = cx(styles.formInput, className);\n\n return (\n <select {...rest} data-test-id={testId} className={classes}>\n {children}\n </select>\n );\n};\n\nexport { SelectField };\nexport type { SelectFieldProps };\n","import type { KeyboardEvent, TextareaHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextAreaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n 'data-test-id'?: string;\n};\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, 'data-test-id': testId = 'text-area', ...props }, ref) => {\n const onKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (\n e.key === 'ArrowRight' ||\n e.key === 'ArrowDown' ||\n e.key === 'ArrowUp' ||\n e.key === 'ArrowLeft'\n ) {\n e.stopPropagation();\n }\n if (e.key === 'Escape') {\n e.nativeEvent.stopImmediatePropagation();\n }\n };\n\n return (\n <textarea\n {...props}\n className={cx(styles.formInput, className)}\n ref={ref}\n data-test-id={testId}\n aria-describedby={props['aria-describedby'] || createFieldErrorId(props.id)}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea };\nexport type { TextAreaProps };\n"],"names":["RequiredAsterisk","className","testId","rest","classes","cx","styles","requiredAsterisk","children","Label","disabled","required","optional","label","labelDisabled","labelOptional","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","_jsx","checkbox","type","displayName","TextField","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","htmlFor","style","width","CompactTextField","needsErrorFeedback","value","onFocus","onBlur","isActive","setIsActive","useState","toString","trim","length","isActiveState","compactTextField","placeholder","handleFocus","event","handleBlur","target","FieldError","name","errorMessage","fieldError","FieldSet","fieldSet","Form","props","inline","hasIncreasedErrorMargin","form","formInline","formIncreasedErrorMargin","FormGroup","ignoreValidation","isInvalid","formGroup","FormHint","hint","FormField","isRequired","field","fieldErrorMessage","IconField","icon","Icon","iconField","size","iconFieldIcon","Radio","labelStyle","_Fragment","radio","RadioGroup","onChange","legend","fieldsetRef","useRef","updateRadioElems","elem","isValidElement","item","cloneElement","elemChildren","Array","isArray","Children","map","elemChild","radios","child","VisuallyHidden","SelectField","TextArea","onKeyDown","e","key","stopPropagation","nativeEvent","stopImmediatePropagation"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/RequiredAsterisk.tsx","../src/Label.tsx","../src/Checkbox.tsx","../src/utils/index.ts","../src/TextField.tsx","../src/CompactTextField.tsx","../src/FieldError.tsx","../src/FieldSet.tsx","../src/Form.tsx","../src/FormGroup.tsx","../src/FormHint.tsx","../src/FormField.tsx","../src/IconField.tsx","../src/Radio.tsx","../src/RadioGroup.tsx","../src/SelectField.tsx","../src/TextArea.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype RequiredAsteriskProps = HTMLAttributes<HTMLSpanElement> & {\n 'data-test-id'?: string;\n};\n\nconst RequiredAsterisk = ({\n className,\n 'data-test-id': testId = 'required-asterisk',\n ...rest\n}: RequiredAsteriskProps) => {\n const classes = cx(styles.requiredAsterisk, className);\n\n return (\n <span {...rest} data-test-id={testId} className={classes}>\n *\n </span>\n );\n};\n\nexport { RequiredAsterisk };\nexport type { RequiredAsteriskProps };\n","import type { LabelHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { RequiredAsterisk } from './RequiredAsterisk';\nimport styles from './styles/Form.module.css';\n\ntype LabelProps = LabelHTMLAttributes<HTMLLabelElement> & {\n required?: boolean;\n optional?: boolean;\n disabled?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Label = ({\n disabled,\n className,\n children,\n required = false,\n optional = false,\n 'data-test-id': testId = 'label',\n ...rest\n}: LabelProps) => {\n const classes = cx(styles.label, className, disabled && styles.labelDisabled);\n\n return (\n <label {...rest} data-test-id={testId} className={classes}>\n {children}\n {optional && !required && <small className={styles.labelOptional}>(optional)</small>}\n {required && !optional && <RequiredAsterisk />}\n </label>\n );\n};\n\nexport { Label };\nexport type { LabelProps };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { forwardRef } from 'react';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype CheckboxProps = InputHTMLAttributes<HTMLInputElement> & {\n /**\n * The className to pass into the Checkbox's Label component\n */\n labelClassName?: string;\n 'data-test-id'?: string;\n};\n\nconst Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n children,\n disabled,\n checked,\n labelClassName,\n 'data-test-id': testId = 'checkbox',\n ...rest\n },\n ref\n ) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <Label className={labelClassName}>\n <input\n {...rest}\n ref={ref}\n checked={checked}\n aria-checked={checked ? 'true' : 'false'}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={styles.checkbox}\n disabled={disabled}\n type=\"checkbox\"\n data-test-id={testId}\n />{' '}\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\nexport type { CheckboxProps };\n","type FieldPath = string | string[];\n\nconst createFieldErrorId = (fieldIdentifier?: FieldPath) =>\n fieldIdentifier ? `${[...fieldIdentifier].join('')}-err` : undefined;\n\nexport { createFieldErrorId };\nexport type { FieldPath };\n","import type { InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextFieldProps = InputHTMLAttributes<HTMLInputElement> & {\n suffix?: string;\n tiny?: boolean;\n overrideWidth?: string;\n 'data-test-id'?: string;\n};\n\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n type = 'text',\n tiny = false,\n readOnly,\n tabIndex = 0,\n suffix,\n overrideWidth,\n 'data-test-id': testId = 'text-field',\n ...rest\n },\n ref\n ) => {\n const classes = overrideWidth\n ? className\n : cx(styles.formInput, tiny && styles.formInputTiny, className);\n\n if (suffix) {\n return (\n <div className={styles.suffixContainer}>\n <input\n {...rest}\n type={type}\n data-test-id={testId}\n className={classes}\n readOnly={readOnly}\n ref={ref}\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n <label className={styles.suffix} htmlFor={rest.id}>\n {suffix}\n </label>\n </div>\n );\n }\n\n return (\n <input\n {...rest}\n type={type}\n className={classes}\n readOnly={readOnly}\n tabIndex={tabIndex}\n ref={ref}\n data-test-id={testId}\n style={\n overrideWidth\n ? {\n width: overrideWidth,\n }\n : undefined\n }\n aria-describedby={rest['aria-describedby'] || createFieldErrorId(rest.id)}\n />\n );\n }\n);\n\nTextField.displayName = 'TextField';\n\nexport { TextField };\nexport type { TextFieldProps };\n","import type { TextFieldProps } from './TextField';\nimport type { FocusEvent } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef, useState } from 'react';\n\nimport { Label } from './Label';\nimport { TextField } from './TextField';\nimport styles from './styles/Form.module.css';\n\ntype CompactTextFieldProps = TextFieldProps & {\n label: string;\n needsErrorFeedback?: boolean;\n};\n\nconst CompactTextField = forwardRef<HTMLInputElement, CompactTextFieldProps>(\n (\n {\n className,\n id,\n label,\n needsErrorFeedback,\n value,\n onFocus,\n onBlur,\n 'data-test-id': testId = 'compact-text-field',\n ...rest\n },\n ref\n ) => {\n const [isActive, setIsActive] = useState(\n (typeof value === 'boolean' || value ? value.toString() : '').trim().length !== 0\n );\n\n const isActiveState = isActive || needsErrorFeedback;\n\n const classes = cx(styles.compactTextField, className, isActiveState && styles.isActive);\n\n const placeholder = isActiveState ? '' : label;\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n setIsActive(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const value = event.target.value || '';\n setIsActive(value.trim().length !== 0);\n if (onBlur) {\n onBlur(event);\n }\n };\n\n return (\n <div className={classes} data-test-id={testId}>\n <Label htmlFor={id}>{label}</Label>\n <TextField\n {...rest}\n id={id}\n placeholder={placeholder}\n value={value}\n ref={ref}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </div>\n );\n }\n);\n\nCompactTextField.displayName = 'CompactTextField';\n\nexport { CompactTextField };\nexport type { CompactTextFieldProps };\n","import type { FieldPath } from './utils';\nimport type { HTMLAttributes } from 'react';\n\nimport { AlertRhombus } from '@launchpad-ui/icons';\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype FieldErrorProps = HTMLAttributes<HTMLSpanElement> & {\n name: FieldPath;\n errorMessage?: string;\n 'data-test-id'?: string;\n};\n\nconst FieldError = ({\n name,\n errorMessage,\n className,\n 'data-test-id': testId = 'field-error',\n ...rest\n}: FieldErrorProps) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n <span\n {...rest}\n className={cx(styles.fieldError, className)}\n aria-live=\"polite\"\n data-test-id={testId}\n aria-label=\"Error\"\n id={createFieldErrorId(name)}\n >\n <AlertRhombus size=\"small\" /> {errorMessage}\n </span>\n );\n};\n\nexport { FieldError };\nexport type { FieldErrorProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FieldSetProps = HTMLAttributes<HTMLFieldSetElement> & {\n 'data-test-id'?: string;\n};\n\nconst FieldSet = ({\n children,\n className,\n 'data-test-id': testId = 'field-set',\n ...rest\n}: FieldSetProps) => {\n const classes = cx(styles.fieldSet, className);\n\n return (\n <fieldset data-test-id={testId} className={classes} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FieldSet };\nexport type { FieldSetProps };\n","import type { FormHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormProps = FormHTMLAttributes<HTMLFormElement> & {\n inline?: boolean;\n // Increases margin between form fields to make room for error messages.\n // This prevents the form from shifting when rendering a field error.\n // This may be desired when the form contains external links that will\n // shift while clicking if the form shifts from validation.\n hasIncreasedErrorMargin?: boolean;\n 'data-test-id'?: string;\n};\n\nconst Form = (props: FormProps) => {\n const {\n className,\n inline,\n children,\n hasIncreasedErrorMargin,\n 'data-test-id': testId = 'form',\n ...rest\n } = props;\n\n const classes = cx(\n styles.form,\n className,\n inline && styles.formInline,\n !!hasIncreasedErrorMargin && styles.formIncreasedErrorMargin\n );\n\n return (\n <form {...rest} data-test-id={testId} className={classes}>\n {children}\n </form>\n );\n};\n\nexport { Form };\nexport type { FormProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormGroupProps = HTMLAttributes<HTMLFieldSetElement> & {\n name?: string | string[];\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n 'data-test-id'?: string;\n};\n\nconst FormGroup = (props: FormGroupProps) => {\n const {\n className,\n name,\n ignoreValidation,\n isInvalid,\n children,\n 'data-test-id': testId = 'form-group',\n ...rest\n } = props;\n\n const classes = cx(\n styles.formGroup,\n className,\n !ignoreValidation && isInvalid && styles.isInvalid\n );\n\n return (\n <fieldset className={classes} data-test-id={testId} {...rest}>\n {children}\n </fieldset>\n );\n};\n\nexport { FormGroup };\nexport type { FormGroupProps };\n","import type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype FormHintProps = HTMLAttributes<HTMLDivElement> & {\n 'data-test-id'?: string;\n};\n\nconst FormHint = ({\n className,\n children,\n 'data-test-id': testId = 'form-hint',\n ...rest\n}: FormHintProps) => {\n const classes = cx(styles.hint, className);\n\n return (\n <div {...rest} data-test-id={testId} className={classes}>\n {children}\n </div>\n );\n};\n\nexport { FormHint };\nexport type { FormHintProps };\n","import { cx } from 'classix';\n\nimport { FieldError } from './FieldError';\nimport { FormGroup } from './FormGroup';\nimport { FormHint } from './FormHint';\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype FormFieldProps = {\n isRequired: boolean;\n label?: string;\n name: string;\n htmlFor: string;\n hint?: string;\n errorMessage?: string;\n ignoreValidation?: boolean;\n isInvalid?: boolean;\n children: JSX.Element;\n className?: string;\n onBlur?: (field: string) => void;\n 'data-test-id'?: string;\n};\n\nconst FormField = ({\n isRequired,\n label,\n name,\n htmlFor,\n hint,\n errorMessage,\n ignoreValidation,\n isInvalid,\n children,\n className,\n onBlur,\n 'data-test-id': testId = 'form-field',\n}: FormFieldProps) => {\n const handleBlur = () => {\n onBlur && onBlur(name);\n };\n\n return (\n <FormGroup\n className={cx(styles.field, className)}\n name={name}\n ignoreValidation={ignoreValidation}\n isInvalid={isInvalid}\n onBlur={handleBlur}\n data-test-id={testId}\n >\n {label && (\n <Label htmlFor={htmlFor} required={isRequired}>\n {label}\n </Label>\n )}\n {hint && <FormHint className={styles.hint}>{hint}</FormHint>}\n {children}\n <FieldError className={styles.fieldErrorMessage} name={name} errorMessage={errorMessage} />\n </FormGroup>\n );\n};\n\nexport type { FormFieldProps };\nexport { FormField };\n","import type { IconProps } from '@launchpad-ui/icons';\nimport type { HTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype IconFieldProps = HTMLAttributes<HTMLDivElement> & {\n icon(args: IconProps): JSX.Element;\n children: JSX.Element | JSX.Element[];\n 'data-test-id'?: string;\n};\n\nconst IconField = ({\n icon,\n children,\n className,\n 'data-test-id': testId = 'icon-field',\n ...rest\n}: IconFieldProps) => {\n const Icon = icon;\n\n const classes = cx(styles.iconField, className);\n\n return (\n <div className={classes} data-test-id={testId} {...rest}>\n {children}\n <Icon size=\"small\" className={styles.iconFieldIcon} />\n </div>\n );\n};\n\nexport { IconField };\nexport type { IconFieldProps };\n","import type { CSSProperties, InputHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport { Label } from './Label';\nimport styles from './styles/Form.module.css';\n\ntype RadioProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {\n labelClassName?: string;\n labelStyle?: CSSProperties;\n 'data-test-id'?: string;\n};\n\nconst Radio = ({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n checked = false,\n children,\n className,\n disabled = false,\n id,\n labelClassName,\n labelStyle,\n 'data-test-id': testId = 'radio',\n ...rest\n}: RadioProps) => {\n const hasAriaLabel = ariaLabel !== undefined || ariaLabelledby !== undefined;\n\n if (!children && !hasAriaLabel) {\n console.warn(\n 'If you do not provide children, you must specify an aria-label for accessibility'\n );\n }\n\n return (\n <>\n <input\n {...rest}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n className={cx(styles.radio, className)}\n checked={checked}\n disabled={disabled}\n id={id}\n data-test-id={testId}\n type=\"radio\"\n />\n <Label className={labelClassName} htmlFor={id} style={labelStyle}>\n {disabled ? <span className={styles.labelDisabled}>{children}</span> : children}\n </Label>\n </>\n );\n};\n\nexport { Radio };\nexport type { RadioProps };\n","import type { ChangeEvent, FormEvent, ReactElement, ReactNode } from 'react';\n\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport { Children, cloneElement, isValidElement, useRef } from 'react';\n\nimport { Label } from './Label';\nimport { Radio } from './Radio';\n\ntype RadioGroupProps = {\n /**\n * The legend that describes this groups of radio buttons. The legend\n * is important for screen reader users.\n */\n legend?: string;\n /**\n * The children passed into the RadioGroup.\n */\n children?: ReactNode;\n /**\n * Custom classname(s) passed to the fieldset inner div.\n */\n className?: string;\n /**\n * Set the underlying Radio to disabled if the Radio's disabled prop is undefined.\n */\n disabled?: boolean;\n /**\n * The RadioGroup's id.\n */\n id?: string;\n /**\n * Name to apply to the underlying Radio. The same name value is passed to each Radio when grouping in a RadioGroup for screen reader support.\n */\n name: string;\n /**\n * This function is passed into each Radio onChange synthetic event handler.\n */\n onChange?(e: ChangeEvent | FormEvent<HTMLInputElement>): void;\n /**\n * The value to compare against the Radio's value to determine if the Radio will be checked.\n */\n value: string;\n\n 'data-test-id'?: string;\n};\n\nconst RadioGroup = (props: RadioGroupProps) => {\n const {\n name,\n value,\n onChange,\n children,\n disabled,\n legend,\n 'data-test-id': testId = 'radio-group',\n ...rest\n } = props;\n const fieldsetRef = useRef<HTMLFieldSetElement>(null);\n\n function updateRadioElems(elem: ReactNode): ReactNode {\n if (!isValidElement(elem)) {\n return elem;\n }\n\n const item = elem as ReactElement;\n\n if (item?.type && item.type === Radio) {\n return cloneElement(item, {\n ...item.props,\n name,\n checked: item.props.value === value,\n onChange,\n disabled: typeof item.props?.disabled !== 'undefined' ? item.props.disabled : disabled,\n });\n }\n\n if (item?.type && item.type === Label) {\n return cloneElement(item, {\n ...item.props,\n onChange,\n disabled,\n });\n }\n\n const elemChildren = item?.props?.children;\n if (elemChildren) {\n if (Array.isArray(elemChildren)) {\n return cloneElement(item, {\n children: Children.map(elemChildren, (elemChild) => updateRadioElems(elemChild)),\n });\n }\n return cloneElement(item, {\n children: updateRadioElems(elemChildren),\n });\n }\n\n if (item?.type && item.type !== Radio && item.type !== Label) {\n return item;\n }\n\n return null;\n }\n\n const radios = Children.map(children, (child) => updateRadioElems(child));\n return (\n <fieldset data-test-id={testId} ref={fieldsetRef}>\n {legend && (\n <legend>\n <VisuallyHidden>{legend}</VisuallyHidden>\n </legend>\n )}\n <div {...rest}>{radios}</div>\n </fieldset>\n );\n};\n\nexport { RadioGroup };\nexport type { RadioGroupProps };\n","import type { SelectHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\n\nimport styles from './styles/Form.module.css';\n\ntype SelectFieldProps = SelectHTMLAttributes<HTMLSelectElement> & {\n 'data-test-id'?: string;\n};\n\nconst SelectField = ({\n className,\n children,\n 'data-test-id': testId = 'select',\n ...rest\n}: SelectFieldProps) => {\n const classes = cx(styles.formInput, className);\n\n return (\n <select {...rest} data-test-id={testId} className={classes}>\n {children}\n </select>\n );\n};\n\nexport { SelectField };\nexport type { SelectFieldProps };\n","import type { KeyboardEvent, TextareaHTMLAttributes } from 'react';\n\nimport { cx } from 'classix';\nimport { forwardRef } from 'react';\n\nimport styles from './styles/Form.module.css';\nimport { createFieldErrorId } from './utils';\n\ntype TextAreaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n 'data-test-id'?: string;\n};\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, 'data-test-id': testId = 'text-area', ...props }, ref) => {\n const onKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (\n e.key === 'ArrowRight' ||\n e.key === 'ArrowDown' ||\n e.key === 'ArrowUp' ||\n e.key === 'ArrowLeft'\n ) {\n e.stopPropagation();\n }\n if (e.key === 'Escape') {\n e.nativeEvent.stopImmediatePropagation();\n }\n };\n\n return (\n <textarea\n {...props}\n className={cx(styles.formInput, className)}\n ref={ref}\n data-test-id={testId}\n aria-describedby={props['aria-describedby'] || createFieldErrorId(props.id)}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n\nexport { TextArea };\nexport type { TextAreaProps };\n"],"names":["RequiredAsterisk","className","testId","rest","classes","cx","styles","requiredAsterisk","children","Label","disabled","required","optional","label","labelDisabled","labelOptional","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","_jsx","checkbox","type","displayName","TextField","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","htmlFor","style","width","CompactTextField","needsErrorFeedback","value","onFocus","onBlur","isActive","setIsActive","useState","toString","trim","length","isActiveState","compactTextField","placeholder","handleFocus","event","handleBlur","target","FieldError","name","errorMessage","fieldError","AlertRhombus","size","FieldSet","fieldSet","Form","props","inline","hasIncreasedErrorMargin","form","formInline","formIncreasedErrorMargin","FormGroup","ignoreValidation","isInvalid","formGroup","FormHint","hint","FormField","isRequired","field","fieldErrorMessage","IconField","icon","Icon","iconField","iconFieldIcon","Radio","labelStyle","_Fragment","radio","RadioGroup","onChange","legend","fieldsetRef","useRef","updateRadioElems","elem","isValidElement","item","cloneElement","elemChildren","Array","isArray","Children","map","elemChild","radios","child","VisuallyHidden","SelectField","TextArea","onKeyDown","e","key","stopPropagation","nativeEvent","stopImmediatePropagation"],"mappings":"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"}
package/dist/style.css CHANGED
@@ -7,7 +7,7 @@
7
7
  --lp-component-form-color-text-label-disabled: var(--lp-color-gray-400);
8
8
  }
9
9
 
10
- ._formGroup_1icaj_10 {
10
+ ._formGroup_p76jo_10 {
11
11
  margin: 2rem 0;
12
12
  padding: 0;
13
13
  border: none;
@@ -16,25 +16,25 @@
16
16
  /* The margin for .formGroup and the min-height of .form-fieldError
17
17
  should be equal to avoid content shift when errors are shown */
18
18
 
19
- ._formIncreasedErrorMargin_1icaj_18 ._formGroup_1icaj_10 {
19
+ ._formIncreasedErrorMargin_p76jo_18 ._formGroup_p76jo_10 {
20
20
  margin: 2.8rem 0;
21
21
  }
22
22
 
23
- ._formInline_1icaj_22 ._formGroup_1icaj_10 {
23
+ ._formInline_p76jo_22 ._formGroup_p76jo_10 {
24
24
  display: inline-block;
25
25
  vertical-align: middle;
26
26
  margin: 0;
27
27
  }
28
28
 
29
- ._form_1icaj_10 ._formGroup_1icaj_10:first-child {
29
+ ._form_p76jo_10 ._formGroup_p76jo_10:first-child {
30
30
  margin-top: 0;
31
31
  }
32
32
 
33
- ._form_1icaj_10 ._formGroup_1icaj_10:last-child {
33
+ ._form_p76jo_10 ._formGroup_p76jo_10:last-child {
34
34
  margin-bottom: 0;
35
35
  }
36
36
 
37
- ._formInput_1icaj_36 {
37
+ ._formInput_p76jo_36 {
38
38
  display: block;
39
39
  width: 100%;
40
40
  padding: 0.6rem 1rem;
@@ -49,24 +49,24 @@
49
49
  height: 3.2rem;
50
50
  }
51
51
 
52
- ._formInput_1icaj_36:-moz-placeholder-shown {
52
+ ._formInput_p76jo_36:-moz-placeholder-shown {
53
53
  overflow: hidden;
54
54
  text-overflow: ellipsis;
55
55
  }
56
56
 
57
- ._formInput_1icaj_36:placeholder-shown {
57
+ ._formInput_p76jo_36:placeholder-shown {
58
58
  overflow: hidden;
59
59
  text-overflow: ellipsis;
60
60
  }
61
61
 
62
- ._formInput_1icaj_36._isFocused_1icaj_56,
63
- ._formInput_1icaj_36:focus {
62
+ ._formInput_p76jo_36._isFocused_p76jo_56,
63
+ ._formInput_p76jo_36:focus {
64
64
  outline: 0;
65
65
  border-color: var(--lp-color-border-field-focus);
66
66
  box-shadow: 0 0 0 3px hsla(231.5, 100%, 62.5%, 0.1);
67
67
  }
68
68
 
69
- select._formInput_1icaj_36 {
69
+ select._formInput_p76jo_36 {
70
70
  -webkit-appearance: none;
71
71
  -moz-appearance: none;
72
72
  appearance: none;
@@ -78,49 +78,49 @@ select._formInput_1icaj_36 {
78
78
  padding-right: 2rem;
79
79
  }
80
80
 
81
- ._iconField_1icaj_73 ._formInput_1icaj_36 {
81
+ ._iconField_p76jo_73 ._formInput_p76jo_36 {
82
82
  padding-left: 3rem;
83
83
  }
84
84
 
85
- ._suffixContainer_1icaj_77 ._formInput_1icaj_36 {
85
+ ._suffixContainer_p76jo_77 ._formInput_p76jo_36 {
86
86
  border: none;
87
87
  border-radius: var(--lp-border-radius-regular) 0 0 var(--lp-border-radius-regular);
88
88
  }
89
89
 
90
- ._isInvalid_1icaj_82 ._formInput_1icaj_36,
91
- ._form_1icaj_10 ._isInvalid_1icaj_82 .Select-control,
92
- ._form_1icaj_10 ._isInvalid_1icaj_82 .CustomSelect > div,
93
- ._form_1icaj_10 ._isInvalid_1icaj_82 ._formInput_1icaj_36 {
90
+ ._isInvalid_p76jo_82 ._formInput_p76jo_36,
91
+ ._form_p76jo_10 ._isInvalid_p76jo_82 .Select-control,
92
+ ._form_p76jo_10 ._isInvalid_p76jo_82 .CustomSelect > div,
93
+ ._form_p76jo_10 ._isInvalid_p76jo_82 ._formInput_p76jo_36 {
94
94
  border-color: var(--lp-color-border-field-error);
95
95
  }
96
96
 
97
- ._suffixContainer_1icaj_77 ._formInput_1icaj_36:focus {
97
+ ._suffixContainer_p76jo_77 ._formInput_p76jo_36:focus {
98
98
  box-shadow: none;
99
99
  }
100
100
 
101
- ._inlineForm_1icaj_93 ._formGroup_1icaj_10 + ._formGroup_1icaj_10,
102
- ._inlineForm_1icaj_93 ._formGroup_1icaj_10 + .Button {
101
+ ._inlineForm_p76jo_93 ._formGroup_p76jo_10 + ._formGroup_p76jo_10,
102
+ ._inlineForm_p76jo_93 ._formGroup_p76jo_10 + .Button {
103
103
  margin-left: 1rem;
104
104
  }
105
105
 
106
- ._label_1icaj_98 {
106
+ ._label_p76jo_98 {
107
107
  font-size: 1.3rem;
108
108
  font-family: var(--lp-font-family-base);
109
109
  word-break: break-word;
110
110
  }
111
111
 
112
- ._labelDisabled_1icaj_104 {
112
+ ._labelDisabled_p76jo_104 {
113
113
  color: var(--lp-color-gray-800);
114
114
  color: var(--lp-component-form-color-text-label-disabled);
115
115
  }
116
116
 
117
- ._labelOptional_1icaj_108 {
117
+ ._labelOptional_p76jo_108 {
118
118
  margin-left: 0.4em;
119
119
  color: var(--lp-color-text-ui-secondary);
120
120
  fill: var(--lp-color-text-ui-secondary);
121
121
  }
122
122
 
123
- ._compactTextField_1icaj_114 ._label_1icaj_98 {
123
+ ._compactTextField_p76jo_114 ._label_p76jo_98 {
124
124
  position: absolute;
125
125
  top: -2px;
126
126
  left: 10px;
@@ -134,64 +134,68 @@ select._formInput_1icaj_36 {
134
134
  z-index: 1; /* Fixes layout issue in Firefox */
135
135
  }
136
136
 
137
- ._formGroup_1icaj_10 ._label_1icaj_98 {
137
+ ._formGroup_p76jo_10 ._label_p76jo_98 {
138
138
  display: flex;
139
139
  align-items: center;
140
140
  margin-bottom: 0.2rem;
141
141
  }
142
142
 
143
- ._formGroup_1icaj_10 ._label_1icaj_98 + ._label_1icaj_98 {
143
+ ._formGroup_p76jo_10 ._label_p76jo_98 + ._label_p76jo_98 {
144
144
  margin-top: 0.5rem;
145
145
  }
146
146
 
147
- ._fieldError_1icaj_138 {
147
+ ._fieldError_p76jo_138 {
148
148
  color: var(--lp-color-text-feedback-error);
149
149
  font-size: 1.3rem;
150
150
  }
151
151
 
152
+ ._fieldError_p76jo_138 svg {
153
+ transform: translateY(-1px);
154
+ }
155
+
152
156
  /* The margin for .formGroup and the min-height of .form-fieldError
153
157
  should be equal to avoid content shift when errors are shown */
154
158
 
155
- ._formIncreasedErrorMargin_1icaj_18 ._fieldError_1icaj_138 {
159
+ ._formIncreasedErrorMargin_p76jo_18 ._fieldError_p76jo_138 {
156
160
  min-height: 2.8rem;
157
161
  }
158
162
 
159
- ._label_1icaj_98 ._fieldError_1icaj_138 {
163
+ ._label_p76jo_98 ._fieldError_p76jo_138 {
160
164
  float: right;
161
165
  }
162
166
 
163
- ._form_1icaj_10:not(._inlineForm_1icaj_93) ._fieldError_1icaj_138 {
167
+ ._form_p76jo_10:not(._inlineForm_p76jo_93) ._fieldError_p76jo_138 {
164
168
  display: block;
165
169
  padding-top: 0.5rem;
166
170
  text-align: left;
167
171
  }
168
172
 
169
- ._formIncreasedErrorMargin_1icaj_18:not(._inlineForm_1icaj_93) ._fieldError_1icaj_138 {
173
+ ._formIncreasedErrorMargin_p76jo_18:not(._inlineForm_p76jo_93) ._fieldError_p76jo_138 {
170
174
  padding-top: 0.1rem;
171
175
  padding-bottom: 0.5rem;
172
176
  }
173
177
 
174
- ._form_1icaj_10 ._isInvalid_1icaj_82 ._label_1icaj_98 {
178
+ ._form_p76jo_10 ._isInvalid_p76jo_82 ._label_p76jo_98 {
175
179
  color: var(--lp-color-text-feedback-error);
176
180
  }
177
181
 
178
- ._formInput_1icaj_36::-moz-placeholder {
182
+ ._formInput_p76jo_36::-moz-placeholder {
179
183
  color: var(--lp-color-text-field-placeholder);
180
184
  }
181
185
 
182
- ._formInput_1icaj_36::placeholder {
186
+ ._formInput_p76jo_36::placeholder {
183
187
  color: var(--lp-color-text-field-placeholder);
184
188
  }
185
189
 
186
- ._formIncreasedErrorMargin_1icaj_18 ._formGroup_1icaj_10._isInvalid_1icaj_82 {
190
+ ._formIncreasedErrorMargin_p76jo_18 ._formGroup_p76jo_10._isInvalid_p76jo_82 {
187
191
  margin-bottom: 0;
188
192
  }
189
193
 
190
- ._formIncreasedErrorMargin_1icaj_18 ._formGroup_1icaj_10._isInvalid_1icaj_82 + ._formGroup_1icaj_10 {
194
+ ._formIncreasedErrorMargin_p76jo_18 ._formGroup_p76jo_10._isInvalid_p76jo_82 + ._formGroup_p76jo_10 {
191
195
  margin-top: 0;
192
196
  }
193
197
 
194
- ._hint_1icaj_180 {
198
+ ._hint_p76jo_184 {
195
199
  display: block;
196
200
  margin-top: 0.3rem;
197
201
  font-size: 1.3rem;
@@ -199,75 +203,75 @@ select._formInput_1icaj_36 {
199
203
  color: var(--lp-color-text-ui-secondary);
200
204
  }
201
205
 
202
- ._field_1icaj_138 ._hint_1icaj_180 {
206
+ ._field_p76jo_138 ._hint_p76jo_184 {
203
207
  margin: 0;
204
208
  font-size: 1.3rem;
205
209
  color: var(--lp-color-text-ui-secondary);
206
210
  fill: var(--lp-color-text-ui-secondary);
207
211
  }
208
212
 
209
- ._form_1icaj_10 ._field_1icaj_138 label,
210
- ._form_1icaj_10 ._field_1icaj_138 ._isInvalid_1icaj_82 label {
213
+ ._form_p76jo_10 ._field_p76jo_138 label,
214
+ ._form_p76jo_10 ._field_p76jo_138 ._isInvalid_p76jo_82 label {
211
215
  color: var(--lp-color-text-ui-primary);
212
216
  }
213
217
 
214
- ._fieldErrorMessage_1icaj_200 {
218
+ ._fieldErrorMessage_p76jo_204 {
215
219
  color: var(--lp-color-text-feedback-error);
216
220
  font-size: 1.3rem;
217
221
  }
218
222
 
219
- ._field_1icaj_138._formGroup_1icaj_10 {
223
+ ._field_p76jo_138._formGroup_p76jo_10 {
220
224
  margin: 1rem 0;
221
225
  }
222
226
 
223
- ._field_1icaj_138._formGroup_1icaj_10:first-child {
227
+ ._field_p76jo_138._formGroup_p76jo_10:first-child {
224
228
  margin-top: 0;
225
229
  }
226
230
 
227
- input._formInput_1icaj_36:-moz-read-only {
231
+ input._formInput_p76jo_36:-moz-read-only {
228
232
  opacity: 1;
229
233
  background-color: var(--lp-color-bg-field-disabled);
230
234
  color: var(--lp-color-text-field-disabled);
231
235
  border-color: var(--lp-color-border-field-disabled);
232
236
  }
233
237
 
234
- ._formInput_1icaj_36._isDisabled_1icaj_213,
235
- input._formInput_1icaj_36:disabled,
236
- select._formInput_1icaj_36:disabled,
237
- input._formInput_1icaj_36:read-only {
238
+ ._formInput_p76jo_36._isDisabled_p76jo_217,
239
+ input._formInput_p76jo_36:disabled,
240
+ select._formInput_p76jo_36:disabled,
241
+ input._formInput_p76jo_36:read-only {
238
242
  opacity: 1;
239
243
  background-color: var(--lp-color-bg-field-disabled);
240
244
  color: var(--lp-color-text-field-disabled);
241
245
  border-color: var(--lp-color-border-field-disabled);
242
246
  }
243
247
 
244
- ._formInput_1icaj_36._isDisabled_1icaj_213:hover,
245
- ._formInput_1icaj_36:disabled:hover {
248
+ ._formInput_p76jo_36._isDisabled_p76jo_217:hover,
249
+ ._formInput_p76jo_36:disabled:hover {
246
250
  cursor: not-allowed;
247
251
  }
248
252
 
249
- textarea._formInput_1icaj_36 {
253
+ textarea._formInput_p76jo_36 {
250
254
  min-height: 2.5em;
251
255
  height: auto;
252
256
  resize: none;
253
257
  }
254
258
 
255
- textarea._formInput_1icaj_36:-moz-read-only {
259
+ textarea._formInput_p76jo_36:-moz-read-only {
256
260
  opacity: 1;
257
261
  color: var(--lp-color-text-field-disabled);
258
262
  background-color: var(--lp-color-bg-field-disabled);
259
263
  border-color: var(--lp-color-border-field-disabled);
260
264
  }
261
265
 
262
- textarea._formInput_1icaj_36:disabled,
263
- textarea._formInput_1icaj_36:read-only {
266
+ textarea._formInput_p76jo_36:disabled,
267
+ textarea._formInput_p76jo_36:read-only {
264
268
  opacity: 1;
265
269
  color: var(--lp-color-text-field-disabled);
266
270
  background-color: var(--lp-color-bg-field-disabled);
267
271
  border-color: var(--lp-color-border-field-disabled);
268
272
  }
269
273
 
270
- input._formInput_1icaj_36::-webkit-autofill {
274
+ input._formInput_p76jo_36::-webkit-autofill {
271
275
  box-shadow: 0 0 0 50px var(--lp-color-bg-field) inset;
272
276
  }
273
277
 
@@ -300,29 +304,29 @@ input[type='checkbox']:disabled {
300
304
  pointer-events: none;
301
305
  }
302
306
 
303
- ._formInput_1icaj_36[readonly],
304
- ._formInput_1icaj_36[readonly]:focus {
307
+ ._formInput_p76jo_36[readonly],
308
+ ._formInput_p76jo_36[readonly]:focus {
305
309
  color: var(--lp-color-text-ui-secondary);
306
310
  border-color: var(--lp-color-gray-500);
307
311
  box-shadow: none;
308
312
  }
309
313
 
310
- ._checkbox_1icaj_280 {
314
+ ._checkbox_p76jo_284 {
311
315
  align-self: flex-start; /* Default for .label is center, but this looks bad on multi-line checkbox labels */
312
316
  flex-shrink: 0; /* Make sure the input itself doesn't shrink in flex layouts */
313
317
  margin-right: 0.5rem;
314
318
  margin-top: 0.4rem;
315
319
  }
316
320
 
317
- ._radio_1icaj_287 {
321
+ ._radio_p76jo_291 {
318
322
  margin-right: 0.5rem;
319
323
  }
320
324
 
321
- ._number_1icaj_291 {
325
+ ._number_p76jo_295 {
322
326
  min-width: 4.5rem;
323
327
  }
324
328
 
325
- ._suffixContainer_1icaj_77 {
329
+ ._suffixContainer_p76jo_77 {
326
330
  display: inline-flex;
327
331
  border: 1px solid var(--lp-color-border-field);
328
332
  border-radius: var(--lp-border-radius-regular);
@@ -330,12 +334,12 @@ input[type='checkbox']:disabled {
330
334
  transition: all 0.1s linear;
331
335
  }
332
336
 
333
- ._suffixContainer_1icaj_77:focus-within {
337
+ ._suffixContainer_p76jo_77:focus-within {
334
338
  border-color: var(--lp-color-border-field-focus);
335
339
  box-shadow: 0 0 0 3px hsla(231.5, 100%, 62.5%, 0.1);
336
340
  }
337
341
 
338
- ._suffixContainer_1icaj_77 ._suffix_1icaj_77 {
342
+ ._suffixContainer_p76jo_77 ._suffix_p76jo_77 {
339
343
  padding: 0 2px;
340
344
  background-color: var(--lp-color-bg-field-aside);
341
345
  color: var(--lp-color-text-ui-secondary);
@@ -346,8 +350,8 @@ input[type='checkbox']:disabled {
346
350
  position: initial;
347
351
  }
348
352
 
349
- ._suffix_1icaj_77::-webkit-outer-spin-button,
350
- ._suffix_1icaj_77::-webkit-inner-spin-button {
353
+ ._suffix_p76jo_77::-webkit-outer-spin-button,
354
+ ._suffix_p76jo_77::-webkit-inner-spin-button {
351
355
  -webkit-appearance: none;
352
356
  appearance: none;
353
357
  margin: 0;
@@ -355,13 +359,13 @@ input[type='checkbox']:disabled {
355
359
 
356
360
  /* Firefox */
357
361
 
358
- ._suffix_1icaj_77[type='number'] {
362
+ ._suffix_p76jo_77[type='number'] {
359
363
  -webkit-appearance: textfield;
360
364
  -moz-appearance: textfield;
361
365
  appearance: textfield;
362
366
  }
363
367
 
364
- ._iconFieldIcon_1icaj_329 {
368
+ ._iconFieldIcon_p76jo_333 {
365
369
  position: absolute;
366
370
  fill: var(--lp-color-fill-field);
367
371
  top: 50%;
@@ -369,31 +373,31 @@ input[type='checkbox']:disabled {
369
373
  left: 1rem;
370
374
  }
371
375
 
372
- ._formInputTiny_1icaj_337 {
376
+ ._formInputTiny_p76jo_341 {
373
377
  padding: 0.1rem 0.6rem;
374
378
  height: 2.4rem;
375
379
  }
376
380
 
377
- ._iconField_1icaj_73 {
381
+ ._iconField_p76jo_73 {
378
382
  position: relative;
379
383
  }
380
384
 
381
- ._requiredAsterisk_1icaj_346 {
385
+ ._requiredAsterisk_p76jo_350 {
382
386
  color: var(--lp-color-text-feedback-error);
383
387
  }
384
388
 
385
- ._fieldSet_1icaj_350 {
389
+ ._fieldSet_p76jo_354 {
386
390
  border: none;
387
391
  margin: 2rem 0;
388
392
  padding: 0;
389
393
  }
390
394
 
391
- ._compactTextField_1icaj_114 {
395
+ ._compactTextField_p76jo_114 {
392
396
  position: relative;
393
397
  width: 100%;
394
398
  }
395
399
 
396
- ._compactTextField_1icaj_114._isActive_1icaj_361 ._label_1icaj_98 {
400
+ ._compactTextField_p76jo_114._isActive_p76jo_365 ._label_p76jo_98 {
397
401
  border-radius: var(--lp-border-radius-regular);
398
402
  opacity: 1;
399
403
  pointer-events: auto;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchpad-ui/form",
3
- "version": "0.8.7",
3
+ "version": "0.8.9",
4
4
  "status": "beta",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -28,8 +28,8 @@
28
28
  "dependencies": {
29
29
  "@react-aria/visually-hidden": "3.6.1",
30
30
  "classix": "2.1.17",
31
- "@launchpad-ui/icons": "~0.8.2",
32
- "@launchpad-ui/tokens": "~0.5.4"
31
+ "@launchpad-ui/icons": "~0.8.3",
32
+ "@launchpad-ui/tokens": "~0.5.5"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "react": "18.2.0",