@razorpay/blade 12.96.0 → 12.96.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 (32) hide show
  1. package/build/lib/native/components/Box/BaseBox/types/propsTypes.js.map +1 -1
  2. package/build/lib/native/components/Card/Card.js +1 -1
  3. package/build/lib/native/components/Card/Card.js.map +1 -1
  4. package/build/lib/native/components/Input/SearchInput/SearchInput.js +2 -1
  5. package/build/lib/native/components/Input/SearchInput/SearchInput.js.map +1 -1
  6. package/build/lib/native/components/Modal/ModalContext.js +6 -0
  7. package/build/lib/native/components/Modal/ModalContext.js.map +1 -0
  8. package/build/lib/web/development/components/Box/BaseBox/BaseBox.web.js +11 -4
  9. package/build/lib/web/development/components/Box/BaseBox/BaseBox.web.js.map +1 -1
  10. package/build/lib/web/development/components/Box/BaseBox/types/propsTypes.js.map +1 -1
  11. package/build/lib/web/development/components/Card/Card.js +1 -0
  12. package/build/lib/web/development/components/Card/Card.js.map +1 -1
  13. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +3 -1
  14. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
  15. package/build/lib/web/development/components/Modal/Modal.web.js +2 -1
  16. package/build/lib/web/development/components/Modal/Modal.web.js.map +1 -1
  17. package/build/lib/web/development/components/Modal/ModalContext.js +2 -1
  18. package/build/lib/web/development/components/Modal/ModalContext.js.map +1 -1
  19. package/build/lib/web/production/components/Box/BaseBox/BaseBox.web.js +11 -4
  20. package/build/lib/web/production/components/Box/BaseBox/BaseBox.web.js.map +1 -1
  21. package/build/lib/web/production/components/Box/BaseBox/types/propsTypes.js.map +1 -1
  22. package/build/lib/web/production/components/Card/Card.js +1 -0
  23. package/build/lib/web/production/components/Card/Card.js.map +1 -1
  24. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +3 -1
  25. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
  26. package/build/lib/web/production/components/Modal/Modal.web.js +2 -1
  27. package/build/lib/web/production/components/Modal/Modal.web.js.map +1 -1
  28. package/build/lib/web/production/components/Modal/ModalContext.js +2 -1
  29. package/build/lib/web/production/components/Modal/ModalContext.js.map +1 -1
  30. package/build/types/components/index.d.ts +3 -1
  31. package/build/types/components/index.native.d.ts +4 -2
  32. package/package.json +1 -1
@@ -19,6 +19,7 @@ import '../../Dropdown/index.js';
19
19
  import '../../Divider/index.js';
20
20
  import '../../../utils/isValidAllowedChildren/index.js';
21
21
  import { TopNavOverlayThemeOverride } from '../../TopNav/TopNavOverlayThemeOverride.js';
22
+ import { useModalContext } from '../../Modal/ModalContext.js';
22
23
  import { jsx, jsxs } from 'react/jsx-runtime';
23
24
  import { getPlatformType } from '../../../utils/getPlatformType/getPlatformType.js';
24
25
  import { getComponentId } from '../../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
@@ -93,6 +94,7 @@ var _SearchInput = function _SearchInput(_ref, ref) {
93
94
  _useState6 = _slicedToArray(_useState5, 2),
94
95
  isSearchFocused = _useState6[0],
95
96
  setIsSearchFocused = _useState6[1];
97
+ var modalContext = useModalContext();
96
98
  React__default.useEffect(function () {
97
99
  setShouldShowClearButton(Boolean(defaultValue !== null && defaultValue !== void 0 ? defaultValue : value));
98
100
  }, [defaultValue, value]);
@@ -255,7 +257,7 @@ var _SearchInput = function _SearchInput(_ref, ref) {
255
257
  }, rest))
256
258
  });
257
259
  return /*#__PURE__*/jsx(TopNavOverlayThemeOverride, {
258
- shouldOverrideTheme: isSearchFocused,
260
+ shouldOverrideTheme: modalContext.isInsideModal ? true : isSearchFocused,
259
261
  children: searchContent
260
262
  });
261
263
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../../../../../../src/components/Input/SearchInput/SearchInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getKeyboardAndAutocompleteProps } from '../BaseInput/utils';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon, SearchIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { DropdownOverlay, InputDropdownButton } from '~components/Dropdown';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { TopNavOverlayThemeOverride } from '~components/TopNav/TopNavOverlayThemeOverride';\n\ntype SearchInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'helpText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Event handler to handle the onClick event for clear button.\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n /**\n * Toggle the visibility of the search icon.\n *\n * @default true\n */\n showSearchIcon?: boolean;\n /**\n * Optional trailing to be shown at the end of the input.\n */\n trailing?: React.ReactNode;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype SearchInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype SearchInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype SearchInputProps = (SearchInputPropsWithA11yLabel | SearchInputPropsWithLabel) &\n SearchInputCommonProps;\n\n// need to do this to tell TS to infer type as SearchInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef?: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _SearchInput: React.ForwardRefRenderFunction<BladeElementRef, SearchInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n defaultValue,\n name,\n value,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n labelSuffix,\n labelTrailing,\n helpText,\n onClearButtonClick,\n isLoading,\n autoCapitalize,\n autoFocus,\n testID,\n size = 'medium',\n showSearchIcon = true,\n trailing,\n ...rest\n },\n ref,\n): ReactElement => {\n const textInputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, textInputRef);\n const [shouldShowClearButton, setShouldShowClearButton] = useState(false);\n const [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = useState(false);\n const {\n triggererWrapperRef,\n onTriggerKeydown,\n onTriggerClick,\n dropdownTriggerer,\n close: closeParentDropDown,\n isOpen: isParentDropDownOpen,\n } = useDropdown();\n const isInsideDropdown = dropdownTriggerer === 'SearchInput';\n\n const [isSearchFocused, setIsSearchFocused] = useState(false);\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n useEffect(() => {\n if (isParentDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeParentDropDown, isParentDropDownOpen]);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isParentDropDownOpen) {\n closeParentDropDown();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setIsTrailingDropDownOpen, isTrailingDropDownOpen]);\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n\n const renderTrailingDropDown = (): React.ReactElement | null => {\n if (!trailingDropdown) {\n return null;\n }\n return React.cloneElement(trailingDropdown as React.ReactElement, {\n selectionType: 'single',\n isOpen: isTrailingDropDownOpen,\n height: '100%',\n onOpenChange: (isOpen: boolean) => {\n setIsTrailingDropDownOpen(isOpen);\n },\n children: React.Children.map(\n (trailingDropdown as React.ReactElement).props.children,\n (child) => {\n if (child.type === InputDropdownButton) {\n return React.cloneElement(child, {\n _isInsideSearchInput: true,\n size,\n });\n }\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: triggererWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement: 'bottom-end',\n });\n }\n return child;\n },\n ),\n });\n };\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && textInputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(textInputRef.current)) {\n textInputRef.current.clear();\n textInputRef.current.focus();\n } else if (textInputRef.current instanceof HTMLInputElement) {\n textInputRef.current.value = '';\n textInputRef.current.focus();\n }\n }\n\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n textInputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && trailingDropdown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n return null;\n };\n\n const searchContent = (\n <BaseBox position=\"relative\">\n <BaseInput\n id=\"searchinput\"\n componentName={MetaConstants.SearchInput}\n ref={mergedRef}\n isDropdownTrigger={true}\n setInputWrapperRef={\n isInsideDropdown || isTrailingDropDownOpen\n ? (wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }\n : undefined\n }\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n name={name}\n onKeyDown={isInsideDropdown ? onTriggerKeydown : undefined}\n onChange={({ name, value }) => {\n if (value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n onChange?.({ name, value });\n }}\n onClick={(e) => {\n if (isDisabled) return;\n if (isInsideDropdown) {\n onTriggerClick();\n }\n onClick?.(e);\n }}\n onFocus={(e) => {\n setIsSearchFocused(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsSearchFocused(false);\n onBlur?.(e);\n }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n leadingIcon={showSearchIcon ? SearchIcon : undefined}\n trailingInteractionElement={renderInteractionElement()}\n trailingDropDown={renderTrailingDropDown()}\n helpText={helpText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type: 'search',\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n </BaseBox>\n );\n\n return (\n <TopNavOverlayThemeOverride shouldOverrideTheme={isSearchFocused}>\n {searchContent}\n </TopNavOverlayThemeOverride>\n );\n};\n\nconst SearchInput = assignWithoutSideEffects(React.forwardRef(_SearchInput), {\n displayName: 'SearchInput',\n componentId: dropdownComponentIds.triggers.SearchInput,\n});\n\nexport type { SearchInputProps };\nexport { SearchInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_SearchInput","_ref","ref","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","defaultValue","name","value","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","labelSuffix","labelTrailing","helpText","onClearButtonClick","isLoading","autoCapitalize","autoFocus","testID","_ref$size","size","_ref$showSearchIcon","showSearchIcon","trailing","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_useDropdown","useDropdown","triggererWrapperRef","onTriggerKeydown","onTriggerClick","dropdownTriggerer","closeParentDropDown","close","isParentDropDownOpen","isOpen","isInsideDropdown","_useState5","_useState6","isSearchFocused","setIsSearchFocused","useEffect","Boolean","trailingDropdown","getComponentId","renderTrailingDropDown","cloneElement","selectionType","height","onOpenChange","children","Children","map","props","child","type","InputDropdownButton","_isInsideSearchInput","DropdownOverlay","referenceRef","_isNestedDropdown","defaultPlacement","renderClearButton","_jsx","IconButton","icon","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","searchContent","position","BaseInput","_objectSpread","id","componentName","MetaConstants","SearchInput","isDropdownTrigger","setInputWrapperRef","wrapperNode","undefined","hideLabelText","onKeyDown","_ref2","length","e","leadingIcon","SearchIcon","trailingInteractionElement","trailingDropDown","getKeyboardAndAutocompleteProps","TopNavOverlayThemeOverride","shouldOverrideTheme","assignWithoutSideEffects","forwardRef","displayName","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../../../../../../src/components/Input/SearchInput/SearchInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextInput as TextInputReactNative } from 'react-native';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getKeyboardAndAutocompleteProps } from '../BaseInput/utils';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { CloseIcon, SearchIcon } from '~components/Icons';\nimport { IconButton } from '~components/Button/IconButton';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { MetaConstants } from '~utils/metaAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getPlatformType } from '~utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport type {\n BladeElementRef,\n BladeElementRefWithValue,\n DataAnalyticsAttribute,\n} from '~utils/types';\nimport { dropdownComponentIds } from '~components/Dropdown/dropdownComponentIds';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\nimport { DropdownOverlay, InputDropdownButton } from '~components/Dropdown';\nimport { Divider } from '~components/Divider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { TopNavOverlayThemeOverride } from '~components/TopNav/TopNavOverlayThemeOverride';\nimport { useModalContext } from '~components/Modal/ModalContext';\n\ntype SearchInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'helpText'\n | 'placeholder'\n | 'defaultValue'\n | 'name'\n | 'onChange'\n | 'onFocus'\n | 'onBlur'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'onSubmit'\n | 'autoCapitalize'\n | 'testID'\n | 'onClick'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Event handler to handle the onClick event for clear button.\n */\n onClearButtonClick?: () => void;\n\n /**\n * Decides whether to show a loading spinner for the input field.\n */\n isLoading?: boolean;\n /**\n * Toggle the visibility of the search icon.\n *\n * @default true\n */\n showSearchIcon?: boolean;\n /**\n * Optional trailing to be shown at the end of the input.\n */\n trailing?: React.ReactNode;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype SearchInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype SearchInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype SearchInputProps = (SearchInputPropsWithA11yLabel | SearchInputPropsWithLabel) &\n SearchInputCommonProps;\n\n// need to do this to tell TS to infer type as SearchInput of React Native and make it believe that `ref.current.clear()` exists\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isReactNative = (_textInputRef?: any): _textInputRef is TextInputReactNative => {\n return getPlatformType() === 'react-native';\n};\n\nconst _SearchInput: React.ForwardRefRenderFunction<BladeElementRef, SearchInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n placeholder,\n defaultValue,\n name,\n value,\n onChange,\n onClick,\n onFocus,\n onBlur,\n onSubmit,\n isDisabled,\n labelSuffix,\n labelTrailing,\n helpText,\n onClearButtonClick,\n isLoading,\n autoCapitalize,\n autoFocus,\n testID,\n size = 'medium',\n showSearchIcon = true,\n trailing,\n ...rest\n },\n ref,\n): ReactElement => {\n const textInputRef = React.useRef<BladeElementRefWithValue>(null);\n const mergedRef = useMergeRefs(ref, textInputRef);\n const [shouldShowClearButton, setShouldShowClearButton] = useState(false);\n const [isTrailingDropDownOpen, setIsTrailingDropDownOpen] = useState(false);\n const {\n triggererWrapperRef,\n onTriggerKeydown,\n onTriggerClick,\n dropdownTriggerer,\n close: closeParentDropDown,\n isOpen: isParentDropDownOpen,\n } = useDropdown();\n const isInsideDropdown = dropdownTriggerer === 'SearchInput';\n\n const [isSearchFocused, setIsSearchFocused] = useState(false);\n\n const modalContext = useModalContext();\n\n React.useEffect(() => {\n setShouldShowClearButton(Boolean(defaultValue ?? value));\n }, [defaultValue, value]);\n\n useEffect(() => {\n if (isParentDropDownOpen && isTrailingDropDownOpen) {\n setIsTrailingDropDownOpen(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeParentDropDown, isParentDropDownOpen]);\n\n useEffect(() => {\n if (isTrailingDropDownOpen && isParentDropDownOpen) {\n closeParentDropDown();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setIsTrailingDropDownOpen, isTrailingDropDownOpen]);\n\n const trailingDropdown =\n trailing && getComponentId(trailing as React.ReactElement) === 'Dropdown' ? trailing : null;\n\n const renderTrailingDropDown = (): React.ReactElement | null => {\n if (!trailingDropdown) {\n return null;\n }\n return React.cloneElement(trailingDropdown as React.ReactElement, {\n selectionType: 'single',\n isOpen: isTrailingDropDownOpen,\n height: '100%',\n onOpenChange: (isOpen: boolean) => {\n setIsTrailingDropDownOpen(isOpen);\n },\n children: React.Children.map(\n (trailingDropdown as React.ReactElement).props.children,\n (child) => {\n if (child.type === InputDropdownButton) {\n return React.cloneElement(child, {\n _isInsideSearchInput: true,\n size,\n });\n }\n if (child.type === DropdownOverlay) {\n return React.cloneElement(child, {\n referenceRef: triggererWrapperRef,\n _isNestedDropdown: true,\n defaultPlacement: 'bottom-end',\n });\n }\n return child;\n },\n ),\n });\n };\n\n const renderClearButton = (): React.ReactElement => {\n return (\n <IconButton\n size=\"medium\"\n icon={CloseIcon}\n onClick={() => {\n if (isEmpty(value) && textInputRef.current) {\n // when the input field is uncontrolled take the ref and clear the input and then call the onClearButtonClick function\n if (isReactNative(textInputRef.current)) {\n textInputRef.current.clear();\n textInputRef.current.focus();\n } else if (textInputRef.current instanceof HTMLInputElement) {\n textInputRef.current.value = '';\n textInputRef.current.focus();\n }\n }\n\n // if the input field is controlled just call the click handler and the value change shall be left upto the consumer\n onClearButtonClick?.();\n textInputRef?.current?.focus();\n setShouldShowClearButton(false);\n }}\n isDisabled={isDisabled}\n accessibilityLabel=\"Clear Input Content\"\n />\n );\n };\n\n const renderInteractionElement = (): ReactNode => {\n if (isLoading) {\n return <Spinner accessibilityLabel=\"Loading Content\" color=\"primary\" />;\n }\n\n if (shouldShowClearButton && trailingDropdown) {\n return (\n <BaseBox display=\"flex\" gap=\"spacing.3\">\n {renderClearButton()} <Divider orientation=\"vertical\" />\n </BaseBox>\n );\n }\n if (shouldShowClearButton) {\n return renderClearButton();\n }\n\n return null;\n };\n\n const searchContent = (\n <BaseBox position=\"relative\">\n <BaseInput\n id=\"searchinput\"\n componentName={MetaConstants.SearchInput}\n ref={mergedRef}\n isDropdownTrigger={true}\n setInputWrapperRef={\n isInsideDropdown || isTrailingDropDownOpen\n ? (wrapperNode) => {\n triggererWrapperRef.current = wrapperNode;\n }\n : undefined\n }\n label={label as string}\n accessibilityLabel={accessibilityLabel}\n hideLabelText={!Boolean(label)}\n labelPosition={labelPosition}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n name={name}\n onKeyDown={isInsideDropdown ? onTriggerKeydown : undefined}\n onChange={({ name, value }) => {\n if (value?.length) {\n // show the clear button when the user starts typing in\n setShouldShowClearButton(true);\n }\n\n if (shouldShowClearButton && !value?.length) {\n // hide the clear button when the input field is empty\n setShouldShowClearButton(false);\n }\n\n onChange?.({ name, value });\n }}\n onClick={(e) => {\n if (isDisabled) return;\n if (isInsideDropdown) {\n onTriggerClick();\n }\n onClick?.(e);\n }}\n onFocus={(e) => {\n setIsSearchFocused(true);\n onFocus?.(e);\n }}\n onBlur={(e) => {\n setIsSearchFocused(false);\n onBlur?.(e);\n }}\n onSubmit={onSubmit}\n isDisabled={isDisabled}\n leadingIcon={showSearchIcon ? SearchIcon : undefined}\n trailingInteractionElement={renderInteractionElement()}\n trailingDropDown={renderTrailingDropDown()}\n helpText={helpText}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n testID={testID}\n {...getKeyboardAndAutocompleteProps({\n type: 'search',\n autoCapitalize,\n })}\n size={size}\n {...rest}\n />\n </BaseBox>\n );\n\n return (\n <TopNavOverlayThemeOverride\n shouldOverrideTheme={modalContext.isInsideModal ? true : isSearchFocused}\n >\n {searchContent}\n </TopNavOverlayThemeOverride>\n );\n};\n\nconst SearchInput = assignWithoutSideEffects(React.forwardRef(_SearchInput), {\n displayName: 'SearchInput',\n componentId: dropdownComponentIds.triggers.SearchInput,\n});\n\nexport type { SearchInputProps };\nexport { SearchInput };\n"],"names":["isReactNative","_textInputRef","getPlatformType","_SearchInput","_ref","ref","label","accessibilityLabel","_ref$labelPosition","labelPosition","placeholder","defaultValue","name","value","onChange","onClick","onFocus","onBlur","onSubmit","isDisabled","labelSuffix","labelTrailing","helpText","onClearButtonClick","isLoading","autoCapitalize","autoFocus","testID","_ref$size","size","_ref$showSearchIcon","showSearchIcon","trailing","rest","_objectWithoutProperties","_excluded","textInputRef","React","useRef","mergedRef","useMergeRefs","_useState","useState","_useState2","_slicedToArray","shouldShowClearButton","setShouldShowClearButton","_useState3","_useState4","isTrailingDropDownOpen","setIsTrailingDropDownOpen","_useDropdown","useDropdown","triggererWrapperRef","onTriggerKeydown","onTriggerClick","dropdownTriggerer","closeParentDropDown","close","isParentDropDownOpen","isOpen","isInsideDropdown","_useState5","_useState6","isSearchFocused","setIsSearchFocused","modalContext","useModalContext","useEffect","Boolean","trailingDropdown","getComponentId","renderTrailingDropDown","cloneElement","selectionType","height","onOpenChange","children","Children","map","props","child","type","InputDropdownButton","_isInsideSearchInput","DropdownOverlay","referenceRef","_isNestedDropdown","defaultPlacement","renderClearButton","_jsx","IconButton","icon","CloseIcon","_textInputRef$current","isEmpty","current","clear","focus","HTMLInputElement","renderInteractionElement","Spinner","color","_jsxs","BaseBox","display","gap","Divider","orientation","searchContent","position","BaseInput","_objectSpread","id","componentName","MetaConstants","SearchInput","isDropdownTrigger","setInputWrapperRef","wrapperNode","undefined","hideLabelText","onKeyDown","_ref2","length","e","leadingIcon","SearchIcon","trailingInteractionElement","trailingDropDown","getKeyboardAndAutocompleteProps","TopNavOverlayThemeOverride","shouldOverrideTheme","isInsideModal","assignWithoutSideEffects","forwardRef","displayName","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
@@ -97,7 +97,8 @@ var Modal = function Modal(_ref2) {
97
97
  close: onDismiss,
98
98
  isDismissible: isDismissible,
99
99
  defaultInitialFocusRef: defaultInitialFocusRef,
100
- isVisible: isVisible
100
+ isVisible: isVisible,
101
+ isInsideModal: true
101
102
  };
102
103
  }, [isOpen, onDismiss, isDismissible, defaultInitialFocusRef, isVisible]);
103
104
  var handleKeyDown = function handleKeyDown(event) {
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.web.js","sources":["../../../../../../src/components/Modal/Modal.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport usePresence from 'use-presence';\nimport { ModalHeader } from './ModalHeader';\nimport type { ModalHeaderProps } from './ModalHeader';\nimport { ModalFooter } from './ModalFooter';\nimport type { ModalFooterProps } from './ModalFooter';\nimport { ModalBody } from './ModalBody';\nimport type { ModalBodyProps } from './ModalBody';\nimport { ModalContext } from './ModalContext';\nimport { ModalBackdrop } from './ModalBackdrop';\nimport {\n modalBorderRadius,\n modalMaxHeight,\n modalMaxWidth,\n modalMinWidth,\n modalResponsiveScreenGap,\n modalMargin,\n} from './modalTokens';\nimport type { ModalProps } from './types';\nimport { castWebType, makeMotionTime, makeSize } from '~utils';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { Box } from '~components/Box';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { logger } from '~utils/logger';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { TopNavOverlayThemeOverride } from '~components/TopNav/TopNavOverlayThemeOverride';\n\nconst ModalContent = styled(BaseBox)<{ isVisible: boolean; size: NonNullable<ModalProps['size']> }>(\n ({ isVisible, theme, size }) => {\n const scale = isVisible ? 1 : 0.9;\n const transform = size !== 'full' ? `translate(-50%, -50%) scale(${scale})` : ``;\n\n return css`\n box-shadow: ${theme.elevation.highRaised};\n opacity: ${isVisible ? 1 : 0};\n position: fixed;\n transform: ${transform};\n transition-property: opacity, transform;\n transition-duration: ${castWebType(makeMotionTime(theme.motion.duration.moderate))};\n transition-timing-function: ${isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit)};\n\n ${size === 'full' &&\n css`\n top: ${makeSize(modalMargin[size])};\n left: ${makeSize(modalMargin[size])};\n right: ${makeSize(modalMargin[size])};\n bottom: ${makeSize(modalMargin[size])};\n `}\n `;\n },\n);\n\nconst Modal = ({\n isOpen = false,\n children,\n onDismiss,\n isDismissible = true,\n initialFocusRef,\n size = 'small',\n accessibilityLabel,\n zIndex = componentZIndices.modal,\n ...rest\n}: ModalProps): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { isMounted, isVisible } = usePresence(isOpen, {\n transitionDuration: theme.motion.duration.moderate,\n initialEnter: true,\n });\n\n // Warn consumer if modal is opened on mobile\n useEffect(() => {\n if (__DEV__) {\n if (platform === 'onMobile') {\n logger({\n message: 'Modal is not supported on mobile devices. Please use BottomSheet instead.',\n moduleName: 'Modal',\n type: 'warn',\n });\n }\n }\n }, [platform]);\n\n // required by floating ui to handle focus\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n const defaultInitialFocusRef = React.useRef<any>(null);\n\n const modalContext = React.useMemo(\n () => ({\n isOpen,\n close: onDismiss,\n isDismissible,\n defaultInitialFocusRef,\n isVisible,\n }),\n [isOpen, onDismiss, isDismissible, defaultInitialFocusRef, isVisible],\n );\n\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n // close modal on escape key press only if dismissible\n if (isDismissible && (event?.key === 'Escape' || event?.code === 'Escape')) {\n onDismiss?.();\n }\n };\n\n return (\n <FloatingPortal>\n <ModalContext.Provider value={modalContext}>\n {isMounted ? (\n <FloatingFocusManager\n returnFocus\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n >\n <TopNavOverlayThemeOverride>\n <Box zIndex={zIndex} position=\"fixed\" testID=\"modal-wrapper\">\n <ModalBackdrop />\n <ModalContent\n {...metaAttribute({\n name: MetaConstants.Modal,\n })}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n {...makeAnalyticsAttribute(rest)}\n maxWidth={size === 'full' ? '100%' : makeSize(modalMaxWidth[size])}\n minWidth={makeSize(modalMinWidth)}\n maxHeight={modalMaxHeight[size]}\n width={\n size === 'full'\n ? `calc(100vw - ${makeSize(modalMargin[size] * 2)})`\n : `calc(100vw - ${makeSize(modalResponsiveScreenGap)})`\n }\n borderRadius={modalBorderRadius}\n backgroundColor=\"popup.background.gray.subtle\"\n display=\"flex\"\n flexDirection=\"column\"\n top=\"50%\"\n left=\"50%\"\n onKeyDown={handleKeyDown}\n isVisible={isVisible}\n size={size}\n ref={refs.setFloating}\n overflow=\"hidden\"\n >\n {children}\n </ModalContent>\n </Box>\n </TopNavOverlayThemeOverride>\n </FloatingFocusManager>\n ) : null}\n </ModalContext.Provider>\n </FloatingPortal>\n );\n};\n\nexport { Modal, ModalHeader, ModalFooter, ModalBody };\nexport type { ModalProps, ModalHeaderProps, ModalFooterProps, ModalBodyProps };\n"],"names":["ModalContent","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","theme","size","scale","transform","concat","css","elevation","highRaised","castWebType","makeMotionTime","motion","duration","moderate","easing","entrance","exit","makeSize","modalMargin","Modal","_ref2","_ref2$isOpen","isOpen","children","onDismiss","_ref2$isDismissible","isDismissible","initialFocusRef","_ref2$size","accessibilityLabel","_ref2$zIndex","zIndex","componentZIndices","modal","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_usePresence","usePresence","transitionDuration","initialEnter","isMounted","useEffect","logger","message","moduleName","type","_useFloating","useFloating","open","refs","context","defaultInitialFocusRef","React","useRef","modalContext","useMemo","close","handleKeyDown","event","key","code","_jsx","FloatingPortal","ModalContext","Provider","value","FloatingFocusManager","returnFocus","initialFocus","TopNavOverlayThemeOverride","_jsxs","Box","position","testID","ModalBackdrop","_objectSpread","metaAttribute","name","MetaConstants","makeAccessible","role","label","makeAnalyticsAttribute","maxWidth","modalMaxWidth","minWidth","modalMinWidth","maxHeight","modalMaxHeight","width","modalResponsiveScreenGap","borderRadius","modalBorderRadius","backgroundColor","display","flexDirection","top","left","onKeyDown","ref","setFloating","overflow"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.web.js","sources":["../../../../../../src/components/Modal/Modal.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport { FloatingFocusManager, FloatingPortal, useFloating } from '@floating-ui/react';\nimport usePresence from 'use-presence';\nimport { ModalHeader } from './ModalHeader';\nimport type { ModalHeaderProps } from './ModalHeader';\nimport { ModalFooter } from './ModalFooter';\nimport type { ModalFooterProps } from './ModalFooter';\nimport { ModalBody } from './ModalBody';\nimport type { ModalBodyProps } from './ModalBody';\nimport { ModalContext } from './ModalContext';\nimport { ModalBackdrop } from './ModalBackdrop';\nimport {\n modalBorderRadius,\n modalMaxHeight,\n modalMaxWidth,\n modalMinWidth,\n modalResponsiveScreenGap,\n modalMargin,\n} from './modalTokens';\nimport type { ModalProps } from './types';\nimport { castWebType, makeMotionTime, makeSize } from '~utils';\nimport { BaseBox } from '~components/Box/BaseBox';\nimport { useTheme } from '~components/BladeProvider';\nimport { Box } from '~components/Box';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { logger } from '~utils/logger';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { TopNavOverlayThemeOverride } from '~components/TopNav/TopNavOverlayThemeOverride';\n\nconst ModalContent = styled(BaseBox)<{ isVisible: boolean; size: NonNullable<ModalProps['size']> }>(\n ({ isVisible, theme, size }) => {\n const scale = isVisible ? 1 : 0.9;\n const transform = size !== 'full' ? `translate(-50%, -50%) scale(${scale})` : ``;\n\n return css`\n box-shadow: ${theme.elevation.highRaised};\n opacity: ${isVisible ? 1 : 0};\n position: fixed;\n transform: ${transform};\n transition-property: opacity, transform;\n transition-duration: ${castWebType(makeMotionTime(theme.motion.duration.moderate))};\n transition-timing-function: ${isVisible\n ? castWebType(theme.motion.easing.entrance)\n : castWebType(theme.motion.easing.exit)};\n\n ${size === 'full' &&\n css`\n top: ${makeSize(modalMargin[size])};\n left: ${makeSize(modalMargin[size])};\n right: ${makeSize(modalMargin[size])};\n bottom: ${makeSize(modalMargin[size])};\n `}\n `;\n },\n);\n\nconst Modal = ({\n isOpen = false,\n children,\n onDismiss,\n isDismissible = true,\n initialFocusRef,\n size = 'small',\n accessibilityLabel,\n zIndex = componentZIndices.modal,\n ...rest\n}: ModalProps): React.ReactElement => {\n const { theme, platform } = useTheme();\n const { isMounted, isVisible } = usePresence(isOpen, {\n transitionDuration: theme.motion.duration.moderate,\n initialEnter: true,\n });\n\n // Warn consumer if modal is opened on mobile\n useEffect(() => {\n if (__DEV__) {\n if (platform === 'onMobile') {\n logger({\n message: 'Modal is not supported on mobile devices. Please use BottomSheet instead.',\n moduleName: 'Modal',\n type: 'warn',\n });\n }\n }\n }, [platform]);\n\n // required by floating ui to handle focus\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n const defaultInitialFocusRef = React.useRef<any>(null);\n\n const modalContext = React.useMemo(\n () => ({\n isOpen,\n close: onDismiss,\n isDismissible,\n defaultInitialFocusRef,\n isVisible,\n isInsideModal: true,\n }),\n [isOpen, onDismiss, isDismissible, defaultInitialFocusRef, isVisible],\n );\n\n const handleKeyDown = (event: React.KeyboardEvent): void => {\n // close modal on escape key press only if dismissible\n if (isDismissible && (event?.key === 'Escape' || event?.code === 'Escape')) {\n onDismiss?.();\n }\n };\n\n return (\n <FloatingPortal>\n <ModalContext.Provider value={modalContext}>\n {isMounted ? (\n <FloatingFocusManager\n returnFocus\n initialFocus={initialFocusRef ?? defaultInitialFocusRef}\n context={context}\n modal={true}\n >\n <TopNavOverlayThemeOverride>\n <Box zIndex={zIndex} position=\"fixed\" testID=\"modal-wrapper\">\n <ModalBackdrop />\n <ModalContent\n {...metaAttribute({\n name: MetaConstants.Modal,\n })}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n {...makeAnalyticsAttribute(rest)}\n maxWidth={size === 'full' ? '100%' : makeSize(modalMaxWidth[size])}\n minWidth={makeSize(modalMinWidth)}\n maxHeight={modalMaxHeight[size]}\n width={\n size === 'full'\n ? `calc(100vw - ${makeSize(modalMargin[size] * 2)})`\n : `calc(100vw - ${makeSize(modalResponsiveScreenGap)})`\n }\n borderRadius={modalBorderRadius}\n backgroundColor=\"popup.background.gray.subtle\"\n display=\"flex\"\n flexDirection=\"column\"\n top=\"50%\"\n left=\"50%\"\n onKeyDown={handleKeyDown}\n isVisible={isVisible}\n size={size}\n ref={refs.setFloating}\n overflow=\"hidden\"\n >\n {children}\n </ModalContent>\n </Box>\n </TopNavOverlayThemeOverride>\n </FloatingFocusManager>\n ) : null}\n </ModalContext.Provider>\n </FloatingPortal>\n );\n};\n\nexport { Modal, ModalHeader, ModalFooter, ModalBody };\nexport type { ModalProps, ModalHeaderProps, ModalFooterProps, ModalBodyProps };\n"],"names":["ModalContent","styled","BaseBox","withConfig","displayName","componentId","_ref","isVisible","theme","size","scale","transform","concat","css","elevation","highRaised","castWebType","makeMotionTime","motion","duration","moderate","easing","entrance","exit","makeSize","modalMargin","Modal","_ref2","_ref2$isOpen","isOpen","children","onDismiss","_ref2$isDismissible","isDismissible","initialFocusRef","_ref2$size","accessibilityLabel","_ref2$zIndex","zIndex","componentZIndices","modal","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_usePresence","usePresence","transitionDuration","initialEnter","isMounted","useEffect","logger","message","moduleName","type","_useFloating","useFloating","open","refs","context","defaultInitialFocusRef","React","useRef","modalContext","useMemo","close","isInsideModal","handleKeyDown","event","key","code","_jsx","FloatingPortal","ModalContext","Provider","value","FloatingFocusManager","returnFocus","initialFocus","TopNavOverlayThemeOverride","_jsxs","Box","position","testID","ModalBackdrop","_objectSpread","metaAttribute","name","MetaConstants","makeAccessible","role","label","makeAnalyticsAttribute","maxWidth","modalMaxWidth","minWidth","modalMinWidth","maxHeight","modalMaxHeight","width","modalResponsiveScreenGap","borderRadius","modalBorderRadius","backgroundColor","display","flexDirection","top","left","onKeyDown","ref","setFloating","overflow"],"mappings":"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"}
@@ -9,7 +9,8 @@ var ModalContext = /*#__PURE__*/React__default.createContext({
9
9
  current: null
10
10
  },
11
11
  isOpen: false,
12
- isVisible: false
12
+ isVisible: false,
13
+ isInsideModal: false
13
14
  });
14
15
  var useModalContext = function useModalContext() {
15
16
  var state = React__default.useContext(ModalContext);
@@ -1 +1 @@
1
- {"version":3,"file":"ModalContext.js","sources":["../../../../../../src/components/Modal/ModalContext.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\n\ntype ModalContextProps = {\n /**\n * Indicates open state of Modal\n */\n isOpen: boolean;\n /**\n * Function to close the Modal\n */\n close?: () => void;\n /**\n * Whether the modal can be dismissed\n */\n isDismissible: boolean;\n /**\n * The element that will get focused when the Modal first opens\n */\n defaultInitialFocusRef: React.MutableRefObject<any>;\n /**\n * Indicates if the Modal is visible according to the usePresence hook\n */\n isVisible: boolean;\n};\n\nconst ModalContext = React.createContext<ModalContextProps>({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close: () => {},\n isDismissible: true,\n defaultInitialFocusRef: { current: null },\n isOpen: false,\n isVisible: false,\n});\n\nconst useModalContext = (): ModalContextProps => {\n const state = React.useContext(ModalContext);\n return state;\n};\n\nexport { ModalContext, useModalContext };\n"],"names":["ModalContext","React","createContext","close","isDismissible","defaultInitialFocusRef","current","isOpen","isVisible","useModalContext","state","useContext"],"mappings":";;AAAA;AA0BA,IAAMA,YAAY,gBAAGC,cAAK,CAACC,aAAa,CAAoB;AAC1D;AACAC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,GAAQ,EAAE;AACfC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,sBAAsB,EAAE;AAAEC,IAAAA,OAAO,EAAE,IAAA;GAAM;AACzCC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,SAAS,EAAE,KAAA;AACb,CAAC,EAAC;AAEF,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,GAA4B;AAC/C,EAAA,IAAMC,KAAK,GAAGT,cAAK,CAACU,UAAU,CAACX,YAAY,CAAC,CAAA;AAC5C,EAAA,OAAOU,KAAK,CAAA;AACd;;;;"}
1
+ {"version":3,"file":"ModalContext.js","sources":["../../../../../../src/components/Modal/ModalContext.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\n\ntype ModalContextProps = {\n /**\n * Indicates open state of Modal\n */\n isOpen: boolean;\n /**\n * Function to close the Modal\n */\n close?: () => void;\n /**\n * Whether the modal can be dismissed\n */\n isDismissible: boolean;\n /**\n * The element that will get focused when the Modal first opens\n */\n defaultInitialFocusRef: React.MutableRefObject<any>;\n /**\n * Indicates if the Modal is visible according to the usePresence hook\n */\n isVisible: boolean;\n /**\n * Indicates if the Modal is inside a Modal\n */\n isInsideModal: boolean;\n};\n\nconst ModalContext = React.createContext<ModalContextProps>({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close: () => {},\n isDismissible: true,\n defaultInitialFocusRef: { current: null },\n isOpen: false,\n isVisible: false,\n isInsideModal: false,\n});\n\nconst useModalContext = (): ModalContextProps => {\n const state = React.useContext(ModalContext);\n return state;\n};\n\nexport { ModalContext, useModalContext };\n"],"names":["ModalContext","React","createContext","close","isDismissible","defaultInitialFocusRef","current","isOpen","isVisible","isInsideModal","useModalContext","state","useContext"],"mappings":";;AAAA;AA8BA,IAAMA,YAAY,gBAAGC,cAAK,CAACC,aAAa,CAAoB;AAC1D;AACAC,EAAAA,KAAK,EAAE,SAAPA,KAAKA,GAAQ,EAAE;AACfC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,sBAAsB,EAAE;AAAEC,IAAAA,OAAO,EAAE,IAAA;GAAM;AACzCC,EAAAA,MAAM,EAAE,KAAK;AACbC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,aAAa,EAAE,KAAA;AACjB,CAAC,EAAC;AAEF,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,GAA4B;AAC/C,EAAA,IAAMC,KAAK,GAAGV,cAAK,CAACW,UAAU,CAACZ,YAAY,CAAC,CAAA;AAC5C,EAAA,OAAOW,KAAK,CAAA;AACd;;;;"}
@@ -1492,7 +1492,9 @@ type BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> & Partial<DataAnalytics
1492
1492
  className?: string;
1493
1493
  id?: string;
1494
1494
  tabIndex?: number;
1495
- } & ElementTiming> & BladeCommonEvents;
1495
+ } & ElementTiming> & BladeCommonEvents & {
1496
+ $isCard?: boolean;
1497
+ };
1496
1498
  type BoxRefType = Platform.Select<{
1497
1499
  web: Omit<HTMLElement, 'style'>;
1498
1500
  native: View;
@@ -1491,7 +1491,9 @@ type BaseBoxProps = Omit<BoxProps, keyof BoxVisualProps> & Partial<DataAnalytics
1491
1491
  className?: string;
1492
1492
  id?: string;
1493
1493
  tabIndex?: number;
1494
- } & ElementTiming> & BladeCommonEvents;
1494
+ } & ElementTiming> & BladeCommonEvents & {
1495
+ $isCard?: boolean;
1496
+ };
1495
1497
  type BoxRefType = Platform.Select<{
1496
1498
  web: Omit<HTMLElement, 'style'>;
1497
1499
  native: View;
@@ -13371,7 +13373,7 @@ declare const SelectInput: react__default.ForwardRefExoticComponent<SelectInputP
13371
13373
  *
13372
13374
  * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-autocomplete--with-single-select AutoComplete Documentation}.
13373
13375
  */
13374
- declare const AutoComplete: react__default.ForwardRefExoticComponent<Pick<BaseInputProps, "name" | `data-analytics-${string}` | "label" | "testID" | "prefix" | "size" | "accessibilityLabel" | "onBlur" | "onFocus" | "autoFocus" | "placeholder" | "onClick" | "isDisabled" | "isRequired" | "validationState" | "necessityIndicator" | "helpText" | "errorText" | "successText" | "suffix"> & {
13376
+ declare const AutoComplete: react__default.ForwardRefExoticComponent<Pick<BaseInputProps, "name" | `data-analytics-${string}` | "label" | "testID" | "prefix" | "size" | "onBlur" | "onFocus" | "accessibilityLabel" | "autoFocus" | "placeholder" | "onClick" | "isDisabled" | "isRequired" | "validationState" | "necessityIndicator" | "helpText" | "errorText" | "successText" | "suffix"> & {
13375
13377
  icon?: IconComponent | undefined;
13376
13378
  value?: string | string[] | undefined;
13377
13379
  defaultValue?: string | string[] | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@razorpay/blade",
3
3
  "description": "The Design System that powers Razorpay",
4
- "version": "12.96.0",
4
+ "version": "12.96.2",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"