@servicetitan/design-system 14.0.0 → 14.0.2

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.
Files changed (64) hide show
  1. package/dist/components/AnvilSelect/AnvilSelect.d.ts +1 -1
  2. package/dist/components/AnvilSelect/AnvilSelect.js.map +1 -1
  3. package/dist/components/AnvilSelect/components/Trigger.css +1 -0
  4. package/dist/components/AnvilSelect/components/Trigger.css.map +1 -1
  5. package/dist/components/AnvilSelect/index.css +1 -0
  6. package/dist/components/AnvilSelect/index.css.map +1 -1
  7. package/dist/components/Button/Button.css +23 -36
  8. package/dist/components/Button/Button.css.map +1 -1
  9. package/dist/components/Button/Button.js +1 -6
  10. package/dist/components/Button/Button.js.map +1 -1
  11. package/dist/components/Button/index.css +23 -36
  12. package/dist/components/Button/index.css.map +1 -1
  13. package/dist/components/Checkbox/Checkbox.css +1 -1
  14. package/dist/components/Checkbox/index.css +1 -1
  15. package/dist/components/DatePicker/DatePicker.css +1 -1
  16. package/dist/components/DatePicker/index.css +1 -1
  17. package/dist/components/DateRangePicker/DateRangePicker.js +23 -8
  18. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  19. package/dist/components/FlowCard/FlowCard.d.ts +2 -2
  20. package/dist/components/FlowCard/FlowCard.js.map +1 -1
  21. package/dist/components/Icon/Icon.css +24 -37
  22. package/dist/components/Icon/Icon.css.map +1 -1
  23. package/dist/components/Icon/index.css +24 -37
  24. package/dist/components/Icon/index.css.map +1 -1
  25. package/dist/components/Mask/Mask.css +1 -1
  26. package/dist/components/Mask/index.css +1 -1
  27. package/dist/components/Radio/Radio.css +1 -1
  28. package/dist/components/Radio/index.css +1 -1
  29. package/dist/components/Table/Table.css +16 -1
  30. package/dist/components/Table/Table.css.map +1 -1
  31. package/dist/components/Table/index.css +16 -1
  32. package/dist/components/Table/index.css.map +1 -1
  33. package/dist/components/Takeover/Takeover.js +3 -1
  34. package/dist/components/Takeover/Takeover.js.map +1 -1
  35. package/dist/components/Thumbnail/Thumbnail.css +1 -1
  36. package/dist/components/Thumbnail/index.css +1 -1
  37. package/dist/components/TimePicker/TimePicker.js +12 -11
  38. package/dist/components/TimePicker/TimePicker.js.map +1 -1
  39. package/dist/components/TimePicker/TimePicker.test.js +12 -8
  40. package/dist/components/TimePicker/TimePicker.test.js.map +1 -1
  41. package/dist/components/TimePicker/utils/timezoneUtils.js +1 -1
  42. package/dist/components/TimePicker/utils/timezoneUtils.js.map +1 -1
  43. package/dist/components/Toast/Toast.d.ts +5 -0
  44. package/dist/components/Toast/Toast.js +9 -1
  45. package/dist/components/Toast/Toast.js.map +1 -1
  46. package/dist/components/Toast/ToastGroup.js +3 -1
  47. package/dist/components/Toast/ToastGroup.js.map +1 -1
  48. package/dist/components/Toast/ToastGroupContext.d.ts +4 -0
  49. package/dist/components/Toast/ToastGroupContext.js +3 -0
  50. package/dist/components/Toast/ToastGroupContext.js.map +1 -0
  51. package/dist/components/index.css +44 -41
  52. package/dist/components/index.css.map +1 -1
  53. package/dist/global/index.css +1 -1
  54. package/dist/global/version.css +1 -1
  55. package/dist/system-light.css +1 -1
  56. package/dist/system-light.min.css +1 -1
  57. package/dist/system.css +45 -42
  58. package/dist/system.css.map +1 -1
  59. package/dist/system.min.css +2 -2
  60. package/dist/themes/index.css +1 -1
  61. package/dist/themes/kendo/index.css +1 -1
  62. package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js +36 -10
  63. package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js.map +1 -1
  64. package/package.json +9 -8
@@ -38,7 +38,7 @@ export interface AnvilSelectPropsStrict<TValue = AnvilSelectOptionsProps | Anvil
38
38
  /** Search properties for the Select */
39
39
  search?: AnvilSelectSearchProps;
40
40
  /** The element that toggles the Select */
41
- trigger?: TriggerProps & PopoverProps['trigger'];
41
+ trigger?: TriggerProps | PopoverProps['trigger'];
42
42
  /** The options currently selected in the Select */
43
43
  value?: TValue;
44
44
  /** Tree view option. Requires controlled state. */
@@ -1 +1 @@
1
- {"version":3,"file":"AnvilSelect.js","sourceRoot":"","sources":["../../../src/components/AnvilSelect/AnvilSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Ref, FC, ReactNode } from 'react';\nimport classnames from 'classnames';\nimport { Popover, PopoverProps } from '../Popover';\nimport { OptionList, OptionListProps } from '../OptionList';\nimport { BodyText } from '../BodyText';\nimport { Spinner } from '../Spinner';\nimport { Stack } from '../Stack';\nimport {\n\tAnvilSelectFooter,\n\tAnvilSelectFooterProps,\n\tAnvilSelectHeader,\n\tAnvilSelectHeaderProps,\n\tAnvilSelectMultipleProps,\n\tAnvilSelectOptionsProps,\n\tAnvilSelectSearchProps,\n\tAnvilSelectTreeProps,\n\tSelectDrillInHeader,\n\tSelectDrillInFooter,\n\tSelectDrillInContent,\n\tSelectDrillInProps,\n\tTrigger,\n\tTriggerProps,\n\tFocusProvider,\n} from './components';\nimport {\n\tFocusActionType,\n\tFocusContext,\n\tgetInitialState,\n\tdoesHeaderExist,\n\tdoesFooterExist,\n} from './utils';\nimport { keys } from '../../utilities/keyCodes';\nimport { PopperProps } from '../../internal';\n\nexport type PrimitiveValueType =\n\t| string\n\t| number\n\t| bigint\n\t| symbol\n\t| null\n\t| undefined;\n\nexport interface AnvilSelectPropsStrict<\n\tTValue = AnvilSelectOptionsProps | AnvilSelectOptionsProps[]\n> extends Pick<\n\t\tPopoverProps,\n\t\t| 'autoFlipHorizontally'\n\t\t| 'autoFlipVertically'\n\t\t| 'onClickOutside'\n\t\t| 'open'\n\t\t| 'portal'\n\t> {\n\tchildren?(props: OptionListProps): ReactNode;\n\n\t/** Adds one or more classnames for an element */\n\tclassName?: string;\n\n\t/** Closes the Select on outside click */\n\tcloseOnClickOutside?: boolean;\n\n\t/** Indicates whether the Select is disabled or not. */\n\tdisabled?: boolean;\n\n\t/** The secondary */\n\tdrillIn?: SelectDrillInProps;\n\n\t/** Message when a Select has no available options */\n\temptyResult?: React.ReactNode;\n\n\t/** Visual error state for the trigger */\n\terror?: boolean;\n\n\t/** Footer for the Select */\n\tfooter?: AnvilSelectFooterProps | PopoverProps['footer'];\n\n\t/** Header for the Select */\n\theader?: AnvilSelectHeaderProps;\n\n\t/** Adds a Spinner visualization to the Select */\n\tloading?: boolean;\n\n\t/** Enables multiple selections */\n\tmultiple?: AnvilSelectMultipleProps | boolean;\n\n\t/** Called when the user changes the value */\n\tonChange?: (\n\t\tdata: TValue,\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps | AnvilSelectOptionsProps[],\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => void;\n\n\t/** A handler that is called on every open and close action */\n\tonOpenChange?(open: boolean, value?: AnvilSelectOptionsProps[]): void;\n\n\t/** Choices for the Select */\n\toptions?: AnvilSelectOptionsProps[];\n\n\t/** Define the width property of the popover part of the Select */\n\tpopoverWidth?: PopoverProps['width'];\n\n\t/** Search properties for the Select */\n\tsearch?: AnvilSelectSearchProps;\n\n\t/** The element that toggles the Select */\n\ttrigger?: TriggerProps & PopoverProps['trigger'];\n\n\t/** The options currently selected in the Select */\n\tvalue?: TValue;\n\n\t/** Tree view option. Requires controlled state. */\n\ttree?: AnvilSelectTreeProps;\n\n\t/** Passing indeterminate data through to the underlying OptionList */\n\tindeterminateValue?: OptionListProps['indeterminateValue'];\n\n\t/** Props to be passed to the portaled div */\n\tportalDataAttributes?: PopperProps['portalDataAttributes'];\n}\n\nexport interface AnvilSelectProps<\n\tTValue = AnvilSelectOptionsProps | AnvilSelectOptionsProps[]\n> extends AnvilSelectPropsStrict<TValue> {\n\t/** Unstrict Props */\n\t[propName: string]: any;\n}\n\nexport interface AnvilSelectState {\n\tcheckboxState: AnvilSelectOptionsProps[];\n\tradioState: AnvilSelectOptionsProps;\n\topenState: boolean;\n\tcontrolledMode: boolean;\n}\n\n// This is only used for Storybook to populate proptable\nexport const AnvilSelectSB: FC<AnvilSelectProps> = (props) => {\n\treturn <AnvilSelect {...props} />;\n};\n\nexport class AnvilSelectWrapped<\n\tTValue extends\n\t\t| AnvilSelectOptionsProps\n\t\t| AnvilSelectOptionsProps[]\n\t\t| PrimitiveValueType\n\t\t| PrimitiveValueType[]\n> extends React.Component<AnvilSelectProps<TValue>, AnvilSelectState> {\n\tstatic defaultProps: Partial<AnvilSelectProps<any>> = {\n\t\tautoFlipVertically: true,\n\t\tcloseOnClickOutside: true,\n\t\tpopoverWidth: '100',\n\t\tportal: true,\n\t};\n\tstatic contextType = FocusContext;\n\tcontext!: React.ContextType<typeof FocusContext>;\n\n\tconstructor(props: AnvilSelectProps<TValue>) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tcheckboxState: props.value || ([] as any),\n\t\t\tradioState: props.value as AnvilSelectOptionsProps,\n\t\t\topenState: !!props.open,\n\t\t\tcontrolledMode: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.autoFocus) {\n\t\t\tconst initialState = getInitialState(\n\t\t\t\tthis.props.search,\n\t\t\t\tthis.props.header,\n\t\t\t\tthis.getOptionsForFocusContext(),\n\t\t\t\tfalse,\n\t\t\t\t!!this.props.tree\n\t\t\t);\n\t\t\tif (!this.state.openState) {\n\t\t\t\tinitialState.triggerFocus = true;\n\t\t\t}\n\t\t\tthis.context.focusDispatch({\n\t\t\t\ttype: FocusActionType.SetFocus,\n\t\t\t\tpayload: initialState,\n\t\t\t});\n\t\t}\n\n\t\t/* Show a console warning when using function children */\n\t\tif (typeof this.props.children === 'function') {\n\t\t\tconsole.warn(\n\t\t\t\t'🚧 ANVIL: Using a function as children for AnvilSelect (and OptionList) is currently an early feature with limited functionality.'\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidUpdate(prevProps: AnvilSelectProps<TValue>) {\n\t\tconst newValue = this.props.value;\n\t\t// If component updated but value didn't change, don't change state at all\n\t\tif (prevProps.value === newValue) return;\n\n\t\t// If component updated and value changed, update state to be new value\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\t...AnvilSelectWrapped.getNewCheckboxAndRadioStateByValue(\n\t\t\t\tnewValue,\n\t\t\t\tthis.props.options\n\t\t\t),\n\t\t});\n\t}\n\n\tstatic getDerivedStateFromProps(\n\t\tprops: AnvilSelectProps<any>,\n\t\tstate: AnvilSelectState\n\t) {\n\t\tconst newValue = props.value;\n\t\tif (!state.controlledMode && newValue !== undefined && props.onChange) {\n\t\t\treturn {\n\t\t\t\tcontrolledMode: true,\n\t\t\t\t...AnvilSelectWrapped.getNewCheckboxAndRadioStateByValue(\n\t\t\t\t\tnewValue,\n\t\t\t\t\tprops.options\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tstate.controlledMode &&\n\t\t\t(newValue !== state.checkboxState || newValue !== state.radioState)\n\t\t) {\n\t\t\treturn AnvilSelectWrapped.getNewCheckboxAndRadioStateByValue(\n\t\t\t\tnewValue,\n\t\t\t\tprops.options\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tstatic getCheckboxOptionByValue = (\n\t\tvalue: any,\n\t\toptions: AnvilSelectPropsStrict<any>['options']\n\t): AnvilSelectOptionsProps[] => {\n\t\tif (\n\t\t\t!Array.isArray(value) ||\n\t\t\t!value.length ||\n\t\t\tvalue === undefined ||\n\t\t\tvalue === null\n\t\t)\n\t\t\treturn [];\n\n\t\tconst isPrimitiveValueType = typeof value[0] !== 'object';\n\n\t\tif (isPrimitiveValueType) {\n\t\t\treturn options.filter((option) => value.includes(option.value));\n\t\t}\n\n\t\treturn value as AnvilSelectOptionsProps[];\n\t};\n\n\tstatic getRadioOptionByValue = (\n\t\tvalue: any,\n\t\toptions: AnvilSelectPropsStrict<any>['options']\n\t): AnvilSelectOptionsProps => {\n\t\tif (Array.isArray(value) || value === undefined || value === null)\n\t\t\treturn undefined;\n\n\t\tconst isPrimitiveValueType = typeof value !== 'object';\n\n\t\tif (isPrimitiveValueType) {\n\t\t\treturn options.find((option) => option.value === value);\n\t\t}\n\n\t\treturn value as AnvilSelectOptionsProps;\n\t};\n\n\tstatic getNewCheckboxAndRadioStateByValue = (\n\t\tnewValue: any,\n\t\toptions: AnvilSelectPropsStrict<any>['options']\n\t): Pick<AnvilSelectState, 'checkboxState' | 'radioState'> => {\n\t\treturn {\n\t\t\tcheckboxState: AnvilSelectWrapped.getCheckboxOptionByValue(\n\t\t\t\tnewValue,\n\t\t\t\toptions\n\t\t\t),\n\t\t\tradioState: AnvilSelectWrapped.getRadioOptionByValue(\n\t\t\t\tnewValue,\n\t\t\t\toptions\n\t\t\t),\n\t\t};\n\t};\n\n\thandleKeyDown = (\n\t\te: React.KeyboardEvent<HTMLDivElement>,\n\t\toption: AnvilSelectOptionsProps\n\t) => {\n\t\tconst handledKeys = new Set([keys.esc, keys.enter, keys.space]);\n\n\t\tif (handledKeys.has(e.key)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (e.key === keys.esc) {\n\t\t\tthis.toggleOpenState();\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === keys.tab && !e.shiftKey && !doesFooterExist(e.target)) {\n\t\t\t// Tab on single option to select value\n\t\t\tif (this.props?.multiple !== true) this.changeRadioState(option);\n\n\t\t\tthis.toggleOpenState();\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === keys.tab && e.shiftKey) {\n\t\t\tif (!doesHeaderExist(e.target)) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.toggleOpenState();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (e.key === keys.enter || e.key === keys.space) {\n\t\t\tif (this.props.multiple) {\n\t\t\t\tconst shouldCheck = !this.state.checkboxState.some(\n\t\t\t\t\t(checkbox) => checkbox.value === option.value\n\t\t\t\t);\n\t\t\t\tconst childObject = option?.options ?? [];\n\t\t\t\tthis.onCheckboxChange(option, shouldCheck, childObject, option);\n\t\t\t\tthis.context.focusDispatch({\n\t\t\t\t\ttype: FocusActionType.SetFocus,\n\t\t\t\t\tpayload: { optionFocus: option },\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.changeRadioState(option);\n\t\t\t\tthis.toggleOpenState();\n\t\t\t}\n\t\t}\n\t};\n\n\tfocus = () => {\n\t\tconst initialState = getInitialState(\n\t\t\tthis.props.search,\n\t\t\tthis.props.header,\n\t\t\tthis.getOptionsForFocusContext(),\n\t\t\tfalse,\n\t\t\t!!this.props.tree\n\t\t);\n\t\tif (!this.state.openState) {\n\t\t\tinitialState.triggerFocus = true;\n\t\t}\n\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: initialState,\n\t\t});\n\t};\n\n\tblur = () => {\n\t\tconst initialState = getInitialState(\n\t\t\tthis.props.search,\n\t\t\tthis.props.header,\n\t\t\tthis.getOptionsForFocusContext(),\n\t\t\tfalse,\n\t\t\t!!this.props.tree\n\t\t);\n\t\tinitialState.triggerFocus = false;\n\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: initialState,\n\t\t});\n\t};\n\n\t/*\n\t * Internal state management of Select\n\t */\n\n\ttoggleOpenState = (clickOutside = false) => {\n\t\tconst initialState = getInitialState(\n\t\t\tthis.props.search,\n\t\t\tthis.props.header,\n\t\t\tthis.getOptionsForFocusContext(),\n\t\t\tclickOutside,\n\t\t\t!!this.props.tree\n\t\t);\n\t\tif (this.state.openState && !clickOutside) {\n\t\t\tinitialState.triggerFocus = true;\n\t\t}\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: initialState,\n\t\t});\n\t\tconst newOpenState = !this.state.openState;\n\t\tthis.setState({\n\t\t\topenState: newOpenState,\n\t\t});\n\n\t\tthis.props.onOpenChange?.(newOpenState, this.state.checkboxState);\n\t};\n\n\tchangeCheckboxState = (\n\t\tvalue: AnvilSelectOptionsProps[],\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps | AnvilSelectOptionsProps[],\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tthis.setState({\n\t\t\tcheckboxState: value,\n\t\t});\n\t\tthis.handleOnChange(value as TValue, checked, childObject, selfObject);\n\t};\n\n\tonCheckboxChange = (\n\t\tvalue: any,\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps | AnvilSelectOptionsProps[],\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tlet newValue;\n\t\tconst incomingValue =\n\t\t\tselfObject.value !== undefined ? selfObject.value : selfObject;\n\t\tif (checked) {\n\t\t\tnewValue = [...this.state.checkboxState, selfObject];\n\t\t} else {\n\t\t\tnewValue = this.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => {\n\t\t\t\t\treturn item.value !== incomingValue;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tthis.changeCheckboxState(newValue, checked, childObject, selfObject);\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: { optionFocus: selfObject },\n\t\t});\n\t};\n\n\tchangeRadioState = (value?: AnvilSelectOptionsProps) => {\n\t\tthis.setState({\n\t\t\tradioState: value,\n\t\t});\n\t\tthis.handleOnChange(value as TValue, null, null, null);\n\t};\n\n\tgetMultipleValues = () => {\n\t\tconst defaults = {\n\t\t\tgroupSelectAll: false,\n\t\t\tonTagClose: false,\n\t\t\tselectAll: false,\n\t\t};\n\n\t\tif (typeof this.props.multiple !== 'boolean')\n\t\t\treturn { ...defaults, ...this.props.multiple };\n\t\treturn defaults;\n\t};\n\n\tgetEmptyResult = () => {\n\t\tconst message =\n\t\t\tthis.props.emptyResult !== undefined\n\t\t\t\t? this.props.emptyResult\n\t\t\t\t: 'No results found';\n\t\treturn (\n\t\t\t<BodyText className=\"ta-center\" subdued size=\"small\">\n\t\t\t\t{message}\n\t\t\t</BodyText>\n\t\t);\n\t};\n\n\tcheckDrillIn = () => {\n\t\tif (!this.props.drillIn || !this.props.drillIn.open) return false;\n\t\treturn true;\n\t};\n\n\tgetCheckboxStateFilteredByGroupValues = (\n\t\tflattenGroupValues: AnvilSelectOptionsProps[]\n\t) => {\n\t\treturn this.state.checkboxState.filter(\n\t\t\t(item: AnvilSelectOptionsProps) =>\n\t\t\t\t!flattenGroupValues.find(\n\t\t\t\t\t(groupValueItem: AnvilSelectOptionsProps) =>\n\t\t\t\t\t\titem.value === groupValueItem.value\n\t\t\t\t)\n\t\t);\n\t};\n\n\tcheckIfDisabledItemIsSelected = (option: AnvilSelectOptionsProps) => {\n\t\treturn (\n\t\t\tthis.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => item.value === option.value\n\t\t\t).length > 0\n\t\t);\n\t};\n\n\tgetFlattenValuesFromOptions = (\n\t\toptions?: AnvilSelectOptionsProps[],\n\t\tskipDisabled?: boolean\n\t): AnvilSelectOptionsProps[] => {\n\t\tconst result: AnvilSelectOptionsProps[] = [];\n\t\tif (options) {\n\t\t\toptions.forEach((option: AnvilSelectOptionsProps) => {\n\t\t\t\tif (option.options) {\n\t\t\t\t\tresult.push(\n\t\t\t\t\t\t...this.getFlattenValuesFromOptions(option.options)\n\t\t\t\t\t);\n\t\t\t\t} else if (!option.disabled) {\n\t\t\t\t\tresult.push(option);\n\t\t\t\t} else if (\n\t\t\t\t\t!skipDisabled &&\n\t\t\t\t\tthis.checkIfDisabledItemIsSelected(option)\n\t\t\t\t) {\n\t\t\t\t\tresult.push(option);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t};\n\n\tgetChildOptionsFromGroupOptions = (\n\t\tgroupOptions: AnvilSelectOptionsProps[] = []\n\t) => {\n\t\treturn groupOptions.flatMap(({ options = [] }) => options);\n\t};\n\n\t/*\n\t * Handle functions\n\t */\n\n\thandleOnSelectAll = () => {\n\t\tif (this.props.multiple) {\n\t\t\tthis.changeCheckboxState(\n\t\t\t\tthis.getFlattenValuesFromOptions(this.props.options),\n\t\t\t\ttrue,\n\t\t\t\tthis.getChildOptionsFromGroupOptions(this.props.options),\n\t\t\t\t[...this.props.options]\n\t\t\t);\n\t\t}\n\t};\n\n\thandleOnSelectGroup = (groupOptions: AnvilSelectOptionsProps[]) => {\n\t\tconst groupValues = this.getFlattenValuesFromOptions(groupOptions);\n\t\tconst checkboxStateFiltered =\n\t\t\tthis.getCheckboxStateFilteredByGroupValues(groupValues);\n\t\tthis.changeCheckboxState(\n\t\t\t[...checkboxStateFiltered, ...groupValues],\n\t\t\ttrue,\n\t\t\tthis.getChildOptionsFromGroupOptions(groupOptions),\n\t\t\t[...groupOptions]\n\t\t);\n\t};\n\n\thandleOnClear = () => {\n\t\tif (this.props.multiple) {\n\t\t\tconst clearAllButDisabled = this.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => item.disabled\n\t\t\t);\n\t\t\tconst self = this.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => !item.disabled\n\t\t\t);\n\t\t\tthis.changeCheckboxState(clearAllButDisabled, false, [], self);\n\t\t} else {\n\t\t\tthis.changeRadioState();\n\t\t}\n\t};\n\n\thandleOnClearGroup = (groupOptions: AnvilSelectOptionsProps[]) => {\n\t\tconst groupValues = this.getFlattenValuesFromOptions(\n\t\t\tgroupOptions,\n\t\t\ttrue\n\t\t);\n\t\tconst newGroupValues =\n\t\t\tthis.getCheckboxStateFilteredByGroupValues(groupValues);\n\t\tthis.changeCheckboxState(newGroupValues, false, [], [...groupOptions]);\n\t};\n\n\thandleOnChange = (\n\t\tvalue: TValue,\n\t\tchecked: any,\n\t\tchildObject: AnvilSelectOptionsProps,\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(value, checked, childObject, selfObject);\n\t\t}\n\t};\n\n\thandleOnTagClose = (value: AnvilSelectOptionsProps) => {\n\t\tthis.onCheckboxChange(value, false, value, value);\n\t};\n\n\thandleClickOutside = () => {\n\t\tif (this.props.onClickOutside) this.props.onClickOutside();\n\t\tif (!this.state.openState || !this.props.closeOnClickOutside) return;\n\t\tthis.toggleOpenState(true);\n\t};\n\n\thandleOnClick = (e: any) => {\n\t\tthis.props.trigger?.onClick?.(e);\n\t\tthis.toggleOpenState();\n\t};\n\n\tgetOnChange = (\n\t\tvalue: any,\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps,\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tif (this.props.multiple)\n\t\t\treturn this.onCheckboxChange(\n\t\t\t\tvalue,\n\t\t\t\tchecked,\n\t\t\t\tchildObject,\n\t\t\t\tselfObject\n\t\t\t);\n\t\tthis.toggleOpenState();\n\t\treturn this.changeRadioState(selfObject);\n\t};\n\n\tgetFlatGroup = () => {\n\t\tif (this.props.tree) return false;\n\t\tif (this.getMultipleValues().groupSelectAll) {\n\t\t\treturn {\n\t\t\t\tonGroupSelectAll: this.handleOnSelectGroup,\n\t\t\t\tonGroupSelectNone: this.handleOnClearGroup,\n\t\t\t};\n\t\t}\n\t\treturn true;\n\t};\n\n\tgetOnExpand = () => {\n\t\treturn this.props.tree?.onExpand ? this.props.tree.onExpand : null;\n\t};\n\n\tgetCollapseValue = () => {\n\t\treturn this.props.tree?.collapseValue\n\t\t\t? this.props.tree.collapseValue\n\t\t\t: null;\n\t};\n\n\toptionsFromOptionList: AnvilSelectOptionsProps[] | null = null;\n\n\tgetOptionsForFocusContext = () => {\n\t\treturn this.props.options != null ||\n\t\t\ttypeof this.props.children !== 'function'\n\t\t\t? this.props.options\n\t\t\t: this.optionsFromOptionList != null\n\t\t\t? this.optionsFromOptionList\n\t\t\t: null;\n\t};\n\n\tsetOptionsFromOptionList = (optionData: AnvilSelectOptionsProps[]) => {\n\t\tthis.optionsFromOptionList = optionData;\n\t};\n\n\tgetOptionList = () => {\n\t\tif (this.checkDrillIn())\n\t\t\treturn <SelectDrillInContent {...this.props.drillIn} />;\n\t\tif (this.props.loading) return this.getLoading();\n\t\tif (\n\t\t\ttypeof this.props.children !== 'function' &&\n\t\t\t(!this.props.options || this.props.options.length === 0)\n\t\t)\n\t\t\treturn this.getEmptyResult();\n\n\t\treturn (\n\t\t\t<OptionList\n\t\t\t\tarrowNavOptions={{\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tloop: true,\n\t\t\t\t\ttabIndexGroup: true,\n\t\t\t\t}}\n\t\t\t\toptions={this.props.options}\n\t\t\t\tmultiple={!!this.props.multiple}\n\t\t\t\tflatGroup={this.getFlatGroup()}\n\t\t\t\tvalue={\n\t\t\t\t\tthis.props.multiple\n\t\t\t\t\t\t? this.state.checkboxState\n\t\t\t\t\t\t: this.state.radioState\n\t\t\t\t}\n\t\t\t\tonChange={this.getOnChange}\n\t\t\t\toptionOnKeyDown={this.handleKeyDown}\n\t\t\t\tfocusValue={this.context.focusState.optionFocus}\n\t\t\t\tclassName=\"Select__OptionList\"\n\t\t\t\tonExpand={this.getOnExpand()}\n\t\t\t\tcollapseValue={this.getCollapseValue()}\n\t\t\t\tgetOptionsData={this.setOptionsFromOptionList}\n\t\t\t\tindeterminateValue={this.props.indeterminateValue}\n\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</OptionList>\n\t\t);\n\t};\n\n\t/*\n\t * UI get functions\n\t * Options, Header, Footer, Trigger\n\t */\n\n\tgetHeader: () => any = () => {\n\t\tif (this.checkDrillIn()) {\n\t\t\treturn (\n\t\t\t\t<SelectDrillInHeader\n\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\tpreventFocus={!!this.props.open}\n\t\t\t\t\t{...this.props.drillIn}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (this.props.header || this.props.search) {\n\t\t\treturn (\n\t\t\t\t<AnvilSelectHeader\n\t\t\t\t\tsearch={!!this.props.search}\n\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\t{...this.props.search}\n\t\t\t\t\t{...this.props.header}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tgetFooter: () => any = () => {\n\t\tif (this.checkDrillIn()) {\n\t\t\tif (\n\t\t\t\tthis.props.drillIn.footerActionName &&\n\t\t\t\tthis.props.drillIn.footerOnActionClick\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t<SelectDrillInFooter\n\t\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\t\t{...this.props.drillIn}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tif (React.isValidElement(this.props.footer)) {\n\t\t\treturn React.cloneElement(this.props.footer);\n\t\t}\n\n\t\tif (\n\t\t\tthis.props.footer ||\n\t\t\t(this.props.multiple && this.getMultipleValues().selectAll)\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<AnvilSelectFooter\n\t\t\t\t\tselectAll={\n\t\t\t\t\t\tthis.props.multiple &&\n\t\t\t\t\t\tthis.getMultipleValues().selectAll\n\t\t\t\t\t}\n\t\t\t\t\tonSelectAllClick={this.handleOnSelectAll}\n\t\t\t\t\tonSelectNoneClick={this.handleOnClear}\n\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\t{...this.props.footer}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tgetTrigger = () => {\n\t\tif (React.isValidElement(this.props.trigger)) {\n\t\t\treturn React.cloneElement(this.props.trigger, {\n\t\t\t\tonClick: this.toggleOpenState,\n\t\t\t});\n\t\t}\n\t\tconst triggerValue = this.props.multiple\n\t\t\t? this.state.checkboxState\n\t\t\t: this.state.radioState;\n\n\t\treturn (\n\t\t\t<Trigger\n\t\t\t\topen={this.state.openState}\n\t\t\t\tdisabled={this.props.disabled}\n\t\t\t\terror={this.props.error}\n\t\t\t\tvalue={triggerValue}\n\t\t\t\tonClearClick={this.handleOnClear}\n\t\t\t\tonClose={!this.props.tree && this.handleOnTagClose} // Don't allow tag close with Tree\n\t\t\t\tonBlur={this.blur}\n\t\t\t\tonKeyDown={this.props.onKeyDown}\n\t\t\t\t{...this.props.trigger}\n\t\t\t\tonClick={this.handleOnClick}\n\t\t\t/>\n\t\t);\n\t};\n\n\tgetLoading = () => {\n\t\treturn (\n\t\t\t<Stack justifyContent=\"center\">\n\t\t\t\t<Spinner size=\"tiny\" />\n\t\t\t</Stack>\n\t\t);\n\t};\n\n\t/* Popover props */\n\tgetRestOfProps = () => {\n\t\tconst {\n\t\t\tchildren,\n\t\t\tautoFlipHorizontally,\n\t\t\tautoFlipVertically,\n\t\t\tclassName,\n\t\t\tcloseOnClickOutside,\n\t\t\tdisabled,\n\t\t\tdrillIn,\n\t\t\temptyResult,\n\t\t\terror,\n\t\t\tfooter,\n\t\t\theader,\n\t\t\tloading,\n\t\t\tmultiple,\n\t\t\tonChange,\n\t\t\tonClickOutside,\n\t\t\topen,\n\t\t\toptions,\n\t\t\tpopoverWidth,\n\t\t\tsearch,\n\t\t\ttrigger,\n\t\t\tvalue,\n\t\t\tautoFocus,\n\t\t\tonOpenChange,\n\t\t\ttree,\n\t\t\t...rest\n\t\t} = this.props;\n\t\treturn rest;\n\t};\n\n\trender(): React.ReactNode {\n\t\tif (!this.state.openState) return this.getTrigger();\n\n\t\tconst AnvilSelectClasses = classnames(\n\t\t\t'a-Select',\n\t\t\tthis.props.className,\n\t\t\t{\n\t\t\t\t'Select--DrillIn': this.props.drillIn?.open,\n\t\t\t\t'Select--disabled': this.props.disabled,\n\t\t\t\t'Select--tree': this.props.tree,\n\t\t\t\t'Select--flat': !this.props.tree,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tautoFlipVertically={this.props.autoFlipVertically}\n\t\t\t\tautoFlipHorizontally={this.props.autoFlipHorizontally}\n\t\t\t\tclassName={AnvilSelectClasses}\n\t\t\t\tdirection=\"br\"\n\t\t\t\tfocusTrapOptions={{ focusLock: false }}\n\t\t\t\tfooter={this.state.openState && this.getFooter()}\n\t\t\t\theader={this.state.openState && this.getHeader()}\n\t\t\t\topen={this.state.openState}\n\t\t\t\tsharp\n\t\t\t\ttrigger={this.getTrigger()}\n\t\t\t\twidth={this.props.popoverWidth as PopoverProps['width']}\n\t\t\t\tonClickOutside={this.handleClickOutside}\n\t\t\t\tdata-anvil-component=\"AnvilSelect\"\n\t\t\t\tportalDataAttributes={this.props.portalDataAttributes}\n\t\t\t\t{...this.getRestOfProps()}\n\t\t\t>\n\t\t\t\t{this.state.openState && this.getOptionList()}\n\t\t\t</Popover>\n\t\t);\n\t}\n}\n\n/* Wrap Select around focus management */\nexport const AnvilSelect = React.forwardRef(\n\t<\n\t\tTValue extends\n\t\t\t| AnvilSelectOptionsProps\n\t\t\t| AnvilSelectOptionsProps[]\n\t\t\t| PrimitiveValueType\n\t\t\t| PrimitiveValueType[]\n\t>(\n\t\tprops: AnvilSelectProps<TValue>,\n\t\tref: Ref<any>\n\t) => {\n\t\treturn (\n\t\t\t<FocusProvider\n\t\t\t\theader={props.header}\n\t\t\t\tsearch={props.search}\n\t\t\t\toptions={props.options}\n\t\t\t\tpreventFocus\n\t\t\t>\n\t\t\t\t<AnvilSelectWrapped {...props} ref={ref} />\n\t\t\t</FocusProvider>\n\t\t);\n\t}\n);\n\nAnvilSelect.displayName = 'AnvilSelect';\n"]}
1
+ {"version":3,"file":"AnvilSelect.js","sourceRoot":"","sources":["../../../src/components/AnvilSelect/AnvilSelect.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EACN,iBAAiB,EAEjB,iBAAiB,EAMjB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAEpB,OAAO,EAEP,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAuGhD,wDAAwD;AACxD,MAAM,CAAC,MAAM,aAAa,GAAyB,CAAC,KAAK,EAAE,EAAE;IAC5D,OAAO,oBAAC,WAAW,oBAAK,KAAK,EAAI,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,OAAO,kBAMX,SAAQ,KAAK,CAAC,SAAqD;IAUpE,YAAY,KAA+B;QAC1C,KAAK,CAAC,KAAK,CAAC,CAAC;QAmId,kBAAa,GAAG,CACf,CAAsC,EACtC,MAA+B,EAC9B,EAAE;;YACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEhE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;aACnB;YAED,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO;aACP;YAED,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;gBACpE,uCAAuC;gBACvC,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,MAAK,IAAI;oBAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAEjE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO;aACP;YAED,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACrC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;oBAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,OAAO;iBACP;aACD;YAED,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE;gBACjD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBACxB,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CACjD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAC7C,CAAC;oBACF,MAAM,WAAW,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,EAAE,CAAC;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;oBAChE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;wBAC1B,IAAI,EAAE,eAAe,CAAC,QAAQ;wBAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;qBAChC,CAAC,CAAC;iBACH;qBAAM;oBACN,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;iBACvB;aACD;QACF,CAAC,CAAC;QAEF,UAAK,GAAG,GAAG,EAAE;YACZ,MAAM,YAAY,GAAG,eAAe,CACnC,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,yBAAyB,EAAE,EAChC,KAAK,EACL,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACjB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC1B,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;aACjC;YAED,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC1B,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,OAAO,EAAE,YAAY;aACrB,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACX,MAAM,YAAY,GAAG,eAAe,CACnC,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,yBAAyB,EAAE,EAChC,KAAK,EACL,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACjB,CAAC;YACF,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC1B,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,OAAO,EAAE,YAAY;aACrB,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF;;WAEG;QAEH,oBAAe,GAAG,CAAC,YAAY,GAAG,KAAK,EAAE,EAAE;;YAC1C,MAAM,YAAY,GAAG,eAAe,CACnC,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,yBAAyB,EAAE,EAChC,YAAY,EACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACjB,CAAC;YACF,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE;gBAC1C,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;aACjC;YACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC1B,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,OAAO,EAAE,YAAY;aACrB,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC;gBACb,SAAS,EAAE,YAAY;aACvB,CAAC,CAAC;YAEH,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,YAAY,mDAAG,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnE,CAAC,CAAC;QAEF,wBAAmB,GAAG,CACrB,KAAgC,EAChC,OAAgB,EAChB,WAAgE,EAChE,UAAmC,EAClC,EAAE;YACH,IAAI,CAAC,QAAQ,CAAC;gBACb,aAAa,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAe,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAClB,KAAU,EACV,OAAgB,EAChB,WAAgE,EAChE,UAAmC,EAClC,EAAE;YACH,IAAI,QAAQ,CAAC;YACb,MAAM,aAAa,GAClB,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;YAChE,IAAI,OAAO,EAAE;gBACZ,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;aACrD;iBAAM;gBACN,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CACzC,CAAC,IAA6B,EAAE,EAAE;oBACjC,OAAO,IAAI,CAAC,KAAK,KAAK,aAAa,CAAC;gBACrC,CAAC,CACD,CAAC;aACF;YACD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC1B,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;aACpC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,KAA+B,EAAE,EAAE;YACtD,IAAI,CAAC,QAAQ,CAAC;gBACb,UAAU,EAAE,KAAK;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,KAAe,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,sBAAiB,GAAG,GAAG,EAAE;YACxB,MAAM,QAAQ,GAAG;gBAChB,cAAc,EAAE,KAAK;gBACrB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,KAAK;aAChB,CAAC;YAEF,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAC3C,uCAAY,QAAQ,GAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAG;YAChD,OAAO,QAAQ,CAAC;QACjB,CAAC,CAAC;QAEF,mBAAc,GAAG,GAAG,EAAE;YACrB,MAAM,OAAO,GACZ,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS;gBACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;gBACxB,CAAC,CAAC,kBAAkB,CAAC;YACvB,OAAO,CACN,oBAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,EAAC,OAAO,QAAC,IAAI,EAAC,OAAO,IAClD,OAAO,CACE,CACX,CAAC;QACH,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YAClE,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,0CAAqC,GAAG,CACvC,kBAA6C,EAC5C,EAAE;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CACrC,CAAC,IAA6B,EAAE,EAAE,CACjC,CAAC,kBAAkB,CAAC,IAAI,CACvB,CAAC,cAAuC,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CACpC,CACF,CAAC;QACH,CAAC,CAAC;QAEF,kCAA6B,GAAG,CAAC,MAA+B,EAAE,EAAE;YACnE,OAAO,CACN,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAC9B,CAAC,IAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAC9D,CAAC,MAAM,GAAG,CAAC,CACZ,CAAC;QACH,CAAC,CAAC;QAEF,gCAA2B,GAAG,CAC7B,OAAmC,EACnC,YAAsB,EACM,EAAE;YAC9B,MAAM,MAAM,GAA8B,EAAE,CAAC;YAC7C,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,OAAO,CAAC,CAAC,MAA+B,EAAE,EAAE;oBACnD,IAAI,MAAM,CAAC,OAAO,EAAE;wBACnB,MAAM,CAAC,IAAI,CACV,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,OAAO,CAAC,CACnD,CAAC;qBACF;yBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;wBAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACpB;yBAAM,IACN,CAAC,YAAY;wBACb,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,EACzC;wBACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACpB;gBACF,CAAC,CAAC,CAAC;aACH;YACD,OAAO,MAAM,CAAC;QACf,CAAC,CAAC;QAEF,oCAA+B,GAAG,CACjC,eAA0C,EAAE,EAC3C,EAAE;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEF;;WAEG;QAEH,sBAAiB,GAAG,GAAG,EAAE;YACxB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxB,IAAI,CAAC,mBAAmB,CACvB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EACpD,IAAI,EACJ,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EACxD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACvB,CAAC;aACF;QACF,CAAC,CAAC;QAEF,wBAAmB,GAAG,CAAC,YAAuC,EAAE,EAAE;YACjE,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;YACnE,MAAM,qBAAqB,GAC1B,IAAI,CAAC,qCAAqC,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,CACvB,CAAC,GAAG,qBAAqB,EAAE,GAAG,WAAW,CAAC,EAC1C,IAAI,EACJ,IAAI,CAAC,+BAA+B,CAAC,YAAY,CAAC,EAClD,CAAC,GAAG,YAAY,CAAC,CACjB,CAAC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxB,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAC1D,CAAC,IAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAChD,CAAC;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAC3C,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CACjD,CAAC;gBACF,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;aAC/D;iBAAM;gBACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACxB;QACF,CAAC,CAAC;QAEF,uBAAkB,GAAG,CAAC,YAAuC,EAAE,EAAE;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CACnD,YAAY,EACZ,IAAI,CACJ,CAAC;YACF,MAAM,cAAc,GACnB,IAAI,CAAC,qCAAqC,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,mBAAc,GAAG,CAChB,KAAa,EACb,OAAY,EACZ,WAAoC,EACpC,UAAmC,EAClC,EAAE;YACH,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;aAC7D;QACF,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,KAA8B,EAAE,EAAE;YACrD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,uBAAkB,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;gBAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB;gBAAE,OAAO;YACrE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,kBAAa,GAAG,CAAC,CAAM,EAAE,EAAE;;YAC1B,MAAA,MAAC,IAAI,CAAC,KAAK,CAAC,OAAwB,0CAAE,OAAO,mDAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CACb,KAAU,EACV,OAAgB,EAChB,WAAoC,EACpC,UAAmC,EAClC,EAAE;YACH,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACtB,OAAO,IAAI,CAAC,gBAAgB,CAC3B,KAAK,EACL,OAAO,EACP,WAAW,EACX,UAAU,CACV,CAAC;YACH,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YACnB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC;YAClC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,cAAc,EAAE;gBAC5C,OAAO;oBACN,gBAAgB,EAAE,IAAI,CAAC,mBAAmB;oBAC1C,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;iBAC1C,CAAC;aACF;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,gBAAW,GAAG,GAAG,EAAE;;YAClB,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,QAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC,CAAC;QAEF,qBAAgB,GAAG,GAAG,EAAE;;YACvB,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,aAAa;gBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa;gBAC/B,CAAC,CAAC,IAAI,CAAC;QACT,CAAC,CAAC;QAEF,0BAAqB,GAAqC,IAAI,CAAC;QAE/D,8BAAyB,GAAG,GAAG,EAAE;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gBAChC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;gBACpB,CAAC,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI;oBACpC,CAAC,CAAC,IAAI,CAAC,qBAAqB;oBAC5B,CAAC,CAAC,IAAI,CAAC;QACT,CAAC,CAAC;QAEF,6BAAwB,GAAG,CAAC,UAAqC,EAAE,EAAE;YACpE,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;QACzC,CAAC,CAAC;QAEF,kBAAa,GAAG,GAAG,EAAE;YACpB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACtB,OAAO,oBAAC,oBAAoB,oBAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAI,CAAC;YACzD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YACjD,IACC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;gBAExD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YAE9B,OAAO,CACN,oBAAC,UAAU,IACV,eAAe,EAAE;oBAChB,QAAQ,EAAE,KAAK;oBACf,IAAI,EAAE,IAAI;oBACV,aAAa,EAAE,IAAI;iBACnB,EACD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC/B,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,EAC9B,KAAK,EACJ,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa;oBAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAEzB,QAAQ,EAAE,IAAI,CAAC,WAAW,EAC1B,eAAe,EAAE,IAAI,CAAC,aAAa,EACnC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAC/C,SAAS,EAAC,oBAAoB,EAC9B,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAC5B,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,EACtC,cAAc,EAAE,IAAI,CAAC,wBAAwB,EAC7C,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAEhD,IAAI,CAAC,KAAK,CAAC,QAAQ,CACR,CACb,CAAC;QACH,CAAC,CAAC;QAEF;;;WAGG;QAEH,cAAS,GAAc,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACxB,OAAO,CACN,oBAAC,mBAAmB,kBACnB,kBAAkB,EAAE,IAAI,CAAC,eAAe,EACxC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,EACrB,CACF,CAAC;aACF;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC3C,OAAO,CACN,oBAAC,iBAAiB,kBACjB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAC3B,kBAAkB,EAAE,IAAI,CAAC,eAAe,IACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EACpB,CACF,CAAC;aACF;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,cAAS,GAAc,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACxB,IACC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB;oBACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EACrC;oBACD,OAAO,CACN,oBAAC,mBAAmB,kBACnB,kBAAkB,EAAE,IAAI,CAAC,eAAe,IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,EACrB,CACF,CAAC;iBACF;gBACD,OAAO,IAAI,CAAC;aACZ;YAED,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC5C,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC7C;YAED,IACC,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,EAC1D;gBACD,OAAO,CACN,oBAAC,iBAAiB,kBACjB,SAAS,EACR,IAAI,CAAC,KAAK,CAAC,QAAQ;wBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAEnC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EACxC,iBAAiB,EAAE,IAAI,CAAC,aAAa,EACrC,kBAAkB,EAAE,IAAI,CAAC,eAAe,IACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EACpB,CACF,CAAC;aACF;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YACjB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC7C,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAuB,EAAE;oBAC7D,OAAO,EAAE,IAAI,CAAC,eAAe;iBAC7B,CAAC,CAAC;aACH;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACvC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa;gBAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAEzB,OAAO,CACN,oBAAC,OAAO,kBACP,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAClD,MAAM,EAAE,IAAI,CAAC,IAAI,EACjB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAC1B,IAAI,CAAC,KAAK,CAAC,OAAwB,IACxC,OAAO,EAAE,IAAI,CAAC,aAAa,IAC1B,CACF,CAAC;QACH,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YACjB,OAAO,CACN,oBAAC,KAAK,IAAC,cAAc,EAAC,QAAQ;gBAC7B,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,CAChB,CACR,CAAC;QACH,CAAC,CAAC;QAEF,mBAAmB;QACnB,mBAAc,GAAG,GAAG,EAAE;YACrB,MAAM,KA0BF,IAAI,CAAC,KAAK,EA1BR,EACL,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,WAAW,EACX,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,YAAY,EACZ,IAAI,OAES,EADV,IAAI,cAzBF,4TA0BL,CAAa,CAAC;YACf,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAxpBD,IAAI,CAAC,KAAK,GAAG;YACZ,aAAa,EAAE,KAAK,CAAC,KAAK,IAAK,EAAU;YACzC,UAAU,EAAE,KAAK,CAAC,KAAgC;YAClD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;YACvB,cAAc,EAAE,KAAK;SACrB,CAAC;IACH,CAAC;IAED,iBAAiB;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YACzB,MAAM,YAAY,GAAG,eAAe,CACnC,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,yBAAyB,EAAE,EAChC,KAAK,EACL,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACjB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC1B,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;aACjC;YACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC1B,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,OAAO,EAAE,YAAY;aACrB,CAAC,CAAC;SACH;QAED,yDAAyD;QACzD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;YAC9C,OAAO,CAAC,IAAI,CACX,mIAAmI,CACnI,CAAC;SACF;IACF,CAAC;IAED,kBAAkB,CAAC,SAAmC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAClC,0EAA0E;QAC1E,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO;QAEzC,uEAAuE;QACvE,IAAI,CAAC,QAAQ,iCACT,IAAI,CAAC,KAAK,GACV,kBAAkB,CAAC,kCAAkC,CACvD,QAAQ,EACR,IAAI,CAAC,KAAK,CAAC,OAAO,CAClB,EACA,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC9B,KAA4B,EAC5B,KAAuB;QAEvB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE;YACtE,uBACC,cAAc,EAAE,IAAI,IACjB,kBAAkB,CAAC,kCAAkC,CACvD,QAAQ,EACR,KAAK,CAAC,OAAO,CACb,EACA;SACF;QAED,IACC,KAAK,CAAC,cAAc;YACpB,CAAC,QAAQ,KAAK,KAAK,CAAC,aAAa,IAAI,QAAQ,KAAK,KAAK,CAAC,UAAU,CAAC,EAClE;YACD,OAAO,kBAAkB,CAAC,kCAAkC,CAC3D,QAAQ,EACR,KAAK,CAAC,OAAO,CACb,CAAC;SACF;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IA+kBD,MAAM;;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAEpD,MAAM,kBAAkB,GAAG,UAAU,CACpC,UAAU,EACV,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB;YACC,iBAAiB,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,IAAI;YAC3C,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YACvC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC/B,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;SAChC,CACD,CAAC;QAEF,OAAO,CACN,oBAAC,OAAO,kBACP,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EACjD,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EACrD,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAC,IAAI,EACd,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EACtC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,EAChD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,EAChD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC1B,KAAK,QACL,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAqC,EACvD,cAAc,EAAE,IAAI,CAAC,kBAAkB,0BAClB,aAAa,EAClC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,IACjD,IAAI,CAAC,cAAc,EAAE,GAExB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CACpC,CACV,CAAC;IACH,CAAC;;AAxsBM,+BAAY,GAAmC;IACrD,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,IAAI;CACZ,CAAC;AACK,8BAAW,GAAG,YAAY,CAAC;AAkF3B,2CAAwB,GAAG,CACjC,KAAU,EACV,OAA+C,EACnB,EAAE;IAC9B,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,KAAK,CAAC,MAAM;QACb,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QAEd,OAAO,EAAE,CAAC;IAEX,MAAM,oBAAoB,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE1D,IAAI,oBAAoB,EAAE;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,KAAkC,CAAC;AAC3C,CAAC,CAAC;AAEK,wCAAqB,GAAG,CAC9B,KAAU,EACV,OAA+C,EACrB,EAAE;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAChE,OAAO,SAAS,CAAC;IAElB,MAAM,oBAAoB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;IAEvD,IAAI,oBAAoB,EAAE;QACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;KACxD;IAED,OAAO,KAAgC,CAAC;AACzC,CAAC,CAAC;AAEK,qDAAkC,GAAG,CAC3C,QAAa,EACb,OAA+C,EACU,EAAE;IAC3D,OAAO;QACN,aAAa,EAAE,kBAAkB,CAAC,wBAAwB,CACzD,QAAQ,EACR,OAAO,CACP;QACD,UAAU,EAAE,kBAAkB,CAAC,qBAAqB,CACnD,QAAQ,EACR,OAAO,CACP;KACD,CAAC;AACH,CAAC,CAAC;AAgkBH,yCAAyC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAC1C,CAOC,KAA+B,EAC/B,GAAa,EACZ,EAAE;IACH,OAAO,CACN,oBAAC,aAAa,IACb,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,YAAY;QAEZ,oBAAC,kBAAkB,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,IAAI,CAC5B,CAChB,CAAC;AACH,CAAC,CACD,CAAC;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC","sourcesContent":["import React, { Ref, FC, ReactNode, ReactElement } from 'react';\nimport classnames from 'classnames';\nimport { Popover, PopoverProps } from '../Popover';\nimport { OptionList, OptionListProps } from '../OptionList';\nimport { BodyText } from '../BodyText';\nimport { Spinner } from '../Spinner';\nimport { Stack } from '../Stack';\nimport {\n\tAnvilSelectFooter,\n\tAnvilSelectFooterProps,\n\tAnvilSelectHeader,\n\tAnvilSelectHeaderProps,\n\tAnvilSelectMultipleProps,\n\tAnvilSelectOptionsProps,\n\tAnvilSelectSearchProps,\n\tAnvilSelectTreeProps,\n\tSelectDrillInHeader,\n\tSelectDrillInFooter,\n\tSelectDrillInContent,\n\tSelectDrillInProps,\n\tTrigger,\n\tTriggerProps,\n\tFocusProvider,\n} from './components';\nimport {\n\tFocusActionType,\n\tFocusContext,\n\tgetInitialState,\n\tdoesHeaderExist,\n\tdoesFooterExist,\n} from './utils';\nimport { keys } from '../../utilities/keyCodes';\nimport { PopperProps } from '../../internal';\n\nexport type PrimitiveValueType =\n\t| string\n\t| number\n\t| bigint\n\t| symbol\n\t| null\n\t| undefined;\n\nexport interface AnvilSelectPropsStrict<\n\tTValue = AnvilSelectOptionsProps | AnvilSelectOptionsProps[]\n> extends Pick<\n\t\tPopoverProps,\n\t\t| 'autoFlipHorizontally'\n\t\t| 'autoFlipVertically'\n\t\t| 'onClickOutside'\n\t\t| 'open'\n\t\t| 'portal'\n\t> {\n\tchildren?(props: OptionListProps): ReactNode;\n\n\t/** Adds one or more classnames for an element */\n\tclassName?: string;\n\n\t/** Closes the Select on outside click */\n\tcloseOnClickOutside?: boolean;\n\n\t/** Indicates whether the Select is disabled or not. */\n\tdisabled?: boolean;\n\n\t/** The secondary */\n\tdrillIn?: SelectDrillInProps;\n\n\t/** Message when a Select has no available options */\n\temptyResult?: React.ReactNode;\n\n\t/** Visual error state for the trigger */\n\terror?: boolean;\n\n\t/** Footer for the Select */\n\tfooter?: AnvilSelectFooterProps | PopoverProps['footer'];\n\n\t/** Header for the Select */\n\theader?: AnvilSelectHeaderProps;\n\n\t/** Adds a Spinner visualization to the Select */\n\tloading?: boolean;\n\n\t/** Enables multiple selections */\n\tmultiple?: AnvilSelectMultipleProps | boolean;\n\n\t/** Called when the user changes the value */\n\tonChange?: (\n\t\tdata: TValue,\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps | AnvilSelectOptionsProps[],\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => void;\n\n\t/** A handler that is called on every open and close action */\n\tonOpenChange?(open: boolean, value?: AnvilSelectOptionsProps[]): void;\n\n\t/** Choices for the Select */\n\toptions?: AnvilSelectOptionsProps[];\n\n\t/** Define the width property of the popover part of the Select */\n\tpopoverWidth?: PopoverProps['width'];\n\n\t/** Search properties for the Select */\n\tsearch?: AnvilSelectSearchProps;\n\n\t/** The element that toggles the Select */\n\ttrigger?: TriggerProps | PopoverProps['trigger'];\n\n\t/** The options currently selected in the Select */\n\tvalue?: TValue;\n\n\t/** Tree view option. Requires controlled state. */\n\ttree?: AnvilSelectTreeProps;\n\n\t/** Passing indeterminate data through to the underlying OptionList */\n\tindeterminateValue?: OptionListProps['indeterminateValue'];\n\n\t/** Props to be passed to the portaled div */\n\tportalDataAttributes?: PopperProps['portalDataAttributes'];\n}\n\nexport interface AnvilSelectProps<\n\tTValue = AnvilSelectOptionsProps | AnvilSelectOptionsProps[]\n> extends AnvilSelectPropsStrict<TValue> {\n\t/** Unstrict Props */\n\t[propName: string]: any;\n}\n\nexport interface AnvilSelectState {\n\tcheckboxState: AnvilSelectOptionsProps[];\n\tradioState: AnvilSelectOptionsProps;\n\topenState: boolean;\n\tcontrolledMode: boolean;\n}\n\n// This is only used for Storybook to populate proptable\nexport const AnvilSelectSB: FC<AnvilSelectProps> = (props) => {\n\treturn <AnvilSelect {...props} />;\n};\n\nexport class AnvilSelectWrapped<\n\tTValue extends\n\t\t| AnvilSelectOptionsProps\n\t\t| AnvilSelectOptionsProps[]\n\t\t| PrimitiveValueType\n\t\t| PrimitiveValueType[]\n> extends React.Component<AnvilSelectProps<TValue>, AnvilSelectState> {\n\tstatic defaultProps: Partial<AnvilSelectProps<any>> = {\n\t\tautoFlipVertically: true,\n\t\tcloseOnClickOutside: true,\n\t\tpopoverWidth: '100',\n\t\tportal: true,\n\t};\n\tstatic contextType = FocusContext;\n\tcontext!: React.ContextType<typeof FocusContext>;\n\n\tconstructor(props: AnvilSelectProps<TValue>) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tcheckboxState: props.value || ([] as any),\n\t\t\tradioState: props.value as AnvilSelectOptionsProps,\n\t\t\topenState: !!props.open,\n\t\t\tcontrolledMode: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.autoFocus) {\n\t\t\tconst initialState = getInitialState(\n\t\t\t\tthis.props.search,\n\t\t\t\tthis.props.header,\n\t\t\t\tthis.getOptionsForFocusContext(),\n\t\t\t\tfalse,\n\t\t\t\t!!this.props.tree\n\t\t\t);\n\t\t\tif (!this.state.openState) {\n\t\t\t\tinitialState.triggerFocus = true;\n\t\t\t}\n\t\t\tthis.context.focusDispatch({\n\t\t\t\ttype: FocusActionType.SetFocus,\n\t\t\t\tpayload: initialState,\n\t\t\t});\n\t\t}\n\n\t\t/* Show a console warning when using function children */\n\t\tif (typeof this.props.children === 'function') {\n\t\t\tconsole.warn(\n\t\t\t\t'🚧 ANVIL: Using a function as children for AnvilSelect (and OptionList) is currently an early feature with limited functionality.'\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidUpdate(prevProps: AnvilSelectProps<TValue>) {\n\t\tconst newValue = this.props.value;\n\t\t// If component updated but value didn't change, don't change state at all\n\t\tif (prevProps.value === newValue) return;\n\n\t\t// If component updated and value changed, update state to be new value\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\t...AnvilSelectWrapped.getNewCheckboxAndRadioStateByValue(\n\t\t\t\tnewValue,\n\t\t\t\tthis.props.options\n\t\t\t),\n\t\t});\n\t}\n\n\tstatic getDerivedStateFromProps(\n\t\tprops: AnvilSelectProps<any>,\n\t\tstate: AnvilSelectState\n\t) {\n\t\tconst newValue = props.value;\n\t\tif (!state.controlledMode && newValue !== undefined && props.onChange) {\n\t\t\treturn {\n\t\t\t\tcontrolledMode: true,\n\t\t\t\t...AnvilSelectWrapped.getNewCheckboxAndRadioStateByValue(\n\t\t\t\t\tnewValue,\n\t\t\t\t\tprops.options\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tstate.controlledMode &&\n\t\t\t(newValue !== state.checkboxState || newValue !== state.radioState)\n\t\t) {\n\t\t\treturn AnvilSelectWrapped.getNewCheckboxAndRadioStateByValue(\n\t\t\t\tnewValue,\n\t\t\t\tprops.options\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tstatic getCheckboxOptionByValue = (\n\t\tvalue: any,\n\t\toptions: AnvilSelectPropsStrict<any>['options']\n\t): AnvilSelectOptionsProps[] => {\n\t\tif (\n\t\t\t!Array.isArray(value) ||\n\t\t\t!value.length ||\n\t\t\tvalue === undefined ||\n\t\t\tvalue === null\n\t\t)\n\t\t\treturn [];\n\n\t\tconst isPrimitiveValueType = typeof value[0] !== 'object';\n\n\t\tif (isPrimitiveValueType) {\n\t\t\treturn options.filter((option) => value.includes(option.value));\n\t\t}\n\n\t\treturn value as AnvilSelectOptionsProps[];\n\t};\n\n\tstatic getRadioOptionByValue = (\n\t\tvalue: any,\n\t\toptions: AnvilSelectPropsStrict<any>['options']\n\t): AnvilSelectOptionsProps => {\n\t\tif (Array.isArray(value) || value === undefined || value === null)\n\t\t\treturn undefined;\n\n\t\tconst isPrimitiveValueType = typeof value !== 'object';\n\n\t\tif (isPrimitiveValueType) {\n\t\t\treturn options.find((option) => option.value === value);\n\t\t}\n\n\t\treturn value as AnvilSelectOptionsProps;\n\t};\n\n\tstatic getNewCheckboxAndRadioStateByValue = (\n\t\tnewValue: any,\n\t\toptions: AnvilSelectPropsStrict<any>['options']\n\t): Pick<AnvilSelectState, 'checkboxState' | 'radioState'> => {\n\t\treturn {\n\t\t\tcheckboxState: AnvilSelectWrapped.getCheckboxOptionByValue(\n\t\t\t\tnewValue,\n\t\t\t\toptions\n\t\t\t),\n\t\t\tradioState: AnvilSelectWrapped.getRadioOptionByValue(\n\t\t\t\tnewValue,\n\t\t\t\toptions\n\t\t\t),\n\t\t};\n\t};\n\n\thandleKeyDown = (\n\t\te: React.KeyboardEvent<HTMLDivElement>,\n\t\toption: AnvilSelectOptionsProps\n\t) => {\n\t\tconst handledKeys = new Set([keys.esc, keys.enter, keys.space]);\n\n\t\tif (handledKeys.has(e.key)) {\n\t\t\te.preventDefault();\n\t\t}\n\n\t\tif (e.key === keys.esc) {\n\t\t\tthis.toggleOpenState();\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === keys.tab && !e.shiftKey && !doesFooterExist(e.target)) {\n\t\t\t// Tab on single option to select value\n\t\t\tif (this.props?.multiple !== true) this.changeRadioState(option);\n\n\t\t\tthis.toggleOpenState();\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === keys.tab && e.shiftKey) {\n\t\t\tif (!doesHeaderExist(e.target)) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.toggleOpenState();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (e.key === keys.enter || e.key === keys.space) {\n\t\t\tif (this.props.multiple) {\n\t\t\t\tconst shouldCheck = !this.state.checkboxState.some(\n\t\t\t\t\t(checkbox) => checkbox.value === option.value\n\t\t\t\t);\n\t\t\t\tconst childObject = option?.options ?? [];\n\t\t\t\tthis.onCheckboxChange(option, shouldCheck, childObject, option);\n\t\t\t\tthis.context.focusDispatch({\n\t\t\t\t\ttype: FocusActionType.SetFocus,\n\t\t\t\t\tpayload: { optionFocus: option },\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.changeRadioState(option);\n\t\t\t\tthis.toggleOpenState();\n\t\t\t}\n\t\t}\n\t};\n\n\tfocus = () => {\n\t\tconst initialState = getInitialState(\n\t\t\tthis.props.search,\n\t\t\tthis.props.header,\n\t\t\tthis.getOptionsForFocusContext(),\n\t\t\tfalse,\n\t\t\t!!this.props.tree\n\t\t);\n\t\tif (!this.state.openState) {\n\t\t\tinitialState.triggerFocus = true;\n\t\t}\n\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: initialState,\n\t\t});\n\t};\n\n\tblur = () => {\n\t\tconst initialState = getInitialState(\n\t\t\tthis.props.search,\n\t\t\tthis.props.header,\n\t\t\tthis.getOptionsForFocusContext(),\n\t\t\tfalse,\n\t\t\t!!this.props.tree\n\t\t);\n\t\tinitialState.triggerFocus = false;\n\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: initialState,\n\t\t});\n\t};\n\n\t/*\n\t * Internal state management of Select\n\t */\n\n\ttoggleOpenState = (clickOutside = false) => {\n\t\tconst initialState = getInitialState(\n\t\t\tthis.props.search,\n\t\t\tthis.props.header,\n\t\t\tthis.getOptionsForFocusContext(),\n\t\t\tclickOutside,\n\t\t\t!!this.props.tree\n\t\t);\n\t\tif (this.state.openState && !clickOutside) {\n\t\t\tinitialState.triggerFocus = true;\n\t\t}\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: initialState,\n\t\t});\n\t\tconst newOpenState = !this.state.openState;\n\t\tthis.setState({\n\t\t\topenState: newOpenState,\n\t\t});\n\n\t\tthis.props.onOpenChange?.(newOpenState, this.state.checkboxState);\n\t};\n\n\tchangeCheckboxState = (\n\t\tvalue: AnvilSelectOptionsProps[],\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps | AnvilSelectOptionsProps[],\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tthis.setState({\n\t\t\tcheckboxState: value,\n\t\t});\n\t\tthis.handleOnChange(value as TValue, checked, childObject, selfObject);\n\t};\n\n\tonCheckboxChange = (\n\t\tvalue: any,\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps | AnvilSelectOptionsProps[],\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tlet newValue;\n\t\tconst incomingValue =\n\t\t\tselfObject.value !== undefined ? selfObject.value : selfObject;\n\t\tif (checked) {\n\t\t\tnewValue = [...this.state.checkboxState, selfObject];\n\t\t} else {\n\t\t\tnewValue = this.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => {\n\t\t\t\t\treturn item.value !== incomingValue;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tthis.changeCheckboxState(newValue, checked, childObject, selfObject);\n\t\tthis.context.focusDispatch({\n\t\t\ttype: FocusActionType.SetFocus,\n\t\t\tpayload: { optionFocus: selfObject },\n\t\t});\n\t};\n\n\tchangeRadioState = (value?: AnvilSelectOptionsProps) => {\n\t\tthis.setState({\n\t\t\tradioState: value,\n\t\t});\n\t\tthis.handleOnChange(value as TValue, null, null, null);\n\t};\n\n\tgetMultipleValues = () => {\n\t\tconst defaults = {\n\t\t\tgroupSelectAll: false,\n\t\t\tonTagClose: false,\n\t\t\tselectAll: false,\n\t\t};\n\n\t\tif (typeof this.props.multiple !== 'boolean')\n\t\t\treturn { ...defaults, ...this.props.multiple };\n\t\treturn defaults;\n\t};\n\n\tgetEmptyResult = () => {\n\t\tconst message =\n\t\t\tthis.props.emptyResult !== undefined\n\t\t\t\t? this.props.emptyResult\n\t\t\t\t: 'No results found';\n\t\treturn (\n\t\t\t<BodyText className=\"ta-center\" subdued size=\"small\">\n\t\t\t\t{message}\n\t\t\t</BodyText>\n\t\t);\n\t};\n\n\tcheckDrillIn = () => {\n\t\tif (!this.props.drillIn || !this.props.drillIn.open) return false;\n\t\treturn true;\n\t};\n\n\tgetCheckboxStateFilteredByGroupValues = (\n\t\tflattenGroupValues: AnvilSelectOptionsProps[]\n\t) => {\n\t\treturn this.state.checkboxState.filter(\n\t\t\t(item: AnvilSelectOptionsProps) =>\n\t\t\t\t!flattenGroupValues.find(\n\t\t\t\t\t(groupValueItem: AnvilSelectOptionsProps) =>\n\t\t\t\t\t\titem.value === groupValueItem.value\n\t\t\t\t)\n\t\t);\n\t};\n\n\tcheckIfDisabledItemIsSelected = (option: AnvilSelectOptionsProps) => {\n\t\treturn (\n\t\t\tthis.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => item.value === option.value\n\t\t\t).length > 0\n\t\t);\n\t};\n\n\tgetFlattenValuesFromOptions = (\n\t\toptions?: AnvilSelectOptionsProps[],\n\t\tskipDisabled?: boolean\n\t): AnvilSelectOptionsProps[] => {\n\t\tconst result: AnvilSelectOptionsProps[] = [];\n\t\tif (options) {\n\t\t\toptions.forEach((option: AnvilSelectOptionsProps) => {\n\t\t\t\tif (option.options) {\n\t\t\t\t\tresult.push(\n\t\t\t\t\t\t...this.getFlattenValuesFromOptions(option.options)\n\t\t\t\t\t);\n\t\t\t\t} else if (!option.disabled) {\n\t\t\t\t\tresult.push(option);\n\t\t\t\t} else if (\n\t\t\t\t\t!skipDisabled &&\n\t\t\t\t\tthis.checkIfDisabledItemIsSelected(option)\n\t\t\t\t) {\n\t\t\t\t\tresult.push(option);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn result;\n\t};\n\n\tgetChildOptionsFromGroupOptions = (\n\t\tgroupOptions: AnvilSelectOptionsProps[] = []\n\t) => {\n\t\treturn groupOptions.flatMap(({ options = [] }) => options);\n\t};\n\n\t/*\n\t * Handle functions\n\t */\n\n\thandleOnSelectAll = () => {\n\t\tif (this.props.multiple) {\n\t\t\tthis.changeCheckboxState(\n\t\t\t\tthis.getFlattenValuesFromOptions(this.props.options),\n\t\t\t\ttrue,\n\t\t\t\tthis.getChildOptionsFromGroupOptions(this.props.options),\n\t\t\t\t[...this.props.options]\n\t\t\t);\n\t\t}\n\t};\n\n\thandleOnSelectGroup = (groupOptions: AnvilSelectOptionsProps[]) => {\n\t\tconst groupValues = this.getFlattenValuesFromOptions(groupOptions);\n\t\tconst checkboxStateFiltered =\n\t\t\tthis.getCheckboxStateFilteredByGroupValues(groupValues);\n\t\tthis.changeCheckboxState(\n\t\t\t[...checkboxStateFiltered, ...groupValues],\n\t\t\ttrue,\n\t\t\tthis.getChildOptionsFromGroupOptions(groupOptions),\n\t\t\t[...groupOptions]\n\t\t);\n\t};\n\n\thandleOnClear = () => {\n\t\tif (this.props.multiple) {\n\t\t\tconst clearAllButDisabled = this.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => item.disabled\n\t\t\t);\n\t\t\tconst self = this.state.checkboxState.filter(\n\t\t\t\t(item: AnvilSelectOptionsProps) => !item.disabled\n\t\t\t);\n\t\t\tthis.changeCheckboxState(clearAllButDisabled, false, [], self);\n\t\t} else {\n\t\t\tthis.changeRadioState();\n\t\t}\n\t};\n\n\thandleOnClearGroup = (groupOptions: AnvilSelectOptionsProps[]) => {\n\t\tconst groupValues = this.getFlattenValuesFromOptions(\n\t\t\tgroupOptions,\n\t\t\ttrue\n\t\t);\n\t\tconst newGroupValues =\n\t\t\tthis.getCheckboxStateFilteredByGroupValues(groupValues);\n\t\tthis.changeCheckboxState(newGroupValues, false, [], [...groupOptions]);\n\t};\n\n\thandleOnChange = (\n\t\tvalue: TValue,\n\t\tchecked: any,\n\t\tchildObject: AnvilSelectOptionsProps,\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(value, checked, childObject, selfObject);\n\t\t}\n\t};\n\n\thandleOnTagClose = (value: AnvilSelectOptionsProps) => {\n\t\tthis.onCheckboxChange(value, false, value, value);\n\t};\n\n\thandleClickOutside = () => {\n\t\tif (this.props.onClickOutside) this.props.onClickOutside();\n\t\tif (!this.state.openState || !this.props.closeOnClickOutside) return;\n\t\tthis.toggleOpenState(true);\n\t};\n\n\thandleOnClick = (e: any) => {\n\t\t(this.props.trigger as TriggerProps)?.onClick?.(e);\n\t\tthis.toggleOpenState();\n\t};\n\n\tgetOnChange = (\n\t\tvalue: any,\n\t\tchecked: boolean,\n\t\tchildObject: AnvilSelectOptionsProps,\n\t\tselfObject: AnvilSelectOptionsProps\n\t) => {\n\t\tif (this.props.multiple)\n\t\t\treturn this.onCheckboxChange(\n\t\t\t\tvalue,\n\t\t\t\tchecked,\n\t\t\t\tchildObject,\n\t\t\t\tselfObject\n\t\t\t);\n\t\tthis.toggleOpenState();\n\t\treturn this.changeRadioState(selfObject);\n\t};\n\n\tgetFlatGroup = () => {\n\t\tif (this.props.tree) return false;\n\t\tif (this.getMultipleValues().groupSelectAll) {\n\t\t\treturn {\n\t\t\t\tonGroupSelectAll: this.handleOnSelectGroup,\n\t\t\t\tonGroupSelectNone: this.handleOnClearGroup,\n\t\t\t};\n\t\t}\n\t\treturn true;\n\t};\n\n\tgetOnExpand = () => {\n\t\treturn this.props.tree?.onExpand ? this.props.tree.onExpand : null;\n\t};\n\n\tgetCollapseValue = () => {\n\t\treturn this.props.tree?.collapseValue\n\t\t\t? this.props.tree.collapseValue\n\t\t\t: null;\n\t};\n\n\toptionsFromOptionList: AnvilSelectOptionsProps[] | null = null;\n\n\tgetOptionsForFocusContext = () => {\n\t\treturn this.props.options != null ||\n\t\t\ttypeof this.props.children !== 'function'\n\t\t\t? this.props.options\n\t\t\t: this.optionsFromOptionList != null\n\t\t\t? this.optionsFromOptionList\n\t\t\t: null;\n\t};\n\n\tsetOptionsFromOptionList = (optionData: AnvilSelectOptionsProps[]) => {\n\t\tthis.optionsFromOptionList = optionData;\n\t};\n\n\tgetOptionList = () => {\n\t\tif (this.checkDrillIn())\n\t\t\treturn <SelectDrillInContent {...this.props.drillIn} />;\n\t\tif (this.props.loading) return this.getLoading();\n\t\tif (\n\t\t\ttypeof this.props.children !== 'function' &&\n\t\t\t(!this.props.options || this.props.options.length === 0)\n\t\t)\n\t\t\treturn this.getEmptyResult();\n\n\t\treturn (\n\t\t\t<OptionList\n\t\t\t\tarrowNavOptions={{\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tloop: true,\n\t\t\t\t\ttabIndexGroup: true,\n\t\t\t\t}}\n\t\t\t\toptions={this.props.options}\n\t\t\t\tmultiple={!!this.props.multiple}\n\t\t\t\tflatGroup={this.getFlatGroup()}\n\t\t\t\tvalue={\n\t\t\t\t\tthis.props.multiple\n\t\t\t\t\t\t? this.state.checkboxState\n\t\t\t\t\t\t: this.state.radioState\n\t\t\t\t}\n\t\t\t\tonChange={this.getOnChange}\n\t\t\t\toptionOnKeyDown={this.handleKeyDown}\n\t\t\t\tfocusValue={this.context.focusState.optionFocus}\n\t\t\t\tclassName=\"Select__OptionList\"\n\t\t\t\tonExpand={this.getOnExpand()}\n\t\t\t\tcollapseValue={this.getCollapseValue()}\n\t\t\t\tgetOptionsData={this.setOptionsFromOptionList}\n\t\t\t\tindeterminateValue={this.props.indeterminateValue}\n\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</OptionList>\n\t\t);\n\t};\n\n\t/*\n\t * UI get functions\n\t * Options, Header, Footer, Trigger\n\t */\n\n\tgetHeader: () => any = () => {\n\t\tif (this.checkDrillIn()) {\n\t\t\treturn (\n\t\t\t\t<SelectDrillInHeader\n\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\tpreventFocus={!!this.props.open}\n\t\t\t\t\t{...this.props.drillIn}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\tif (this.props.header || this.props.search) {\n\t\t\treturn (\n\t\t\t\t<AnvilSelectHeader\n\t\t\t\t\tsearch={!!this.props.search}\n\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\t{...this.props.search}\n\t\t\t\t\t{...this.props.header}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tgetFooter: () => any = () => {\n\t\tif (this.checkDrillIn()) {\n\t\t\tif (\n\t\t\t\tthis.props.drillIn.footerActionName &&\n\t\t\t\tthis.props.drillIn.footerOnActionClick\n\t\t\t) {\n\t\t\t\treturn (\n\t\t\t\t\t<SelectDrillInFooter\n\t\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\t\t{...this.props.drillIn}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tif (React.isValidElement(this.props.footer)) {\n\t\t\treturn React.cloneElement(this.props.footer);\n\t\t}\n\n\t\tif (\n\t\t\tthis.props.footer ||\n\t\t\t(this.props.multiple && this.getMultipleValues().selectAll)\n\t\t) {\n\t\t\treturn (\n\t\t\t\t<AnvilSelectFooter\n\t\t\t\t\tselectAll={\n\t\t\t\t\t\tthis.props.multiple &&\n\t\t\t\t\t\tthis.getMultipleValues().selectAll\n\t\t\t\t\t}\n\t\t\t\t\tonSelectAllClick={this.handleOnSelectAll}\n\t\t\t\t\tonSelectNoneClick={this.handleOnClear}\n\t\t\t\t\tcloseSelectHandler={this.toggleOpenState}\n\t\t\t\t\t{...this.props.footer}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t};\n\n\tgetTrigger = () => {\n\t\tif (React.isValidElement(this.props.trigger)) {\n\t\t\treturn React.cloneElement(this.props.trigger as ReactElement, {\n\t\t\t\tonClick: this.toggleOpenState,\n\t\t\t});\n\t\t}\n\t\tconst triggerValue = this.props.multiple\n\t\t\t? this.state.checkboxState\n\t\t\t: this.state.radioState;\n\n\t\treturn (\n\t\t\t<Trigger\n\t\t\t\topen={this.state.openState}\n\t\t\t\tdisabled={this.props.disabled}\n\t\t\t\terror={this.props.error}\n\t\t\t\tvalue={triggerValue}\n\t\t\t\tonClearClick={this.handleOnClear}\n\t\t\t\tonClose={!this.props.tree && this.handleOnTagClose} // Don't allow tag close with Tree\n\t\t\t\tonBlur={this.blur}\n\t\t\t\tonKeyDown={this.props.onKeyDown}\n\t\t\t\t{...(this.props.trigger as TriggerProps)}\n\t\t\t\tonClick={this.handleOnClick}\n\t\t\t/>\n\t\t);\n\t};\n\n\tgetLoading = () => {\n\t\treturn (\n\t\t\t<Stack justifyContent=\"center\">\n\t\t\t\t<Spinner size=\"tiny\" />\n\t\t\t</Stack>\n\t\t);\n\t};\n\n\t/* Popover props */\n\tgetRestOfProps = () => {\n\t\tconst {\n\t\t\tchildren,\n\t\t\tautoFlipHorizontally,\n\t\t\tautoFlipVertically,\n\t\t\tclassName,\n\t\t\tcloseOnClickOutside,\n\t\t\tdisabled,\n\t\t\tdrillIn,\n\t\t\temptyResult,\n\t\t\terror,\n\t\t\tfooter,\n\t\t\theader,\n\t\t\tloading,\n\t\t\tmultiple,\n\t\t\tonChange,\n\t\t\tonClickOutside,\n\t\t\topen,\n\t\t\toptions,\n\t\t\tpopoverWidth,\n\t\t\tsearch,\n\t\t\ttrigger,\n\t\t\tvalue,\n\t\t\tautoFocus,\n\t\t\tonOpenChange,\n\t\t\ttree,\n\t\t\t...rest\n\t\t} = this.props;\n\t\treturn rest;\n\t};\n\n\trender(): React.ReactNode {\n\t\tif (!this.state.openState) return this.getTrigger();\n\n\t\tconst AnvilSelectClasses = classnames(\n\t\t\t'a-Select',\n\t\t\tthis.props.className,\n\t\t\t{\n\t\t\t\t'Select--DrillIn': this.props.drillIn?.open,\n\t\t\t\t'Select--disabled': this.props.disabled,\n\t\t\t\t'Select--tree': this.props.tree,\n\t\t\t\t'Select--flat': !this.props.tree,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tautoFlipVertically={this.props.autoFlipVertically}\n\t\t\t\tautoFlipHorizontally={this.props.autoFlipHorizontally}\n\t\t\t\tclassName={AnvilSelectClasses}\n\t\t\t\tdirection=\"br\"\n\t\t\t\tfocusTrapOptions={{ focusLock: false }}\n\t\t\t\tfooter={this.state.openState && this.getFooter()}\n\t\t\t\theader={this.state.openState && this.getHeader()}\n\t\t\t\topen={this.state.openState}\n\t\t\t\tsharp\n\t\t\t\ttrigger={this.getTrigger()}\n\t\t\t\twidth={this.props.popoverWidth as PopoverProps['width']}\n\t\t\t\tonClickOutside={this.handleClickOutside}\n\t\t\t\tdata-anvil-component=\"AnvilSelect\"\n\t\t\t\tportalDataAttributes={this.props.portalDataAttributes}\n\t\t\t\t{...this.getRestOfProps()}\n\t\t\t>\n\t\t\t\t{this.state.openState && this.getOptionList()}\n\t\t\t</Popover>\n\t\t);\n\t}\n}\n\n/* Wrap Select around focus management */\nexport const AnvilSelect = React.forwardRef(\n\t<\n\t\tTValue extends\n\t\t\t| AnvilSelectOptionsProps\n\t\t\t| AnvilSelectOptionsProps[]\n\t\t\t| PrimitiveValueType\n\t\t\t| PrimitiveValueType[]\n\t>(\n\t\tprops: AnvilSelectProps<TValue>,\n\t\tref: Ref<any>\n\t) => {\n\t\treturn (\n\t\t\t<FocusProvider\n\t\t\t\theader={props.header}\n\t\t\t\tsearch={props.search}\n\t\t\t\toptions={props.options}\n\t\t\t\tpreventFocus\n\t\t\t>\n\t\t\t\t<AnvilSelectWrapped {...props} ref={ref} />\n\t\t\t</FocusProvider>\n\t\t);\n\t}\n);\n\nAnvilSelect.displayName = 'AnvilSelect';\n"]}
@@ -193,6 +193,7 @@
193
193
  border-radius: 100%;
194
194
  margin-top: 1px;
195
195
  padding: 1px 4px;
196
+ background: transparent;
196
197
  }
197
198
  .Trigger .Trigger__clear.Button::before {
198
199
  border-radius: 100%;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../src/utilities/_visually-hidden.scss","../../../../src/components/Form/Form.scss","../../../../src/components/AnvilSelect/AnvilSelect.scss","../../../../src/utilities/_component-reset.scss","../../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../../src/components/AnvilSelect/components/Trigger.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAjEc;;AAkEd;EAAmB,cAnEL;;;AAsEf;EACC,cAvEc;EAwEd,OA7EY;EA8EZ,kBA5EkB;;AA8ElB;EAEC,cA7Ea;EA8Eb;;AAGD;AAAA;EACU,OAvFE;;;AA0Fb;EACC;EACA,SDgBkB;ECflB,kBA1FqB;;AA4FrB;EACC,kBA9FiB;;AAgGjB;EACC,OAnGU;;AAuGZ;EACC;;;AAIF;EACC;EACA;EACA,OAvGe;EAwGf;EACA;EACA;EACA;;AAEA;EAAsB,cAnGN;;AAoGhB;EAAsB,cAvGN;;AAyGhB;EACC,OAzHW;EA0HX,cArHa;;AAwHd;EAEC,cAzHa;;;AA6Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAtIa;;AAyId;EAEC,oBA5Ia;;;AAgJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAxJa;;AA2Jd;EAEC,oBA9Ja;;;AAkKf;EACC;EACA;EACA;EACA,cDnDW;;;ACsDZ;EACC;EACA,OAxKe;;AA0Kf;EAAoB,OAlLR;;;AAqLb;EACC","file":"Trigger.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../../src/utilities/_visually-hidden.scss","../../../../src/components/Form/Form.scss","../../../../src/components/AnvilSelect/AnvilSelect.scss","../../../../src/utilities/_component-reset.scss","../../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../../src/components/AnvilSelect/components/Trigger.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAlEc;;AAmEd;EAAmB,cApEL;;;AAuEf;EACC,cAxEc;EAyEd,OA9EY;EA+EZ,kBA7EkB;;AA+ElB;EAEC,cA9Ea;EA+Eb;;AAGD;AAAA;EACU,OAxFE;;;AA2Fb;EACC;EACA,SDekB;ECdlB,kBA3FqB;;AA6FrB;EACC,kBA/FiB;;AAiGjB;EACC,OApGU;;AAwGZ;EACC;;;AAIF;EACC;EACA;EACA,OAxGe;EAyGf;EACA;EACA;EACA;;AAEA;EAAsB,cApGN;;AAqGhB;EAAsB,cAxGN;;AA0GhB;EACC,OA1HW;EA2HX,cAtHa;;AAyHd;EAEC,cA1Ha;;;AA8Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAvIa;;AA0Id;EAEC,oBA7Ia;;;AAiJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAzJa;;AA4Jd;EAEC,oBA/Ja;;;AAmKf;EACC;EACA;EACA;EACA,cDpDW;;;ACuDZ;EACC;EACA,OAzKe;;AA2Kf;EAAoB,OAnLR;;;AAsLb;EACC","file":"Trigger.css"}
@@ -193,6 +193,7 @@
193
193
  border-radius: 100%;
194
194
  margin-top: 1px;
195
195
  padding: 1px 4px;
196
+ background: transparent;
196
197
  }
197
198
  .Trigger .Trigger__clear.Button::before {
198
199
  border-radius: 100%;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Form/Form.scss","../../../src/components/AnvilSelect/AnvilSelect.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/AnvilSelect/components/Trigger.scss","../../../src/components/AnvilSelect/components/DrillIn.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAjEc;;AAkEd;EAAmB,cAnEL;;;AAsEf;EACC,cAvEc;EAwEd,OA7EY;EA8EZ,kBA5EkB;;AA8ElB;EAEC,cA7Ea;EA8Eb;;AAGD;AAAA;EACU,OAvFE;;;AA0Fb;EACC;EACA,SDgBkB;ECflB,kBA1FqB;;AA4FrB;EACC,kBA9FiB;;AAgGjB;EACC,OAnGU;;AAuGZ;EACC;;;AAIF;EACC;EACA;EACA,OAvGe;EAwGf;EACA;EACA;EACA;;AAEA;EAAsB,cAnGN;;AAoGhB;EAAsB,cAvGN;;AAyGhB;EACC,OAzHW;EA0HX,cArHa;;AAwHd;EAEC,cAzHa;;;AA6Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAtIa;;AAyId;EAEC,oBA5Ia;;;AAgJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAxJa;;AA2Jd;EAEC,oBA9Ja;;;AAkKf;EACC;EACA;EACA;EACA,cDnDW;;;ACsDZ;EACC;EACA,OAxKe;;AA0Kf;EAAoB,OAlLR;;;AAqLb;EACC;;;ACtLD;EACC;;;AAGD;EACC;;;AAIA;EAAmB,kBAZH;;;AAejB;EACC;;AAEA;EACC,YAlBc;EAmBd,eFFgB;EEGhB,YFmGa","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Form/Form.scss","../../../src/components/AnvilSelect/AnvilSelect.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/AnvilSelect/components/Trigger.scss","../../../src/components/AnvilSelect/components/DrillIn.scss"],"names":[],"mappings":"AAAA;ACIA;AACA;EAAc;;;AACd;EAAc;;;AACd;EAAe;;;AACf;EAAgB;;;AAChB;EAAe;;;AACf;EAAa;;;AACb;EAAc;;;AACd;EAAiB;;;AAEjB;AAGC;AAAA;EAAS;;;AAGV;AAOC;AAAA;AAAA;AAAA;EAEC,kBAPiB;EAQjB,cAPa;EAQb,OAVW;EAWX;;AAGD;AAAA;AAAA;AAAA;EAEC,kBAfiB;EAgBjB,cAfa;EAgBb,OAlBW;EAmBX;EACA;;;ACrCF;AACA;ACFC;EACA;AAEA;EACA;;;ADIC;EACC;;AAEA;EAAiB;;;AAKpB;EACC;;;AAGD;EACC;EACA,OE6Gc;EF5Gd,KE4Gc;;AF1Gd;EACC;;AAGD;EACC,eETuB;EFUvB;EACA;;AAEA;EACC,eEdsB;;AFiBvB;EAAoB;;;AAItB;EACC,eEkFW;;;AF/EZ;EACC;;AAEA;EACC,WEoFY;EFnFZ,aEgFa;EF/Eb,gBE+Ea;;AF5Ed;EACC,aEoEU;;;AFhEZ;EACC;;AAEA;EACC,YE4DU;;;AFxDZ;EACC,WEiEa;;AF/Db;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;AAEA;EAAwB,aEgDX;;AF7Cd;EAAmB;;;AAKnB;AAAA;EAA8B;;AAE9B;AAAA;EACC;;AAGD;AAAA;EACC;;;AG3EF;AFvBC;EACA;AAEA;EACA;EEsBA;EACA;EACA,YAxBoB;EAyBpB;EACA,eDZiB;ECajB,OA7Bc;EA8Bd;EACA;EACA;;AAEA;EAEC,cA7Ba;EA8Bb,YDiFa;EChFb;;AAGD;EAAY;;AAEZ;EAAO;;AAEP;EACC,aD6FiB;EC5FjB,SD+DoB;;AC5DrB;EACC,OAlDW;EAmDX,SD0DoB;;ACvDrB;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EAAoB;;;AAItB;EAAoB;;;AACpB;EAAoB;;;AAEpB;EACC,cAlEc;;AAmEd;EAAmB,cApEL;;;AAuEf;EACC,cAxEc;EAyEd,OA9EY;EA+EZ,kBA7EkB;;AA+ElB;EAEC,cA9Ea;EA+Eb;;AAGD;AAAA;EACU,OAxFE;;;AA2Fb;EACC;EACA,SDekB;ECdlB,kBA3FqB;;AA6FrB;EACC,kBA/FiB;;AAiGjB;EACC,OApGU;;AAwGZ;EACC;;;AAIF;EACC;EACA;EACA,OAxGe;EAyGf;EACA;EACA;EACA;;AAEA;EAAsB,cApGN;;AAqGhB;EAAsB,cAxGN;;AA0GhB;EACC,OA1HW;EA2HX,cAtHa;;AAyHd;EAEC,cA1Ha;;;AA8Hf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAvIa;;AA0Id;EAEC,oBA7Ia;;;AAiJf;EACC;EACA;;AAEA;EAAsB;;AACtB;EAAsB;;AAEtB;EAEC,oBAzJa;;AA4Jd;EAEC,oBA/Ja;;;AAmKf;EACC;EACA;EACA;EACA,cDpDW;;;ACuDZ;EACC;EACA,OAzKe;;AA2Kf;EAAoB,OAnLR;;;AAsLb;EACC;;;ACvLD;EACC;;;AAGD;EACC;;;AAIA;EAAmB,kBAZH;;;AAejB;EACC;;AAEA;EACC,YAlBc;EAmBd,eFFgB;EEGhB,YFmGa","file":"index.css"}
@@ -9,7 +9,7 @@
9
9
  align-items: center;
10
10
  background-color: var(--colorsSurfaceGrey, #eeeeee);
11
11
  border: 0;
12
- border-radius: 3px;
12
+ border-radius: 6px;
13
13
  box-sizing: border-box;
14
14
  color: var(--colorsTextOnGrey, #444445);
15
15
  cursor: pointer;
@@ -19,14 +19,15 @@
19
19
  justify-content: center;
20
20
  line-height: 1;
21
21
  margin: 0;
22
- outline: none;
23
22
  padding: 12px 16px;
24
23
  text-align: center;
25
24
  text-decoration: none;
26
25
  text-shadow: none;
27
- transition: background cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, color cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms;
26
+ transition: background cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, color cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, outline cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms, outline-offset cubic-bezier(0.4, 0, 0.2, 1) 100ms 0ms;
28
27
  user-select: none;
29
28
  position: relative;
29
+ outline-offset: 0;
30
+ outline: solid 0 transparent;
30
31
  }
31
32
  .Button::before {
32
33
  content: "";
@@ -46,13 +47,13 @@
46
47
  .Button:active::before, .Button.Button--selected::before {
47
48
  background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
48
49
  }
49
- .Button.Button--focus-visible:focus {
50
- outline: 0;
51
- box-shadow: 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
50
+ .Button:focus-visible {
51
+ outline-offset: 2px;
52
+ outline: solid 2px var(--colorsBorderPrimary, #0265dc);
52
53
  }
53
54
  .Button.Button--outline {
54
- background-color: transparent;
55
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445);
55
+ background-color: var(--colorsSurfaceDefault, white);
56
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
56
57
  }
57
58
  .Button.Button--outline:hover::before {
58
59
  background-color: var(--colorsHoverOnGrey, rgba(20, 20, 20, 0.08));
@@ -60,9 +61,6 @@
60
61
  .Button.Button--outline:active::before, .Button.Button--outline.Button--selected::before {
61
62
  background-color: var(--colorsActiveOnGrey, rgba(20, 20, 20, 0.16));
62
63
  }
63
- .Button.Button--outline.Button--focus-visible:focus {
64
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445), 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
65
- }
66
64
  .Button.Button--subtle {
67
65
  background-color: transparent;
68
66
  }
@@ -114,34 +112,31 @@ button.Button {
114
112
  color: var(--colorsTextOnPrimary, white);
115
113
  }
116
114
  .Button--blue:hover::before {
117
- background-color: var(--colorsHoverOnPrimary, rgba(255, 255, 255, 0.16));
115
+ background-color: var(--colorsHoverOnGrey, rgba(20, 20, 20, 0.08));
118
116
  }
119
117
  .Button--blue:active::before, .Button--blue.Button--selected::before {
120
- background-color: var(--colorsActiveOnPrimary, rgba(20, 20, 20, 0.16));
118
+ background-color: var(--colorsActiveOnGrey, rgba(20, 20, 20, 0.16));
121
119
  }
122
120
  .Button--blue.Button--outline {
123
121
  background-color: transparent;
124
- box-shadow: inset 0 0 0 1px var(--colorsBorderPrimary, #0265dc);
122
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
125
123
  color: var(--colorsTextPrimary, #0265dc);
126
124
  }
127
125
  .Button--blue.Button--outline:hover::before {
128
- background-color: var(--colorsHoverPrimary, rgba(2, 101, 220, 0.1));
129
- }
130
- .Button--blue.Button--outline.Button--focus-visible:focus {
131
- box-shadow: inset 0 0 0 1px var(--colorsBorderPrimary, #0265dc), 0 0 0 3px var(--colorsFocusRingPrimary, #78bbfa);
126
+ background-color: var(--colorsHoverDefault, rgba(20, 20, 20, 0.08));
132
127
  }
133
128
  .Button--blue.Button--outline:active::before, .Button--blue.Button--outline.Button--selected::before {
134
- background-color: var(--colorsActivePrimary, rgba(2, 101, 220, 0.3));
129
+ background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
135
130
  }
136
131
  .Button--blue.Button--subtle {
137
132
  background-color: transparent;
138
133
  color: var(--colorsTextPrimary, #0265dc);
139
134
  }
140
135
  .Button--blue.Button--subtle:hover::before {
141
- background-color: var(--colorsHoverPrimary, rgba(2, 101, 220, 0.1));
136
+ background-color: var(--colorsHoverDefault, rgba(20, 20, 20, 0.08));
142
137
  }
143
138
  .Button--blue.Button--subtle:active::before, .Button--blue.Button--subtle.Button--selected::before {
144
- background-color: var(--colorsActivePrimary, rgba(2, 101, 220, 0.3));
139
+ background-color: var(--colorsActiveDefault, rgba(20, 20, 20, 0.2));
145
140
  }
146
141
 
147
142
  .Button--red {
@@ -151,15 +146,15 @@ button.Button {
151
146
  .Button--red:hover::before {
152
147
  background-color: var(--colorsHoverOnCritical, rgba(255, 255, 255, 0.16));
153
148
  }
149
+ .Button--red:focus-visible {
150
+ outline: solid 2px var(--colorsBorderCritical, #e13212);
151
+ }
154
152
  .Button--red:active::before, .Button--red.Button--selected::before {
155
153
  background-color: var(--colorsActiveOnCritical, rgba(20, 20, 20, 0.16));
156
154
  }
157
- .Button--red.Button--focus-visible:focus {
158
- box-shadow: 0 0 0 3px var(--colorsFocusRingCritical, #ffb2a0);
159
- }
160
155
  .Button--red.Button--outline {
161
156
  background-color: transparent;
162
- box-shadow: inset 0 0 0 1px var(--colorsBorderCritical, #e13212);
157
+ box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #949596);
163
158
  color: var(--colorsTextCritical, #bf2a00);
164
159
  }
165
160
  .Button--red.Button--outline:hover::before {
@@ -168,9 +163,6 @@ button.Button {
168
163
  .Button--red.Button--outline:active::before, .Button--red.Button--outline.Button--selected::before {
169
164
  background-color: var(--colorsActiveCritical, rgba(225, 50, 18, 0.3));
170
165
  }
171
- .Button--red.Button--outline.Button--focus-visible:focus {
172
- box-shadow: inset 0 0 0 1px var(--colorsBorderCritical, #e13212), 0 0 0 3px var(--colorsFocusRingCritical, #ffb2a0);
173
- }
174
166
  .Button--red.Button--subtle {
175
167
  background-color: transparent;
176
168
  color: var(--colorsTextCritical, #bf2a00);
@@ -183,19 +175,14 @@ button.Button {
183
175
  }
184
176
 
185
177
  .Button--disabled, .Button--disabled.Button--outline, .Button--disabled.Button--subtle {
186
- background: var(--colorsSurfaceGrey, #eeeeee);
187
- color: var(--colorsTextOnGrey, #444445);
178
+ background: #bcbcbd;
179
+ color: #606162;
180
+ box-shadow: none;
188
181
  opacity: 0.4;
189
182
  }
190
183
  .Button--disabled svg, .Button--disabled.Button--outline svg, .Button--disabled.Button--subtle svg {
191
184
  opacity: 0.6;
192
185
  }
193
- .Button--disabled.Button--outline, .Button--disabled.Button--subtle {
194
- background: transparent;
195
- }
196
- .Button--disabled.Button--outline {
197
- box-shadow: inset 0 0 0 1px var(--colorsBorderDefault, #444445);
198
- }
199
186
 
200
187
  .Button--inactive {
201
188
  pointer-events: none;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Button/Button.scss","../../../src/utilities/_component-reset.scss","../../../src/utilities/_font-smoothing.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;AC0CA;ACvCC;EACA;AAEA;EACA;ECLC;EACA;EF2CD;EACA,kBArCoB;EAsCpB;EACA,eG5BiB;EH6BjB;EACA,OA/Cc;EAgDd;EACA;EACA,WGoFa;EHnFb,aGsDsB;EHrDtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;EAED;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC,kBA1Da;;AAgEd;EACC,kBAzDc;;AA6DhB;EACC;EACA,YAjFc;;AAoFf;EACC;EACA;;AAGC;EACC,kBA5EY;;AAkFb;EACC,kBA3Ea;;AA+Ef;EAAgC;;AAGjC;EACC;;AAGC;EACC,kBA/FY;;AAqGb;EACC,kBA9Fa;;;AAsGjB;EACC,WGHa;EHIb;;;AAGD;EACC,SGpBW;EHqBX;;AAEA;EACC;;AAEA;EACC;EACA;;;AAKH;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKA;EAKC,OAjLa;;;AAqLf;EACC,kBA/KoB;EAgLpB,OApLiB;;AAuLhB;EACC,kBAhKgB;;AAsKjB;EACC,kBA/JiB;;AAmKnB;EACC;EACA;EACA,OAxMa;;AA2MZ;EACC,kBAtLY;;AA0Ld;EAAgC;;AAI/B;EACC,kBAvLa;;AA4LhB;EACC;EACA,OA5Na;;AA+NZ;EACC,kBA1MY;;AAgNb;EACC,kBAzMa;;;AA+MjB;EACC,kBAvOqB;EAwOrB,OA5OkB;;AA+OjB;EACC,kBAxNiB;;AA8NlB;EACC,kBAvNkB;;AA2NpB;EAAgC,YAjPhB;;AAmPhB;EACC;EACA;EACA,OAlQc;;AAqQb;EACC,kBAhPa;;AAsPd;EACC,kBA/Oc;;AAmPhB;EAAgC;;AAGjC;EACC;EACA,OAtRc;;AAyRb;EACC,kBApQa;;AA0Qd;EACC,kBAnQc;;;AA2QjB;EAGC,YAxSmB;EAySnB,OA/Sa;EAgTb;;AAEA;EACC,SGrMgB;;AHyMlB;EAEC;;AAGD;EACC;;;AAIF;EAAoB;;;AAGpB;EACC,WGhMa;EHiMb;;AAEA;EACC,WGlMY;EHmMZ;;;AAMF;EAAwB,WG3MV;;;AH6Md;EACC;;AACA;EAAsB,SGlNR;;;AHqNf;EACC;;AACA;EAAsB;;;AAIvB;EAAgB;;;AAGhB;EAAsB;;;AAItB;EACC;IAAK;;;AAGN;EACC,SG3PkB;EH4PlB;EACA;;AAEA;EAAmB;;;AAGpB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsB,eGvQV;;;AHwQZ;EAAuB,cGxQX;;;AH0QZ;EAA2B;;;AAE3B;EACC;EACA;;;AAGD;EAAoD","file":"Button.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Button/Button.scss","../../../src/utilities/_component-reset.scss","../../../src/utilities/_font-smoothing.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../node_modules/@servicetitan/tokens/core/appearances/light.scss"],"names":[],"mappings":"AAAA;ACqCA;AClCC;EACA;AAEA;EACA;ECLC;EACA;EFsCD;EACA,kBAhCoB;EAiCpB;EACA,eGtBiB;EHuBjB;EACA,OA1Cc;EA2Cd;EACA;EACA,WGyFa;EHxFb,aG2DsB;EH1DtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACC;EAID;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC,kBAzDa;;AA+Dd;EACC,kBA1Dc;;AA8DhB;EACC;EACA,SA9Ec;;AAiFf;EACC,kBAtFmB;EAuFnB;;AAGC;EACC,kBA5EY;;AAkFb;EACC,kBA7Ea;;AAkFhB;EACC;;AAGC;EACC,kBA7FY;;AAmGb;EACC,kBA9Fa;;;AAsGjB;EACC,WGCa;EHAb;;;AAGD;EACC,SGhBW;EHiBX;;AAEA;EACC;;AAEA;EACC;EACA;;;AAKH;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKA;EAKC,OA7Ka;;;AAiLf;EACC,kBA3KoB;EA4KpB,OAhLiB;;AAmLhB;EACC,kBA/Ja;;AAqKd;EACC,kBAhKc;;AAoKhB;EACC;EACA;EACA,OApMa;;AAuMZ;EACC,kBApLY;;AA0Lb;EACC,kBArLa;;AA0LhB;EACC;EACA,OAtNa;;AAyNZ;EACC,kBAtMY;;AA4Mb;EACC,kBAvMa;;;AA6MjB;EACC,kBAjOqB;EAkOrB,OAtOkB;;AAyOjB;EACC,kBArNiB;;AAyNnB;EACC,SApOe;;AAyOf;EACC,kBA1NkB;;AA8NpB;EACC;EACA;EACA,OA9Pc;;AAiQb;EACC,kBA9Oa;;AAoPd;EACC,kBA/Oc;;AAoPjB;EACC;EACA,OAhRc;;AAmRb;EACC,kBAhQa;;AAsQd;EACC,kBAjQc;;;AAyQjB;EAGC,YI7PkC;EJ8PlC,OIjPyB;EJkPzB;EACA;;AAEA;EACC,SGhMgB;;;AHqMnB;EAAoB;;;AAGpB;EACC,WGlLa;EHmLb;;AAEA;EACC,WGpLY;EHqLZ;;;AAMF;EAAwB,WG7LV;;;AH+Ld;EACC;;AACA;EAAsB,SGpMR;;;AHuMf;EACC;;AACA;EAAsB;;;AAIvB;EAAgB;;;AAGhB;EAAsB;;;AAItB;EACC;IAAK;;;AAGN;EACC,SG7OkB;EH8OlB;EACA;;AAEA;EAAmB;;;AAGpB;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsB,eGzPV;;;AH0PZ;EAAuB,cG1PX;;;AH4PZ;EAA2B;;;AAE3B;EACC;EACA;;;AAGD;EAAoD","file":"Button.css"}
@@ -13,7 +13,6 @@ import React from 'react';
13
13
  import classnames from 'classnames';
14
14
  import { Icon } from '../Icon';
15
15
  import { getContent } from '../../utilities/getContent';
16
- import { useFocusVisible } from '../../hooks/useFocusVisible';
17
16
  const defaultProps = {
18
17
  el: 'button',
19
18
  };
@@ -22,9 +21,6 @@ const defaultProps = {
22
21
  */
23
22
  export const Button = React.forwardRef((_a, ref) => {
24
23
  var { children, className, color = 'default', content, el: Element = defaultProps.el, fill = 'solid', full, href, icon, iconName, iconPosition = 'left', inactive, large, loading, negative, outline, primary, selected, size = 'medium', small, text, type, width = 'auto', xsmall, onFocus, onBlur } = _a, props = __rest(_a, ["children", "className", "color", "content", "el", "fill", "full", "href", "icon", "iconName", "iconPosition", "inactive", "large", "loading", "negative", "outline", "primary", "selected", "size", "small", "text", "type", "width", "xsmall", "onFocus", "onBlur"]);
25
- const newRef = React.useRef(null);
26
- const itemRef = ref ? ref : newRef;
27
- const { isFocusVisible, focusFunction, blurFunction } = useFocusVisible(itemRef, onBlur, onFocus);
28
24
  const getTagName = () => {
29
25
  // If `el` is passed in and isn't default, it is always used
30
26
  if (Element !== defaultProps.el)
@@ -147,7 +143,6 @@ export const Button = React.forwardRef((_a, ref) => {
147
143
  'Button--inactive': preventClicks,
148
144
  'Button--loading': loading,
149
145
  'Button--icon-only': !hasContent(),
150
- 'Button--focus-visible': isFocusVisible,
151
146
  'Button--selected': selected,
152
147
  });
153
148
  const ButtonElement = getTagName();
@@ -155,7 +150,7 @@ export const Button = React.forwardRef((_a, ref) => {
155
150
  !props['aria-label'] &&
156
151
  console.warn(`Accessibility warning:
157
152
  \naria-label attribute does not exist or is empty for button that does not have inner text that is visible to screen readers`);
158
- return (React.createElement(ButtonElement, Object.assign({ className: ButtonClasses, disabled: preventClicks, href: href, role: getTagName() !== 'button' ? 'button' : null, style: { width: getWidthValue() }, tabIndex: getTabIndex(), onFocus: focusFunction, onBlur: blurFunction, ref: itemRef, "data-anvil-component": "Button" }, getTypeAttribute(), props),
153
+ return (React.createElement(ButtonElement, Object.assign({ className: ButtonClasses, disabled: preventClicks, href: href, role: getTagName() !== 'button' ? 'button' : null, style: { width: getWidthValue() }, tabIndex: getTabIndex(), ref: ref, "data-anvil-component": "Button" }, getTypeAttribute(), props),
159
154
  React.createElement("span", { className: "Button__content" },
160
155
  iconPosition === 'left' && renderIcon(),
161
156
  getContent({ children, content }),
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { FC } from 'react';\nimport classnames from 'classnames';\nimport { Icon, IconPropsStrict } from '../Icon';\nimport { getContent } from '../../utilities/getContent';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\n\n/**\n * Button properties\n */\nexport interface ButtonPropsStrict {\n\t/** Button Color */\n\tcolor?: 'primary' | 'blue' | 'default' | 'grey' | 'negative' | 'red';\n\n\t/** Additional classes */\n\tclassName?: string;\n\n\t/** Disabled button, unclickable */\n\tdisabled?: boolean;\n\n\t/** Set the component HTML element. Warning: Using non-standard markup can produce accessibility issues. */\n\tel?: 'button' | 'a' | 'span';\n\n\t/** Button Type. 'none' is deprecated, use 'subtle' instead. */\n\tfill?: 'solid' | 'outline' | 'none' | 'subtle';\n\n\t/** Shortcut for `width=\"full\"` */\n\tfull?: boolean;\n\n\t/** URL for Button. Turns into `<a>` tag. */\n\thref?: string;\n\n\t/** Custom Icon element. Use `iconName` to use default element. */\n\ticon?: React.ReactElement;\n\n\t/** Name of Icon to be inside Button. Use `icon` to pass a custom element. */\n\ticonName?: IconPropsStrict['name'];\n\n\t/** Position the icon */\n\ticonPosition?: 'left' | 'right';\n\n\t/** Unclicable button */\n\tinactive?: boolean;\n\n\t/** Shortcut for `size=\"large\"` */\n\tlarge?: boolean;\n\n\t/** Button with loading indicator */\n\tloading?: boolean;\n\n\t/** Shortcut for `color=\"negative\"` */\n\tnegative?: boolean;\n\n\t/** Shortcut for `fill=\"outline\"` */\n\toutline?: boolean;\n\n\t/** Shortcut for `color=\"primary\"` */\n\tprimary?: boolean;\n\n\t/** Selected State */\n\tselected?: boolean;\n\n\t/** Button Size */\n\tsize?: 'xsmall' | 'small' | 'medium' | 'large';\n\n\t/** Shortcut for `size=\"small\"` */\n\tsmall?: boolean;\n\n\t/** Deprecated. Shortcut for `fill=\"subtle\"` */\n\ttext?: boolean;\n\n\t/** Button Width */\n\twidth?: string | number | 'auto' | 'full';\n\n\t/** Shortcut for `size=\"small\"` */\n\txsmall?: boolean;\n}\n\nexport interface ButtonProps extends ButtonPropsStrict {\n\t/** Unstrict Props */\n\t[propName: string]: any;\n}\n\nconst defaultProps = {\n\tel: 'button',\n};\n\n/**\n * **Buttons** provide a possible user actions\n */\nexport const Button: FC<ButtonProps> = React.forwardRef(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tcolor = 'default',\n\t\t\tcontent,\n\t\t\tel: Element = defaultProps.el,\n\t\t\tfill = 'solid',\n\t\t\tfull,\n\t\t\thref,\n\t\t\ticon,\n\t\t\ticonName,\n\t\t\ticonPosition = 'left',\n\t\t\tinactive,\n\t\t\tlarge,\n\t\t\tloading,\n\t\t\tnegative,\n\t\t\toutline,\n\t\t\tprimary,\n\t\t\tselected,\n\t\t\tsize = 'medium',\n\t\t\tsmall,\n\t\t\ttext,\n\t\t\ttype,\n\t\t\twidth = 'auto',\n\t\t\txsmall,\n\t\t\tonFocus,\n\t\t\tonBlur,\n\t\t\t...props\n\t\t},\n\t\tref: React.RefObject<HTMLElement>\n\t) => {\n\t\tconst newRef = React.useRef(null);\n\t\tconst itemRef = ref ? ref : newRef;\n\n\t\tconst { isFocusVisible, focusFunction, blurFunction } = useFocusVisible(\n\t\t\titemRef,\n\t\t\tonBlur,\n\t\t\tonFocus\n\t\t);\n\n\t\tconst getTagName = () => {\n\t\t\t// If `el` is passed in and isn't default, it is always used\n\t\t\tif (Element !== defaultProps.el) return Element;\n\n\t\t\t// If `href` is passed in, the element becomes an anchor\n\t\t\tif (href) return 'a';\n\n\t\t\t// Is default, use it\n\t\t\treturn Element;\n\t\t};\n\n\t\tconst getTabIndex = () => {\n\t\t\tif (props.tabIndex) return props.tabIndex;\n\t\t\tif (getTagName() !== 'button') 0;\n\t\t\treturn null;\n\t\t};\n\n\t\tconst getColorClass = () => {\n\t\t\tlet realColor = color;\n\n\t\t\t// Override string props with boolean values\n\t\t\tif (primary) realColor = 'primary';\n\t\t\tif (negative) realColor = 'negative';\n\n\t\t\tconst ButtonColorClasses: any = {\n\t\t\t\tprimary: 'Button--blue',\n\t\t\t\tblue: 'Button--blue',\n\t\t\t\tdefault: 'Button--grey',\n\t\t\t\tgrey: 'Button--grey',\n\t\t\t\tnegative: 'Button--red',\n\t\t\t\tred: 'Button--red',\n\t\t\t};\n\n\t\t\treturn ButtonColorClasses[realColor];\n\t\t};\n\n\t\tconst getFillClass = () => {\n\t\t\tlet realFill = fill;\n\t\t\tif (outline) realFill = 'outline';\n\t\t\tif (text || fill === 'subtle' || fill === 'none')\n\t\t\t\trealFill = 'subtle';\n\n\t\t\tif (realFill === 'solid') return 'Button--solid';\n\t\t\tif (realFill === 'outline') return 'Button--outline';\n\t\t\tif (realFill === 'subtle') return 'Button--subtle';\n\t\t};\n\n\t\tconst getSizeClass = () => {\n\t\t\tlet realSize = size;\n\t\t\tif (xsmall) realSize = 'xsmall';\n\t\t\tif (small) realSize = 'small';\n\t\t\tif (large) realSize = 'large';\n\n\t\t\tif (realSize === 'xsmall') return 'Button--xsmall';\n\t\t\tif (realSize === 'small') return 'Button--small';\n\t\t\tif (realSize === 'large') return 'Button--large';\n\t\t};\n\n\t\tconst getWidth = () => {\n\t\t\tif (full) return 'full';\n\t\t\treturn width;\n\t\t};\n\n\t\tconst getWidthValue = () => {\n\t\t\tconst width = getWidth();\n\t\t\treturn width !== 'auto' && width !== 'full' ? width : false;\n\t\t};\n\n\t\tconst getWidthClass = () => {\n\t\t\treturn getWidth() === 'full' ? 'Button--full' : null;\n\t\t};\n\n\t\tconst getTypeAttribute = () => {\n\t\t\tif (type) return { type };\n\t\t\tif (getTagName() === 'button') return { type: 'button' };\n\t\t};\n\n\t\tReact.useEffect(() => {\n\t\t\tif (text)\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `text` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (fill === 'none')\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `fill='none'` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'button' && !!getTypeAttribute())\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only button elements can have type attributes.'\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'a' && href)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only anchor elements can have href attributes.'\n\t\t\t\t);\n\t\t});\n\n\t\tconst hasContent = () => {\n\t\t\tif (children != null) return true;\n\t\t\tif (content != null) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst hasIcon = () => {\n\t\t\tif (iconName || icon) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst renderIcon = () => {\n\t\t\tif (!hasIcon()) return;\n\n\t\t\tlet ButtonIcon = null;\n\t\t\tif (iconName)\n\t\t\t\tButtonIcon = (\n\t\t\t\t\t<Icon className=\"Button__icon-svg\" name={iconName} />\n\t\t\t\t);\n\t\t\tif (icon) ButtonIcon = icon;\n\n\t\t\tconst ButtonIconClasses = classnames('Button__icon', {\n\t\t\t\t'Button__icon--left': hasContent() && iconPosition === 'left',\n\t\t\t\t'Button__icon--right': hasContent() && iconPosition === 'right',\n\t\t\t});\n\n\t\t\treturn <span className={ButtonIconClasses}>{ButtonIcon}</span>;\n\t\t};\n\n\t\tconst preventClicks = props.disabled || inactive || loading;\n\n\t\tconst ButtonClasses = classnames(\n\t\t\t'Button',\n\t\t\tclassName,\n\t\t\tgetColorClass(),\n\t\t\tgetFillClass(),\n\t\t\tgetSizeClass(),\n\t\t\tgetWidthClass(),\n\t\t\t{\n\t\t\t\t'Button--disabled': props.disabled,\n\t\t\t\t'Button--inactive': preventClicks,\n\t\t\t\t'Button--loading': loading,\n\t\t\t\t'Button--icon-only': !hasContent(),\n\t\t\t\t'Button--focus-visible': isFocusVisible,\n\t\t\t\t'Button--selected': selected,\n\t\t\t}\n\t\t);\n\n\t\tconst ButtonElement: any = getTagName();\n\n\t\t!hasContent() &&\n\t\t\t!props['aria-label'] &&\n\t\t\tconsole.warn(\n\t\t\t\t`Accessibility warning:\n\t\t\t\t\\naria-label attribute does not exist or is empty for button that does not have inner text that is visible to screen readers`\n\t\t\t);\n\n\t\treturn (\n\t\t\t<ButtonElement\n\t\t\t\tclassName={ButtonClasses}\n\t\t\t\tdisabled={preventClicks}\n\t\t\t\thref={href}\n\t\t\t\trole={getTagName() !== 'button' ? 'button' : null}\n\t\t\t\tstyle={{ width: getWidthValue() }}\n\t\t\t\ttabIndex={getTabIndex()}\n\t\t\t\tonFocus={focusFunction}\n\t\t\t\tonBlur={blurFunction}\n\t\t\t\tref={itemRef}\n\t\t\t\tdata-anvil-component=\"Button\"\n\t\t\t\t{...getTypeAttribute()}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"Button__content\">\n\t\t\t\t\t{iconPosition === 'left' && renderIcon()}\n\t\t\t\t\t{getContent({ children, content })}\n\t\t\t\t\t{iconPosition === 'right' && renderIcon()}\n\t\t\t\t</span>\n\t\t\t</ButtonElement>\n\t\t);\n\t}\n);\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { FC } from 'react';\nimport classnames from 'classnames';\nimport { Icon, IconPropsStrict } from '../Icon';\nimport { getContent } from '../../utilities/getContent';\n\n/**\n * Button properties\n */\nexport interface ButtonPropsStrict {\n\t/** Button Color */\n\tcolor?: 'primary' | 'blue' | 'default' | 'grey' | 'negative' | 'red';\n\n\t/** Additional classes */\n\tclassName?: string;\n\n\t/** Disabled button, unclickable */\n\tdisabled?: boolean;\n\n\t/** Set the component HTML element. Warning: Using non-standard markup can produce accessibility issues. */\n\tel?: 'button' | 'a' | 'span';\n\n\t/** Button Type. 'none' is deprecated, use 'subtle' instead. */\n\tfill?: 'solid' | 'outline' | 'none' | 'subtle';\n\n\t/** Shortcut for `width=\"full\"` */\n\tfull?: boolean;\n\n\t/** URL for Button. Turns into `<a>` tag. */\n\thref?: string;\n\n\t/** Custom Icon element. Use `iconName` to use default element. */\n\ticon?: React.ReactElement;\n\n\t/** Name of Icon to be inside Button. Use `icon` to pass a custom element. */\n\ticonName?: IconPropsStrict['name'];\n\n\t/** Position the icon */\n\ticonPosition?: 'left' | 'right';\n\n\t/** Unclicable button */\n\tinactive?: boolean;\n\n\t/** Shortcut for `size=\"large\"` */\n\tlarge?: boolean;\n\n\t/** Button with loading indicator */\n\tloading?: boolean;\n\n\t/** Shortcut for `color=\"negative\"` */\n\tnegative?: boolean;\n\n\t/** Shortcut for `fill=\"outline\"` */\n\toutline?: boolean;\n\n\t/** Shortcut for `color=\"primary\"` */\n\tprimary?: boolean;\n\n\t/** Selected State */\n\tselected?: boolean;\n\n\t/** Button Size */\n\tsize?: 'xsmall' | 'small' | 'medium' | 'large';\n\n\t/** Shortcut for `size=\"small\"` */\n\tsmall?: boolean;\n\n\t/** Deprecated. Shortcut for `fill=\"subtle\"` */\n\ttext?: boolean;\n\n\t/** Button Width */\n\twidth?: string | number | 'auto' | 'full';\n\n\t/** Shortcut for `size=\"small\"` */\n\txsmall?: boolean;\n}\n\nexport interface ButtonProps extends ButtonPropsStrict {\n\t/** Unstrict Props */\n\t[propName: string]: any;\n}\n\nconst defaultProps = {\n\tel: 'button',\n};\n\n/**\n * **Buttons** provide a possible user actions\n */\nexport const Button: FC<ButtonProps> = React.forwardRef(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tcolor = 'default',\n\t\t\tcontent,\n\t\t\tel: Element = defaultProps.el,\n\t\t\tfill = 'solid',\n\t\t\tfull,\n\t\t\thref,\n\t\t\ticon,\n\t\t\ticonName,\n\t\t\ticonPosition = 'left',\n\t\t\tinactive,\n\t\t\tlarge,\n\t\t\tloading,\n\t\t\tnegative,\n\t\t\toutline,\n\t\t\tprimary,\n\t\t\tselected,\n\t\t\tsize = 'medium',\n\t\t\tsmall,\n\t\t\ttext,\n\t\t\ttype,\n\t\t\twidth = 'auto',\n\t\t\txsmall,\n\t\t\tonFocus,\n\t\t\tonBlur,\n\t\t\t...props\n\t\t},\n\t\tref: React.RefObject<HTMLElement>\n\t) => {\n\t\tconst getTagName = () => {\n\t\t\t// If `el` is passed in and isn't default, it is always used\n\t\t\tif (Element !== defaultProps.el) return Element;\n\n\t\t\t// If `href` is passed in, the element becomes an anchor\n\t\t\tif (href) return 'a';\n\n\t\t\t// Is default, use it\n\t\t\treturn Element;\n\t\t};\n\n\t\tconst getTabIndex = () => {\n\t\t\tif (props.tabIndex) return props.tabIndex;\n\t\t\tif (getTagName() !== 'button') 0;\n\t\t\treturn null;\n\t\t};\n\n\t\tconst getColorClass = () => {\n\t\t\tlet realColor = color;\n\n\t\t\t// Override string props with boolean values\n\t\t\tif (primary) realColor = 'primary';\n\t\t\tif (negative) realColor = 'negative';\n\n\t\t\tconst ButtonColorClasses: any = {\n\t\t\t\tprimary: 'Button--blue',\n\t\t\t\tblue: 'Button--blue',\n\t\t\t\tdefault: 'Button--grey',\n\t\t\t\tgrey: 'Button--grey',\n\t\t\t\tnegative: 'Button--red',\n\t\t\t\tred: 'Button--red',\n\t\t\t};\n\n\t\t\treturn ButtonColorClasses[realColor];\n\t\t};\n\n\t\tconst getFillClass = () => {\n\t\t\tlet realFill = fill;\n\t\t\tif (outline) realFill = 'outline';\n\t\t\tif (text || fill === 'subtle' || fill === 'none')\n\t\t\t\trealFill = 'subtle';\n\n\t\t\tif (realFill === 'solid') return 'Button--solid';\n\t\t\tif (realFill === 'outline') return 'Button--outline';\n\t\t\tif (realFill === 'subtle') return 'Button--subtle';\n\t\t};\n\n\t\tconst getSizeClass = () => {\n\t\t\tlet realSize = size;\n\t\t\tif (xsmall) realSize = 'xsmall';\n\t\t\tif (small) realSize = 'small';\n\t\t\tif (large) realSize = 'large';\n\n\t\t\tif (realSize === 'xsmall') return 'Button--xsmall';\n\t\t\tif (realSize === 'small') return 'Button--small';\n\t\t\tif (realSize === 'large') return 'Button--large';\n\t\t};\n\n\t\tconst getWidth = () => {\n\t\t\tif (full) return 'full';\n\t\t\treturn width;\n\t\t};\n\n\t\tconst getWidthValue = () => {\n\t\t\tconst width = getWidth();\n\t\t\treturn width !== 'auto' && width !== 'full' ? width : false;\n\t\t};\n\n\t\tconst getWidthClass = () => {\n\t\t\treturn getWidth() === 'full' ? 'Button--full' : null;\n\t\t};\n\n\t\tconst getTypeAttribute = () => {\n\t\t\tif (type) return { type };\n\t\t\tif (getTagName() === 'button') return { type: 'button' };\n\t\t};\n\n\t\tReact.useEffect(() => {\n\t\t\tif (text)\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `text` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (fill === 'none')\n\t\t\t\tconsole.warn(\n\t\t\t\t\t\"@servicetitan/design-system: The `fill='none'` prop of the Button component has been deprecated. Please use `fill='subtle'` instead.\"\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'button' && !!getTypeAttribute())\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only button elements can have type attributes.'\n\t\t\t\t);\n\n\t\t\tif (getTagName() !== 'a' && href)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'@servicetitan/design-system: The Button component is using incompatible props. Only anchor elements can have href attributes.'\n\t\t\t\t);\n\t\t});\n\n\t\tconst hasContent = () => {\n\t\t\tif (children != null) return true;\n\t\t\tif (content != null) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst hasIcon = () => {\n\t\t\tif (iconName || icon) return true;\n\t\t\treturn false;\n\t\t};\n\n\t\tconst renderIcon = () => {\n\t\t\tif (!hasIcon()) return;\n\n\t\t\tlet ButtonIcon = null;\n\t\t\tif (iconName)\n\t\t\t\tButtonIcon = (\n\t\t\t\t\t<Icon className=\"Button__icon-svg\" name={iconName} />\n\t\t\t\t);\n\t\t\tif (icon) ButtonIcon = icon;\n\n\t\t\tconst ButtonIconClasses = classnames('Button__icon', {\n\t\t\t\t'Button__icon--left': hasContent() && iconPosition === 'left',\n\t\t\t\t'Button__icon--right': hasContent() && iconPosition === 'right',\n\t\t\t});\n\n\t\t\treturn <span className={ButtonIconClasses}>{ButtonIcon}</span>;\n\t\t};\n\n\t\tconst preventClicks = props.disabled || inactive || loading;\n\n\t\tconst ButtonClasses = classnames(\n\t\t\t'Button',\n\t\t\tclassName,\n\t\t\tgetColorClass(),\n\t\t\tgetFillClass(),\n\t\t\tgetSizeClass(),\n\t\t\tgetWidthClass(),\n\t\t\t{\n\t\t\t\t'Button--disabled': props.disabled,\n\t\t\t\t'Button--inactive': preventClicks,\n\t\t\t\t'Button--loading': loading,\n\t\t\t\t'Button--icon-only': !hasContent(),\n\t\t\t\t'Button--selected': selected,\n\t\t\t}\n\t\t);\n\n\t\tconst ButtonElement: any = getTagName();\n\n\t\t!hasContent() &&\n\t\t\t!props['aria-label'] &&\n\t\t\tconsole.warn(\n\t\t\t\t`Accessibility warning:\n\t\t\t\t\\naria-label attribute does not exist or is empty for button that does not have inner text that is visible to screen readers`\n\t\t\t);\n\n\t\treturn (\n\t\t\t<ButtonElement\n\t\t\t\tclassName={ButtonClasses}\n\t\t\t\tdisabled={preventClicks}\n\t\t\t\thref={href}\n\t\t\t\trole={getTagName() !== 'button' ? 'button' : null}\n\t\t\t\tstyle={{ width: getWidthValue() }}\n\t\t\t\ttabIndex={getTabIndex()}\n\t\t\t\tref={ref}\n\t\t\t\tdata-anvil-component=\"Button\"\n\t\t\t\t{...getTypeAttribute()}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"Button__content\">\n\t\t\t\t\t{iconPosition === 'left' && renderIcon()}\n\t\t\t\t\t{getContent({ children, content })}\n\t\t\t\t\t{iconPosition === 'right' && renderIcon()}\n\t\t\t\t</span>\n\t\t\t</ButtonElement>\n\t\t);\n\t}\n);\n"]}