intergalactic 15.58.1-prerelease-b859fb1f → 15.59.0-prerelease-8438cd01
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/carousel/lib/cjs/Carousel.js +2 -2
- package/carousel/lib/cjs/Carousel.js.map +1 -1
- package/carousel/lib/es6/Carousel.js +2 -2
- package/carousel/lib/es6/Carousel.js.map +1 -1
- package/color-picker/lib/cjs/ColorPicker.js +2 -1
- package/color-picker/lib/cjs/ColorPicker.js.map +1 -1
- package/color-picker/lib/es6/ColorPicker.js +2 -1
- package/color-picker/lib/es6/ColorPicker.js.map +1 -1
- package/components.json +1 -1
- package/d3-chart/lib/cjs/Area.js +11 -11
- package/d3-chart/lib/cjs/Axis.js +14 -14
- package/d3-chart/lib/cjs/Bar.js +10 -10
- package/d3-chart/lib/cjs/Bubble.js +12 -12
- package/d3-chart/lib/cjs/Donut.js +9 -9
- package/d3-chart/lib/cjs/Dots.js +8 -8
- package/d3-chart/lib/cjs/HorizontalBar.js +10 -10
- package/d3-chart/lib/cjs/Hover.js +3 -3
- package/d3-chart/lib/cjs/Line.js +9 -9
- package/d3-chart/lib/cjs/Plot.js +3 -3
- package/d3-chart/lib/cjs/Radar.js +19 -19
- package/d3-chart/lib/cjs/RadialTree.js +11 -11
- package/d3-chart/lib/cjs/ReferenceLine.js +9 -9
- package/d3-chart/lib/cjs/ScatterPlot.js +9 -9
- package/d3-chart/lib/cjs/Tooltip.js +9 -9
- package/d3-chart/lib/cjs/Venn.js +9 -9
- package/d3-chart/lib/cjs/a11y/PlotA11yModule.js +2 -2
- package/d3-chart/lib/cjs/a11y/PlotA11yView.js +6 -4
- package/d3-chart/lib/cjs/a11y/PlotA11yView.js.map +1 -1
- package/d3-chart/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
- package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
- package/d3-chart/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
- package/d3-chart/lib/es6/Area.js +11 -11
- package/d3-chart/lib/es6/Axis.js +14 -14
- package/d3-chart/lib/es6/Bar.js +10 -10
- package/d3-chart/lib/es6/Bubble.js +12 -12
- package/d3-chart/lib/es6/Donut.js +9 -9
- package/d3-chart/lib/es6/Dots.js +8 -8
- package/d3-chart/lib/es6/HorizontalBar.js +10 -10
- package/d3-chart/lib/es6/Hover.js +3 -3
- package/d3-chart/lib/es6/Line.js +9 -9
- package/d3-chart/lib/es6/Plot.js +3 -3
- package/d3-chart/lib/es6/Radar.js +19 -19
- package/d3-chart/lib/es6/RadialTree.js +11 -11
- package/d3-chart/lib/es6/ReferenceLine.js +9 -9
- package/d3-chart/lib/es6/ScatterPlot.js +9 -9
- package/d3-chart/lib/es6/Tooltip.js +9 -9
- package/d3-chart/lib/es6/Venn.js +9 -9
- package/d3-chart/lib/es6/a11y/PlotA11yModule.js +2 -2
- package/d3-chart/lib/es6/a11y/PlotA11yView.js +6 -4
- package/d3-chart/lib/es6/a11y/PlotA11yView.js.map +1 -1
- package/d3-chart/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
- package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
- package/d3-chart/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
- package/data-table/lib/cjs/Head.js +2 -1
- package/data-table/lib/cjs/Head.js.map +1 -1
- package/data-table/lib/es6/Head.js +2 -1
- package/data-table/lib/es6/Head.js.map +1 -1
- package/icon/lib/cjs/Icon.js +3 -3
- package/icon/lib/cjs/Icon.js.map +1 -1
- package/icon/lib/es6/Icon.js +3 -3
- package/icon/lib/es6/Icon.js.map +1 -1
- package/inline-edit/lib/cjs/InlineEdit.js +4 -4
- package/inline-edit/lib/cjs/InlineEdit.js.map +1 -1
- package/inline-edit/lib/es6/InlineEdit.js +4 -4
- package/inline-edit/lib/es6/InlineEdit.js.map +1 -1
- package/inline-input/lib/cjs/InlineInput.js +4 -4
- package/inline-input/lib/cjs/InlineInput.js.map +1 -1
- package/inline-input/lib/es6/InlineInput.js +4 -4
- package/inline-input/lib/es6/InlineInput.js.map +1 -1
- package/input-tags/lib/cjs/InputTags.js +3 -3
- package/input-tags/lib/cjs/InputTags.js.map +1 -1
- package/input-tags/lib/es6/InputTags.js +3 -3
- package/input-tags/lib/es6/InputTags.js.map +1 -1
- package/package.json +1 -1
- package/pills/lib/cjs/Pills.js +2 -1
- package/pills/lib/cjs/Pills.js.map +1 -1
- package/pills/lib/es6/Pills.js +2 -1
- package/pills/lib/es6/Pills.js.map +1 -1
- package/switch/lib/cjs/Switch.js +5 -2
- package/switch/lib/cjs/Switch.js.map +1 -1
- package/switch/lib/es6/Switch.js +5 -2
- package/switch/lib/es6/Switch.js.map +1 -1
- package/tab-panel/lib/cjs/TabPanel.js +2 -1
- package/tab-panel/lib/cjs/TabPanel.js.map +1 -1
- package/tab-panel/lib/es6/TabPanel.js +2 -1
- package/tab-panel/lib/es6/TabPanel.js.map +1 -1
- package/tag/lib/cjs/Tag.js +4 -3
- package/tag/lib/cjs/Tag.js.map +1 -1
- package/tag/lib/es6/Tag.js +4 -3
- package/tag/lib/es6/Tag.js.map +1 -1
- package/tooltip/index.d.ts +4 -1
- package/tooltip/lib/cjs/Tooltip.js +14 -9
- package/tooltip/lib/cjs/Tooltip.js.map +1 -1
- package/tooltip/lib/cjs/index.d.js.map +1 -1
- package/tooltip/lib/cjs/style/tooltip.shadow.css +4 -0
- package/tooltip/lib/es6/Tooltip.js +14 -9
- package/tooltip/lib/es6/Tooltip.js.map +1 -1
- package/tooltip/lib/es6/index.d.js.map +1 -1
- package/tooltip/lib/es6/style/tooltip.shadow.css +4 -0
- package/tooltip/lib/types/index.d.ts +4 -1
- package/wizard/lib/cjs/Wizard.js +2 -1
- package/wizard/lib/cjs/Wizard.js.map +1 -1
- package/wizard/lib/es6/Wizard.js +2 -1
- package/wizard/lib/es6/Wizard.js.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"InputTags.js","names":["React","createComponent","Component","sstyled","Root","Input","ScrollArea","Tag","fire","style","_sstyled","insert","InputTags","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","event","inputRef","current","target","caretPosition","value","preventDefault","focus","setSelectionRange","key","currentTarget","delimiters","asProps","lastSymbol","slice","trimmedValue","trim","includes","_this$inputRef$curren","scrollIntoView","setTimeout","_this$inputRef$curren2","block","inline","behavior","_this$inputRef$curren3","clipboardData","getData","_this$asProps","onAdd","onAppend","reg","RegExp","filter","s","test","String","map","replace","join","tagsToBeAdded","split","Boolean","_iterator","_createForOfIteratorHelper","_step","n","done","tag","err","e","f","_this$inputRef$curren4","editable","container","scrollContainerRef","hasTags","tagsRefs","some","moveFocusToInput","_createClass","getValueProps","ref","onKeyDown","handleKeyDown","onPaste","handlePaste","getTagProps","_ref7","index","_this2","size","onClick","bindHandlerTagClick","node","render","_ref","_ref4","SInputTags","_this$asProps2","Children","styles","SListAriaWrapper","createElement","cn","_objectSpread","_assignProps","handleContainerFocus","defaultValue","Value","_Component2","_super2","_this3","_len2","_key2","width","updateInputStyles","spacerNode","_spacer","placeholder","props","magicOffset","undefined","setState","Math","max","componentDidMount","componentDidUpdate","prevProps","_this$asProps3","_ref2","_ref5","SValue","SSpacer","Fragment","_assignProps2","state","InputTag","_ref3","arguments[0]","_ref6","STag","_props$onClick","_assignProps3","Text","Close","Addon","Circle"],"sources":["../../src/InputTags.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, {\n Component,\n sstyled,\n Root,\n PropGetterFn,\n UnknownProperties,\n Intergalactic,\n} from '@semcore/core';\nimport Input, { InputProps, InputValueProps } from '@semcore/input';\nimport ScrollArea, { ScrollAreaProps } from '@semcore/scroll-area';\nimport Tag, { TagProps } from '@semcore/tag';\nimport fire from '@semcore/utils/lib/fire';\n\nimport style from './style/input-tag.shadow.css';\n\n/** @deprecated */\nexport interface IInputTagsValueProps extends InputTagsValueProps, UnknownProperties {}\nexport type InputTagsValueProps = InputValueProps & {};\n\nexport type InputTagsSize = 'l' | 'm';\n\n/** @deprecated */\nexport interface IInputTagsProps extends InputTagsProps, UnknownProperties {}\nexport type InputTagsProps = Omit<InputProps, 'size'> &\n ScrollAreaProps & {\n /**\n * Component size\n * @default m\n */\n size?: InputTagsSize;\n /**\n * Event is called when tag needs to be added\n * @deprecated use `onAppend` instead\n */\n onAdd?: (value: string, event: React.KeyboardEvent | React.ClipboardEvent) => void;\n /** Event is called when tags need to be added */\n onAppend?: (values: string[], event: React.KeyboardEvent | React.ClipboardEvent) => void;\n /** Event is called when tags need to be removed */\n onRemove?: (event: React.KeyboardEvent | React.MouseEvent) => void;\n /** List delimiter of tags. Don't forget to add 'Enter' and 'Tab' to hande corresponding hotkeys.\n * @default [',', ';', '|', 'Enter', 'Tab']\n * */\n delimiters?: string[];\n };\n\n/** @deprecated */\nexport interface IInputTagsTagProps extends InputTagsTagProps, UnknownProperties {}\nexport type InputTagsTagProps = TagProps & {\n /** Property enabling the ability to remove a tag on click */\n editable?: boolean;\n};\n\n/** @deprecated */\nexport interface IInputTagsContext extends InputTagsContext, UnknownProperties {}\nexport type InputTagsContext = InputTagsProps & {\n getValueProps: PropGetterFn;\n getTagProps: PropGetterFn;\n};\n\nclass InputTags extends Component<IInputTagsProps> {\n static displayName = 'InputTags';\n static style = style;\n\n static defaultProps = {\n size: 'm',\n delimiters: [',', ';', '|', 'Enter', 'Tab'],\n defaultValue: '',\n };\n\n inputRef = React.createRef<HTMLInputElement>();\n scrollContainerRef = React.createRef<HTMLElement>();\n tagsRefs: (HTMLElement | null)[] = [];\n\n moveFocusToInput = (event: React.FocusEvent) => {\n const inputRef = this.inputRef.current;\n if (inputRef && event.target !== inputRef) {\n const caretPosition = inputRef.value.length;\n event.preventDefault();\n inputRef.focus();\n inputRef.setSelectionRange(caretPosition, caretPosition);\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const { key, currentTarget } = event;\n const { delimiters } = this.asProps;\n const { value } = currentTarget;\n const lastSymbol = value.slice(-1);\n const trimmedValue = value.trim();\n\n if ((delimiters?.includes(key) || (lastSymbol === ' ' && key === ' ')) && trimmedValue) {\n event.preventDefault();\n fire(this, 'onAdd', trimmedValue, event);\n fire(this, 'onAppend', [trimmedValue], event);\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n setTimeout(() => {\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n this.inputRef.current.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n }, 0);\n }\n }\n\n if (key === 'Backspace' && !value) {\n event.preventDefault();\n fire(this, 'onRemove', event);\n }\n };\n\n handlePaste = (event: React.ClipboardEvent) => {\n const value = event.clipboardData.getData('text/plain');\n const { delimiters, onAdd, onAppend } = this.asProps;\n const reg = new RegExp(\n delimiters!\n .filter((s) => !/\\w+/.test(String(s)))\n .map((s) => s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'))\n .join('|'),\n );\n const tagsToBeAdded = value.split(reg).filter(Boolean);\n if (tagsToBeAdded.length > 0) {\n event.preventDefault();\n for (const tag of tagsToBeAdded) {\n onAdd?.(tag, event);\n }\n onAppend?.(tagsToBeAdded, event);\n }\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n setTimeout(() => {\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n this.inputRef.current.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n }, 0);\n }\n };\n\n bindHandlerTagClick = (editable: boolean) => (event: React.MouseEvent) => {\n if (!editable) return;\n fire(this, 'onRemove', event);\n };\n\n handleContainerFocus = (event: React.FocusEvent) => {\n const { target } = event;\n const { current: container } = this.scrollContainerRef;\n if (!container || target !== container) return;\n const hasTags = this.tagsRefs.some(Boolean);\n if (hasTags) return;\n this.moveFocusToInput(event);\n };\n\n getValueProps() {\n return {\n ref: this.inputRef,\n onKeyDown: this.handleKeyDown,\n onPaste: this.handlePaste,\n };\n }\n\n getTagProps({ editable }: { editable: boolean }, index: number) {\n return {\n size: this.asProps.size,\n onClick: this.bindHandlerTagClick(editable),\n ref: (node: HTMLElement | null) => {\n this.tagsRefs[index] = node;\n },\n };\n }\n\n render() {\n const SInputTags = Root;\n const { Children, styles } = this.asProps;\n const SListAriaWrapper = 'div';\n\n return sstyled(styles)(\n <SInputTags\n render={Input}\n tag={ScrollArea}\n onMouseDown={this.moveFocusToInput}\n onFocus={this.handleContainerFocus}\n container={this.scrollContainerRef}\n >\n <SListAriaWrapper>\n <Children />\n </SListAriaWrapper>\n </SInputTags>,\n );\n }\n}\n\nclass Value extends Component<IInputTagsValueProps> {\n private _spacer = React.createRef<HTMLDivElement>();\n\n state = {\n width: '10px',\n };\n\n componentDidMount() {\n this.updateInputStyles(this.asProps.value!);\n }\n\n componentDidUpdate(prevProps: any) {\n const { value, placeholder } = this.asProps;\n if (value !== prevProps.value || placeholder !== prevProps.placeholder) {\n this.updateInputStyles(value!);\n }\n }\n\n handleChange = (value: string) => {\n this.updateInputStyles(value);\n };\n\n updateInputStyles = (value: string) => {\n const { current: spacerNode } = this._spacer;\n if (!spacerNode) return;\n const { placeholder } = this.props;\n /* for display cursor */\n let magicOffset = 2;\n if (placeholder && (value === undefined || value === '')) {\n // @ts-ignore\n spacerNode['innerText'] = placeholder;\n /* for [placeholder] {\n text-overflow: ellipsis;\n }*/\n magicOffset += 8;\n } else {\n spacerNode['innerText'] = value;\n }\n this.setState({\n width: `${Math.max(spacerNode['offsetWidth'], spacerNode['scrollWidth']) + magicOffset}px`,\n });\n };\n\n render() {\n const SValue = Root;\n const SSpacer = 'div';\n\n return sstyled(this.asProps.styles)(\n <>\n <SValue render={Input.Value} style={{ width: this.state.width }} />\n <SSpacer ref={this._spacer} aria-hidden />\n </>,\n );\n }\n}\n\nfunction InputTag(props: any) {\n const STag = Root;\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter') {\n props.onClick?.(event);\n\n return false;\n }\n };\n\n return sstyled(props.styles)(\n <STag data-value={props.value} render={Tag} onKeyDown={onKeyDown} />,\n );\n}\n\nexport default createComponent(InputTags, {\n Value,\n Tag: [\n InputTag,\n {\n Text: Tag.Text,\n Close: Tag.Close,\n Addon: Tag.Addon,\n Circle: Tag.Circle,\n },\n ],\n}) as any as Intergalactic.Component<'div', InputTagsProps, InputTagsContext> & {\n Value: typeof Input.Value;\n Tag: Intergalactic.Component<'div', InputTagsTagProps> & {\n Text: typeof Tag.Text;\n Close: typeof Tag.Close;\n Addon: typeof Tag.Addon;\n Circle: typeof Tag.Circle;\n };\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"InputTags.js","names":["React","createComponent","Component","sstyled","Root","Input","ScrollArea","Tag","fire","style","_sstyled","insert","InputTags","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","event","inputRef","current","target","caretPosition","value","preventDefault","focus","setSelectionRange","key","currentTarget","delimiters","asProps","lastSymbol","slice","trimmedValue","trim","includes","_this$inputRef$curren","scrollIntoView","setTimeout","_this$inputRef$curren2","block","inline","behavior","_this$inputRef$curren3","clipboardData","getData","_this$asProps","onAdd","onAppend","reg","RegExp","filter","s","test","String","map","replace","join","tagsToBeAdded","split","Boolean","_iterator","_createForOfIteratorHelper","_step","n","done","tag","err","e","f","_this$inputRef$curren4","editable","container","scrollContainerRef","hasTags","tagsRefs","some","moveFocusToInput","_createClass","getValueProps","ref","onKeyDown","handleKeyDown","onPaste","handlePaste","getTagProps","_ref7","index","_this2","size","onClick","bindHandlerTagClick","node","render","_ref","_ref4","SInputTags","_this$asProps2","Children","styles","SListAriaWrapper","createElement","cn","_objectSpread","_assignProps","handleContainerFocus","defaultValue","Value","_Component2","_super2","_this3","_len2","_key2","width","updateInputStyles","spacerNode","_spacer","placeholder","props","magicOffset","undefined","setState","Math","max","componentDidMount","componentDidUpdate","prevProps","_this$asProps3","_ref2","_ref5","SValue","SSpacer","Fragment","_assignProps2","state","InputTag","_ref3","arguments[0]","_ref6","STag","code","_assignProps3","Text","Close","Addon","Circle"],"sources":["../../src/InputTags.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, {\n Component,\n sstyled,\n Root,\n PropGetterFn,\n UnknownProperties,\n Intergalactic,\n} from '@semcore/core';\nimport Input, { InputProps, InputValueProps } from '@semcore/input';\nimport ScrollArea, { ScrollAreaProps } from '@semcore/scroll-area';\nimport Tag, { TagProps } from '@semcore/tag';\nimport fire from '@semcore/utils/lib/fire';\n\nimport style from './style/input-tag.shadow.css';\n\n/** @deprecated */\nexport interface IInputTagsValueProps extends InputTagsValueProps, UnknownProperties {}\nexport type InputTagsValueProps = InputValueProps & {};\n\nexport type InputTagsSize = 'l' | 'm';\n\n/** @deprecated */\nexport interface IInputTagsProps extends InputTagsProps, UnknownProperties {}\nexport type InputTagsProps = Omit<InputProps, 'size'> &\n ScrollAreaProps & {\n /**\n * Component size\n * @default m\n */\n size?: InputTagsSize;\n /**\n * Event is called when tag needs to be added\n * @deprecated use `onAppend` instead\n */\n onAdd?: (value: string, event: React.KeyboardEvent | React.ClipboardEvent) => void;\n /** Event is called when tags need to be added */\n onAppend?: (values: string[], event: React.KeyboardEvent | React.ClipboardEvent) => void;\n /** Event is called when tags need to be removed */\n onRemove?: (event: React.KeyboardEvent | React.MouseEvent) => void;\n /** List delimiter of tags. Don't forget to add 'Enter' and 'Tab' to hande corresponding hotkeys.\n * @default [',', ';', '|', 'Enter', 'Tab']\n * */\n delimiters?: string[];\n };\n\n/** @deprecated */\nexport interface IInputTagsTagProps extends InputTagsTagProps, UnknownProperties {}\nexport type InputTagsTagProps = TagProps & {\n /** Property enabling the ability to remove a tag on click */\n editable?: boolean;\n};\n\n/** @deprecated */\nexport interface IInputTagsContext extends InputTagsContext, UnknownProperties {}\nexport type InputTagsContext = InputTagsProps & {\n getValueProps: PropGetterFn;\n getTagProps: PropGetterFn;\n};\n\nclass InputTags extends Component<IInputTagsProps> {\n static displayName = 'InputTags';\n static style = style;\n\n static defaultProps = {\n size: 'm',\n delimiters: [',', ';', '|', 'Enter', 'Tab'],\n defaultValue: '',\n };\n\n inputRef = React.createRef<HTMLInputElement>();\n scrollContainerRef = React.createRef<HTMLElement>();\n tagsRefs: (HTMLElement | null)[] = [];\n\n moveFocusToInput = (event: React.FocusEvent) => {\n const inputRef = this.inputRef.current;\n if (inputRef && event.target !== inputRef) {\n const caretPosition = inputRef.value.length;\n event.preventDefault();\n inputRef.focus();\n inputRef.setSelectionRange(caretPosition, caretPosition);\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const { key, currentTarget } = event;\n const { delimiters } = this.asProps;\n const { value } = currentTarget;\n const lastSymbol = value.slice(-1);\n const trimmedValue = value.trim();\n\n if ((delimiters?.includes(key) || (lastSymbol === ' ' && key === ' ')) && trimmedValue) {\n event.preventDefault();\n fire(this, 'onAdd', trimmedValue, event);\n fire(this, 'onAppend', [trimmedValue], event);\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n setTimeout(() => {\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n this.inputRef.current.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n }, 0);\n }\n }\n\n if (key === 'Backspace' && !value) {\n event.preventDefault();\n fire(this, 'onRemove', event);\n }\n };\n\n handlePaste = (event: React.ClipboardEvent) => {\n const value = event.clipboardData.getData('text/plain');\n const { delimiters, onAdd, onAppend } = this.asProps;\n const reg = new RegExp(\n delimiters!\n .filter((s) => !/\\w+/.test(String(s)))\n .map((s) => s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'))\n .join('|'),\n );\n const tagsToBeAdded = value.split(reg).filter(Boolean);\n if (tagsToBeAdded.length > 0) {\n event.preventDefault();\n for (const tag of tagsToBeAdded) {\n onAdd?.(tag, event);\n }\n onAppend?.(tagsToBeAdded, event);\n }\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n setTimeout(() => {\n if (typeof this.inputRef.current?.scrollIntoView === 'function') {\n this.inputRef.current.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n }, 0);\n }\n };\n\n bindHandlerTagClick = (editable: boolean) => (event: React.MouseEvent) => {\n if (!editable) return;\n fire(this, 'onRemove', event);\n };\n\n handleContainerFocus = (event: React.FocusEvent) => {\n const { target } = event;\n const { current: container } = this.scrollContainerRef;\n if (!container || target !== container) return;\n const hasTags = this.tagsRefs.some(Boolean);\n if (hasTags) return;\n this.moveFocusToInput(event);\n };\n\n getValueProps() {\n return {\n ref: this.inputRef,\n onKeyDown: this.handleKeyDown,\n onPaste: this.handlePaste,\n };\n }\n\n getTagProps({ editable }: { editable: boolean }, index: number) {\n return {\n size: this.asProps.size,\n onClick: this.bindHandlerTagClick(editable),\n ref: (node: HTMLElement | null) => {\n this.tagsRefs[index] = node;\n },\n };\n }\n\n render() {\n const SInputTags = Root;\n const { Children, styles } = this.asProps;\n const SListAriaWrapper = 'div';\n\n return sstyled(styles)(\n <SInputTags\n render={Input}\n tag={ScrollArea}\n onMouseDown={this.moveFocusToInput}\n onFocus={this.handleContainerFocus}\n container={this.scrollContainerRef}\n >\n <SListAriaWrapper>\n <Children />\n </SListAriaWrapper>\n </SInputTags>,\n );\n }\n}\n\nclass Value extends Component<IInputTagsValueProps> {\n private _spacer = React.createRef<HTMLDivElement>();\n\n state = {\n width: '10px',\n };\n\n componentDidMount() {\n this.updateInputStyles(this.asProps.value!);\n }\n\n componentDidUpdate(prevProps: any) {\n const { value, placeholder } = this.asProps;\n if (value !== prevProps.value || placeholder !== prevProps.placeholder) {\n this.updateInputStyles(value!);\n }\n }\n\n handleChange = (value: string) => {\n this.updateInputStyles(value);\n };\n\n updateInputStyles = (value: string) => {\n const { current: spacerNode } = this._spacer;\n if (!spacerNode) return;\n const { placeholder } = this.props;\n /* for display cursor */\n let magicOffset = 2;\n if (placeholder && (value === undefined || value === '')) {\n // @ts-ignore\n spacerNode['innerText'] = placeholder;\n /* for [placeholder] {\n text-overflow: ellipsis;\n }*/\n magicOffset += 8;\n } else {\n spacerNode['innerText'] = value;\n }\n this.setState({\n width: `${Math.max(spacerNode['offsetWidth'], spacerNode['scrollWidth']) + magicOffset}px`,\n });\n };\n\n render() {\n const SValue = Root;\n const SSpacer = 'div';\n\n return sstyled(this.asProps.styles)(\n <>\n <SValue render={Input.Value} style={{ width: this.state.width }} />\n <SSpacer ref={this._spacer} aria-hidden />\n </>,\n );\n }\n}\n\nfunction InputTag(props: any) {\n const STag = Root;\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n if (props.onClick && (event.code === 'Enter' || event.code === 'Space')) {\n event.preventDefault();\n props.onClick(event);\n\n return false;\n }\n };\n\n return sstyled(props.styles)(\n <STag data-value={props.value} render={Tag} onKeyDown={onKeyDown} />,\n );\n}\n\nexport default createComponent(InputTags, {\n Value,\n Tag: [\n InputTag,\n {\n Text: Tag.Text,\n Close: Tag.Close,\n Addon: Tag.Addon,\n Circle: Tag.Circle,\n },\n ],\n}) as any as Intergalactic.Component<'div', InputTagsProps, InputTagsContext> & {\n Value: typeof Input.Value;\n Tag: Intergalactic.Component<'div', InputTagsTagProps> & {\n Text: typeof Tag.Text;\n Close: typeof Tag.Close;\n Addon: typeof Tag.Addon;\n Circle: typeof Tag.Circle;\n };\n};\n"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,IACpBC,SAAS,EACTC,OAAO,EACPC,IAAI,QAIC,eAAe;AACtB,OAAOC,KAAK,MAAuC,gBAAgB;AACnE,OAAOC,UAAU,MAA2B,sBAAsB;AAClE,OAAOC,GAAG,MAAoB,cAAc;AAC5C,OAAOC,IAAI,MAAM,yBAAyB;AAAC;AAAA,IAAAC,KAAA,+BAAAC,QAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI3C;AAAA,IA4CMC,SAAS,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,SAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,SAAA;EAAA,SAAAA,UAAA;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,SAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAAM,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,4BAUFjB,KAAK,CAAC8B,SAAS,EAAoB;IAAAF,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,sCACzBjB,KAAK,CAAC8B,SAAS,EAAe;IAAAF,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,eAChB,EAAE;IAAAW,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,uBAElB,UAACc,KAAuB,EAAK;MAC9C,IAAMC,QAAQ,GAAGf,KAAA,CAAKe,QAAQ,CAACC,OAAO;MACtC,IAAID,QAAQ,IAAID,KAAK,CAACG,MAAM,KAAKF,QAAQ,EAAE;QACzC,IAAMG,aAAa,GAAGH,QAAQ,CAACI,KAAK,CAACf,MAAM;QAC3CU,KAAK,CAACM,cAAc,EAAE;QACtBL,QAAQ,CAACM,KAAK,EAAE;QAChBN,QAAQ,CAACO,iBAAiB,CAACJ,aAAa,EAAEA,aAAa,CAAC;MAC1D;IACF,CAAC;IAAAP,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,oBAEe,UAACc,KAA4C,EAAK;MAChE,IAAQS,GAAG,GAAoBT,KAAK,CAA5BS,GAAG;QAAEC,aAAa,GAAKV,KAAK,CAAvBU,aAAa;MAC1B,IAAQC,UAAU,GAAKzB,KAAA,CAAK0B,OAAO,CAA3BD,UAAU;MAClB,IAAQN,KAAK,GAAKK,aAAa,CAAvBL,KAAK;MACb,IAAMQ,UAAU,GAAGR,KAAK,CAACS,KAAK,CAAC,CAAC,CAAC,CAAC;MAClC,IAAMC,YAAY,GAAGV,KAAK,CAACW,IAAI,EAAE;MAEjC,IAAI,CAACL,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEM,QAAQ,CAACR,GAAG,CAAC,IAAKI,UAAU,KAAK,GAAG,IAAIJ,GAAG,KAAK,GAAI,KAAKM,YAAY,EAAE;QAAA,IAAAG,qBAAA;QACtFlB,KAAK,CAACM,cAAc,EAAE;QACtB7B,IAAI,CAAAqB,sBAAA,CAAAZ,KAAA,GAAO,OAAO,EAAE6B,YAAY,EAAEf,KAAK,CAAC;QACxCvB,IAAI,CAAAqB,sBAAA,CAAAZ,KAAA,GAAO,UAAU,EAAE,CAAC6B,YAAY,CAAC,EAAEf,KAAK,CAAC;QAC7C,IAAI,SAAAkB,qBAAA,GAAOhC,KAAA,CAAKe,QAAQ,CAACC,OAAO,cAAAgB,qBAAA,uBAArBA,qBAAA,CAAuBC,cAAc,MAAK,UAAU,EAAE;UAC/DC,UAAU,CAAC,YAAM;YAAA,IAAAC,sBAAA;YACf,IAAI,SAAAA,sBAAA,GAAOnC,KAAA,CAAKe,QAAQ,CAACC,OAAO,cAAAmB,sBAAA,uBAArBA,sBAAA,CAAuBF,cAAc,MAAK,UAAU,EAAE;cAC/DjC,KAAA,CAAKe,QAAQ,CAACC,OAAO,CAACiB,cAAc,CAAC;gBACnCG,KAAK,EAAE,SAAS;gBAChBC,MAAM,EAAE,SAAS;gBACjBC,QAAQ,EAAE;cACZ,CAAC,CAAC;YACJ;UACF,CAAC,EAAE,CAAC,CAAC;QACP;MACF;MAEA,IAAIf,GAAG,KAAK,WAAW,IAAI,CAACJ,KAAK,EAAE;QACjCL,KAAK,CAACM,cAAc,EAAE;QACtB7B,IAAI,CAAAqB,sBAAA,CAAAZ,KAAA,GAAO,UAAU,EAAEc,KAAK,CAAC;MAC/B;IACF,CAAC;IAAAH,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,kBAEa,UAACc,KAA2B,EAAK;MAAA,IAAAyB,sBAAA;MAC7C,IAAMpB,KAAK,GAAGL,KAAK,CAAC0B,aAAa,CAACC,OAAO,CAAC,YAAY,CAAC;MACvD,IAAAC,aAAA,GAAwC1C,KAAA,CAAK0B,OAAO;QAA5CD,UAAU,GAAAiB,aAAA,CAAVjB,UAAU;QAAEkB,KAAK,GAAAD,aAAA,CAALC,KAAK;QAAEC,QAAQ,GAAAF,aAAA,CAARE,QAAQ;MACnC,IAAMC,GAAG,GAAG,IAAIC,MAAM,CACpBrB,UAAU,CACPsB,MAAM,CAAC,UAACC,CAAC;QAAA,OAAK,CAAC,KAAK,CAACC,IAAI,CAACC,MAAM,CAACF,CAAC,CAAC,CAAC;MAAA,EAAC,CACrCG,GAAG,CAAC,UAACH,CAAC;QAAA,OAAKA,CAAC,CAACI,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;MAAA,EAAC,CACpDC,IAAI,CAAC,GAAG,CAAC,CACb;MACD,IAAMC,aAAa,GAAGnC,KAAK,CAACoC,KAAK,CAACV,GAAG,CAAC,CAACE,MAAM,CAACS,OAAO,CAAC;MACtD,IAAIF,aAAa,CAAClD,MAAM,GAAG,CAAC,EAAE;QAC5BU,KAAK,CAACM,cAAc,EAAE;QAAC,IAAAqC,SAAA,GAAAC,0BAAA,CACLJ,aAAa;UAAAK,KAAA;QAAA;UAA/B,KAAAF,SAAA,CAAAT,CAAA,MAAAW,KAAA,GAAAF,SAAA,CAAAG,CAAA,IAAAC,IAAA,GAAiC;YAAA,IAAtBC,GAAG,GAAAH,KAAA,CAAAxC,KAAA;YACZwB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGmB,GAAG,EAAEhD,KAAK,CAAC;UACrB;QAAC,SAAAiD,GAAA;UAAAN,SAAA,CAAAO,CAAA,CAAAD,GAAA;QAAA;UAAAN,SAAA,CAAAQ,CAAA;QAAA;QACDrB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGU,aAAa,EAAExC,KAAK,CAAC;MAClC;MACA,IAAI,SAAAyB,sBAAA,GAAOvC,KAAA,CAAKe,QAAQ,CAACC,OAAO,cAAAuB,sBAAA,uBAArBA,sBAAA,CAAuBN,cAAc,MAAK,UAAU,EAAE;QAC/DC,UAAU,CAAC,YAAM;UAAA,IAAAgC,sBAAA;UACf,IAAI,SAAAA,sBAAA,GAAOlE,KAAA,CAAKe,QAAQ,CAACC,OAAO,cAAAkD,sBAAA,uBAArBA,sBAAA,CAAuBjC,cAAc,MAAK,UAAU,EAAE;YAC/DjC,KAAA,CAAKe,QAAQ,CAACC,OAAO,CAACiB,cAAc,CAAC;cACnCG,KAAK,EAAE,SAAS;cAChBC,MAAM,EAAE,SAAS;cACjBC,QAAQ,EAAE;YACZ,CAAC,CAAC;UACJ;QACF,CAAC,EAAE,CAAC,CAAC;MACP;IACF,CAAC;IAAA3B,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,0BAEqB,UAACmE,QAAiB;MAAA,OAAK,UAACrD,KAAuB,EAAK;QACxE,IAAI,CAACqD,QAAQ,EAAE;QACf5E,IAAI,CAAAqB,sBAAA,CAAAZ,KAAA,GAAO,UAAU,EAAEc,KAAK,CAAC;MAC/B,CAAC;IAAA;IAAAH,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,2BAEsB,UAACc,KAAuB,EAAK;MAClD,IAAQG,MAAM,GAAKH,KAAK,CAAhBG,MAAM;MACd,IAAiBmD,SAAS,GAAKpE,KAAA,CAAKqE,kBAAkB,CAA9CrD,OAAO;MACf,IAAI,CAACoD,SAAS,IAAInD,MAAM,KAAKmD,SAAS,EAAE;MACxC,IAAME,OAAO,GAAGtE,KAAA,CAAKuE,QAAQ,CAACC,IAAI,CAAChB,OAAO,CAAC;MAC3C,IAAIc,OAAO,EAAE;MACbtE,KAAA,CAAKyE,gBAAgB,CAAC3D,KAAK,CAAC;IAC9B,CAAC;IAAA,OAAAd,KAAA;EAAA;EAAA0E,YAAA,CAAA/E,SAAA;IAAA4B,GAAA;IAAAJ,KAAA,EAED,SAAAwD,cAAA,EAAgB;MACd,OAAO;QACLC,GAAG,EAAE,IAAI,CAAC7D,QAAQ;QAClB8D,SAAS,EAAE,IAAI,CAACC,aAAa;QAC7BC,OAAO,EAAE,IAAI,CAACC;MAChB,CAAC;IACH;EAAC;IAAAzD,GAAA;IAAAJ,KAAA,EAED,SAAA8D,YAAAC,KAAA,EAAiDC,KAAa,EAAE;MAAA,IAAAC,MAAA;MAAA,IAAlDjB,QAAQ,GAAAe,KAAA,CAARf,QAAQ;MACpB,OAAO;QACLkB,IAAI,EAAE,IAAI,CAAC3D,OAAO,CAAC2D,IAAI;QACvBC,OAAO,EAAE,IAAI,CAACC,mBAAmB,CAACpB,QAAQ,CAAC;QAC3CS,GAAG,EAAE,SAAAA,IAACY,IAAwB,EAAK;UACjCJ,MAAI,CAACb,QAAQ,CAACY,KAAK,CAAC,GAAGK,IAAI;QAC7B;MACF,CAAC;IACH;EAAC;IAAAjE,GAAA;IAAAJ,KAAA,EAED,SAAAsE,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAhE,OAAA;QAAAiE,KAAA;MACP,IAAMC,UAAU,GAMJxG,KAAK;MALjB,IAAAyG,cAAA,GAA6B,IAAI,CAACnE,OAAO;QAAjCoE,QAAQ,GAAAD,cAAA,CAARC,QAAQ;QAAEC,MAAM,GAAAF,cAAA,CAANE,MAAM;MACxB,IAAMC,gBAAgB,GAAG,KAAK;MAE9B,OAAAL,KAAA,GAAOzG,OAAO,CAAC6G,MAAM,CAAC,eACpBhH,KAAA,CAAAkH,aAAA,CAACL,UAAU,EAAAD,KAAA,CAAAO,EAAA,eAAAC,aAAA,KAAAC,YAAA;QAAA,OAEJ/G,UAAU;QAAA,eACF,IAAI,CAACoF,gBAAgB;QAAA,WACzB,IAAI,CAAC4B,oBAAoB;QAAA,aACvB,IAAI,CAAChC;MAAkB,GAAAqB,IAAA,kBAElC3G,KAAA,CAAAkH,aAAA,CAACD,gBAAgB,EAAAL,KAAA,CAAAO,EAAA,uCACfnH,KAAA,CAAAkH,aAAA,CAACH,QAAQ,EAAAH,KAAA,CAAAO,EAAA,iBAAG,CACK,CACR;IAEjB;EAAC;EAAA,OAAAvG,SAAA;AAAA,EAtIqBV,SAAS;AAAA0B,eAAA,CAA3BhB,SAAS,iBACQ,WAAW;AAAAgB,eAAA,CAD5BhB,SAAS,WAEEH,KAAK;AAAAmB,eAAA,CAFhBhB,SAAS,kBAIS;EACpB0F,IAAI,EAAE,GAAG;EACT5D,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;EAC3C6E,YAAY,EAAE;AAChB,CAAC;AAAA,IAiIGC,KAAK,0BAAAC,WAAA;EAAA3G,SAAA,CAAA0G,KAAA,EAAAC,WAAA;EAAA,IAAAC,OAAA,GAAA1G,YAAA,CAAAwG,KAAA;EAAA,SAAAA,MAAA;IAAA,IAAAG,MAAA;IAAAzG,eAAA,OAAAsG,KAAA;IAAA,SAAAI,KAAA,GAAAxG,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAqG,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAAvG,IAAA,CAAAuG,KAAA,IAAAzG,SAAA,CAAAyG,KAAA;IAAA;IAAAF,MAAA,GAAAD,OAAA,CAAAjG,IAAA,CAAAC,KAAA,CAAAgG,OAAA,SAAA/F,MAAA,CAAAL,IAAA;IAAAM,eAAA,CAAAC,sBAAA,CAAA8F,MAAA,2BACS3H,KAAK,CAAC8B,SAAS,EAAkB;IAAAF,eAAA,CAAAC,sBAAA,CAAA8F,MAAA,YAE3C;MACNG,KAAK,EAAE;IACT,CAAC;IAAAlG,eAAA,CAAAC,sBAAA,CAAA8F,MAAA,mBAac,UAACvF,KAAa,EAAK;MAChCuF,MAAA,CAAKI,iBAAiB,CAAC3F,KAAK,CAAC;IAC/B,CAAC;IAAAR,eAAA,CAAAC,sBAAA,CAAA8F,MAAA,wBAEmB,UAACvF,KAAa,EAAK;MACrC,IAAiB4F,UAAU,GAAKL,MAAA,CAAKM,OAAO,CAApChG,OAAO;MACf,IAAI,CAAC+F,UAAU,EAAE;MACjB,IAAQE,WAAW,GAAKP,MAAA,CAAKQ,KAAK,CAA1BD,WAAW;MACnB;MACA,IAAIE,WAAW,GAAG,CAAC;MACnB,IAAIF,WAAW,KAAK9F,KAAK,KAAKiG,SAAS,IAAIjG,KAAK,KAAK,EAAE,CAAC,EAAE;QACxD;QACA4F,UAAU,CAAC,WAAW,CAAC,GAAGE,WAAW;QACrC;AACN;AACA;QACME,WAAW,IAAI,CAAC;MAClB,CAAC,MAAM;QACLJ,UAAU,CAAC,WAAW,CAAC,GAAG5F,KAAK;MACjC;MACAuF,MAAA,CAAKW,QAAQ,CAAC;QACZR,KAAK,KAAAnG,MAAA,CAAK4G,IAAI,CAACC,GAAG,CAACR,UAAU,CAAC,aAAa,CAAC,EAAEA,UAAU,CAAC,aAAa,CAAC,CAAC,GAAGI,WAAW;MACxF,CAAC,CAAC;IACJ,CAAC;IAAA,OAAAT,MAAA;EAAA;EAAAhC,YAAA,CAAA6B,KAAA;IAAAhF,GAAA;IAAAJ,KAAA,EAlCD,SAAAqG,kBAAA,EAAoB;MAClB,IAAI,CAACV,iBAAiB,CAAC,IAAI,CAACpF,OAAO,CAACP,KAAK,CAAE;IAC7C;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EAED,SAAAsG,mBAAmBC,SAAc,EAAE;MACjC,IAAAC,cAAA,GAA+B,IAAI,CAACjG,OAAO;QAAnCP,KAAK,GAAAwG,cAAA,CAALxG,KAAK;QAAE8F,WAAW,GAAAU,cAAA,CAAXV,WAAW;MAC1B,IAAI9F,KAAK,KAAKuG,SAAS,CAACvG,KAAK,IAAI8F,WAAW,KAAKS,SAAS,CAACT,WAAW,EAAE;QACtE,IAAI,CAACH,iBAAiB,CAAC3F,KAAK,CAAE;MAChC;IACF;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EA2BD,SAAAsE,OAAA,EAAS;MAAA,IAAAmC,KAAA,QAAAlG,OAAA;QAAAmG,KAAA;MACP,IAAMC,MAAM,GAKQ1I,KAAK,CAACmH,KAAK;MAJ/B,IAAMwB,OAAO,GAAG,KAAK;MAErB,OAAAF,KAAA,GAAO3I,OAAO,CAAC,IAAI,CAACwC,OAAO,CAACqE,MAAM,CAAC,eACjChH,KAAA,CAAAkH,aAAA,CAAAlH,KAAA,CAAAiJ,QAAA,qBACEjJ,KAAA,CAAAkH,aAAA,CAAC6B,MAAM,EAAAD,KAAA,CAAA3B,EAAA,WAAAC,aAAA,KAAA8B,aAAA;QAAA,SAA6B;UAAEpB,KAAK,EAAE,IAAI,CAACqB,KAAK,CAACrB;QAAM;MAAC,GAAAe,KAAA,IAAI,eACnE7I,KAAA,CAAAkH,aAAA,CAAC8B,OAAO,EAAAF,KAAA,CAAA3B,EAAA;QAAA,OAAM,IAAI,CAACc,OAAO;QAAA;MAAA,GAAgB,CACzC;IAEP;EAAC;EAAA,OAAAT,KAAA;AAAA,EArDiBtH,SAAS;AAwD7B,SAASkJ,QAAQA,CAACjB,KAAU,EAAE;EAAA,IAAAkB,KAAA,GAAAC,YAAA;IAAAC,KAAA;EAC5B,IAAMC,IAAI,GAY+BjJ,GAAG;EAV5C,IAAMuF,SAAS,GAAG,SAAZA,SAASA,CAAI/D,KAA0B,EAAK;IAChD,IAAIoG,KAAK,CAAC5B,OAAO,KAAKxE,KAAK,CAAC0H,IAAI,KAAK,OAAO,IAAI1H,KAAK,CAAC0H,IAAI,KAAK,OAAO,CAAC,EAAE;MACvE1H,KAAK,CAACM,cAAc,EAAE;MACtB8F,KAAK,CAAC5B,OAAO,CAACxE,KAAK,CAAC;MAEpB,OAAO,KAAK;IACd;EACF,CAAC;EAED,OAAAwH,KAAA,GAAOpJ,OAAO,CAACgI,KAAK,CAACnB,MAAM,CAAC,eAC1BhH,KAAA,CAAAkH,aAAA,CAACsC,IAAI,EAAAD,KAAA,CAAApC,EAAA,SAAAC,aAAA,KAAAsC,aAAA;IAAA,cAAavB,KAAK,CAAC/F,KAAK;IAAA,aAA0B0D;EAAS,GAAAuD,KAAA,IAAI;AAExE;AAEA,eAAepJ,eAAe,CAACW,SAAS,EAAE;EACxC4G,KAAK,EAALA,KAAK;EACLjH,GAAG,EAAE,CACH6I,QAAQ,EACR;IACEO,IAAI,EAAEpJ,GAAG,CAACoJ,IAAI;IACdC,KAAK,EAAErJ,GAAG,CAACqJ,KAAK;IAChBC,KAAK,EAAEtJ,GAAG,CAACsJ,KAAK;IAChBC,MAAM,EAAEvJ,GAAG,CAACuJ;EACd,CAAC;AAEL,CAAC,CAAC"}
|
package/package.json
CHANGED
package/pills/lib/cjs/Pills.js
CHANGED
@@ -67,7 +67,8 @@ var RootPills = /*#__PURE__*/function (_Component) {
|
|
67
67
|
});
|
68
68
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandleKeyDown", function (value) {
|
69
69
|
return function (event) {
|
70
|
-
if (event.
|
70
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
71
|
+
event.preventDefault();
|
71
72
|
_this.handlers.value(value, event);
|
72
73
|
}
|
73
74
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Pills.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","_a11yEnhance","_logger","style","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","RootPills","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","e","handlers","event","key","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","_createClass2","componentDidMount","log","warn","asProps","uncontrolledProps","getItemProps","index","_this$asProps","size","keyboardFocused","isSelected","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","Component","_ref9","defaultValue","a11yEnhance","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","roleAreaProps","role","Pills","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","wrapPills","wrapper","exports","_default"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport log from '@semcore/utils/lib/logger';\n\nimport style from './style/pills.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto' || props.behavior === 'radio') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) =>\n props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'],\n};\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n });\n itemValues = [];\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n componentDidMount() {\n log.warn(\n this.asProps.behavior === 'tabs',\n 'Use behavior `manual` instead of `tabs`. \\n`tabs` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n\n log.warn(\n this.asProps.behavior === 'radio',\n 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \\n`radio` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n }\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n bindHandleKeyDown = (value) => (event) => {\n if (event.key === 'Enter' || event.key === 'Space') {\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value, size, disabled, behavior, keyboardFocused } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(props.value),\n };\n }\n\n changeIndex = (startIndex, type) => {\n let selectable = false;\n\n while (!selectable && startIndex >= 0 && startIndex < this.itemValues.length) {\n if (type === 'increment') startIndex++;\n if (type === 'decrement') startIndex--;\n\n const element = this.itemRefs[startIndex];\n\n if (element?.disabled === false) {\n selectable = true;\n }\n }\n\n return startIndex >= 0 && startIndex < this.itemValues.length ? startIndex : undefined;\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist'}\n aria-disabled={disabled}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio' || behavior === 'auto') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport const wrapPills = (wrapper) => wrapper;\n\nexport default Pills;\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Pills.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","_a11yEnhance","_logger","style","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","RootPills","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","e","handlers","event","code","preventDefault","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","_createClass2","key","componentDidMount","log","warn","asProps","uncontrolledProps","getItemProps","index","_this$asProps","size","keyboardFocused","isSelected","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","Box","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread2","assignProps","Component","_ref9","defaultValue","a11yEnhance","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","useNeighborLocationDetect","roleAreaProps","role","Pills","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","wrapPills","wrapper","exports","_default"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport log from '@semcore/utils/lib/logger';\n\nimport style from './style/pills.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto' || props.behavior === 'radio') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) =>\n props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'],\n};\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n });\n itemValues = [];\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n componentDidMount() {\n log.warn(\n this.asProps.behavior === 'tabs',\n 'Use behavior `manual` instead of `tabs`. \\n`tabs` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n\n log.warn(\n this.asProps.behavior === 'radio',\n 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \\n`radio` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n }\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n bindHandleKeyDown = (value) => (event) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value, size, disabled, behavior, keyboardFocused } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(props.value),\n };\n }\n\n changeIndex = (startIndex, type) => {\n let selectable = false;\n\n while (!selectable && startIndex >= 0 && startIndex < this.itemValues.length) {\n if (type === 'increment') startIndex++;\n if (type === 'decrement') startIndex--;\n\n const element = this.itemRefs[startIndex];\n\n if (element?.disabled === false) {\n selectable = true;\n }\n }\n\n return startIndex >= 0 && startIndex < this.itemValues.length ? startIndex : undefined;\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist'}\n aria-disabled={disabled}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio' || behavior === 'auto') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport const wrapPills = (wrapper) => wrapper;\n\nexport default Pills;\n"],"mappings":"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"}
|
package/pills/lib/es6/Pills.js
CHANGED
@@ -64,7 +64,8 @@ var RootPills = /*#__PURE__*/function (_Component) {
|
|
64
64
|
});
|
65
65
|
_defineProperty(_assertThisInitialized(_this), "bindHandleKeyDown", function (value) {
|
66
66
|
return function (event) {
|
67
|
-
if (event.
|
67
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
68
|
+
event.preventDefault();
|
68
69
|
_this.handlers.value(value, event);
|
69
70
|
}
|
70
71
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Pills.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","useNeighborLocationDetect","keyboardFocusEnhance","addonTextChildren","a11yEnhance","log","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","RootPills","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","value","e","handlers","event","key","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","_createClass","componentDidMount","warn","asProps","uncontrolledProps","getItemProps","index","_this$asProps","size","keyboardFocused","isSelected","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","_ref9","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","roleAreaProps","role","_assignProps2","Pills","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapPills","wrapper"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport log from '@semcore/utils/lib/logger';\n\nimport style from './style/pills.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto' || props.behavior === 'radio') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) =>\n props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'],\n};\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n });\n itemValues = [];\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n componentDidMount() {\n log.warn(\n this.asProps.behavior === 'tabs',\n 'Use behavior `manual` instead of `tabs`. \\n`tabs` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n\n log.warn(\n this.asProps.behavior === 'radio',\n 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \\n`radio` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n }\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n bindHandleKeyDown = (value) => (event) => {\n if (event.key === 'Enter' || event.key === 'Space') {\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value, size, disabled, behavior, keyboardFocused } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(props.value),\n };\n }\n\n changeIndex = (startIndex, type) => {\n let selectable = false;\n\n while (!selectable && startIndex >= 0 && startIndex < this.itemValues.length) {\n if (type === 'increment') startIndex++;\n if (type === 'decrement') startIndex--;\n\n const element = this.itemRefs[startIndex];\n\n if (element?.disabled === false) {\n selectable = true;\n }\n }\n\n return startIndex >= 0 && startIndex < this.itemValues.length ? startIndex : undefined;\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist'}\n aria-disabled={disabled}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio' || behavior === 'auto') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport const wrapPills = (wrapper) => wrapper;\n\nexport default Pills;\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Pills.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","useNeighborLocationDetect","keyboardFocusEnhance","addonTextChildren","a11yEnhance","log","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","RootPills","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","value","e","handlers","event","code","preventDefault","startIndex","type","selectable","itemValues","element","itemRefs","disabled","undefined","_createClass","key","componentDidMount","warn","asProps","uncontrolledProps","getItemProps","index","_this$asProps","size","keyboardFocused","isSelected","selected","tabIndex","onClick","bindHandlerClick","onKeyDown","bindHandleKeyDown","render","_ref","_ref5","SPills","_this$asProps2","Children","styles","controlsLength","createElement","cn","_objectSpread","_assignProps","_ref9","defaultValue","Pill","_ref2","arguments[0]","_ref6","SPill","addonLeft","addonRight","neighborLocation","roleAreaProps","role","_assignProps2","Pills","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapPills","wrapper"],"sources":["../../src/Pills.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation, { useNeighborLocationDetect } from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport log from '@semcore/utils/lib/logger';\n\nimport style from './style/pills.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto' || props.behavior === 'radio') {\n neighborElement.click();\n }\n }\n },\n childSelector: (props) =>\n props.behavior === 'auto' || props.behavior === 'radio' ? ['role', 'radio'] : ['role', 'tab'],\n};\n\nclass RootPills extends Component {\n static displayName = 'Pills';\n static style = style;\n static defaultProps = ({ behavior }) => ({\n size: 'm',\n defaultValue: null,\n behavior: behavior ?? 'auto',\n });\n itemValues = [];\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n componentDidMount() {\n log.warn(\n this.asProps.behavior === 'tabs',\n 'Use behavior `manual` instead of `tabs`. \\n`tabs` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n\n log.warn(\n this.asProps.behavior === 'radio',\n 'Use behavior `auto` (or nothing, it is default value) instead of `radio`. \\n`radio` is deprecated and will be removed in the next major release.',\n 'Pills',\n );\n }\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n bindHandleKeyDown = (value) => (event) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value, size, disabled, behavior, keyboardFocused } = this.asProps;\n const isSelected = value === props.value;\n\n this.itemValues[index] = props.value;\n return {\n index: index,\n size,\n disabled,\n selected: isSelected,\n behavior,\n tabIndex: isSelected ? 0 : -1,\n onClick: this.bindHandlerClick(props.value),\n onKeyDown: this.bindHandleKeyDown(props.value),\n };\n }\n\n changeIndex = (startIndex, type) => {\n let selectable = false;\n\n while (!selectable && startIndex >= 0 && startIndex < this.itemValues.length) {\n if (type === 'increment') startIndex++;\n if (type === 'decrement') startIndex--;\n\n const element = this.itemRefs[startIndex];\n\n if (element?.disabled === false) {\n selectable = true;\n }\n }\n\n return startIndex >= 0 && startIndex < this.itemValues.length ? startIndex : undefined;\n };\n\n render() {\n const SPills = Root;\n const { Children, styles, controlsLength, disabled, behavior } = this.asProps;\n\n return sstyled(styles)(\n <SPills\n render={Box}\n role={behavior === 'radio' || behavior === 'auto' ? 'radiogroup' : 'tablist'}\n aria-disabled={disabled}\n >\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SPills>,\n );\n }\n}\n\nfunction Pill(props) {\n const SPill = Root;\n const { Children, styles, addonLeft, addonRight, selected, disabled, index, behavior } = props;\n const neighborLocation = useNeighborLocationDetect(index);\n const roleAreaProps = {};\n if (behavior === 'radio' || behavior === 'auto') {\n roleAreaProps.role = 'radio';\n roleAreaProps['aria-checked'] = selected;\n } else {\n roleAreaProps.role = 'tab';\n roleAreaProps['aria-selected'] = selected;\n }\n return sstyled(styles)(\n <SPill\n render={Box}\n tag='button'\n type='button'\n neighborLocation={neighborLocation}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n {...roleAreaProps}\n >\n {addonLeft ? <Pills.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, Pills.Item.Text, Pills.Item.Addon)}\n {addonRight ? <Pills.Item.Addon tag={addonRight} /> : null}\n </SPill>,\n );\n}\n\nPill.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Pills = createComponent(RootPills, {\n Item: [Pill, { Text, Addon }],\n});\n\nexport const wrapPills = (wrapper) => wrapper;\n\nexport default Pills;\n"],"mappings":"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"}
|
package/switch/lib/cjs/Switch.js
CHANGED
@@ -155,8 +155,11 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
155
155
|
}
|
156
156
|
_this2 = _super2.call.apply(_super2, [this].concat(args));
|
157
157
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "timer", null);
|
158
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleKeyDown", function (
|
159
|
-
if (
|
158
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handleKeyDown", function (event) {
|
159
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
160
|
+
event.preventDefault();
|
161
|
+
_this2.handlers.checked(!_this2.asProps.checked, event);
|
162
|
+
}
|
160
163
|
});
|
161
164
|
// because clicking on label causes a click on input
|
162
165
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "handlerInputClick", function (e) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Switch.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_resolveColorEnhance","_inputProps","_assignProps3","_uniqueID","_canUseDOM","_excluded","style","sstyled","insert","isCustomTheme","theme","includes","Switch","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","active","setState","window","removeEventListener","handleMouseUp","event","button","addEventListener","forceUpdate","bind","_createClass2","key","value","componentWillUnmount","canUseDOM","getValueProps","_this$asProps","asProps","uid","state","ref","inputRef","$rootForceUpdate","getAddonProps","render","_ref","_ref3","_this$inputRef$curren","SSwitch","Box","_this$asProps2","Children","styles","controlsLength","checked","current","createElement","cn","_objectSpread2","assignProps","handleMouseDown","Component","uniqueIDEnhancement","size","Value","_Component2","_super2","_this2","_len","arguments","length","args","Array","_key","apply","concat","e","handlers","stopPropagation","uncontrolledProps","_this3","target","clearTimeout","timer","setTimeout","componentDidMount","componentDidUpdate","prevProps","undefined","_this4","SToggle","SInput","SSlider","_this$asProps3","forwardRef","includeInputProps","keyboardFocused","neighborLocation","resolveColor","other","_objectWithoutProperties2","_getInputProps","getInputProps","_getInputProps2","_slicedToArray2","inputProps","toggleProps","useTheme","color","labelledBy","Detect","_ref4","disabled","callAllEventHandlers","handlerInputClick","click","handleKeyDown","onKeyDown","keyboardFocusEnhance","resolveColorEnhance","defaultChecked","Addon","_ref2","arguments[0]","SAddon","_ref5","_default","createComponent","exports"],"sources":["../../src/Switch.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport getInputProps, { inputProps } from '@semcore/utils/lib/inputProps';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nimport style from './style/switch.shadow.css';\n\nfunction isCustomTheme(theme) {\n return !['info', 'success'].includes(theme);\n}\n\nclass Switch extends Component {\n static displayName = 'Switch';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n static defaultProps = {\n theme: 'info',\n size: 'm',\n };\n\n inputRef = React.createRef();\n state = { active: false };\n\n constructor(props) {\n super(props);\n this.forceUpdate = this.forceUpdate.bind(this);\n }\n\n componentWillUnmount() {\n if (!canUseDOM()) return;\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n handleMouseUp = () => {\n this.setState({ active: false });\n window.removeEventListener('mouseup', this.handleMouseUp);\n };\n handleMouseDown = (event) => {\n if (event?.button !== 0) return;\n this.setState({ active: true });\n window.addEventListener('mouseup', this.handleMouseUp);\n };\n\n getValueProps() {\n const { theme, uid } = this.asProps;\n const { active } = this.state;\n\n return {\n theme,\n ref: this.inputRef,\n $rootForceUpdate: this.forceUpdate,\n uid,\n active,\n };\n }\n\n getAddonProps() {\n const { uid } = this.asProps;\n\n return { uid };\n }\n\n render() {\n const SSwitch = Root;\n const { Children, styles, controlsLength } = this.asProps;\n const checked = this.inputRef.current?.checked;\n\n return sstyled(styles)(\n <SSwitch render={Box} tag='label' checked={checked} onMouseDown={this.handleMouseDown}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SSwitch>,\n );\n }\n}\n\nclass Value extends Component {\n static hoistProps = ['checked', 'disabled'];\n static enhance = [keyboardFocusEnhance(), resolveColorEnhance()];\n static defaultProps = {\n includeInputProps: inputProps,\n defaultChecked: false,\n };\n\n timer = null;\n\n uncontrolledProps() {\n return {\n checked: [\n (e) => e.target.checked,\n () => {\n // TODO: bad crutch for updating the DOM node\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.asProps.$rootForceUpdate();\n }, 0);\n },\n ],\n };\n }\n\n componentDidMount() {\n this.asProps.$rootForceUpdate();\n }\n\n componentDidUpdate(prevProps) {\n const { checked } = prevProps;\n // TODO: bad crutch for updating the DOM node\n if (checked !== undefined && checked !== this.asProps.checked) {\n this.asProps.$rootForceUpdate();\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n handleKeyDown = (e) => {\n if (e.key === 'Enter') this.handlers.checked(!this.asProps.checked, e);\n };\n\n // because clicking on label causes a click on input\n handlerInputClick = (e) => e.stopPropagation();\n\n render() {\n const SToggle = Box;\n const SInput = Box;\n const SSlider = Box;\n const {\n Children,\n forwardRef,\n styles,\n includeInputProps,\n keyboardFocused,\n neighborLocation,\n theme,\n uid,\n active,\n resolveColor,\n ...other\n } = this.asProps;\n\n const [inputProps, toggleProps] = getInputProps(other, includeInputProps);\n const useTheme = isCustomTheme(theme) ? 'custom' : theme;\n const color = resolveColor(theme);\n\n const labelledBy = inputProps.checked\n ? `igc-${uid}-switch-addon-left`\n : `igc-${uid}-switch-addon-right`;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SToggle\n keyboardFocused={keyboardFocused}\n neighborLocation={neighborLocation}\n checked={inputProps.checked}\n active={active}\n use:theme={useTheme}\n use:color={color}\n {...toggleProps}\n >\n <SInput\n tag='input'\n type='checkbox'\n ref={forwardRef}\n role='switch'\n aria-labelledby={labelledBy}\n aria-checked={inputProps.checked}\n aria-readonly={inputProps.disabled}\n {...inputProps}\n onClick={callAllEventHandlers(this.handlerInputClick, inputProps.click)}\n onKeyDown={callAllEventHandlers(this.handleKeyDown, inputProps.onKeyDown)}\n />\n <SSlider checked={inputProps.checked}>\n <Children />\n </SSlider>\n </SToggle>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles, neighborLocation, uid } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SAddon\n render={Box}\n tag='span'\n neighborLocation={neighborLocation}\n aria-hidden='true'\n id={`igc-${uid}-switch-addon-${neighborLocation}`}\n />,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nexport { inputProps };\nexport default createComponent(Switch, {\n Value,\n Addon,\n});\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Switch.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_neighborLocation","_keyboardFocusEnhance","_resolveColorEnhance","_inputProps","_assignProps3","_uniqueID","_canUseDOM","_excluded","style","sstyled","insert","isCustomTheme","theme","includes","Switch","_Component","_inherits2","_super","_createSuper2","props","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","React","createRef","active","setState","window","removeEventListener","handleMouseUp","event","button","addEventListener","forceUpdate","bind","_createClass2","key","value","componentWillUnmount","canUseDOM","getValueProps","_this$asProps","asProps","uid","state","ref","inputRef","$rootForceUpdate","getAddonProps","render","_ref","_ref3","_this$inputRef$curren","SSwitch","Box","_this$asProps2","Children","styles","controlsLength","checked","current","createElement","cn","_objectSpread2","assignProps","handleMouseDown","Component","uniqueIDEnhancement","size","Value","_Component2","_super2","_this2","_len","arguments","length","args","Array","_key","apply","concat","code","preventDefault","handlers","e","stopPropagation","uncontrolledProps","_this3","target","clearTimeout","timer","setTimeout","componentDidMount","componentDidUpdate","prevProps","undefined","_this4","SToggle","SInput","SSlider","_this$asProps3","forwardRef","includeInputProps","keyboardFocused","neighborLocation","resolveColor","other","_objectWithoutProperties2","_getInputProps","getInputProps","_getInputProps2","_slicedToArray2","inputProps","toggleProps","useTheme","color","labelledBy","Detect","_ref4","disabled","callAllEventHandlers","handlerInputClick","click","handleKeyDown","onKeyDown","keyboardFocusEnhance","resolveColorEnhance","defaultChecked","Addon","_ref2","arguments[0]","SAddon","_ref5","_default","createComponent","exports"],"sources":["../../src/Switch.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport getInputProps, { inputProps } from '@semcore/utils/lib/inputProps';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nimport style from './style/switch.shadow.css';\n\nfunction isCustomTheme(theme) {\n return !['info', 'success'].includes(theme);\n}\n\nclass Switch extends Component {\n static displayName = 'Switch';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n static defaultProps = {\n theme: 'info',\n size: 'm',\n };\n\n inputRef = React.createRef();\n state = { active: false };\n\n constructor(props) {\n super(props);\n this.forceUpdate = this.forceUpdate.bind(this);\n }\n\n componentWillUnmount() {\n if (!canUseDOM()) return;\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n handleMouseUp = () => {\n this.setState({ active: false });\n window.removeEventListener('mouseup', this.handleMouseUp);\n };\n handleMouseDown = (event) => {\n if (event?.button !== 0) return;\n this.setState({ active: true });\n window.addEventListener('mouseup', this.handleMouseUp);\n };\n\n getValueProps() {\n const { theme, uid } = this.asProps;\n const { active } = this.state;\n\n return {\n theme,\n ref: this.inputRef,\n $rootForceUpdate: this.forceUpdate,\n uid,\n active,\n };\n }\n\n getAddonProps() {\n const { uid } = this.asProps;\n\n return { uid };\n }\n\n render() {\n const SSwitch = Root;\n const { Children, styles, controlsLength } = this.asProps;\n const checked = this.inputRef.current?.checked;\n\n return sstyled(styles)(\n <SSwitch render={Box} tag='label' checked={checked} onMouseDown={this.handleMouseDown}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SSwitch>,\n );\n }\n}\n\nclass Value extends Component {\n static hoistProps = ['checked', 'disabled'];\n static enhance = [keyboardFocusEnhance(), resolveColorEnhance()];\n static defaultProps = {\n includeInputProps: inputProps,\n defaultChecked: false,\n };\n\n timer = null;\n\n uncontrolledProps() {\n return {\n checked: [\n (e) => e.target.checked,\n () => {\n // TODO: bad crutch for updating the DOM node\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.asProps.$rootForceUpdate();\n }, 0);\n },\n ],\n };\n }\n\n componentDidMount() {\n this.asProps.$rootForceUpdate();\n }\n\n componentDidUpdate(prevProps) {\n const { checked } = prevProps;\n // TODO: bad crutch for updating the DOM node\n if (checked !== undefined && checked !== this.asProps.checked) {\n this.asProps.$rootForceUpdate();\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n handleKeyDown = (event) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n this.handlers.checked(!this.asProps.checked, event);\n }\n };\n\n // because clicking on label causes a click on input\n handlerInputClick = (e) => e.stopPropagation();\n\n render() {\n const SToggle = Box;\n const SInput = Box;\n const SSlider = Box;\n const {\n Children,\n forwardRef,\n styles,\n includeInputProps,\n keyboardFocused,\n neighborLocation,\n theme,\n uid,\n active,\n resolveColor,\n ...other\n } = this.asProps;\n\n const [inputProps, toggleProps] = getInputProps(other, includeInputProps);\n const useTheme = isCustomTheme(theme) ? 'custom' : theme;\n const color = resolveColor(theme);\n\n const labelledBy = inputProps.checked\n ? `igc-${uid}-switch-addon-left`\n : `igc-${uid}-switch-addon-right`;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SToggle\n keyboardFocused={keyboardFocused}\n neighborLocation={neighborLocation}\n checked={inputProps.checked}\n active={active}\n use:theme={useTheme}\n use:color={color}\n {...toggleProps}\n >\n <SInput\n tag='input'\n type='checkbox'\n ref={forwardRef}\n role='switch'\n aria-labelledby={labelledBy}\n aria-checked={inputProps.checked}\n aria-readonly={inputProps.disabled}\n {...inputProps}\n onClick={callAllEventHandlers(this.handlerInputClick, inputProps.click)}\n onKeyDown={callAllEventHandlers(this.handleKeyDown, inputProps.onKeyDown)}\n />\n <SSlider checked={inputProps.checked}>\n <Children />\n </SSlider>\n </SToggle>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles, neighborLocation, uid } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SAddon\n render={Box}\n tag='span'\n neighborLocation={neighborLocation}\n aria-hidden='true'\n id={`igc-${uid}-switch-addon-${neighborLocation}`}\n />,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nexport { inputProps };\nexport default createComponent(Switch, {\n Value,\n Addon,\n});\n"],"mappings":"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"}
|
package/switch/lib/es6/Switch.js
CHANGED
@@ -144,8 +144,11 @@ var Value = /*#__PURE__*/function (_Component2) {
|
|
144
144
|
}
|
145
145
|
_this2 = _super2.call.apply(_super2, [this].concat(args));
|
146
146
|
_defineProperty(_assertThisInitialized(_this2), "timer", null);
|
147
|
-
_defineProperty(_assertThisInitialized(_this2), "handleKeyDown", function (
|
148
|
-
if (
|
147
|
+
_defineProperty(_assertThisInitialized(_this2), "handleKeyDown", function (event) {
|
148
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
149
|
+
event.preventDefault();
|
150
|
+
_this2.handlers.checked(!_this2.asProps.checked, event);
|
151
|
+
}
|
149
152
|
});
|
150
153
|
// because clicking on label causes a click on input
|
151
154
|
_defineProperty(_assertThisInitialized(_this2), "handlerInputClick", function (e) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Switch.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","keyboardFocusEnhance","resolveColorEnhance","getInputProps","inputProps","callAllEventHandlers","uniqueIDEnhancement","canUseDOM","style","_sstyled","insert","isCustomTheme","theme","includes","Switch","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","active","setState","window","removeEventListener","handleMouseUp","event","button","addEventListener","forceUpdate","bind","_createClass","key","value","componentWillUnmount","getValueProps","_this$asProps","asProps","uid","state","ref","inputRef","$rootForceUpdate","getAddonProps","render","_ref","_ref3","_this$inputRef$curren","SSwitch","_this$asProps2","Children","styles","controlsLength","checked","current","createElement","cn","_objectSpread","_assignProps","handleMouseDown","size","Value","_Component2","_super2","_this2","_len","arguments","length","args","Array","_key","apply","concat","e","handlers","stopPropagation","uncontrolledProps","_this3","target","clearTimeout","timer","setTimeout","componentDidMount","componentDidUpdate","prevProps","undefined","_this4","SToggle","SInput","SSlider","_this$asProps3","forwardRef","includeInputProps","keyboardFocused","neighborLocation","resolveColor","other","_objectWithoutProperties","_excluded","_getInputProps","_getInputProps2","_slicedToArray","toggleProps","useTheme","color","labelledBy","Detect","_ref4","disabled","handlerInputClick","click","handleKeyDown","onKeyDown","defaultChecked","Addon","_ref2","arguments[0]","SAddon","_ref5","_assignProps2"],"sources":["../../src/Switch.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport getInputProps, { inputProps } from '@semcore/utils/lib/inputProps';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nimport style from './style/switch.shadow.css';\n\nfunction isCustomTheme(theme) {\n return !['info', 'success'].includes(theme);\n}\n\nclass Switch extends Component {\n static displayName = 'Switch';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n static defaultProps = {\n theme: 'info',\n size: 'm',\n };\n\n inputRef = React.createRef();\n state = { active: false };\n\n constructor(props) {\n super(props);\n this.forceUpdate = this.forceUpdate.bind(this);\n }\n\n componentWillUnmount() {\n if (!canUseDOM()) return;\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n handleMouseUp = () => {\n this.setState({ active: false });\n window.removeEventListener('mouseup', this.handleMouseUp);\n };\n handleMouseDown = (event) => {\n if (event?.button !== 0) return;\n this.setState({ active: true });\n window.addEventListener('mouseup', this.handleMouseUp);\n };\n\n getValueProps() {\n const { theme, uid } = this.asProps;\n const { active } = this.state;\n\n return {\n theme,\n ref: this.inputRef,\n $rootForceUpdate: this.forceUpdate,\n uid,\n active,\n };\n }\n\n getAddonProps() {\n const { uid } = this.asProps;\n\n return { uid };\n }\n\n render() {\n const SSwitch = Root;\n const { Children, styles, controlsLength } = this.asProps;\n const checked = this.inputRef.current?.checked;\n\n return sstyled(styles)(\n <SSwitch render={Box} tag='label' checked={checked} onMouseDown={this.handleMouseDown}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SSwitch>,\n );\n }\n}\n\nclass Value extends Component {\n static hoistProps = ['checked', 'disabled'];\n static enhance = [keyboardFocusEnhance(), resolveColorEnhance()];\n static defaultProps = {\n includeInputProps: inputProps,\n defaultChecked: false,\n };\n\n timer = null;\n\n uncontrolledProps() {\n return {\n checked: [\n (e) => e.target.checked,\n () => {\n // TODO: bad crutch for updating the DOM node\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.asProps.$rootForceUpdate();\n }, 0);\n },\n ],\n };\n }\n\n componentDidMount() {\n this.asProps.$rootForceUpdate();\n }\n\n componentDidUpdate(prevProps) {\n const { checked } = prevProps;\n // TODO: bad crutch for updating the DOM node\n if (checked !== undefined && checked !== this.asProps.checked) {\n this.asProps.$rootForceUpdate();\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n handleKeyDown = (e) => {\n if (e.key === 'Enter') this.handlers.checked(!this.asProps.checked, e);\n };\n\n // because clicking on label causes a click on input\n handlerInputClick = (e) => e.stopPropagation();\n\n render() {\n const SToggle = Box;\n const SInput = Box;\n const SSlider = Box;\n const {\n Children,\n forwardRef,\n styles,\n includeInputProps,\n keyboardFocused,\n neighborLocation,\n theme,\n uid,\n active,\n resolveColor,\n ...other\n } = this.asProps;\n\n const [inputProps, toggleProps] = getInputProps(other, includeInputProps);\n const useTheme = isCustomTheme(theme) ? 'custom' : theme;\n const color = resolveColor(theme);\n\n const labelledBy = inputProps.checked\n ? `igc-${uid}-switch-addon-left`\n : `igc-${uid}-switch-addon-right`;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SToggle\n keyboardFocused={keyboardFocused}\n neighborLocation={neighborLocation}\n checked={inputProps.checked}\n active={active}\n use:theme={useTheme}\n use:color={color}\n {...toggleProps}\n >\n <SInput\n tag='input'\n type='checkbox'\n ref={forwardRef}\n role='switch'\n aria-labelledby={labelledBy}\n aria-checked={inputProps.checked}\n aria-readonly={inputProps.disabled}\n {...inputProps}\n onClick={callAllEventHandlers(this.handlerInputClick, inputProps.click)}\n onKeyDown={callAllEventHandlers(this.handleKeyDown, inputProps.onKeyDown)}\n />\n <SSlider checked={inputProps.checked}>\n <Children />\n </SSlider>\n </SToggle>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles, neighborLocation, uid } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SAddon\n render={Box}\n tag='span'\n neighborLocation={neighborLocation}\n aria-hidden='true'\n id={`igc-${uid}-switch-addon-${neighborLocation}`}\n />,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nexport { inputProps };\nexport default createComponent(Switch, {\n Value,\n Addon,\n});\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Switch.js","names":["React","createComponent","Component","sstyled","Root","Box","NeighborLocation","keyboardFocusEnhance","resolveColorEnhance","getInputProps","inputProps","callAllEventHandlers","uniqueIDEnhancement","canUseDOM","style","_sstyled","insert","isCustomTheme","theme","includes","Switch","_Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","createRef","active","setState","window","removeEventListener","handleMouseUp","event","button","addEventListener","forceUpdate","bind","_createClass","key","value","componentWillUnmount","getValueProps","_this$asProps","asProps","uid","state","ref","inputRef","$rootForceUpdate","getAddonProps","render","_ref","_ref3","_this$inputRef$curren","SSwitch","_this$asProps2","Children","styles","controlsLength","checked","current","createElement","cn","_objectSpread","_assignProps","handleMouseDown","size","Value","_Component2","_super2","_this2","_len","arguments","length","args","Array","_key","apply","concat","code","preventDefault","handlers","e","stopPropagation","uncontrolledProps","_this3","target","clearTimeout","timer","setTimeout","componentDidMount","componentDidUpdate","prevProps","undefined","_this4","SToggle","SInput","SSlider","_this$asProps3","forwardRef","includeInputProps","keyboardFocused","neighborLocation","resolveColor","other","_objectWithoutProperties","_excluded","_getInputProps","_getInputProps2","_slicedToArray","toggleProps","useTheme","color","labelledBy","Detect","_ref4","disabled","handlerInputClick","click","handleKeyDown","onKeyDown","defaultChecked","Addon","_ref2","arguments[0]","SAddon","_ref5","_assignProps2"],"sources":["../../src/Switch.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport resolveColorEnhance from '@semcore/utils/lib/enhances/resolveColorEnhance';\nimport getInputProps, { inputProps } from '@semcore/utils/lib/inputProps';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport canUseDOM from '@semcore/utils/lib/canUseDOM';\n\nimport style from './style/switch.shadow.css';\n\nfunction isCustomTheme(theme) {\n return !['info', 'success'].includes(theme);\n}\n\nclass Switch extends Component {\n static displayName = 'Switch';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n static defaultProps = {\n theme: 'info',\n size: 'm',\n };\n\n inputRef = React.createRef();\n state = { active: false };\n\n constructor(props) {\n super(props);\n this.forceUpdate = this.forceUpdate.bind(this);\n }\n\n componentWillUnmount() {\n if (!canUseDOM()) return;\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n handleMouseUp = () => {\n this.setState({ active: false });\n window.removeEventListener('mouseup', this.handleMouseUp);\n };\n handleMouseDown = (event) => {\n if (event?.button !== 0) return;\n this.setState({ active: true });\n window.addEventListener('mouseup', this.handleMouseUp);\n };\n\n getValueProps() {\n const { theme, uid } = this.asProps;\n const { active } = this.state;\n\n return {\n theme,\n ref: this.inputRef,\n $rootForceUpdate: this.forceUpdate,\n uid,\n active,\n };\n }\n\n getAddonProps() {\n const { uid } = this.asProps;\n\n return { uid };\n }\n\n render() {\n const SSwitch = Root;\n const { Children, styles, controlsLength } = this.asProps;\n const checked = this.inputRef.current?.checked;\n\n return sstyled(styles)(\n <SSwitch render={Box} tag='label' checked={checked} onMouseDown={this.handleMouseDown}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n </SSwitch>,\n );\n }\n}\n\nclass Value extends Component {\n static hoistProps = ['checked', 'disabled'];\n static enhance = [keyboardFocusEnhance(), resolveColorEnhance()];\n static defaultProps = {\n includeInputProps: inputProps,\n defaultChecked: false,\n };\n\n timer = null;\n\n uncontrolledProps() {\n return {\n checked: [\n (e) => e.target.checked,\n () => {\n // TODO: bad crutch for updating the DOM node\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.asProps.$rootForceUpdate();\n }, 0);\n },\n ],\n };\n }\n\n componentDidMount() {\n this.asProps.$rootForceUpdate();\n }\n\n componentDidUpdate(prevProps) {\n const { checked } = prevProps;\n // TODO: bad crutch for updating the DOM node\n if (checked !== undefined && checked !== this.asProps.checked) {\n this.asProps.$rootForceUpdate();\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n handleKeyDown = (event) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n this.handlers.checked(!this.asProps.checked, event);\n }\n };\n\n // because clicking on label causes a click on input\n handlerInputClick = (e) => e.stopPropagation();\n\n render() {\n const SToggle = Box;\n const SInput = Box;\n const SSlider = Box;\n const {\n Children,\n forwardRef,\n styles,\n includeInputProps,\n keyboardFocused,\n neighborLocation,\n theme,\n uid,\n active,\n resolveColor,\n ...other\n } = this.asProps;\n\n const [inputProps, toggleProps] = getInputProps(other, includeInputProps);\n const useTheme = isCustomTheme(theme) ? 'custom' : theme;\n const color = resolveColor(theme);\n\n const labelledBy = inputProps.checked\n ? `igc-${uid}-switch-addon-left`\n : `igc-${uid}-switch-addon-right`;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SToggle\n keyboardFocused={keyboardFocused}\n neighborLocation={neighborLocation}\n checked={inputProps.checked}\n active={active}\n use:theme={useTheme}\n use:color={color}\n {...toggleProps}\n >\n <SInput\n tag='input'\n type='checkbox'\n ref={forwardRef}\n role='switch'\n aria-labelledby={labelledBy}\n aria-checked={inputProps.checked}\n aria-readonly={inputProps.disabled}\n {...inputProps}\n onClick={callAllEventHandlers(this.handlerInputClick, inputProps.click)}\n onKeyDown={callAllEventHandlers(this.handleKeyDown, inputProps.onKeyDown)}\n />\n <SSlider checked={inputProps.checked}>\n <Children />\n </SSlider>\n </SToggle>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles, neighborLocation, uid } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SAddon\n render={Box}\n tag='span'\n neighborLocation={neighborLocation}\n aria-hidden='true'\n id={`igc-${uid}-switch-addon-${neighborLocation}`}\n />,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nexport { inputProps };\nexport default createComponent(Switch, {\n Value,\n Addon,\n});\n"],"mappings":"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"}
|
@@ -57,7 +57,8 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
57
57
|
});
|
58
58
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (value) {
|
59
59
|
return function (event) {
|
60
|
-
if (event.
|
60
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
61
|
+
event.preventDefault();
|
61
62
|
_this.handlers.value(value, event);
|
62
63
|
}
|
63
64
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TabPanel.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_addonTextChildren","_a11yEnhance","_keyboardFocusEnhance","style","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabPanelRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","event","handlers","
|
1
|
+
{"version":3,"file":"TabPanel.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_addonTextChildren","_a11yEnhance","_keyboardFocusEnhance","style","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabPanelRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","value","event","handlers","code","preventDefault","_createClass2","key","uncontrolledProps","getItemProps","index","asProps","isSelected","selected","onClick","handleClick","onKeyDown","handleKeyDown","tabIndex","render","_ref","_ref5","STabPanel","Box","styles","createElement","cn","_objectSpread2","assignProps","Component","defaultValue","a11yEnhance","TabPanelItem","_ref2","arguments[0]","_ref6","STabPanelItem","Children","addonLeft","addonRight","TabPanel","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","wrapTabPanel","wrapper","exports","_default"],"sources":["../../src/TabPanel.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nimport style from './style/tab-panel.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabPanelRoot extends Component {\n static displayName = 'TabPanel';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n behavior: 'manual',\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleClick = (value) => (event) => {\n this.handlers.value(value, event);\n };\n\n handleKeyDown = (value) => (event) => {\n if (event.code === 'Enter' || event.code === 'Space') {\n event.preventDefault();\n this.handlers.value(value, event);\n }\n };\n\n getItemProps(props, index) {\n const { value } = this.asProps;\n const isSelected = value === props.value;\n return {\n selected: isSelected,\n onClick: this.handleClick(props.value),\n onKeyDown: this.handleKeyDown(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-posinset': index + 1,\n 'aria-selected': isSelected,\n };\n }\n\n render() {\n const STabPanel = Root;\n const { styles } = this.asProps;\n\n return sstyled(styles)(<STabPanel render={Box} role='tablist' />);\n }\n}\n\nfunction TabPanelItem(props) {\n const STabPanelItem = Root;\n const { Children, styles, addonLeft, addonRight } = props;\n\n return sstyled(styles)(\n <STabPanelItem render={Box} type='button' tag='button' role='tab'>\n {addonLeft ? <TabPanel.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabPanel.Item.Text, TabPanel.Item.Addon)}\n {addonRight ? <TabPanel.Item.Addon tag={addonRight} /> : null}\n </STabPanelItem>,\n );\n}\n\nTabPanelItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const SText = Root;\n const { styles } = props;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n const { styles } = props;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabPanel = createComponent(TabPanelRoot, {\n Item: [TabPanelItem, { Text, Addon }],\n});\n\nexport const wrapTabPanel = (wrapper) => wrapper;\n\nexport default TabPanel;\n"],"mappings":"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"}
|
@@ -54,7 +54,8 @@ var TabPanelRoot = /*#__PURE__*/function (_Component) {
|
|
54
54
|
});
|
55
55
|
_defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (value) {
|
56
56
|
return function (event) {
|
57
|
-
if (event.
|
57
|
+
if (event.code === 'Enter' || event.code === 'Space') {
|
58
|
+
event.preventDefault();
|
58
59
|
_this.handlers.value(value, event);
|
59
60
|
}
|
60
61
|
};
|