@launchpad-ui/form 0.6.34 → 0.7.0

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":"FormField.d.ts","sourceRoot":"","sources":["../src/FormField.tsx"],"names":[],"mappings":";AAQA,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,SAAS,gJAaZ,cAAc,gBAyBhB,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../src/FormField.tsx"],"names":[],"mappings":";AAQA,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,SAAS,gJAaZ,cAAc,gBAwBhB,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { SelectHTMLAttributes } from 'react';
2
+ type SelectFieldProps = SelectHTMLAttributes<HTMLSelectElement> & {
3
+ 'data-test-id'?: string;
4
+ };
5
+ declare const SelectField: ({ className, children, "data-test-id": testId, ...rest }: SelectFieldProps) => JSX.Element;
6
+ export { SelectField };
7
+ export type { SelectFieldProps };
8
+ //# sourceMappingURL=SelectField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectField.d.ts","sourceRoot":"","sources":["../src/SelectField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAMlD,KAAK,gBAAgB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,WAAW,6DAKd,gBAAgB,gBAQlB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export type { LabelProps } from './Label';
11
11
  export type { RadioProps } from './Radio';
12
12
  export type { RadioGroupProps } from './RadioGroup';
13
13
  export type { RequiredAsteriskProps } from './RequiredAsterisk';
14
- export type { SelectProps } from './Select';
14
+ export type { SelectFieldProps } from './SelectField';
15
15
  export type { TextAreaProps } from './TextArea';
16
16
  export type { TextFieldProps } from './TextField';
17
17
  export { Checkbox } from './Checkbox';
@@ -27,7 +27,7 @@ export { Label } from './Label';
27
27
  export { Radio } from './Radio';
28
28
  export { RadioGroup } from './RadioGroup';
29
29
  export { RequiredAsterisk } from './RequiredAsterisk';
30
- export { Select } from './Select';
30
+ export { SelectField } from './SelectField';
31
31
  export { TextArea } from './TextArea';
32
32
  export { TextField } from './TextField';
33
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.es.js CHANGED
@@ -326,9 +326,10 @@ const FormField = ({
326
326
  isInvalid: isInvalid2,
327
327
  onBlur: handleBlur,
328
328
  "data-test-id": testId,
329
- children: [label2 && /* @__PURE__ */ jsxs("label", {
329
+ children: [label2 && /* @__PURE__ */ jsx(Label, {
330
330
  htmlFor,
331
- children: [label2, isRequired && /* @__PURE__ */ jsx(RequiredAsterisk, {})]
331
+ required: isRequired,
332
+ children: label2
332
333
  }), hint2 && /* @__PURE__ */ jsx(FormHint, {
333
334
  className: styles.hint,
334
335
  children: hint2
@@ -461,7 +462,7 @@ const RadioGroup = (props) => {
461
462
  })]
462
463
  });
463
464
  };
464
- const Select = ({
465
+ const SelectField = ({
465
466
  className,
466
467
  children,
467
468
  "data-test-id": testId = "select",
@@ -512,7 +513,7 @@ export {
512
513
  Radio,
513
514
  RadioGroup,
514
515
  RequiredAsterisk,
515
- Select,
516
+ SelectField,
516
517
  TextArea,
517
518
  TextField
518
519
  };
@@ -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/Select.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 { RequiredAsterisk } from './RequiredAsterisk';\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}>\n {label}\n {isRequired && <RequiredAsterisk />}\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 SelectProps = SelectHTMLAttributes<HTMLSelectElement> & {\n 'data-test-id'?: string;\n};\n\nconst Select = ({\n className,\n children,\n 'data-test-id': testId = 'select',\n ...rest\n}: SelectProps) => {\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 { Select };\nexport type { SelectProps };\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","Label","disabled","children","required","optional","label","labelDisabled","labelOptional","_jsx","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","checkbox","displayName","TextField","type","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","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","htmlFor","field","_jsxs","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","Select","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 { 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","Label","disabled","children","required","optional","label","labelDisabled","labelOptional","_jsx","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","checkbox","displayName","TextField","type","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","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","htmlFor","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","SelectField","TextArea","onKeyDown","e","key","stopPropagation","nativeEvent","stopImmediatePropagation"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -328,9 +328,10 @@ const FormField = ({
328
328
  isInvalid: isInvalid2,
329
329
  onBlur: handleBlur,
330
330
  "data-test-id": testId,
331
- children: [label2 && /* @__PURE__ */ jsxRuntime.jsxs("label", {
331
+ children: [label2 && /* @__PURE__ */ jsxRuntime.jsx(Label, {
332
332
  htmlFor,
333
- children: [label2, isRequired && /* @__PURE__ */ jsxRuntime.jsx(RequiredAsterisk, {})]
333
+ required: isRequired,
334
+ children: label2
334
335
  }), hint2 && /* @__PURE__ */ jsxRuntime.jsx(FormHint, {
335
336
  className: styles.hint,
336
337
  children: hint2
@@ -463,7 +464,7 @@ const RadioGroup = (props) => {
463
464
  })]
464
465
  });
465
466
  };
466
- const Select = ({
467
+ const SelectField = ({
467
468
  className,
468
469
  children,
469
470
  "data-test-id": testId = "select",
@@ -513,7 +514,7 @@ exports.Label = Label;
513
514
  exports.Radio = Radio;
514
515
  exports.RadioGroup = RadioGroup;
515
516
  exports.RequiredAsterisk = RequiredAsterisk;
516
- exports.Select = Select;
517
+ exports.SelectField = SelectField;
517
518
  exports.TextArea = TextArea;
518
519
  exports.TextField = TextField;
519
520
  //# sourceMappingURL=index.js.map
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/Select.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 { RequiredAsterisk } from './RequiredAsterisk';\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}>\n {label}\n {isRequired && <RequiredAsterisk />}\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 SelectProps = SelectHTMLAttributes<HTMLSelectElement> & {\n 'data-test-id'?: string;\n};\n\nconst Select = ({\n className,\n children,\n 'data-test-id': testId = 'select',\n ...rest\n}: SelectProps) => {\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 { Select };\nexport type { SelectProps };\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","Label","disabled","children","required","optional","label","labelDisabled","labelOptional","_jsx","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","checkbox","displayName","TextField","type","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","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","htmlFor","field","_jsxs","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","Select","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 { 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","Label","disabled","children","required","optional","label","labelDisabled","labelOptional","_jsx","Checkbox","forwardRef","ariaLabel","ariaLabelledby","checked","labelClassName","ref","hasAriaLabel","undefined","console","warn","checkbox","displayName","TextField","type","tiny","readOnly","tabIndex","suffix","overrideWidth","formInput","formInputTiny","suffixContainer","createFieldErrorId","id","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","htmlFor","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
@@ -324,16 +324,6 @@ input[type='checkbox']:disabled {
324
324
  transition: all 0.1s linear;
325
325
  }
326
326
 
327
- ._suffixContainer_14n27_68[focus-within] {
328
- border-color: var(--lp-color-border-field-focus);
329
- box-shadow: 0 0 0 3px hsla(231.5, 100%, 62.5%, 0.1);
330
- }
331
-
332
- ._suffixContainer_14n27_68[focus-within] {
333
- border-color: var(--lp-color-border-field-focus);
334
- box-shadow: 0 0 0 3px hsla(231.5, 100%, 62.5%, 0.1);
335
- }
336
-
337
327
  ._suffixContainer_14n27_68:focus-within {
338
328
  border-color: var(--lp-color-border-field-focus);
339
329
  box-shadow: 0 0 0 3px hsla(231.5, 100%, 62.5%, 0.1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchpad-ui/form",
3
- "version": "0.6.34",
3
+ "version": "0.7.0",
4
4
  "status": "beta",
5
5
  "publishConfig": {
6
6
  "access": "public"
package/dist/Select.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import type { SelectHTMLAttributes } from 'react';
2
- type SelectProps = SelectHTMLAttributes<HTMLSelectElement> & {
3
- 'data-test-id'?: string;
4
- };
5
- declare const Select: ({ className, children, "data-test-id": testId, ...rest }: SelectProps) => JSX.Element;
6
- export { Select };
7
- export type { SelectProps };
8
- //# sourceMappingURL=Select.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAMlD,KAAK,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,QAAA,MAAM,MAAM,6DAKT,WAAW,gBAQb,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,CAAC"}