@razorpay/blade 11.7.0 → 11.8.1

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 (67) hide show
  1. package/build/lib/native/components/Button/BaseButton/AnimatedButtonContent.native.js +16 -0
  2. package/build/lib/native/components/Button/BaseButton/AnimatedButtonContent.native.js.map +1 -0
  3. package/build/lib/native/components/Button/BaseButton/BaseButton.js +7 -5
  4. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  5. package/build/lib/native/components/Button/BaseButton/StyledBaseButton.native.js +1 -1
  6. package/build/lib/native/components/Button/BaseButton/StyledBaseButton.native.js.map +1 -1
  7. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +7 -2
  8. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  9. package/build/lib/native/components/Button/BaseButton/getStyledBaseButtonStyles.js +1 -1
  10. package/build/lib/native/components/Button/BaseButton/getStyledBaseButtonStyles.js.map +1 -1
  11. package/build/lib/native/components/ButtonGroup/ButtonGroup.native.js +7 -0
  12. package/build/lib/native/components/ButtonGroup/ButtonGroup.native.js.map +1 -0
  13. package/build/lib/native/components/ButtonGroup/ButtonGroupContext.js +6 -0
  14. package/build/lib/native/components/ButtonGroup/ButtonGroupContext.js.map +1 -0
  15. package/build/lib/native/components/Dropdown/useDropdown.js +1 -1
  16. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  17. package/build/lib/native/components/index.js +1 -0
  18. package/build/lib/native/components/index.js.map +1 -1
  19. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  20. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  21. package/build/lib/web/development/components/Button/BaseButton/AnimatedButtonContent.web.js +18 -0
  22. package/build/lib/web/development/components/Button/BaseButton/AnimatedButtonContent.web.js.map +1 -0
  23. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +127 -71
  24. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  25. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +11 -31
  26. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  27. package/build/lib/web/development/components/Button/BaseButton/getStyledBaseButtonStyles.js +6 -2
  28. package/build/lib/web/development/components/Button/BaseButton/getStyledBaseButtonStyles.js.map +1 -1
  29. package/build/lib/web/development/components/ButtonGroup/ButtonGroup.web.js +158 -0
  30. package/build/lib/web/development/components/ButtonGroup/ButtonGroup.web.js.map +1 -0
  31. package/build/lib/web/development/components/ButtonGroup/ButtonGroupContext.js +11 -0
  32. package/build/lib/web/development/components/ButtonGroup/ButtonGroupContext.js.map +1 -0
  33. package/build/lib/web/development/components/ButtonGroup/StyledButtonGroup.js +46 -0
  34. package/build/lib/web/development/components/ButtonGroup/StyledButtonGroup.js.map +1 -0
  35. package/build/lib/web/development/components/ButtonGroup/index.js +2 -0
  36. package/build/lib/web/development/components/ButtonGroup/index.js.map +1 -0
  37. package/build/lib/web/development/components/Dropdown/useDropdown.js +3 -1
  38. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  39. package/build/lib/web/development/components/index.js +2 -0
  40. package/build/lib/web/development/components/index.js.map +1 -1
  41. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +1 -0
  42. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  43. package/build/lib/web/production/components/Button/BaseButton/AnimatedButtonContent.web.js +18 -0
  44. package/build/lib/web/production/components/Button/BaseButton/AnimatedButtonContent.web.js.map +1 -0
  45. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +127 -71
  46. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  47. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +11 -31
  48. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  49. package/build/lib/web/production/components/Button/BaseButton/getStyledBaseButtonStyles.js +6 -2
  50. package/build/lib/web/production/components/Button/BaseButton/getStyledBaseButtonStyles.js.map +1 -1
  51. package/build/lib/web/production/components/ButtonGroup/ButtonGroup.web.js +158 -0
  52. package/build/lib/web/production/components/ButtonGroup/ButtonGroup.web.js.map +1 -0
  53. package/build/lib/web/production/components/ButtonGroup/ButtonGroupContext.js +11 -0
  54. package/build/lib/web/production/components/ButtonGroup/ButtonGroupContext.js.map +1 -0
  55. package/build/lib/web/production/components/ButtonGroup/StyledButtonGroup.js +46 -0
  56. package/build/lib/web/production/components/ButtonGroup/StyledButtonGroup.js.map +1 -0
  57. package/build/lib/web/production/components/ButtonGroup/index.js +2 -0
  58. package/build/lib/web/production/components/ButtonGroup/index.js.map +1 -0
  59. package/build/lib/web/production/components/Dropdown/useDropdown.js +3 -1
  60. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  61. package/build/lib/web/production/components/index.js +2 -0
  62. package/build/lib/web/production/components/index.js.map +1 -1
  63. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +1 -0
  64. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  65. package/build/types/components/index.d.ts +68 -1
  66. package/build/types/components/index.native.d.ts +42 -1
  67. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyledButtonGroup.js","sources":["../../../../../../src/components/ButtonGroup/StyledButtonGroup.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { StyledButtonGroupProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeBorderSize } from '~utils';\nimport { getBackgroundColorToken } from '~components/Button/BaseButton/BaseButton';\nimport getIn from '~utils/lodashButBetter/get';\n\nconst StyledButtonGroup = styled(BaseBox)<StyledButtonGroupProps>(\n ({ theme, isDisabled, variant = 'primary', color, isFullWidth }) => {\n return {\n display: 'flex',\n width: isFullWidth ? '100%' : 'fit-content',\n overflow: 'hidden',\n borderRadius: makeBorderSize(theme.border.radius.medium),\n\n ...(variant === 'secondary' && {\n borderColor: getIn(\n theme.colors,\n getBackgroundColorToken({\n property: 'border',\n variant,\n color,\n state: isDisabled ? 'disabled' : 'default',\n }),\n ),\n borderStyle: 'solid',\n borderWidth: makeBorderSize(theme.border.width.thin),\n }),\n\n 'button[role=\"button\"]': {\n borderRadius: 0,\n border: 'none',\n flex: isFullWidth ? 1 : 'auto',\n },\n };\n },\n);\n\nexport { StyledButtonGroup };\n"],"names":["StyledButtonGroup","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isDisabled","_ref$variant","variant","color","isFullWidth","_objectSpread","display","width","overflow","borderRadius","makeBorderSize","border","radius","medium","borderColor","getIn","colors","getBackgroundColorToken","property","state","borderStyle","borderWidth","thin","flex"],"mappings":";;;;;;;;;;;AAOA,IAAMA,iBAAiB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,mBAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CACvC,CAAA,CAAA,UAAAC,IAAA,EAAoE;AAAA,EAAA,IAAjEC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAAC,YAAA,GAAAH,IAAA,CAAEI,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,YAAA;IAAEE,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAEC,WAAW,GAAAN,IAAA,CAAXM,WAAW,CAAA;EAC3D,OAAAC,aAAA,CAAAA,aAAA,CAAA;AACEC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,KAAK,EAAEH,WAAW,GAAG,MAAM,GAAG,aAAa;AAC3CI,IAAAA,QAAQ,EAAE,QAAQ;IAClBC,YAAY,EAAEC,cAAc,CAACX,KAAK,CAACY,MAAM,CAACC,MAAM,CAACC,MAAM,CAAA;GAEnDX,EAAAA,OAAO,KAAK,WAAW,IAAI;IAC7BY,WAAW,EAAEC,KAAK,CAChBhB,KAAK,CAACiB,MAAM,EACZC,uBAAuB,CAAC;AACtBC,MAAAA,QAAQ,EAAE,QAAQ;AAClBhB,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,KAAK,EAALA,KAAK;AACLgB,MAAAA,KAAK,EAAEnB,UAAU,GAAG,UAAU,GAAG,SAAA;AACnC,KAAC,CACH,CAAC;AACDoB,IAAAA,WAAW,EAAE,OAAO;IACpBC,WAAW,EAAEX,cAAc,CAACX,KAAK,CAACY,MAAM,CAACJ,KAAK,CAACe,IAAI,CAAA;GACpD,CAAA,EAAA,EAAA,EAAA;AAED,IAAA,uBAAuB,EAAE;AACvBb,MAAAA,YAAY,EAAE,CAAC;AACfE,MAAAA,MAAM,EAAE,MAAM;AACdY,MAAAA,IAAI,EAAEnB,WAAW,GAAG,CAAC,GAAG,MAAA;AAC1B,KAAA;AAAC,GAAA,CAAA,CAAA;AAEL,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ export { ButtonGroup } from './ButtonGroup.web.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -168,7 +168,9 @@ var useDropdown = function useDropdown() {
168
168
  return options.findIndex(function (option) {
169
169
  return option.value === filteredValue;
170
170
  });
171
- }).sort();
171
+ }).sort(function (a, b) {
172
+ return a - b;
173
+ });
172
174
  updatedIndex = filteredIndexes[getUpdatedIndex({
173
175
  currentIndex: filteredIndexes.indexOf(newIndex),
174
176
  maxIndex: filteredIndexes.length - 1,
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?: 'SelectInput' | 'DropdownButton' | 'AutoComplete' | 'DropdownLink';\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheet, the initial trigger can be Select but also have autocomplete inside of it\n */\n hasAutoCompleteInBottomSheetHeader: boolean;\n setHasAutoCompleteInBottomSheetHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInBottomSheetHeader: false,\n setHasAutoCompleteInBottomSheetHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort();\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n if (!isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","onOptionClick","e","getActionFromKey","isReactNative","_rest$triggererRef$cu","focus","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?: 'SelectInput' | 'DropdownButton' | 'AutoComplete' | 'DropdownLink';\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheet, the initial trigger can be Select but also have autocomplete inside of it\n */\n hasAutoCompleteInBottomSheetHeader: boolean;\n setHasAutoCompleteInBottomSheetHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInBottomSheetHeader: false,\n setHasAutoCompleteInBottomSheetHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n if (!isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","onOptionClick","e","getActionFromKey","isReactNative","_rest$triggererRef$cu","focus","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
@@ -9,6 +9,7 @@ import './Breadcrumb/index.js';
9
9
  import './Box/index.js';
10
10
  import './Button/index.js';
11
11
  import './Button/IconButton/index.js';
12
+ import './ButtonGroup/index.js';
12
13
  import './Card/index.js';
13
14
  import './Carousel/index.js';
14
15
  import './Checkbox/index.js';
@@ -67,6 +68,7 @@ export { BreadcrumbItem } from './Breadcrumb/BreadcrumbItem.web.js';
67
68
  export { Box } from './Box/Box.js';
68
69
  export { default as Button } from './Button/Button/Button.js';
69
70
  export { IconButton } from './Button/IconButton/IconButton.js';
71
+ export { ButtonGroup } from './ButtonGroup/ButtonGroup.web.js';
70
72
  export { Card, CardBody, ComponentIds } from './Card/Card.js';
71
73
  export { CardHeader, CardHeaderAmount, CardHeaderBadge, CardHeaderCounter, CardHeaderIcon, CardHeaderIconButton, CardHeaderLeading, CardHeaderLink, CardHeaderText, CardHeaderTrailing } from './Card/CardHeader.js';
72
74
  export { CardFooter, CardFooterLeading, CardFooterTrailing } from './Card/CardFooter.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -15,6 +15,7 @@ var MetaConstants = {
15
15
  BaseBox: 'base-box',
16
16
  BaseText: 'base-text',
17
17
  Button: 'button',
18
+ ButtonGroup: 'button-group',
18
19
  Breadcrumb: 'breadcrumb',
19
20
  BreadcrumbItem: 'breadcrumb-item',
20
21
  Carousel: 'carousel',
@@ -1 +1 @@
1
- {"version":3,"file":"metaConstants.js","sources":["../../../../../../src/utils/metaAttribute/metaConstants.ts"],"sourcesContent":["export const MetaConstants = {\n Accordion: 'accordion',\n AccordionButton: 'accordion-button',\n AccordionItem: 'accordion-item',\n AccordionItemHeader: 'accordion-item-header',\n AccordionItemBody: 'accordion-item-body',\n ActionList: 'action-list',\n ActionListItem: 'action-list-item',\n ActionListSection: 'action-list-section',\n Alert: 'alert',\n Amount: 'amount',\n AutoComplete: 'autocomplete',\n Badge: 'badge',\n Box: 'box',\n BaseBox: 'base-box',\n BaseText: 'base-text',\n Button: 'button',\n Breadcrumb: 'breadcrumb',\n BreadcrumbItem: 'breadcrumb-item',\n Carousel: 'carousel',\n Checkbox: 'checkbox',\n CheckboxGroup: 'checkbox-group',\n CheckboxLabel: 'checkbox-label',\n Chip: 'chip',\n ChipGroup: 'chip-group',\n ChipLabel: 'chip-label',\n Code: 'code',\n Component: 'blade-component',\n Counter: 'counter',\n Display: 'display',\n Divider: 'divider',\n Drawer: 'drawer',\n Dropdown: 'dropdown',\n DropdownOverlay: 'dropdown-overlay',\n DropdownFooter: 'dropdown-footer',\n DropdownHeader: 'dropdown-header',\n FileUpload: 'file-upload',\n FileUploadItem: 'file-upload-item',\n FileUploadLabel: 'file-upload-label',\n Icon: 'icon',\n IconButton: 'icon-button',\n Indicator: 'indicator',\n Link: 'link',\n List: 'list',\n ListItem: 'list-item',\n ListItemCode: 'list-item-code',\n ListItemLink: 'list-item-link',\n ListItemText: 'list-item-text',\n OTPInput: 'otp-input',\n PasswordInput: 'password-input',\n TextArea: 'textarea',\n TextInput: 'textinput',\n Toast: 'toast',\n ToastContainer: 'toast-container',\n ProgressBar: 'progress-bar',\n Radio: 'radio',\n RadioGroup: 'radio-group',\n RadioLabel: 'radio-label',\n SkipNav: 'skipnav',\n Spinner: 'spinner',\n SelectInput: 'select-input',\n Tag: 'tag',\n Tooltip: 'tooltip',\n TooltipInteractiveWrapper: 'tooltip-interactive-wrapper',\n Tabs: 'tabs',\n TabList: 'tab-list',\n TabItem: 'tab-item',\n TabPanel: 'tab-panel',\n TabIndicator: 'tab-indicator',\n Table: 'table',\n TableBody: 'table-body',\n TableRow: 'table-row',\n TableCell: 'table-cell',\n TableHeader: 'table-header',\n TableHeaderRow: 'table-header-row',\n TableHeaderCell: 'table-header-cell',\n TableFooter: 'table-footer',\n TableFooterRow: 'table-footer-row',\n TableFooterCell: 'table-footer-cell',\n TableElement: 'table-element',\n TourPopover: 'tour-popover',\n TourMask: 'tour-mask',\n Popover: 'popover',\n PopoverInteractiveWrapper: 'popover-interactive-wrapper',\n BottomSheet: 'bottom-sheet',\n BottomSheetBody: 'bottom-sheet-body',\n BottomSheetHeader: 'bottom-sheet-header',\n BottomSheetFooter: 'bottom-sheet-footer',\n BottomSheetGrabHandle: 'bottomsheet-grab-handle',\n Card: 'card',\n CardBody: 'card-body',\n CardHeader: 'card-header',\n CardFooter: 'card-footer',\n Collapsible: 'collapsible',\n CollapsibleBody: 'collapsible-body',\n CollapsibleButton: 'collapsible-button',\n CollapsibleLink: 'collapsible-link',\n Modal: 'modal',\n ModalBody: 'modal-body',\n ModalHeader: 'modal-header',\n ModalFooter: 'modal-footer',\n ModalBackdrop: 'modal-backdrop',\n ModalScrollOverlay: 'modal-scroll-overlay',\n VisuallyHidden: 'visually-hidden',\n FormLabel: 'form-label',\n Switch: 'switch',\n SwitchLabel: 'switch-label',\n StyledBaseInput: 'styled-base-input',\n Skeleton: 'skeleton',\n} as const;\n"],"names":["MetaConstants","Accordion","AccordionButton","AccordionItem","AccordionItemHeader","AccordionItemBody","ActionList","ActionListItem","ActionListSection","Alert","Amount","AutoComplete","Badge","Box","BaseBox","BaseText","Button","Breadcrumb","BreadcrumbItem","Carousel","Checkbox","CheckboxGroup","CheckboxLabel","Chip","ChipGroup","ChipLabel","Code","Component","Counter","Display","Divider","Drawer","Dropdown","DropdownOverlay","DropdownFooter","DropdownHeader","FileUpload","FileUploadItem","FileUploadLabel","Icon","IconButton","Indicator","Link","List","ListItem","ListItemCode","ListItemLink","ListItemText","OTPInput","PasswordInput","TextArea","TextInput","Toast","ToastContainer","ProgressBar","Radio","RadioGroup","RadioLabel","SkipNav","Spinner","SelectInput","Tag","Tooltip","TooltipInteractiveWrapper","Tabs","TabList","TabItem","TabPanel","TabIndicator","Table","TableBody","TableRow","TableCell","TableHeader","TableHeaderRow","TableHeaderCell","TableFooter","TableFooterRow","TableFooterCell","TableElement","TourPopover","TourMask","Popover","PopoverInteractiveWrapper","BottomSheet","BottomSheetBody","BottomSheetHeader","BottomSheetFooter","BottomSheetGrabHandle","Card","CardBody","CardHeader","CardFooter","Collapsible","CollapsibleBody","CollapsibleButton","CollapsibleLink","Modal","ModalBody","ModalHeader","ModalFooter","ModalBackdrop","ModalScrollOverlay","VisuallyHidden","FormLabel","Switch","SwitchLabel","StyledBaseInput","Skeleton"],"mappings":"AAAO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,mBAAmB,EAAE,uBAAuB;AAC5CC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,YAAY,EAAE,cAAc;AAC5BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,SAAS,EAAE,iBAAiB;AAC5BC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,YAAY,EAAE,gBAAgB;AAC9BC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,yBAAyB,EAAE,6BAA6B;AACxDC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,cAAc,EAAE,kBAAkB;AAClCC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,yBAAyB,EAAE,6BAA6B;AACxDC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,EAAAA,qBAAqB,EAAE,yBAAyB;AAChDC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,iBAAiB,EAAE,oBAAoB;AACvCC,EAAAA,eAAe,EAAE,kBAAkB;AACnCC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,aAAa,EAAE,gBAAgB;AAC/BC,EAAAA,kBAAkB,EAAE,sBAAsB;AAC1CC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,QAAQ,EAAE,UAAA;AACZ;;;;"}
1
+ {"version":3,"file":"metaConstants.js","sources":["../../../../../../src/utils/metaAttribute/metaConstants.ts"],"sourcesContent":["export const MetaConstants = {\n Accordion: 'accordion',\n AccordionButton: 'accordion-button',\n AccordionItem: 'accordion-item',\n AccordionItemHeader: 'accordion-item-header',\n AccordionItemBody: 'accordion-item-body',\n ActionList: 'action-list',\n ActionListItem: 'action-list-item',\n ActionListSection: 'action-list-section',\n Alert: 'alert',\n Amount: 'amount',\n AutoComplete: 'autocomplete',\n Badge: 'badge',\n Box: 'box',\n BaseBox: 'base-box',\n BaseText: 'base-text',\n Button: 'button',\n ButtonGroup: 'button-group',\n Breadcrumb: 'breadcrumb',\n BreadcrumbItem: 'breadcrumb-item',\n Carousel: 'carousel',\n Checkbox: 'checkbox',\n CheckboxGroup: 'checkbox-group',\n CheckboxLabel: 'checkbox-label',\n Chip: 'chip',\n ChipGroup: 'chip-group',\n ChipLabel: 'chip-label',\n Code: 'code',\n Component: 'blade-component',\n Counter: 'counter',\n Display: 'display',\n Divider: 'divider',\n Drawer: 'drawer',\n Dropdown: 'dropdown',\n DropdownOverlay: 'dropdown-overlay',\n DropdownFooter: 'dropdown-footer',\n DropdownHeader: 'dropdown-header',\n FileUpload: 'file-upload',\n FileUploadItem: 'file-upload-item',\n FileUploadLabel: 'file-upload-label',\n Icon: 'icon',\n IconButton: 'icon-button',\n Indicator: 'indicator',\n Link: 'link',\n List: 'list',\n ListItem: 'list-item',\n ListItemCode: 'list-item-code',\n ListItemLink: 'list-item-link',\n ListItemText: 'list-item-text',\n OTPInput: 'otp-input',\n PasswordInput: 'password-input',\n TextArea: 'textarea',\n TextInput: 'textinput',\n Toast: 'toast',\n ToastContainer: 'toast-container',\n ProgressBar: 'progress-bar',\n Radio: 'radio',\n RadioGroup: 'radio-group',\n RadioLabel: 'radio-label',\n SkipNav: 'skipnav',\n Spinner: 'spinner',\n SelectInput: 'select-input',\n Tag: 'tag',\n Tooltip: 'tooltip',\n TooltipInteractiveWrapper: 'tooltip-interactive-wrapper',\n Tabs: 'tabs',\n TabList: 'tab-list',\n TabItem: 'tab-item',\n TabPanel: 'tab-panel',\n TabIndicator: 'tab-indicator',\n Table: 'table',\n TableBody: 'table-body',\n TableRow: 'table-row',\n TableCell: 'table-cell',\n TableHeader: 'table-header',\n TableHeaderRow: 'table-header-row',\n TableHeaderCell: 'table-header-cell',\n TableFooter: 'table-footer',\n TableFooterRow: 'table-footer-row',\n TableFooterCell: 'table-footer-cell',\n TableElement: 'table-element',\n TourPopover: 'tour-popover',\n TourMask: 'tour-mask',\n Popover: 'popover',\n PopoverInteractiveWrapper: 'popover-interactive-wrapper',\n BottomSheet: 'bottom-sheet',\n BottomSheetBody: 'bottom-sheet-body',\n BottomSheetHeader: 'bottom-sheet-header',\n BottomSheetFooter: 'bottom-sheet-footer',\n BottomSheetGrabHandle: 'bottomsheet-grab-handle',\n Card: 'card',\n CardBody: 'card-body',\n CardHeader: 'card-header',\n CardFooter: 'card-footer',\n Collapsible: 'collapsible',\n CollapsibleBody: 'collapsible-body',\n CollapsibleButton: 'collapsible-button',\n CollapsibleLink: 'collapsible-link',\n Modal: 'modal',\n ModalBody: 'modal-body',\n ModalHeader: 'modal-header',\n ModalFooter: 'modal-footer',\n ModalBackdrop: 'modal-backdrop',\n ModalScrollOverlay: 'modal-scroll-overlay',\n VisuallyHidden: 'visually-hidden',\n FormLabel: 'form-label',\n Switch: 'switch',\n SwitchLabel: 'switch-label',\n StyledBaseInput: 'styled-base-input',\n Skeleton: 'skeleton',\n} as const;\n"],"names":["MetaConstants","Accordion","AccordionButton","AccordionItem","AccordionItemHeader","AccordionItemBody","ActionList","ActionListItem","ActionListSection","Alert","Amount","AutoComplete","Badge","Box","BaseBox","BaseText","Button","ButtonGroup","Breadcrumb","BreadcrumbItem","Carousel","Checkbox","CheckboxGroup","CheckboxLabel","Chip","ChipGroup","ChipLabel","Code","Component","Counter","Display","Divider","Drawer","Dropdown","DropdownOverlay","DropdownFooter","DropdownHeader","FileUpload","FileUploadItem","FileUploadLabel","Icon","IconButton","Indicator","Link","List","ListItem","ListItemCode","ListItemLink","ListItemText","OTPInput","PasswordInput","TextArea","TextInput","Toast","ToastContainer","ProgressBar","Radio","RadioGroup","RadioLabel","SkipNav","Spinner","SelectInput","Tag","Tooltip","TooltipInteractiveWrapper","Tabs","TabList","TabItem","TabPanel","TabIndicator","Table","TableBody","TableRow","TableCell","TableHeader","TableHeaderRow","TableHeaderCell","TableFooter","TableFooterRow","TableFooterCell","TableElement","TourPopover","TourMask","Popover","PopoverInteractiveWrapper","BottomSheet","BottomSheetBody","BottomSheetHeader","BottomSheetFooter","BottomSheetGrabHandle","Card","CardBody","CardHeader","CardFooter","Collapsible","CollapsibleBody","CollapsibleButton","CollapsibleLink","Modal","ModalBody","ModalHeader","ModalFooter","ModalBackdrop","ModalScrollOverlay","VisuallyHidden","FormLabel","Switch","SwitchLabel","StyledBaseInput","Skeleton"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import styled from 'styled-components';
2
+ import getIn from '../../../utils/lodashButBetter/get.js';
3
+ import '../../Box/BaseBox/index.js';
4
+ import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
5
+
6
+ var AnimatedButtonContent = /*#__PURE__*/styled(BaseBox).withConfig({
7
+ displayName: "AnimatedButtonContentweb__AnimatedButtonContent",
8
+ componentId: "sc-1fkx0t6-0"
9
+ })(function (props) {
10
+ return {
11
+ transform: "scale(".concat(props.isPressed ? '0.95' : '1', ")"),
12
+ transitionDuration: getIn(props.theme.motion, props.motionEasing),
13
+ transitionTimingFunction: getIn(props.theme.motion, props.motionDuration)
14
+ };
15
+ });
16
+
17
+ export { AnimatedButtonContent as default };
18
+ //# sourceMappingURL=AnimatedButtonContent.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedButtonContent.web.js","sources":["../../../../../../../src/components/Button/BaseButton/AnimatedButtonContent.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport type { AnimatedButtonContentProps } from './types';\nimport getIn from '~utils/lodashButBetter/get';\nimport BaseBox from '~components/Box/BaseBox';\n\nconst AnimatedButtonContent = styled(BaseBox)<AnimatedButtonContentProps>((props) => {\n return {\n transform: `scale(${props.isPressed ? '0.95' : '1'})`,\n transitionDuration: getIn(props.theme.motion, props.motionEasing),\n transitionTimingFunction: getIn(props.theme.motion, props.motionDuration),\n };\n});\n\nexport default AnimatedButtonContent;\n"],"names":["AnimatedButtonContent","styled","BaseBox","withConfig","displayName","componentId","props","transform","concat","isPressed","transitionDuration","getIn","theme","motion","motionEasing","transitionTimingFunction","motionDuration"],"mappings":";;;;;AAKA,IAAMA,qBAAqB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,iDAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAA6B,CAAA,CAAA,UAACC,KAAK,EAAK;EACnF,OAAO;IACLC,SAAS,EAAA,QAAA,CAAAC,MAAA,CAAWF,KAAK,CAACG,SAAS,GAAG,MAAM,GAAG,GAAG,EAAG,GAAA,CAAA;AACrDC,IAAAA,kBAAkB,EAAEC,KAAK,CAACL,KAAK,CAACM,KAAK,CAACC,MAAM,EAAEP,KAAK,CAACQ,YAAY,CAAC;IACjEC,wBAAwB,EAAEJ,KAAK,CAACL,KAAK,CAACM,KAAK,CAACC,MAAM,EAAEP,KAAK,CAACU,cAAc,CAAA;GACzE,CAAA;AACH,CAAC;;;;"}
@@ -1,11 +1,14 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
4
  import React__default from 'react';
4
5
  import styled from 'styled-components';
5
6
  import StyledBaseButton from './StyledBaseButton.web.js';
6
- import { backgroundColor, textColor, buttonIconOnlySizeToIconSizeMap, buttonSizeToIconSizeMap, buttonSizeToSpinnerSizeMap, minHeight, buttonIconPadding, buttonIconOnlyPadding, buttonPadding, typography } from './buttonTokens.js';
7
+ import { backgroundColor, textColor, buttonIconOnlySizeToIconSizeMap, buttonSizeToIconSizeMap, buttonSizeToSpinnerSizeMap, minHeight, buttonIconOnlyHeightWidth, buttonIconPadding, buttonPadding, typography } from './buttonTokens.js';
8
+ import AnimatedButtonContent from './AnimatedButtonContent.web.js';
7
9
  import getIn from '../../../utils/lodashButBetter/get.js';
8
10
  import '../../../utils/index.js';
11
+ import { useButtonGroupContext } from '../../ButtonGroup/ButtonGroupContext.js';
9
12
  import '../../Box/styledProps/index.js';
10
13
  import '../../Typography/BaseText/index.js';
11
14
  import '../../BladeProvider/index.js';
@@ -21,7 +24,7 @@ import '../../../utils/makeSpace/index.js';
21
24
  import '../../../utils/metaAttribute/index.js';
22
25
  import '../../../utils/getStringChildren/index.js';
23
26
  import '../../../utils/logger/index.js';
24
- import { jsxs, jsx } from 'react/jsx-runtime';
27
+ import { jsx, jsxs } from 'react/jsx-runtime';
25
28
  import { isReactNative } from '../../../utils/platform/isReactNative.js';
26
29
  import { throwBladeError } from '../../../utils/logger/logger.js';
27
30
  import { makeSize } from '../../../utils/makeSize/makeSize.js';
@@ -101,7 +104,7 @@ var getProps = function getProps(_ref3) {
101
104
  if (variant === 'tertiary' && color !== 'primary' && color !== 'white') {
102
105
  throwBladeError({
103
106
  moduleName: 'BaseButton',
104
- message: "Tertiary variant can only be used with color: \"default\" or \"white\" but received \"".concat(color, "\"")
107
+ message: "Tertiary variant can only be used with color: \"primary\" or \"white\" but received \"".concat(color, "\"")
105
108
  });
106
109
  }
107
110
  var isIconOnly = hasIcon && (!children || (children === null || children === void 0 ? void 0 : children.trim().length) === 0);
@@ -111,6 +114,8 @@ var getProps = function getProps(_ref3) {
111
114
  fontSize: buttonTypographyTokens.fonts.size[size],
112
115
  lineHeight: buttonTypographyTokens.lineHeights[size],
113
116
  minHeight: makeSize(minHeight[size]),
117
+ height: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,
118
+ width: isIconOnly ? buttonIconOnlyHeightWidth[size] : undefined,
114
119
  iconPadding: hasIcon && children !== null && children !== void 0 && children.trim() ? "spacing.".concat(buttonIconPadding[size]) : undefined,
115
120
  iconColor: getTextColorToken({
116
121
  property: 'icon',
@@ -124,10 +129,10 @@ var getProps = function getProps(_ref3) {
124
129
  color: color,
125
130
  state: 'default'
126
131
  }),
127
- buttonPaddingTop: isIconOnly ? makeSpace(theme.spacing[buttonIconOnlyPadding[size].top]) : makeSpace(theme.spacing[buttonPadding[size].top]),
128
- buttonPaddingBottom: isIconOnly ? makeSpace(theme.spacing[buttonIconOnlyPadding[size].bottom]) : makeSpace(theme.spacing[buttonPadding[size].bottom]),
129
- buttonPaddingLeft: isIconOnly ? makeSpace(theme.spacing[buttonIconOnlyPadding[size].left]) : makeSpace(theme.spacing[buttonPadding[size].left]),
130
- buttonPaddingRight: isIconOnly ? makeSpace(theme.spacing[buttonIconOnlyPadding[size].right]) : makeSpace(theme.spacing[buttonPadding[size].right]),
132
+ buttonPaddingTop: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].top]),
133
+ buttonPaddingBottom: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].bottom]),
134
+ buttonPaddingLeft: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].left]),
135
+ buttonPaddingRight: isIconOnly ? makeSpace(0) : makeSpace(theme.spacing[buttonPadding[size].right]),
131
136
  text: size === 'xsmall' ? children === null || children === void 0 ? void 0 : children.trim().toUpperCase() : children === null || children === void 0 ? void 0 : children.trim(),
132
137
  defaultBackgroundColor: getIn(theme.colors, getBackgroundColorToken({
133
138
  property: 'background',
@@ -215,6 +220,7 @@ var ButtonContent = /*#__PURE__*/styled(BaseBox).withConfig({
215
220
  };
216
221
  });
217
222
  var _BaseButton = function _BaseButton(_ref5, ref) {
223
+ var _buttonGroupProps$isD, _buttonGroupProps$siz, _buttonGroupProps$var, _buttonGroupProps$col, _buttonGroupProps$isF;
218
224
  var href = _ref5.href,
219
225
  target = _ref5.target,
220
226
  rel = _ref5.rel,
@@ -235,7 +241,7 @@ var _BaseButton = function _BaseButton(_ref5, ref) {
235
241
  isLoading = _ref5$isLoading === void 0 ? false : _ref5$isLoading,
236
242
  onClick = _ref5.onClick,
237
243
  onBlur = _ref5.onBlur,
238
- onKeyDown = _ref5.onKeyDown,
244
+ _onKeyDown = _ref5.onKeyDown,
239
245
  _ref5$type = _ref5.type,
240
246
  type = _ref5$type === void 0 ? 'button' : _ref5$type,
241
247
  children = _ref5.children,
@@ -246,15 +252,20 @@ var _BaseButton = function _BaseButton(_ref5, ref) {
246
252
  onPointerDown = _ref5.onPointerDown,
247
253
  onPointerEnter = _ref5.onPointerEnter,
248
254
  accessibilityProps = _ref5.accessibilityProps,
249
- onTouchEnd = _ref5.onTouchEnd,
250
- onTouchStart = _ref5.onTouchStart,
255
+ _onTouchEnd = _ref5.onTouchEnd,
256
+ _onTouchStart = _ref5.onTouchStart,
251
257
  rest = _objectWithoutProperties(_ref5, _excluded);
252
258
  var _useTheme = useTheme(),
253
259
  theme = _useTheme.theme;
260
+ var buttonGroupProps = useButtonGroupContext();
261
+ var _React$useState = React__default.useState(false),
262
+ _React$useState2 = _slicedToArray(_React$useState, 2),
263
+ isPressed = _React$useState2[0],
264
+ setIsPressed = _React$useState2[1];
254
265
  var isLink = Boolean(href);
255
266
  var childrenString = getStringFromReactText(children);
256
267
  // Button cannot be disabled when its rendered as Link
257
- var disabled = isLoading || isDisabled && !isLink;
268
+ var disabled = (_buttonGroupProps$isD = buttonGroupProps.isDisabled) !== null && _buttonGroupProps$isD !== void 0 ? _buttonGroupProps$isD : isLoading || isDisabled && !isLink;
258
269
  if (false) {
259
270
  if (!Icon && !(childrenString !== null && childrenString !== void 0 && childrenString.trim())) {
260
271
  throwBladeError({
@@ -272,15 +283,17 @@ var _BaseButton = function _BaseButton(_ref5, ref) {
272
283
  buttonTypographyTokens: typography,
273
284
  children: childrenString,
274
285
  isDisabled: disabled,
275
- size: size,
276
- variant: variant,
286
+ size: (_buttonGroupProps$siz = buttonGroupProps.size) !== null && _buttonGroupProps$siz !== void 0 ? _buttonGroupProps$siz : size,
287
+ variant: (_buttonGroupProps$var = buttonGroupProps.variant) !== null && _buttonGroupProps$var !== void 0 ? _buttonGroupProps$var : variant,
277
288
  theme: theme,
278
- color: color,
289
+ color: (_buttonGroupProps$col = buttonGroupProps.color) !== null && _buttonGroupProps$col !== void 0 ? _buttonGroupProps$col : color,
279
290
  hasIcon: Boolean(Icon)
280
291
  }),
281
292
  defaultBorderColor = _getProps.defaultBorderColor,
282
293
  defaultBackgroundColor = _getProps.defaultBackgroundColor,
283
294
  minHeight = _getProps.minHeight,
295
+ height = _getProps.height,
296
+ width = _getProps.width,
284
297
  buttonPaddingTop = _getProps.buttonPaddingTop,
285
298
  buttonPaddingBottom = _getProps.buttonPaddingBottom,
286
299
  buttonPaddingLeft = _getProps.buttonPaddingLeft,
@@ -306,7 +319,27 @@ var _BaseButton = function _BaseButton(_ref5, ref) {
306
319
  return getRenderElement(href);
307
320
  }, [href]);
308
321
  var defaultRel = target === '_blank' ? 'noreferrer noopener' : undefined;
309
- return /*#__PURE__*/jsxs(StyledBaseButton, _objectSpread(_objectSpread(_objectSpread({
322
+ var handlePointerPressedIn = React__default.useCallback(function () {
323
+ if (disabled) return;
324
+ setIsPressed(true);
325
+ }, [disabled]);
326
+ var handlePointerPressedOut = React__default.useCallback(function () {
327
+ if (disabled) return;
328
+ setIsPressed(false);
329
+ }, [disabled]);
330
+ var handleKeyboardPressedIn = React__default.useCallback(function (e) {
331
+ if (disabled) return;
332
+ if (e.key === ' ' || e.key === 'Enter') {
333
+ setIsPressed(true);
334
+ }
335
+ }, [disabled]);
336
+ var handleKeyboardPressedOut = React__default.useCallback(function (e) {
337
+ if (disabled) return;
338
+ if (e.key === ' ' || e.key === 'Enter') {
339
+ setIsPressed(false);
340
+ }
341
+ }, [disabled]);
342
+ return /*#__PURE__*/jsx(StyledBaseButton, _objectSpread(_objectSpread(_objectSpread({
310
343
  ref: ref
311
344
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment, @typescript-eslint/prefer-ts-expect-error
312
345
  // @ts-ignore: On React Native it will always be undefined but TS doesn't understand that
@@ -333,86 +366,109 @@ var _BaseButton = function _BaseButton(_ref5, ref) {
333
366
  focusRingColor: focusRingColor,
334
367
  hoverBorderColor: hoverBorderColor,
335
368
  hoverBackgroundColor: hoverBackgroundColor,
336
- isFullWidth: isFullWidth,
369
+ isFullWidth: (_buttonGroupProps$isF = buttonGroupProps.isFullWidth) !== null && _buttonGroupProps$isF !== void 0 ? _buttonGroupProps$isF : isFullWidth,
337
370
  onClick: onClick,
338
371
  onBlur: onBlur,
339
372
  onFocus: onFocus,
340
373
  onMouseLeave: onMouseLeave,
341
374
  onMouseMove: onMouseMove,
342
375
  onPointerDown: onPointerDown,
343
- onPointerEnter: onPointerEnter,
344
- onKeyDown: onKeyDown,
345
- onTouchStart: onTouchStart,
346
- onTouchEnd: onTouchEnd,
376
+ onPointerEnter: onPointerEnter
377
+ // Setting type for web fails it on native typecheck and vice versa
378
+ ,
379
+ onKeyDown: function onKeyDown(event) {
380
+ handleKeyboardPressedIn(event);
381
+ _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(event);
382
+ },
383
+ onTouchStart: function onTouchStart(event) {
384
+ handlePointerPressedIn();
385
+ _onTouchStart === null || _onTouchStart === void 0 ? void 0 : _onTouchStart(event);
386
+ },
387
+ onTouchEnd: function onTouchEnd(event) {
388
+ handlePointerPressedOut();
389
+ _onTouchEnd === null || _onTouchEnd === void 0 ? void 0 : _onTouchEnd(event);
390
+ },
347
391
  type: type,
348
392
  borderWidth: borderWidth,
349
393
  borderRadius: borderRadius,
350
394
  motionDuration: motionDuration,
351
- motionEasing: motionEasing
395
+ motionEasing: motionEasing,
396
+ height: height,
397
+ width: width,
398
+ isPressed: isPressed,
399
+ onMouseDown: handlePointerPressedIn,
400
+ onMouseUp: handlePointerPressedOut,
401
+ onMouseOut: handlePointerPressedOut,
402
+ onKeyUp: handleKeyboardPressedOut
352
403
  }, metaAttribute({
353
404
  name: MetaConstants.Button,
354
405
  testID: testID
355
406
  })), getStyledProps(rest)), {}, {
356
- children: [isLoading ? /*#__PURE__*/jsx(BaseBox, {
357
- display: "flex",
358
- justifyContent: "center",
359
- alignItems: "center",
360
- position: "absolute",
361
- top: "0px",
362
- left: "0px",
363
- bottom: "0px",
364
- right: "0px",
365
- zIndex: 1,
366
- children: /*#__PURE__*/jsx(BaseSpinner, {
367
- accessibilityLabel: "Loading",
368
- size: spinnerSize,
369
- color: color
370
- })
371
- }) : null, /*#__PURE__*/jsxs(ButtonContent, {
372
- display: "flex",
373
- flexDirection: "row",
374
- alignItems: "center",
375
- justifyContent: "center",
376
- flex: 1,
377
- isHidden: isLoading,
378
- zIndex: 1,
379
- children: [Icon && iconPosition == 'left' ? /*#__PURE__*/jsx(BaseBox, {
380
- paddingRight: iconPadding,
407
+ children: /*#__PURE__*/jsxs(AnimatedButtonContent, {
408
+ motionDuration: motionDuration,
409
+ motionEasing: motionEasing,
410
+ isPressed: isPressed,
411
+ children: [isLoading ? /*#__PURE__*/jsx(BaseBox, {
381
412
  display: "flex",
382
413
  justifyContent: "center",
383
414
  alignItems: "center",
384
- children: /*#__PURE__*/jsx(Icon, {
385
- size: iconSize,
386
- color: iconColor
415
+ position: "absolute",
416
+ top: "0px",
417
+ left: "0px",
418
+ bottom: "0px",
419
+ right: "0px",
420
+ zIndex: 1,
421
+ children: /*#__PURE__*/jsx(BaseSpinner, {
422
+ accessibilityLabel: "Loading",
423
+ size: spinnerSize,
424
+ color: color
387
425
  })
388
- }) : null, text ? /*#__PURE__*/jsx(BaseText, {
389
- lineHeight: lineHeight,
390
- fontSize: fontSize
391
- // figma and web have different font-smoothing properties
392
- // which causes web version of button text to look much bolder
393
- // than figma version. To fix this we are changing font-weight from 600 to 500
394
- // https://forum.figma.com/t/why-does-a-font-weight-in-figma-seem-lighter-than-the-same-weight-in-the-browser/2207
395
- ,
396
- fontWeight: "medium",
397
- textAlign: "center",
398
- color: textColor,
399
- children: text
400
- }) : null, Icon && iconPosition == 'right' ? /*#__PURE__*/jsx(BaseBox, {
401
- paddingLeft: iconPadding,
426
+ }) : null, /*#__PURE__*/jsxs(ButtonContent, {
402
427
  display: "flex",
403
- justifyContent: "center",
428
+ flexDirection: "row",
404
429
  alignItems: "center",
405
- children: /*#__PURE__*/jsx(Icon, {
406
- size: iconSize,
407
- color: iconColor
408
- })
409
- }) : null]
410
- })]
430
+ justifyContent: "center",
431
+ flex: 1,
432
+ isHidden: isLoading,
433
+ zIndex: 1,
434
+ children: [Icon && iconPosition == 'left' ? /*#__PURE__*/jsx(BaseBox, {
435
+ paddingRight: iconPadding,
436
+ display: "flex",
437
+ justifyContent: "center",
438
+ alignItems: "center",
439
+ children: /*#__PURE__*/jsx(Icon, {
440
+ size: iconSize,
441
+ color: iconColor
442
+ })
443
+ }) : null, text ? /*#__PURE__*/jsx(BaseText, {
444
+ lineHeight: lineHeight,
445
+ fontSize: fontSize
446
+ // figma and web have different font-smoothing properties
447
+ // which causes web version of button text to look much bolder
448
+ // than figma version. To fix this we are changing font-weight from 600 to 500
449
+ // https://forum.figma.com/t/why-does-a-font-weight-in-figma-seem-lighter-than-the-same-weight-in-the-browser/2207
450
+ ,
451
+ fontWeight: "medium",
452
+ textAlign: "center",
453
+ color: textColor,
454
+ children: text
455
+ }) : null, Icon && iconPosition == 'right' ? /*#__PURE__*/jsx(BaseBox, {
456
+ paddingLeft: iconPadding,
457
+ display: "flex",
458
+ justifyContent: "center",
459
+ alignItems: "center",
460
+ children: /*#__PURE__*/jsx(Icon, {
461
+ size: iconSize,
462
+ color: iconColor
463
+ })
464
+ }) : null]
465
+ })]
466
+ })
411
467
  }));
412
468
  };
413
469
  var BaseButton = /*#__PURE__*/assignWithoutSideEffects( /*#__PURE__*/React__default.forwardRef(_BaseButton), {
414
470
  displayName: 'BaseButton'
415
471
  });
416
472
 
417
- export { BaseButton as default };
473
+ export { BaseButton as default, getBackgroundColorToken };
418
474
  //# sourceMappingURL=BaseButton.js.map