@launchpad-ui/inline-edit 0.3.41 → 0.3.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.es.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/InlineEdit.tsx"],"sourcesContent":["import type { IconFieldProps, TextAreaProps, TextFieldProps } from '@launchpad-ui/form';\nimport type { ComponentProps, KeyboardEventHandler, ReactElement } from 'react';\nimport type { InlineVariants } from './styles/InlineEdit.css';\n\nimport { ButtonGroup, IconButton } from '@launchpad-ui/button';\nimport { TextArea, TextField } from '@launchpad-ui/form';\nimport { Icon } from '@launchpad-ui/icons';\nimport { useButton } from '@react-aria/button';\nimport { focusSafely } from '@react-aria/focus';\nimport { useFocusWithin } from '@react-aria/interactions';\nimport { mergeProps, mergeRefs, useUpdateEffect } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, forwardRef, useRef, useState } from 'react';\n\nimport { cancelButton, container, inline, readButton } from './styles/InlineEdit.css';\n\ntype InlineEditProps = ComponentProps<'div'> &\n\tInlineVariants &\n\tPick<ComponentProps<'input'>, 'defaultValue'> & {\n\t\t'data-test-id'?: string;\n\t\tonConfirm: (value: string) => void;\n\t\thideEdit?: boolean;\n\t\trenderInput?: ReactElement<IconFieldProps | TextFieldProps | TextAreaProps>;\n\t\tisEditing?: boolean;\n\t\tonCancel?: () => void;\n\t\tonEdit?: () => void;\n\t\tcancelButtonLabel?: string;\n\t\teditButtonLabel?: string;\n\t\tconfirmButtonLabel?: string;\n\t};\n\n/**\n * @deprecated use `minimal` variant for fields from `@launchpad-ui/components` instead\n *\n * https://launchpad.launchdarkly.com/?path=/docs/components-forms-textfield--docs#minimal\n */\nconst InlineEdit = forwardRef<HTMLInputElement, InlineEditProps>(\n\t(\n\t\t{\n\t\t\t'data-test-id': testId = 'inline-edit',\n\t\t\tlayout = 'horizontal',\n\t\t\tchildren,\n\t\t\tdefaultValue,\n\t\t\tonConfirm,\n\t\t\thideEdit = false,\n\t\t\trenderInput = <TextField />,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisEditing: isEditingProp,\n\t\t\tonCancel,\n\t\t\tonEdit,\n\t\t\tcancelButtonLabel = 'cancel',\n\t\t\teditButtonLabel = 'edit',\n\t\t\tconfirmButtonLabel = 'confirm',\n\t\t\tclassName,\n\t\t\t...rest\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [isEditing, setEditing] = useState(isEditingProp ?? false);\n\t\tconst [isFocusWithin, setFocusWithin] = useState(false);\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst editRef = useRef<HTMLButtonElement>(null);\n\t\tconst controlled = isEditingProp !== undefined;\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (controlled) {\n\t\t\t\tsetEditing(isEditingProp);\n\t\t\t}\n\t\t}, [isEditingProp]);\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (isFocusWithin) {\n\t\t\t\tisEditing\n\t\t\t\t\t? inputRef.current && focusSafely(inputRef.current)\n\t\t\t\t\t: editRef.current && focusSafely(editRef.current);\n\t\t\t}\n\t\t}, [isEditing]);\n\n\t\tconst handleEdit = () => {\n\t\t\t!controlled && setEditing(true);\n\t\t\tonEdit?.();\n\t\t};\n\n\t\tconst handleCancel = () => {\n\t\t\t!controlled && setEditing(false);\n\t\t\tonCancel?.();\n\t\t};\n\n\t\tconst handleConfirm = () => {\n\t\t\tonConfirm(inputRef.current?.value || '');\n\t\t\t!controlled && setEditing(false);\n\t\t};\n\n\t\tconst handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n\t\t\tif (event.key === 'Enter') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleConfirm();\n\t\t\t} else if (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleCancel();\n\t\t\t}\n\t\t};\n\n\t\tconst { focusWithinProps } = useFocusWithin({\n\t\t\tonBlurWithin: () => isEditing && handleCancel(),\n\t\t\tonFocusWithinChange: (isFocusWithin) => setFocusWithin(isFocusWithin),\n\t\t});\n\n\t\tconst { buttonProps } = useButton(\n\t\t\t{\n\t\t\t\t'aria-label': editButtonLabel,\n\t\t\t\telementType: 'span',\n\t\t\t\tonPress: handleEdit,\n\t\t\t},\n\t\t\teditRef,\n\t\t);\n\n\t\tconst renderReadContent = hideEdit ? (\n\t\t\t<span ref={editRef} {...buttonProps} className={readButton}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t) : (\n\t\t\t<>\n\t\t\t\t{children}\n\t\t\t\t<IconButton\n\t\t\t\t\tref={editRef}\n\t\t\t\t\ticon={<Icon name=\"edit\" />}\n\t\t\t\t\taria-label={editButtonLabel}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\n\t\tconst inputProps = {\n\t\t\tref: mergeRefs(inputRef, ref),\n\t\t\tdefaultValue,\n\t\t\tonKeyDown: handleKeyDown,\n\t\t\t'aria-label': ariaLabel,\n\t\t};\n\n\t\tconst inputChildren = renderInput.props.children;\n\n\t\tconst input = cloneElement(\n\t\t\trenderInput,\n\t\t\tmergeProps(renderInput.props, inputChildren ? {} : inputProps),\n\t\t\tinputChildren &&\n\t\t\t\tChildren.map(inputChildren, (child) =>\n\t\t\t\t\tchild.type === TextField || child.type === TextArea\n\t\t\t\t\t\t? cloneElement(child, mergeProps(child.props, inputProps))\n\t\t\t\t\t\t: child,\n\t\t\t\t),\n\t\t);\n\n\t\treturn isEditing ? (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(container, inline({ layout }), className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{input}\n\t\t\t\t<ButtonGroup spacing=\"compact\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"primary\"\n\t\t\t\t\t\ticon={<Icon name=\"check\" />}\n\t\t\t\t\t\taria-label={confirmButtonLabel}\n\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t/>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"default\"\n\t\t\t\t\t\ticon={<Icon name=\"cancel\" />}\n\t\t\t\t\t\taria-label={cancelButtonLabel}\n\t\t\t\t\t\tclassName={cancelButton}\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(!hideEdit && container, className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{renderReadContent}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nInlineEdit.displayName = 'InlineEdit';\n\nexport { InlineEdit };\nexport type { InlineEditProps };\n"],"names":["isFocusWithin"],"mappings":";;;;;;;;;;;;;;;AAoCA,MAAM,aAAa;AAAA,EAClB,CACC;AAAA,IACC,gBAAgB,SAAS;AAAA,IACzB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,kCAAe,WAAU,EAAA;AAAA,IACzB,cAAc;AAAA,IACd,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB;AAAA,IACA,GAAG;AAAA,KAEJ,QACI;AACJ,UAAM,CAAC,WAAW,UAAU,IAAI,SAAS,iBAAiB,KAAK;AAC/D,UAAM,CAAC,eAAe,cAAc,IAAI,SAAS,KAAK;AAChD,UAAA,WAAW,OAAyB,IAAI;AACxC,UAAA,UAAU,OAA0B,IAAI;AAC9C,UAAM,aAAa,kBAAkB;AAErC,oBAAgB,MAAM;AACrB,UAAI,YAAY;AACf,mBAAW,aAAa;AAAA,
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/InlineEdit.tsx"],"sourcesContent":["import type { IconFieldProps, TextAreaProps, TextFieldProps } from '@launchpad-ui/form';\nimport type { ComponentProps, KeyboardEventHandler, ReactElement } from 'react';\nimport type { InlineVariants } from './styles/InlineEdit.css';\n\nimport { ButtonGroup, IconButton } from '@launchpad-ui/button';\nimport { TextArea, TextField } from '@launchpad-ui/form';\nimport { Icon } from '@launchpad-ui/icons';\nimport { useButton } from '@react-aria/button';\nimport { focusSafely } from '@react-aria/focus';\nimport { useFocusWithin } from '@react-aria/interactions';\nimport { mergeProps, mergeRefs, useUpdateEffect } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, forwardRef, useRef, useState } from 'react';\n\nimport { cancelButton, container, inline, readButton } from './styles/InlineEdit.css';\n\ntype InlineEditProps = ComponentProps<'div'> &\n\tInlineVariants &\n\tPick<ComponentProps<'input'>, 'defaultValue'> & {\n\t\t'data-test-id'?: string;\n\t\tonConfirm: (value: string) => void;\n\t\thideEdit?: boolean;\n\t\trenderInput?: ReactElement<IconFieldProps | TextFieldProps | TextAreaProps>;\n\t\tisEditing?: boolean;\n\t\tonCancel?: () => void;\n\t\tonEdit?: () => void;\n\t\tcancelButtonLabel?: string;\n\t\teditButtonLabel?: string;\n\t\tconfirmButtonLabel?: string;\n\t};\n\n/**\n * @deprecated use `minimal` variant for fields from `@launchpad-ui/components` instead\n *\n * https://launchpad.launchdarkly.com/?path=/docs/components-forms-textfield--docs#minimal\n */\nconst InlineEdit = forwardRef<HTMLInputElement, InlineEditProps>(\n\t(\n\t\t{\n\t\t\t'data-test-id': testId = 'inline-edit',\n\t\t\tlayout = 'horizontal',\n\t\t\tchildren,\n\t\t\tdefaultValue,\n\t\t\tonConfirm,\n\t\t\thideEdit = false,\n\t\t\trenderInput = <TextField />,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisEditing: isEditingProp,\n\t\t\tonCancel,\n\t\t\tonEdit,\n\t\t\tcancelButtonLabel = 'cancel',\n\t\t\teditButtonLabel = 'edit',\n\t\t\tconfirmButtonLabel = 'confirm',\n\t\t\tclassName,\n\t\t\t...rest\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [isEditing, setEditing] = useState(isEditingProp ?? false);\n\t\tconst [isFocusWithin, setFocusWithin] = useState(false);\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst editRef = useRef<HTMLButtonElement>(null);\n\t\tconst controlled = isEditingProp !== undefined;\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (controlled) {\n\t\t\t\tsetEditing(isEditingProp);\n\t\t\t}\n\t\t}, [isEditingProp]);\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (isFocusWithin) {\n\t\t\t\tisEditing\n\t\t\t\t\t? inputRef.current && focusSafely(inputRef.current)\n\t\t\t\t\t: editRef.current && focusSafely(editRef.current);\n\t\t\t}\n\t\t}, [isEditing]);\n\n\t\tconst handleEdit = () => {\n\t\t\t!controlled && setEditing(true);\n\t\t\tonEdit?.();\n\t\t};\n\n\t\tconst handleCancel = () => {\n\t\t\t!controlled && setEditing(false);\n\t\t\tonCancel?.();\n\t\t};\n\n\t\tconst handleConfirm = () => {\n\t\t\tonConfirm(inputRef.current?.value || '');\n\t\t\t!controlled && setEditing(false);\n\t\t};\n\n\t\tconst handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n\t\t\tif (event.key === 'Enter') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleConfirm();\n\t\t\t} else if (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleCancel();\n\t\t\t}\n\t\t};\n\n\t\tconst { focusWithinProps } = useFocusWithin({\n\t\t\tonBlurWithin: () => isEditing && handleCancel(),\n\t\t\tonFocusWithinChange: (isFocusWithin) => setFocusWithin(isFocusWithin),\n\t\t});\n\n\t\tconst { buttonProps } = useButton(\n\t\t\t{\n\t\t\t\t'aria-label': editButtonLabel,\n\t\t\t\telementType: 'span',\n\t\t\t\tonPress: handleEdit,\n\t\t\t},\n\t\t\teditRef,\n\t\t);\n\n\t\tconst renderReadContent = hideEdit ? (\n\t\t\t<span ref={editRef} {...buttonProps} className={readButton}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t) : (\n\t\t\t<>\n\t\t\t\t{children}\n\t\t\t\t<IconButton\n\t\t\t\t\tref={editRef}\n\t\t\t\t\ticon={<Icon name=\"edit\" />}\n\t\t\t\t\taria-label={editButtonLabel}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\n\t\tconst inputProps = {\n\t\t\tref: mergeRefs(inputRef, ref),\n\t\t\tdefaultValue,\n\t\t\tonKeyDown: handleKeyDown,\n\t\t\t'aria-label': ariaLabel,\n\t\t};\n\n\t\tconst inputChildren = renderInput.props.children;\n\n\t\tconst input = cloneElement(\n\t\t\trenderInput,\n\t\t\tmergeProps(renderInput.props, inputChildren ? {} : inputProps),\n\t\t\tinputChildren &&\n\t\t\t\tChildren.map(inputChildren, (child) =>\n\t\t\t\t\tchild.type === TextField || child.type === TextArea\n\t\t\t\t\t\t? cloneElement(child, mergeProps(child.props, inputProps))\n\t\t\t\t\t\t: child,\n\t\t\t\t),\n\t\t);\n\n\t\treturn isEditing ? (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(container, inline({ layout }), className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{input}\n\t\t\t\t<ButtonGroup spacing=\"compact\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"primary\"\n\t\t\t\t\t\ticon={<Icon name=\"check\" />}\n\t\t\t\t\t\taria-label={confirmButtonLabel}\n\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t/>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"default\"\n\t\t\t\t\t\ticon={<Icon name=\"cancel\" />}\n\t\t\t\t\t\taria-label={cancelButtonLabel}\n\t\t\t\t\t\tclassName={cancelButton}\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(!hideEdit && container, className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{renderReadContent}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nInlineEdit.displayName = 'InlineEdit';\n\nexport { InlineEdit };\nexport type { InlineEditProps };\n"],"names":["isFocusWithin"],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/InlineEdit.tsx"],"sourcesContent":["import type { IconFieldProps, TextAreaProps, TextFieldProps } from '@launchpad-ui/form';\nimport type { ComponentProps, KeyboardEventHandler, ReactElement } from 'react';\nimport type { InlineVariants } from './styles/InlineEdit.css';\n\nimport { ButtonGroup, IconButton } from '@launchpad-ui/button';\nimport { TextArea, TextField } from '@launchpad-ui/form';\nimport { Icon } from '@launchpad-ui/icons';\nimport { useButton } from '@react-aria/button';\nimport { focusSafely } from '@react-aria/focus';\nimport { useFocusWithin } from '@react-aria/interactions';\nimport { mergeProps, mergeRefs, useUpdateEffect } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, forwardRef, useRef, useState } from 'react';\n\nimport { cancelButton, container, inline, readButton } from './styles/InlineEdit.css';\n\ntype InlineEditProps = ComponentProps<'div'> &\n\tInlineVariants &\n\tPick<ComponentProps<'input'>, 'defaultValue'> & {\n\t\t'data-test-id'?: string;\n\t\tonConfirm: (value: string) => void;\n\t\thideEdit?: boolean;\n\t\trenderInput?: ReactElement<IconFieldProps | TextFieldProps | TextAreaProps>;\n\t\tisEditing?: boolean;\n\t\tonCancel?: () => void;\n\t\tonEdit?: () => void;\n\t\tcancelButtonLabel?: string;\n\t\teditButtonLabel?: string;\n\t\tconfirmButtonLabel?: string;\n\t};\n\n/**\n * @deprecated use `minimal` variant for fields from `@launchpad-ui/components` instead\n *\n * https://launchpad.launchdarkly.com/?path=/docs/components-forms-textfield--docs#minimal\n */\nconst InlineEdit = forwardRef<HTMLInputElement, InlineEditProps>(\n\t(\n\t\t{\n\t\t\t'data-test-id': testId = 'inline-edit',\n\t\t\tlayout = 'horizontal',\n\t\t\tchildren,\n\t\t\tdefaultValue,\n\t\t\tonConfirm,\n\t\t\thideEdit = false,\n\t\t\trenderInput = <TextField />,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisEditing: isEditingProp,\n\t\t\tonCancel,\n\t\t\tonEdit,\n\t\t\tcancelButtonLabel = 'cancel',\n\t\t\teditButtonLabel = 'edit',\n\t\t\tconfirmButtonLabel = 'confirm',\n\t\t\tclassName,\n\t\t\t...rest\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [isEditing, setEditing] = useState(isEditingProp ?? false);\n\t\tconst [isFocusWithin, setFocusWithin] = useState(false);\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst editRef = useRef<HTMLButtonElement>(null);\n\t\tconst controlled = isEditingProp !== undefined;\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (controlled) {\n\t\t\t\tsetEditing(isEditingProp);\n\t\t\t}\n\t\t}, [isEditingProp]);\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (isFocusWithin) {\n\t\t\t\tisEditing\n\t\t\t\t\t? inputRef.current && focusSafely(inputRef.current)\n\t\t\t\t\t: editRef.current && focusSafely(editRef.current);\n\t\t\t}\n\t\t}, [isEditing]);\n\n\t\tconst handleEdit = () => {\n\t\t\t!controlled && setEditing(true);\n\t\t\tonEdit?.();\n\t\t};\n\n\t\tconst handleCancel = () => {\n\t\t\t!controlled && setEditing(false);\n\t\t\tonCancel?.();\n\t\t};\n\n\t\tconst handleConfirm = () => {\n\t\t\tonConfirm(inputRef.current?.value || '');\n\t\t\t!controlled && setEditing(false);\n\t\t};\n\n\t\tconst handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n\t\t\tif (event.key === 'Enter') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleConfirm();\n\t\t\t} else if (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleCancel();\n\t\t\t}\n\t\t};\n\n\t\tconst { focusWithinProps } = useFocusWithin({\n\t\t\tonBlurWithin: () => isEditing && handleCancel(),\n\t\t\tonFocusWithinChange: (isFocusWithin) => setFocusWithin(isFocusWithin),\n\t\t});\n\n\t\tconst { buttonProps } = useButton(\n\t\t\t{\n\t\t\t\t'aria-label': editButtonLabel,\n\t\t\t\telementType: 'span',\n\t\t\t\tonPress: handleEdit,\n\t\t\t},\n\t\t\teditRef,\n\t\t);\n\n\t\tconst renderReadContent = hideEdit ? (\n\t\t\t<span ref={editRef} {...buttonProps} className={readButton}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t) : (\n\t\t\t<>\n\t\t\t\t{children}\n\t\t\t\t<IconButton\n\t\t\t\t\tref={editRef}\n\t\t\t\t\ticon={<Icon name=\"edit\" />}\n\t\t\t\t\taria-label={editButtonLabel}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\n\t\tconst inputProps = {\n\t\t\tref: mergeRefs(inputRef, ref),\n\t\t\tdefaultValue,\n\t\t\tonKeyDown: handleKeyDown,\n\t\t\t'aria-label': ariaLabel,\n\t\t};\n\n\t\tconst inputChildren = renderInput.props.children;\n\n\t\tconst input = cloneElement(\n\t\t\trenderInput,\n\t\t\tmergeProps(renderInput.props, inputChildren ? {} : inputProps),\n\t\t\tinputChildren &&\n\t\t\t\tChildren.map(inputChildren, (child) =>\n\t\t\t\t\tchild.type === TextField || child.type === TextArea\n\t\t\t\t\t\t? cloneElement(child, mergeProps(child.props, inputProps))\n\t\t\t\t\t\t: child,\n\t\t\t\t),\n\t\t);\n\n\t\treturn isEditing ? (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(container, inline({ layout }), className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{input}\n\t\t\t\t<ButtonGroup spacing=\"compact\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"primary\"\n\t\t\t\t\t\ticon={<Icon name=\"check\" />}\n\t\t\t\t\t\taria-label={confirmButtonLabel}\n\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t/>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"default\"\n\t\t\t\t\t\ticon={<Icon name=\"cancel\" />}\n\t\t\t\t\t\taria-label={cancelButtonLabel}\n\t\t\t\t\t\tclassName={cancelButton}\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(!hideEdit && container, className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{renderReadContent}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nInlineEdit.displayName = 'InlineEdit';\n\nexport { InlineEdit };\nexport type { InlineEditProps };\n"],"names":["forwardRef","TextField","useState","useRef","useUpdateEffect","focusSafely","useFocusWithin","isFocusWithin","useButton","jsx","jsxs","Fragment","IconButton","Icon","mergeRefs","cloneElement","mergeProps","Children","TextArea","cx","ButtonGroup"],"mappings":";;;;;;;;;;;;;;;;;AAoCA,MAAM,aAAaA,sBAAA;AAAA,EAClB,CACC;AAAA,IACC,gBAAgB,SAAS;AAAA,IACzB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,6CAAeC,KAAU,WAAA,EAAA;AAAA,IACzB,cAAc;AAAA,IACd,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB;AAAA,IACA,GAAG;AAAA,KAEJ,QACI;AACJ,UAAM,CAAC,WAAW,UAAU,IAAIC,MAAAA,SAAS,iBAAiB,KAAK;AAC/D,UAAM,CAAC,eAAe,cAAc,IAAIA,
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/InlineEdit.tsx"],"sourcesContent":["import type { IconFieldProps, TextAreaProps, TextFieldProps } from '@launchpad-ui/form';\nimport type { ComponentProps, KeyboardEventHandler, ReactElement } from 'react';\nimport type { InlineVariants } from './styles/InlineEdit.css';\n\nimport { ButtonGroup, IconButton } from '@launchpad-ui/button';\nimport { TextArea, TextField } from '@launchpad-ui/form';\nimport { Icon } from '@launchpad-ui/icons';\nimport { useButton } from '@react-aria/button';\nimport { focusSafely } from '@react-aria/focus';\nimport { useFocusWithin } from '@react-aria/interactions';\nimport { mergeProps, mergeRefs, useUpdateEffect } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, forwardRef, useRef, useState } from 'react';\n\nimport { cancelButton, container, inline, readButton } from './styles/InlineEdit.css';\n\ntype InlineEditProps = ComponentProps<'div'> &\n\tInlineVariants &\n\tPick<ComponentProps<'input'>, 'defaultValue'> & {\n\t\t'data-test-id'?: string;\n\t\tonConfirm: (value: string) => void;\n\t\thideEdit?: boolean;\n\t\trenderInput?: ReactElement<IconFieldProps | TextFieldProps | TextAreaProps>;\n\t\tisEditing?: boolean;\n\t\tonCancel?: () => void;\n\t\tonEdit?: () => void;\n\t\tcancelButtonLabel?: string;\n\t\teditButtonLabel?: string;\n\t\tconfirmButtonLabel?: string;\n\t};\n\n/**\n * @deprecated use `minimal` variant for fields from `@launchpad-ui/components` instead\n *\n * https://launchpad.launchdarkly.com/?path=/docs/components-forms-textfield--docs#minimal\n */\nconst InlineEdit = forwardRef<HTMLInputElement, InlineEditProps>(\n\t(\n\t\t{\n\t\t\t'data-test-id': testId = 'inline-edit',\n\t\t\tlayout = 'horizontal',\n\t\t\tchildren,\n\t\t\tdefaultValue,\n\t\t\tonConfirm,\n\t\t\thideEdit = false,\n\t\t\trenderInput = <TextField />,\n\t\t\t'aria-label': ariaLabel,\n\t\t\tisEditing: isEditingProp,\n\t\t\tonCancel,\n\t\t\tonEdit,\n\t\t\tcancelButtonLabel = 'cancel',\n\t\t\teditButtonLabel = 'edit',\n\t\t\tconfirmButtonLabel = 'confirm',\n\t\t\tclassName,\n\t\t\t...rest\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst [isEditing, setEditing] = useState(isEditingProp ?? false);\n\t\tconst [isFocusWithin, setFocusWithin] = useState(false);\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst editRef = useRef<HTMLButtonElement>(null);\n\t\tconst controlled = isEditingProp !== undefined;\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (controlled) {\n\t\t\t\tsetEditing(isEditingProp);\n\t\t\t}\n\t\t}, [isEditingProp]);\n\n\t\tuseUpdateEffect(() => {\n\t\t\tif (isFocusWithin) {\n\t\t\t\tisEditing\n\t\t\t\t\t? inputRef.current && focusSafely(inputRef.current)\n\t\t\t\t\t: editRef.current && focusSafely(editRef.current);\n\t\t\t}\n\t\t}, [isEditing]);\n\n\t\tconst handleEdit = () => {\n\t\t\t!controlled && setEditing(true);\n\t\t\tonEdit?.();\n\t\t};\n\n\t\tconst handleCancel = () => {\n\t\t\t!controlled && setEditing(false);\n\t\t\tonCancel?.();\n\t\t};\n\n\t\tconst handleConfirm = () => {\n\t\t\tonConfirm(inputRef.current?.value || '');\n\t\t\t!controlled && setEditing(false);\n\t\t};\n\n\t\tconst handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n\t\t\tif (event.key === 'Enter') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleConfirm();\n\t\t\t} else if (event.key === 'Escape') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleCancel();\n\t\t\t}\n\t\t};\n\n\t\tconst { focusWithinProps } = useFocusWithin({\n\t\t\tonBlurWithin: () => isEditing && handleCancel(),\n\t\t\tonFocusWithinChange: (isFocusWithin) => setFocusWithin(isFocusWithin),\n\t\t});\n\n\t\tconst { buttonProps } = useButton(\n\t\t\t{\n\t\t\t\t'aria-label': editButtonLabel,\n\t\t\t\telementType: 'span',\n\t\t\t\tonPress: handleEdit,\n\t\t\t},\n\t\t\teditRef,\n\t\t);\n\n\t\tconst renderReadContent = hideEdit ? (\n\t\t\t<span ref={editRef} {...buttonProps} className={readButton}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t) : (\n\t\t\t<>\n\t\t\t\t{children}\n\t\t\t\t<IconButton\n\t\t\t\t\tref={editRef}\n\t\t\t\t\ticon={<Icon name=\"edit\" />}\n\t\t\t\t\taria-label={editButtonLabel}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={handleEdit}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\n\t\tconst inputProps = {\n\t\t\tref: mergeRefs(inputRef, ref),\n\t\t\tdefaultValue,\n\t\t\tonKeyDown: handleKeyDown,\n\t\t\t'aria-label': ariaLabel,\n\t\t};\n\n\t\tconst inputChildren = renderInput.props.children;\n\n\t\tconst input = cloneElement(\n\t\t\trenderInput,\n\t\t\tmergeProps(renderInput.props, inputChildren ? {} : inputProps),\n\t\t\tinputChildren &&\n\t\t\t\tChildren.map(inputChildren, (child) =>\n\t\t\t\t\tchild.type === TextField || child.type === TextArea\n\t\t\t\t\t\t? cloneElement(child, mergeProps(child.props, inputProps))\n\t\t\t\t\t\t: child,\n\t\t\t\t),\n\t\t);\n\n\t\treturn isEditing ? (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(container, inline({ layout }), className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{input}\n\t\t\t\t<ButtonGroup spacing=\"compact\">\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"primary\"\n\t\t\t\t\t\ticon={<Icon name=\"check\" />}\n\t\t\t\t\t\taria-label={confirmButtonLabel}\n\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t/>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tkind=\"default\"\n\t\t\t\t\t\ticon={<Icon name=\"cancel\" />}\n\t\t\t\t\t\taria-label={cancelButtonLabel}\n\t\t\t\t\t\tclassName={cancelButton}\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t/>\n\t\t\t\t</ButtonGroup>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div\n\t\t\t\t{...rest}\n\t\t\t\tclassName={cx(!hideEdit && container, className)}\n\t\t\t\tdata-test-id={testId}\n\t\t\t\t{...focusWithinProps}\n\t\t\t>\n\t\t\t\t{renderReadContent}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nInlineEdit.displayName = 'InlineEdit';\n\nexport { InlineEdit };\nexport type { InlineEditProps };\n"],"names":["forwardRef","TextField","useState","useRef","useUpdateEffect","focusSafely","useFocusWithin","isFocusWithin","useButton","jsx","jsxs","Fragment","IconButton","Icon","mergeRefs","cloneElement","mergeProps","Children","TextArea","cx","ButtonGroup"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@launchpad-ui/inline-edit",
|
3
|
-
"version": "0.3.
|
3
|
+
"version": "0.3.43",
|
4
4
|
"status": "alpha",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
@@ -37,11 +37,11 @@
|
|
37
37
|
"@react-aria/utils": "3.25.3",
|
38
38
|
"@vanilla-extract/recipes": "^0.5.0",
|
39
39
|
"classix": "2.2.0",
|
40
|
-
"@launchpad-ui/button": "~0.12.
|
41
|
-
"@launchpad-ui/form": "~0.11.
|
42
|
-
"@launchpad-ui/icons": "~0.20.
|
43
|
-
"@launchpad-ui/tokens": "~0.12.
|
44
|
-
"@launchpad-ui/vars": "~0.3.
|
40
|
+
"@launchpad-ui/button": "~0.12.38",
|
41
|
+
"@launchpad-ui/form": "~0.11.43",
|
42
|
+
"@launchpad-ui/icons": "~0.20.2",
|
43
|
+
"@launchpad-ui/tokens": "~0.12.1",
|
44
|
+
"@launchpad-ui/vars": "~0.3.1"
|
45
45
|
},
|
46
46
|
"peerDependencies": {
|
47
47
|
"@vanilla-extract/css": "^1.14.0",
|