@razorpay/blade 12.110.0 → 12.119.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 (444) hide show
  1. package/assets/spark/colorama-center-gradient-map-dark.jpg +0 -0
  2. package/assets/spark/colorama-gradient-map-dark.png +0 -0
  3. package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js +5 -5
  4. package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js.map +1 -1
  5. package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js +6 -0
  6. package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -0
  7. package/build/lib/native/components/BaseMotion/BaseMotion.native.js +22 -0
  8. package/build/lib/native/components/BaseMotion/BaseMotion.native.js.map +1 -0
  9. package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js +11 -0
  10. package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js.map +1 -0
  11. package/build/lib/native/components/BaseMotion/baseMotionUtils.js +4 -0
  12. package/build/lib/native/components/BaseMotion/baseMotionUtils.js.map +1 -0
  13. package/build/lib/native/components/BaseMotion/index.js +3 -0
  14. package/build/lib/native/components/BaseMotion/index.js.map +1 -0
  15. package/build/lib/native/components/BaseMotion/types.js +2 -0
  16. package/build/lib/native/components/BaseMotion/types.js.map +1 -0
  17. package/build/lib/native/components/Button/BaseButton/BaseButton.js +3 -3
  18. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  19. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  20. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  21. package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js +2 -1
  22. package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js.map +1 -1
  23. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js +2 -2
  24. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js.map +1 -1
  25. package/build/lib/native/components/Charts/CommonChartComponents/index.js +1 -1
  26. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js +2 -2
  27. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  28. package/build/lib/native/components/Charts/LineChart/LineChart.native.js +4 -2
  29. package/build/lib/native/components/Charts/LineChart/LineChart.native.js.map +1 -1
  30. package/build/lib/native/components/Charts/utils/nullBridgeUtils.js +4 -0
  31. package/build/lib/native/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  32. package/build/lib/native/components/Charts/utils/referenceBandUtils.js +6 -0
  33. package/build/lib/native/components/Charts/utils/referenceBandUtils.js.map +1 -0
  34. package/build/lib/native/components/CounterInput/CounterInput.native.js +3 -2
  35. package/build/lib/native/components/CounterInput/CounterInput.native.js.map +1 -1
  36. package/build/lib/native/components/CounterInput/token.js +2 -2
  37. package/build/lib/native/components/CounterInput/token.js.map +1 -1
  38. package/build/lib/native/components/DatePicker/Calendar.native.js +2 -2
  39. package/build/lib/native/components/DatePicker/Calendar.native.js.map +1 -1
  40. package/build/lib/native/components/DatePicker/utils.js +2 -2
  41. package/build/lib/native/components/DatePicker/utils.js.map +1 -1
  42. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  43. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  44. package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js +2 -1
  45. package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js.map +1 -1
  46. package/build/lib/native/components/Dropdown/dropdownUtils.js +1 -1
  47. package/build/lib/native/components/Dropdown/dropdownUtils.js.map +1 -1
  48. package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js +4 -0
  49. package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
  50. package/build/lib/native/components/Dropdown/useDropdown.js +1 -1
  51. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  52. package/build/lib/native/components/Fade/Fade.native.js +7 -5
  53. package/build/lib/native/components/Fade/Fade.native.js.map +1 -1
  54. package/build/lib/native/components/FilterChip/BaseFilterChip.native.js +2 -2
  55. package/build/lib/native/components/FilterChip/BaseFilterChip.native.js.map +1 -1
  56. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +14 -0
  57. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  58. package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js +20 -0
  59. package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js.map +1 -0
  60. package/build/lib/native/components/FloatingActionButton/index.js +2 -0
  61. package/build/lib/native/components/FloatingActionButton/index.js.map +1 -0
  62. package/build/lib/native/components/GenUI/GenUIContext.native.js +2 -2
  63. package/build/lib/native/components/GenUI/GenUIContext.native.js.map +1 -1
  64. package/build/lib/native/components/GenUI/index.js +1 -1
  65. package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +14 -0
  66. package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  67. package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js +2 -0
  68. package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  69. package/build/lib/native/components/Icons/index.js +1 -0
  70. package/build/lib/native/components/Icons/index.js.map +1 -1
  71. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js +1 -1
  72. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js.map +1 -1
  73. package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
  74. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  75. package/build/lib/native/components/Morph/Morph.native.js +9 -5
  76. package/build/lib/native/components/Morph/Morph.native.js.map +1 -1
  77. package/build/lib/native/components/Move/Move.native.js +8 -5
  78. package/build/lib/native/components/Move/Move.native.js.map +1 -1
  79. package/build/lib/native/components/Scale/Scale.native.js +7 -5
  80. package/build/lib/native/components/Scale/Scale.native.js.map +1 -1
  81. package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js +27 -0
  82. package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js.map +1 -0
  83. package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js +8 -0
  84. package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
  85. package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js +18 -0
  86. package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js.map +1 -0
  87. package/build/lib/native/components/SegmentedControl/index.js +3 -0
  88. package/build/lib/native/components/SegmentedControl/index.js.map +1 -0
  89. package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js +4 -0
  90. package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
  91. package/build/lib/native/components/Slide/Slide.native.js +7 -5
  92. package/build/lib/native/components/Slide/Slide.native.js.map +1 -1
  93. package/build/lib/native/components/Spark/RzpGlass/utils.native.js +1 -1
  94. package/build/lib/native/components/Spark/RzpGlass/utils.native.js.map +1 -1
  95. package/build/lib/native/components/Stagger/Stagger.native.js +10 -5
  96. package/build/lib/native/components/Stagger/Stagger.native.js.map +1 -1
  97. package/build/lib/native/components/Stagger/StaggerProvider.js +6 -0
  98. package/build/lib/native/components/Stagger/StaggerProvider.js.map +1 -0
  99. package/build/lib/native/components/TreeView/TreeView.native.js +4 -0
  100. package/build/lib/native/components/TreeView/TreeView.native.js.map +1 -0
  101. package/build/lib/native/components/TreeView/index.native.js +2 -0
  102. package/build/lib/native/components/TreeView/index.native.js.map +1 -0
  103. package/build/lib/native/components/index.js +10 -2
  104. package/build/lib/native/components/index.js.map +1 -1
  105. package/build/lib/native/tokens/global/colors.js +1 -1
  106. package/build/lib/native/tokens/global/colors.js.map +1 -1
  107. package/build/lib/native/tokens/index.js +1 -0
  108. package/build/lib/native/tokens/index.js.map +1 -1
  109. package/build/lib/native/tokens/theme/bladeNeutralTheme.js +15 -0
  110. package/build/lib/native/tokens/theme/bladeNeutralTheme.js.map +1 -0
  111. package/build/lib/native/tokens/theme/bladeTheme.js +1 -1
  112. package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
  113. package/build/lib/native/tokens/theme/index.js +1 -0
  114. package/build/lib/native/tokens/theme/index.js.map +1 -1
  115. package/build/lib/native/tokens/theme/theme.js.map +1 -1
  116. package/build/lib/native/utils/componentZIndices.js +1 -1
  117. package/build/lib/native/utils/componentZIndices.js.map +1 -1
  118. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  119. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  120. package/build/lib/native/utils/msToSeconds.js +4 -0
  121. package/build/lib/native/utils/msToSeconds.js.map +1 -0
  122. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +1 -1
  123. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  124. package/build/lib/web/development/_virtual/flatten.js +1 -1
  125. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  126. package/build/lib/web/development/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
  127. package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
  128. package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
  129. package/build/lib/web/development/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
  130. package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
  131. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +124 -73
  132. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  133. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +68 -2
  134. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  135. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js +206 -18
  136. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  137. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
  138. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  139. package/build/lib/web/development/components/Charts/CommonChartComponents/index.js +1 -1
  140. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js +15 -2
  141. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  142. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js +272 -15
  143. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js.map +1 -1
  144. package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js +195 -0
  145. package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js.map +1 -0
  146. package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js +175 -0
  147. package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  148. package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js +66 -0
  149. package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js.map +1 -0
  150. package/build/lib/web/development/components/CounterInput/CounterInput.web.js +29 -5
  151. package/build/lib/web/development/components/CounterInput/CounterInput.web.js.map +1 -1
  152. package/build/lib/web/development/components/CounterInput/StyledCounterInput.js +20 -4
  153. package/build/lib/web/development/components/CounterInput/StyledCounterInput.js.map +1 -1
  154. package/build/lib/web/development/components/CounterInput/token.js +6 -1
  155. package/build/lib/web/development/components/CounterInput/token.js.map +1 -1
  156. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +28 -1
  157. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  158. package/build/lib/web/development/components/DatePicker/Calendar.web.js +9 -2
  159. package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
  160. package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
  161. package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
  162. package/build/lib/web/development/components/DatePicker/utils.js +21 -1
  163. package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
  164. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  165. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  166. package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +40 -5
  167. package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
  168. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +30 -32
  169. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  170. package/build/lib/web/development/components/Dropdown/dropdownUtils.js +28 -2
  171. package/build/lib/web/development/components/Dropdown/dropdownUtils.js.map +1 -1
  172. package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js +60 -0
  173. package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
  174. package/build/lib/web/development/components/Dropdown/useDropdown.js +91 -5
  175. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  176. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +35 -11
  177. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  178. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +126 -0
  179. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  180. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
  181. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
  182. package/build/lib/web/development/components/FloatingActionButton/index.js +2 -0
  183. package/build/lib/web/development/components/FloatingActionButton/index.js.map +1 -0
  184. package/build/lib/web/development/components/GenUI/GenUIComponents.web.js.map +1 -1
  185. package/build/lib/web/development/components/GenUI/GenUIContext.web.js +9 -1
  186. package/build/lib/web/development/components/GenUI/GenUIContext.web.js.map +1 -1
  187. package/build/lib/web/development/components/GenUI/GenUIProvider.web.js +17 -0
  188. package/build/lib/web/development/components/GenUI/GenUIProvider.web.js.map +1 -1
  189. package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js +31 -6
  190. package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
  191. package/build/lib/web/development/components/GenUI/index.js +1 -1
  192. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
  193. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  194. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js +2 -0
  195. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  196. package/build/lib/web/development/components/Icons/index.js +1 -0
  197. package/build/lib/web/development/components/Icons/index.js.map +1 -1
  198. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +3 -0
  199. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  200. package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js +7 -1
  201. package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js.map +1 -1
  202. package/build/lib/web/development/components/RollingText/RollingText.web.js +27 -20
  203. package/build/lib/web/development/components/RollingText/RollingText.web.js.map +1 -1
  204. package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js +196 -0
  205. package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
  206. package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js +18 -0
  207. package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
  208. package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
  209. package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
  210. package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
  211. package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
  212. package/build/lib/web/development/components/SegmentedControl/index.js +3 -0
  213. package/build/lib/web/development/components/SegmentedControl/index.js.map +1 -0
  214. package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js +53 -0
  215. package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
  216. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +16 -7
  217. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  218. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
  219. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  220. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +30 -1
  221. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
  222. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  223. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  224. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +26 -10
  225. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
  226. package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js +31 -18
  227. package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
  228. package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js +14 -3
  229. package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
  230. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
  231. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  232. package/build/lib/web/development/components/SpotlightPopoverTour/utils.js +58 -1
  233. package/build/lib/web/development/components/SpotlightPopoverTour/utils.js.map +1 -1
  234. package/build/lib/web/development/components/Stagger/StaggerProvider.js.map +1 -1
  235. package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js +41 -0
  236. package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
  237. package/build/lib/web/development/components/TreeView/TreeView.web.js +696 -0
  238. package/build/lib/web/development/components/TreeView/TreeView.web.js.map +1 -0
  239. package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js +184 -0
  240. package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js.map +1 -0
  241. package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js +73 -0
  242. package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js.map +1 -0
  243. package/build/lib/web/development/components/TreeView/TreeViewItem.web.js +295 -0
  244. package/build/lib/web/development/components/TreeView/TreeViewItem.web.js.map +1 -0
  245. package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js +173 -0
  246. package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
  247. package/build/lib/web/development/components/TreeView/componentIds.js +8 -0
  248. package/build/lib/web/development/components/TreeView/componentIds.js.map +1 -0
  249. package/build/lib/web/development/components/TreeView/index.web.js +4 -0
  250. package/build/lib/web/development/components/TreeView/index.web.js.map +1 -0
  251. package/build/lib/web/development/components/TreeView/treeViewUtils.js +475 -0
  252. package/build/lib/web/development/components/TreeView/treeViewUtils.js.map +1 -0
  253. package/build/lib/web/development/components/TreeView/useTreeView.js +24 -0
  254. package/build/lib/web/development/components/TreeView/useTreeView.js.map +1 -0
  255. package/build/lib/web/development/components/index.js +12 -2
  256. package/build/lib/web/development/components/index.js.map +1 -1
  257. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  258. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  259. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  260. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  261. package/build/lib/web/development/tokens/global/colors.js +2 -2
  262. package/build/lib/web/development/tokens/global/colors.js.map +1 -1
  263. package/build/lib/web/development/tokens/index.js +1 -0
  264. package/build/lib/web/development/tokens/index.js.map +1 -1
  265. package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js +1439 -0
  266. package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js.map +1 -0
  267. package/build/lib/web/development/tokens/theme/bladeTheme.js +48 -12
  268. package/build/lib/web/development/tokens/theme/bladeTheme.js.map +1 -1
  269. package/build/lib/web/development/tokens/theme/index.js +1 -0
  270. package/build/lib/web/development/tokens/theme/index.js.map +1 -1
  271. package/build/lib/web/development/tokens/theme/theme.js.map +1 -1
  272. package/build/lib/web/development/utils/componentZIndices.js +2 -0
  273. package/build/lib/web/development/utils/componentZIndices.js.map +1 -1
  274. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +7 -1
  275. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  276. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
  277. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  278. package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
  279. package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
  280. package/build/lib/web/production/_virtual/flatten.js +1 -1
  281. package/build/lib/web/production/_virtual/flatten3.js +1 -1
  282. package/build/lib/web/production/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
  283. package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
  284. package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
  285. package/build/lib/web/production/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
  286. package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
  287. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +124 -73
  288. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  289. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +68 -2
  290. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  291. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js +206 -18
  292. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  293. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
  294. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  295. package/build/lib/web/production/components/Charts/CommonChartComponents/index.js +1 -1
  296. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js +15 -2
  297. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  298. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js +272 -15
  299. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js.map +1 -1
  300. package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js +195 -0
  301. package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js.map +1 -0
  302. package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js +175 -0
  303. package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  304. package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js +66 -0
  305. package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js.map +1 -0
  306. package/build/lib/web/production/components/CounterInput/CounterInput.web.js +29 -5
  307. package/build/lib/web/production/components/CounterInput/CounterInput.web.js.map +1 -1
  308. package/build/lib/web/production/components/CounterInput/StyledCounterInput.js +20 -4
  309. package/build/lib/web/production/components/CounterInput/StyledCounterInput.js.map +1 -1
  310. package/build/lib/web/production/components/CounterInput/token.js +6 -1
  311. package/build/lib/web/production/components/CounterInput/token.js.map +1 -1
  312. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +28 -1
  313. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  314. package/build/lib/web/production/components/DatePicker/Calendar.web.js +9 -2
  315. package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
  316. package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
  317. package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
  318. package/build/lib/web/production/components/DatePicker/utils.js +21 -1
  319. package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
  320. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  321. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  322. package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +40 -5
  323. package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
  324. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +30 -32
  325. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  326. package/build/lib/web/production/components/Dropdown/dropdownUtils.js +28 -2
  327. package/build/lib/web/production/components/Dropdown/dropdownUtils.js.map +1 -1
  328. package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js +60 -0
  329. package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
  330. package/build/lib/web/production/components/Dropdown/useDropdown.js +91 -5
  331. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  332. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +35 -11
  333. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  334. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +126 -0
  335. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  336. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
  337. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
  338. package/build/lib/web/production/components/FloatingActionButton/index.js +2 -0
  339. package/build/lib/web/production/components/FloatingActionButton/index.js.map +1 -0
  340. package/build/lib/web/production/components/GenUI/GenUIComponents.web.js.map +1 -1
  341. package/build/lib/web/production/components/GenUI/GenUIContext.web.js +9 -1
  342. package/build/lib/web/production/components/GenUI/GenUIContext.web.js.map +1 -1
  343. package/build/lib/web/production/components/GenUI/GenUIProvider.web.js +17 -0
  344. package/build/lib/web/production/components/GenUI/GenUIProvider.web.js.map +1 -1
  345. package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js +31 -6
  346. package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
  347. package/build/lib/web/production/components/GenUI/index.js +1 -1
  348. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
  349. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  350. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js +2 -0
  351. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  352. package/build/lib/web/production/components/Icons/index.js +1 -0
  353. package/build/lib/web/production/components/Icons/index.js.map +1 -1
  354. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +3 -0
  355. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  356. package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js +7 -1
  357. package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js.map +1 -1
  358. package/build/lib/web/production/components/RollingText/RollingText.web.js +27 -20
  359. package/build/lib/web/production/components/RollingText/RollingText.web.js.map +1 -1
  360. package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js +196 -0
  361. package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
  362. package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js +18 -0
  363. package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
  364. package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
  365. package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
  366. package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
  367. package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
  368. package/build/lib/web/production/components/SegmentedControl/index.js +3 -0
  369. package/build/lib/web/production/components/SegmentedControl/index.js.map +1 -0
  370. package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js +53 -0
  371. package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
  372. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +16 -7
  373. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  374. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
  375. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  376. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +30 -1
  377. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
  378. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  379. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  380. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +26 -10
  381. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
  382. package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js +31 -18
  383. package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
  384. package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js +14 -3
  385. package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
  386. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
  387. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  388. package/build/lib/web/production/components/SpotlightPopoverTour/utils.js +58 -1
  389. package/build/lib/web/production/components/SpotlightPopoverTour/utils.js.map +1 -1
  390. package/build/lib/web/production/components/Stagger/StaggerProvider.js.map +1 -1
  391. package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js +41 -0
  392. package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
  393. package/build/lib/web/production/components/TreeView/TreeView.web.js +696 -0
  394. package/build/lib/web/production/components/TreeView/TreeView.web.js.map +1 -0
  395. package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js +184 -0
  396. package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js.map +1 -0
  397. package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js +73 -0
  398. package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js.map +1 -0
  399. package/build/lib/web/production/components/TreeView/TreeViewItem.web.js +295 -0
  400. package/build/lib/web/production/components/TreeView/TreeViewItem.web.js.map +1 -0
  401. package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js +173 -0
  402. package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
  403. package/build/lib/web/production/components/TreeView/componentIds.js +8 -0
  404. package/build/lib/web/production/components/TreeView/componentIds.js.map +1 -0
  405. package/build/lib/web/production/components/TreeView/index.web.js +4 -0
  406. package/build/lib/web/production/components/TreeView/index.web.js.map +1 -0
  407. package/build/lib/web/production/components/TreeView/treeViewUtils.js +475 -0
  408. package/build/lib/web/production/components/TreeView/treeViewUtils.js.map +1 -0
  409. package/build/lib/web/production/components/TreeView/useTreeView.js +24 -0
  410. package/build/lib/web/production/components/TreeView/useTreeView.js.map +1 -0
  411. package/build/lib/web/production/components/index.js +12 -2
  412. package/build/lib/web/production/components/index.js.map +1 -1
  413. package/build/lib/web/production/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  414. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  415. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  416. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  417. package/build/lib/web/production/tokens/global/colors.js +2 -2
  418. package/build/lib/web/production/tokens/global/colors.js.map +1 -1
  419. package/build/lib/web/production/tokens/index.js +1 -0
  420. package/build/lib/web/production/tokens/index.js.map +1 -1
  421. package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js +1439 -0
  422. package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js.map +1 -0
  423. package/build/lib/web/production/tokens/theme/bladeTheme.js +48 -12
  424. package/build/lib/web/production/tokens/theme/bladeTheme.js.map +1 -1
  425. package/build/lib/web/production/tokens/theme/index.js +1 -0
  426. package/build/lib/web/production/tokens/theme/index.js.map +1 -1
  427. package/build/lib/web/production/tokens/theme/theme.js.map +1 -1
  428. package/build/lib/web/production/utils/componentZIndices.js +2 -0
  429. package/build/lib/web/production/utils/componentZIndices.js.map +1 -1
  430. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +7 -1
  431. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  432. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
  433. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  434. package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
  435. package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
  436. package/build/types/components/index.d.ts +794 -25
  437. package/build/types/components/index.native.d.ts +872 -29
  438. package/build/types/tokens/index.d.ts +11 -4
  439. package/build/types/tokens/index.native.d.ts +11 -4
  440. package/build/types/utils/index.d.ts +8 -3
  441. package/build/types/utils/index.native.d.ts +8 -3
  442. package/package.json +2 -2
  443. package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.js.map +0 -1
  444. package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.js.map +0 -1
@@ -0,0 +1,109 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import React__default from 'react';
4
+ import { useSegmentedControlContext } from './SegmentedControlContext.js';
5
+ import { itemBorderRadius } from './segmentedControlTokens.js';
6
+ import '../../utils/index.js';
7
+ import '../BladeProvider/index.js';
8
+ import { useIsomorphicLayoutEffect } from '../../utils/useIsomorphicLayoutEffect.js';
9
+ import { useResize } from '../../utils/useResize.js';
10
+ import '../Box/BaseBox/index.js';
11
+ import { jsx } from 'react/jsx-runtime';
12
+ import useTheme from '../BladeProvider/useTheme.js';
13
+ import { castWebType } from '../../utils/platform/castUtils.js';
14
+ import { makeMotionTime } from '../../utils/makeMotionTime/makeMotionTime.web.js';
15
+ import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
16
+ import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
17
+
18
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20
+ var SegmentedControlIndicator = function SegmentedControlIndicator(_ref) {
21
+ var containerRef = _ref.containerRef;
22
+ var _useTheme = useTheme(),
23
+ theme = _useTheme.theme;
24
+ var _useSegmentedControlC = useSegmentedControlContext(),
25
+ selectedValue = _useSegmentedControlC.selectedValue,
26
+ size = _useSegmentedControlC.size,
27
+ itemRefs = _useSegmentedControlC.itemRefs;
28
+ var _React$useState = React__default.useState(false),
29
+ _React$useState2 = _slicedToArray(_React$useState, 2),
30
+ shouldAnimate = _React$useState2[0],
31
+ setShouldAnimate = _React$useState2[1];
32
+ var _React$useState3 = React__default.useState({
33
+ width: 0,
34
+ height: 0,
35
+ x: 0,
36
+ y: 0
37
+ }),
38
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
39
+ dimensions = _React$useState4[0],
40
+ setDimensions = _React$useState4[1];
41
+ var updateDimensions = React__default.useCallback(function () {
42
+ if (!selectedValue || !itemRefs) return;
43
+ var activeItem = itemRefs.current.get(selectedValue);
44
+ var container = containerRef.current;
45
+ if (!activeItem || !container || activeItem.offsetWidth === 0) return;
46
+ var containerRect = container.getBoundingClientRect();
47
+ var itemRect = activeItem.getBoundingClientRect();
48
+ setDimensions({
49
+ width: activeItem.offsetWidth,
50
+ height: activeItem.offsetHeight,
51
+ x: itemRect.left - containerRect.left,
52
+ y: itemRect.top - containerRect.top
53
+ });
54
+ }, [selectedValue, itemRefs, containerRef]);
55
+ useIsomorphicLayoutEffect(function () {
56
+ if (!selectedValue) return;
57
+ updateDimensions();
58
+ }, [selectedValue, updateDimensions]);
59
+ var updateDimensionsRef = React__default.useRef(updateDimensions);
60
+ updateDimensionsRef.current = updateDimensions;
61
+ React__default.useEffect(function () {
62
+ if ('fonts' in document) {
63
+ try {
64
+ void document.fonts.ready.then(function () {
65
+ updateDimensionsRef.current();
66
+ });
67
+ } catch (_unused) {
68
+ /* empty */
69
+ }
70
+ }
71
+ // Runs once on mount — document.fonts.ready only needs to be awaited a single time.
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
73
+ }, []);
74
+ useResize(containerRef, updateDimensions);
75
+
76
+ // Enable animation only after the first paint with real dimensions.
77
+ // useEffect fires after the browser paints, guaranteeing the initial
78
+ // position is committed before transitions are turned on.
79
+ React__default.useEffect(function () {
80
+ if (dimensions.width > 0) {
81
+ setShouldAnimate(true);
82
+ }
83
+ }, [dimensions.width]);
84
+
85
+ // Nothing to show until dimensions are measured — avoids a 0×0 flash.
86
+ if (!dimensions.width) return null;
87
+ var transitionProps = {
88
+ transitionProperty: 'transform',
89
+ transitionDuration: shouldAnimate ? castWebType(makeMotionTime(theme.motion.duration.moderate)) : '0ms',
90
+ transitionTimingFunction: castWebType(theme.motion.easing.standard)
91
+ };
92
+ var borderRadiusValue = makeSpace(theme.border.radius[itemBorderRadius[size]]);
93
+ return /*#__PURE__*/jsx(BaseBox, {
94
+ pointerEvents: "none",
95
+ position: "absolute",
96
+ left: "0px",
97
+ top: "0px",
98
+ backgroundColor: "surface.background.gray.intense",
99
+ style: _objectSpread(_objectSpread({}, transitionProps), {}, {
100
+ borderRadius: borderRadiusValue,
101
+ width: "".concat(dimensions.width, "px"),
102
+ height: "".concat(dimensions.height, "px"),
103
+ transform: "translate(".concat(dimensions.x, "px, ").concat(dimensions.y, "px)")
104
+ })
105
+ });
106
+ };
107
+
108
+ export { SegmentedControlIndicator };
109
+ //# sourceMappingURL=SegmentedControlIndicator.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControlIndicator.web.js","sources":["../../../../../../src/components/SegmentedControl/SegmentedControlIndicator.web.tsx"],"sourcesContent":["import React from 'react';\nimport { useSegmentedControlContext } from './SegmentedControlContext';\nimport { itemBorderRadius } from './segmentedControlTokens';\nimport { castWebType, makeMotionTime, makeSpace } from '~utils';\nimport { useTheme } from '~components/BladeProvider';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useResize } from '~utils/useResize';\nimport BaseBox from '~components/Box/BaseBox';\n\nconst SegmentedControlIndicator = ({\n containerRef,\n}: {\n containerRef: React.RefObject<HTMLElement | null>;\n}): React.ReactElement | null => {\n const { theme } = useTheme();\n const { selectedValue, size, itemRefs } = useSegmentedControlContext();\n const [shouldAnimate, setShouldAnimate] = React.useState(false);\n const [dimensions, setDimensions] = React.useState({ width: 0, height: 0, x: 0, y: 0 });\n\n const updateDimensions = React.useCallback(() => {\n if (!selectedValue || !itemRefs) return;\n const activeItem = itemRefs.current.get(selectedValue);\n const container = containerRef.current;\n if (!activeItem || !container || activeItem.offsetWidth === 0) return;\n\n const containerRect = container.getBoundingClientRect();\n const itemRect = activeItem.getBoundingClientRect();\n\n setDimensions({\n width: activeItem.offsetWidth,\n height: activeItem.offsetHeight,\n x: itemRect.left - containerRect.left,\n y: itemRect.top - containerRect.top,\n });\n }, [selectedValue, itemRefs, containerRef]);\n\n useIsomorphicLayoutEffect(() => {\n if (!selectedValue) return;\n updateDimensions();\n }, [selectedValue, updateDimensions]);\n\n const updateDimensionsRef = React.useRef(updateDimensions);\n updateDimensionsRef.current = updateDimensions;\n\n React.useEffect(() => {\n if ('fonts' in document) {\n try {\n void document.fonts.ready.then(() => {\n updateDimensionsRef.current();\n });\n } catch {\n /* empty */\n }\n }\n // Runs once on mount — document.fonts.ready only needs to be awaited a single time.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useResize(containerRef, updateDimensions);\n\n // Enable animation only after the first paint with real dimensions.\n // useEffect fires after the browser paints, guaranteeing the initial\n // position is committed before transitions are turned on.\n React.useEffect(() => {\n if (dimensions.width > 0) {\n setShouldAnimate(true);\n }\n }, [dimensions.width]);\n\n // Nothing to show until dimensions are measured — avoids a 0×0 flash.\n if (!dimensions.width) return null;\n\n const transitionProps = {\n transitionProperty: 'transform',\n transitionDuration: shouldAnimate\n ? castWebType(makeMotionTime(theme.motion.duration.moderate))\n : '0ms',\n transitionTimingFunction: castWebType(theme.motion.easing.standard),\n };\n\n const borderRadiusValue = makeSpace(theme.border.radius[itemBorderRadius[size]]);\n\n return (\n <BaseBox\n pointerEvents=\"none\"\n position=\"absolute\"\n left=\"0px\"\n top=\"0px\"\n backgroundColor=\"surface.background.gray.intense\"\n style={{\n ...transitionProps,\n borderRadius: borderRadiusValue,\n width: `${dimensions.width}px`,\n height: `${dimensions.height}px`,\n transform: `translate(${dimensions.x}px, ${dimensions.y}px)`,\n }}\n />\n );\n};\n\nexport { SegmentedControlIndicator };\n"],"names":["SegmentedControlIndicator","_ref","containerRef","_useTheme","useTheme","theme","_useSegmentedControlC","useSegmentedControlContext","selectedValue","size","itemRefs","_React$useState","React","useState","_React$useState2","_slicedToArray","shouldAnimate","setShouldAnimate","_React$useState3","width","height","x","y","_React$useState4","dimensions","setDimensions","updateDimensions","useCallback","activeItem","current","get","container","offsetWidth","containerRect","getBoundingClientRect","itemRect","offsetHeight","left","top","useIsomorphicLayoutEffect","updateDimensionsRef","useRef","useEffect","document","fonts","ready","then","_unused","useResize","transitionProps","transitionProperty","transitionDuration","castWebType","makeMotionTime","motion","duration","moderate","transitionTimingFunction","easing","standard","borderRadiusValue","makeSpace","border","radius","itemBorderRadius","_jsx","BaseBox","pointerEvents","position","backgroundColor","style","_objectSpread","borderRadius","concat","transform"],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import React__default from 'react';
4
+ import styled from 'styled-components';
5
+ import { useSegmentedControlContext } from './SegmentedControlContext.js';
6
+ import { itemHeight, paddingY, paddingX, itemBorderRadius, iconSizeMap, textSizeMap } from './segmentedControlTokens.js';
7
+ import '../Typography/index.js';
8
+ import '../../utils/index.js';
9
+ import '../../utils/makeAccessible/index.js';
10
+ import '../../utils/metaAttribute/index.js';
11
+ import '../../utils/makeAnalyticsAttribute/index.js';
12
+ import getIn from '../../utils/lodashButBetter/get.js';
13
+ import { jsxs, jsx } from 'react/jsx-runtime';
14
+ import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
15
+ import { castWebType } from '../../utils/platform/castUtils.js';
16
+ import { makeMotionTime } from '../../utils/makeMotionTime/makeMotionTime.web.js';
17
+ import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
18
+ import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
19
+ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
20
+ import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
21
+ import { Text } from '../Typography/Text/Text.js';
22
+
23
+ var _excluded = ["children", "value", "leading", "isDisabled", "accessibilityLabel", "testID"];
24
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
+ var StyledSegmentedControlButton = /*#__PURE__*/styled.button.withConfig({
27
+ displayName: "SegmentedControlItemweb__StyledSegmentedControlButton",
28
+ componentId: "i0wihp-0"
29
+ })(function (_ref) {
30
+ var theme = _ref.theme,
31
+ $size = _ref.$size,
32
+ $isSelected = _ref.$isSelected;
33
+ return {
34
+ appearance: 'none',
35
+ border: 'none',
36
+ cursor: 'pointer',
37
+ display: 'inline-flex',
38
+ alignItems: 'center',
39
+ justifyContent: 'center',
40
+ gap: makeSpace(theme.spacing[3]),
41
+ flex: 1,
42
+ height: makeSpace(itemHeight[$size]),
43
+ paddingTop: makeSpace(getIn(theme, paddingY[$size])),
44
+ paddingBottom: makeSpace(getIn(theme, paddingY[$size])),
45
+ paddingLeft: makeSpace(getIn(theme, paddingX[$size])),
46
+ paddingRight: makeSpace(getIn(theme, paddingX[$size])),
47
+ backgroundColor: 'transparent',
48
+ borderRadius: makeSpace(theme.border.radius[itemBorderRadius[$size]]),
49
+ position: 'relative',
50
+ zIndex: 1,
51
+ transitionProperty: 'background-color',
52
+ transitionTimingFunction: castWebType(theme.motion.easing.standard),
53
+ transitionDuration: castWebType(makeMotionTime(theme.motion.duration.gentle)),
54
+ '&:hover:not(:disabled)': {
55
+ backgroundColor: $isSelected ? 'transparent' : theme.colors.interactive.background.gray["default"]
56
+ },
57
+ '&:focus:not(:focus-visible)': {
58
+ outline: 'none'
59
+ },
60
+ '&:focus-visible': {
61
+ outline: 'none',
62
+ boxShadow: "inset 0px 0px 0px 4px ".concat(theme.colors.surface.border.primary.muted)
63
+ },
64
+ '&:disabled': {
65
+ cursor: 'not-allowed',
66
+ backgroundColor: 'transparent'
67
+ },
68
+ '&:disabled:hover': {
69
+ backgroundColor: 'transparent'
70
+ }
71
+ };
72
+ });
73
+ var SegmentedControlItem = function SegmentedControlItem(_ref2) {
74
+ var children = _ref2.children,
75
+ value = _ref2.value,
76
+ Leading = _ref2.leading,
77
+ _ref2$isDisabled = _ref2.isDisabled,
78
+ isItemDisabled = _ref2$isDisabled === void 0 ? false : _ref2$isDisabled,
79
+ accessibilityLabel = _ref2.accessibilityLabel,
80
+ testID = _ref2.testID,
81
+ rest = _objectWithoutProperties(_ref2, _excluded);
82
+ var _useSegmentedControlC = useSegmentedControlContext(),
83
+ selectedValue = _useSegmentedControlC.selectedValue,
84
+ setSelectedValue = _useSegmentedControlC.setSelectedValue,
85
+ size = _useSegmentedControlC.size,
86
+ isGroupDisabled = _useSegmentedControlC.isDisabled,
87
+ baseId = _useSegmentedControlC.baseId,
88
+ totalItems = _useSegmentedControlC.totalItems,
89
+ firstEnabledValue = _useSegmentedControlC.firstEnabledValue,
90
+ itemRefs = _useSegmentedControlC.itemRefs;
91
+ var buttonRef = React__default.useRef(null);
92
+ var isSelected = selectedValue === value;
93
+ var isDisabled = isGroupDisabled || isItemDisabled;
94
+ var shouldReceiveFocus = !isDisabled && isSelected || selectedValue === undefined && !isDisabled && value === firstEnabledValue;
95
+ React__default.useEffect(function () {
96
+ if (!itemRefs) return undefined;
97
+ var map = itemRefs.current;
98
+ var node = buttonRef.current;
99
+ if (node) map.set(value, node);
100
+ return function () {
101
+ map["delete"](value);
102
+ };
103
+ }, [value, itemRefs]);
104
+ var handleKeyDown = React__default.useCallback(function (e) {
105
+ var _buttonRef$current;
106
+ var container = (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.closest('[role="radiogroup"]');
107
+ if (!container) return;
108
+ var buttons = Array.from(container.querySelectorAll('[role="radio"]:not(:disabled)'));
109
+ var currentIndex = buttons.indexOf(buttonRef.current);
110
+ var nextIndex = -1;
111
+ if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {
112
+ nextIndex = (currentIndex + 1) % buttons.length;
113
+ } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {
114
+ nextIndex = (currentIndex - 1 + buttons.length) % buttons.length;
115
+ } else if (e.key === 'Home') {
116
+ nextIndex = 0;
117
+ } else if (e.key === 'End') {
118
+ nextIndex = buttons.length - 1;
119
+ }
120
+ if (nextIndex >= 0) {
121
+ e.preventDefault();
122
+ var nextEl = buttons[nextIndex];
123
+ nextEl.focus();
124
+ setSelectedValue(function () {
125
+ var _nextEl$dataset$value;
126
+ return (_nextEl$dataset$value = nextEl.dataset.value) !== null && _nextEl$dataset$value !== void 0 ? _nextEl$dataset$value : '';
127
+ });
128
+ }
129
+ }, [setSelectedValue]);
130
+ var textColor = isDisabled ? 'interactive.text.gray.disabled' : isSelected ? 'interactive.text.gray.normal' : 'interactive.text.gray.muted';
131
+ var iconColor = isDisabled ? 'interactive.icon.gray.disabled' : isSelected ? 'interactive.icon.gray.normal' : 'interactive.icon.gray.muted';
132
+ return /*#__PURE__*/jsxs(StyledSegmentedControlButton, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
133
+ ref: buttonRef,
134
+ type: "button",
135
+ id: "".concat(baseId, "-").concat(value, "-item"),
136
+ "data-value": value,
137
+ tabIndex: shouldReceiveFocus ? 0 : -1,
138
+ $size: size,
139
+ $isSelected: isSelected,
140
+ disabled: isDisabled,
141
+ onClick: function onClick() {
142
+ setSelectedValue(function () {
143
+ return value;
144
+ });
145
+ },
146
+ onKeyDown: handleKeyDown
147
+ }, makeAccessible({
148
+ role: 'radio',
149
+ checked: isSelected,
150
+ label: accessibilityLabel,
151
+ setSize: totalItems
152
+ })), metaAttribute({
153
+ name: MetaConstants.SegmentedControlItem,
154
+ testID: testID
155
+ })), makeAnalyticsAttribute(rest)), {}, {
156
+ children: [Leading ? /*#__PURE__*/jsx(Leading, {
157
+ size: iconSizeMap[size],
158
+ color: iconColor
159
+ }) : null, children ? /*#__PURE__*/jsx(Text, {
160
+ as: "span",
161
+ color: textColor,
162
+ size: textSizeMap[size],
163
+ weight: "medium",
164
+ children: children
165
+ }) : null]
166
+ }));
167
+ };
168
+
169
+ export { SegmentedControlItem };
170
+ //# sourceMappingURL=SegmentedControlItem.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControlItem.web.js","sources":["../../../../../../src/components/SegmentedControl/SegmentedControlItem.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport type { SegmentedControlItemProps, SegmentedControlSize } from './types';\nimport { useSegmentedControlContext } from './SegmentedControlContext';\nimport {\n paddingX,\n paddingY,\n textSizeMap,\n iconSizeMap,\n itemBorderRadius,\n itemHeight,\n} from './segmentedControlTokens';\nimport { Text } from '~components/Typography';\nimport { makeSpace, castWebType, makeMotionTime } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport getIn from '~utils/lodashButBetter/get';\n\nconst StyledSegmentedControlButton = styled.button<{\n $size: SegmentedControlSize;\n $isSelected: boolean;\n}>(({ theme, $size, $isSelected }) => ({\n appearance: 'none',\n border: 'none',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: makeSpace(theme.spacing[3]),\n flex: 1,\n height: makeSpace(itemHeight[$size]),\n\n paddingTop: makeSpace(getIn(theme, paddingY[$size])),\n paddingBottom: makeSpace(getIn(theme, paddingY[$size])),\n paddingLeft: makeSpace(getIn(theme, paddingX[$size])),\n paddingRight: makeSpace(getIn(theme, paddingX[$size])),\n\n backgroundColor: 'transparent',\n borderRadius: makeSpace(theme.border.radius[itemBorderRadius[$size]]),\n\n position: 'relative' as const,\n zIndex: 1,\n\n transitionProperty: 'background-color',\n transitionTimingFunction: castWebType(theme.motion.easing.standard),\n transitionDuration: castWebType(makeMotionTime(theme.motion.duration.gentle)),\n\n '&:hover:not(:disabled)': {\n backgroundColor: $isSelected ? 'transparent' : theme.colors.interactive.background.gray.default,\n },\n\n '&:focus:not(:focus-visible)': {\n outline: 'none',\n },\n\n '&:focus-visible': {\n outline: 'none',\n boxShadow: `inset 0px 0px 0px 4px ${theme.colors.surface.border.primary.muted}`,\n },\n\n '&:disabled': {\n cursor: 'not-allowed',\n backgroundColor: 'transparent',\n },\n '&:disabled:hover': {\n backgroundColor: 'transparent',\n },\n}));\n\nconst SegmentedControlItem = ({\n children,\n value,\n leading: Leading,\n isDisabled: isItemDisabled = false,\n accessibilityLabel,\n testID,\n ...rest\n}: SegmentedControlItemProps): React.ReactElement => {\n const {\n selectedValue,\n setSelectedValue,\n size,\n isDisabled: isGroupDisabled,\n baseId,\n totalItems,\n firstEnabledValue,\n itemRefs,\n } = useSegmentedControlContext();\n\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const isSelected = selectedValue === value;\n const isDisabled = isGroupDisabled || isItemDisabled;\n\n const shouldReceiveFocus =\n (!isDisabled && isSelected) ||\n (selectedValue === undefined && !isDisabled && value === firstEnabledValue);\n\n React.useEffect(() => {\n if (!itemRefs) return undefined;\n const map = itemRefs.current;\n const node = buttonRef.current;\n if (node) map.set(value, node);\n return () => {\n map.delete(value);\n };\n }, [value, itemRefs]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n const container = buttonRef.current?.closest('[role=\"radiogroup\"]');\n if (!container) return;\n\n const buttons = Array.from(\n container.querySelectorAll<HTMLButtonElement>('[role=\"radio\"]:not(:disabled)'),\n );\n const currentIndex = buttons.indexOf(buttonRef.current!);\n let nextIndex = -1;\n\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n nextIndex = (currentIndex + 1) % buttons.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n nextIndex = (currentIndex - 1 + buttons.length) % buttons.length;\n } else if (e.key === 'Home') {\n nextIndex = 0;\n } else if (e.key === 'End') {\n nextIndex = buttons.length - 1;\n }\n\n if (nextIndex >= 0) {\n e.preventDefault();\n const nextEl = buttons[nextIndex];\n nextEl.focus();\n setSelectedValue(() => nextEl.dataset.value ?? '');\n }\n },\n [setSelectedValue],\n );\n\n const textColor = isDisabled\n ? 'interactive.text.gray.disabled'\n : isSelected\n ? 'interactive.text.gray.normal'\n : 'interactive.text.gray.muted';\n const iconColor = isDisabled\n ? 'interactive.icon.gray.disabled'\n : isSelected\n ? 'interactive.icon.gray.normal'\n : 'interactive.icon.gray.muted';\n\n return (\n <StyledSegmentedControlButton\n ref={buttonRef}\n type=\"button\"\n id={`${baseId}-${value}-item`}\n data-value={value}\n tabIndex={shouldReceiveFocus ? 0 : -1}\n $size={size}\n $isSelected={isSelected}\n disabled={isDisabled}\n onClick={() => {\n setSelectedValue(() => value);\n }}\n onKeyDown={handleKeyDown}\n {...makeAccessible({\n role: 'radio',\n checked: isSelected,\n label: accessibilityLabel,\n setSize: totalItems,\n })}\n {...metaAttribute({ name: MetaConstants.SegmentedControlItem, testID })}\n {...makeAnalyticsAttribute(rest)}\n >\n {Leading ? <Leading size={iconSizeMap[size]} color={iconColor} /> : null}\n {children ? (\n <Text as=\"span\" color={textColor} size={textSizeMap[size]} weight=\"medium\">\n {children}\n </Text>\n ) : null}\n </StyledSegmentedControlButton>\n );\n};\n\nexport { SegmentedControlItem };\n"],"names":["StyledSegmentedControlButton","styled","button","withConfig","displayName","componentId","_ref","theme","$size","$isSelected","appearance","border","cursor","display","alignItems","justifyContent","gap","makeSpace","spacing","flex","height","itemHeight","paddingTop","getIn","paddingY","paddingBottom","paddingLeft","paddingX","paddingRight","backgroundColor","borderRadius","radius","itemBorderRadius","position","zIndex","transitionProperty","transitionTimingFunction","castWebType","motion","easing","standard","transitionDuration","makeMotionTime","duration","gentle","colors","interactive","background","gray","outline","boxShadow","concat","surface","primary","muted","SegmentedControlItem","_ref2","children","value","Leading","leading","_ref2$isDisabled","isDisabled","isItemDisabled","accessibilityLabel","testID","rest","_objectWithoutProperties","_excluded","_useSegmentedControlC","useSegmentedControlContext","selectedValue","setSelectedValue","size","isGroupDisabled","baseId","totalItems","firstEnabledValue","itemRefs","buttonRef","React","useRef","isSelected","shouldReceiveFocus","undefined","useEffect","map","current","node","set","handleKeyDown","useCallback","e","_buttonRef$current","container","closest","buttons","Array","from","querySelectorAll","currentIndex","indexOf","nextIndex","key","length","preventDefault","nextEl","focus","_nextEl$dataset$value","dataset","textColor","iconColor","_jsxs","_objectSpread","ref","type","id","tabIndex","disabled","onClick","onKeyDown","makeAccessible","role","checked","label","setSize","metaAttribute","name","MetaConstants","makeAnalyticsAttribute","_jsx","iconSizeMap","color","Text","as","textSizeMap","weight"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { SegmentedControl } from './SegmentedControl.web.js';
2
+ export { SegmentedControlItem } from './SegmentedControlItem.web.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,53 @@
1
+ var paddingY = {
2
+ small: 'spacing.2',
3
+ medium: 'spacing.2',
4
+ large: 'spacing.3'
5
+ };
6
+ var paddingX = {
7
+ small: 'spacing.3',
8
+ medium: 'spacing.3',
9
+ large: 'spacing.3'
10
+ };
11
+ var containerPadding = {
12
+ small: 'spacing.2',
13
+ medium: 'spacing.2',
14
+ large: 'spacing.2'
15
+ };
16
+ var gap = {
17
+ small: 'spacing.1',
18
+ medium: 'spacing.1',
19
+ large: 'spacing.1'
20
+ };
21
+ var containerBorderRadius = {
22
+ small: 'small',
23
+ medium: 'small',
24
+ large: 'medium'
25
+ };
26
+ var itemBorderRadius = {
27
+ small: 'xsmall',
28
+ medium: 'xsmall',
29
+ large: 'small'
30
+ };
31
+ var containerHeight = {
32
+ small: 32,
33
+ medium: 36,
34
+ large: 48
35
+ };
36
+ var itemHeight = {
37
+ small: 24,
38
+ medium: 28,
39
+ large: 40
40
+ };
41
+ var textSizeMap = {
42
+ small: 'small',
43
+ medium: 'medium',
44
+ large: 'large'
45
+ };
46
+ var iconSizeMap = {
47
+ small: 'medium',
48
+ medium: 'medium',
49
+ large: 'large'
50
+ };
51
+
52
+ export { containerBorderRadius, containerHeight, containerPadding, gap, iconSizeMap, itemBorderRadius, itemHeight, paddingX, paddingY, textSizeMap };
53
+ //# sourceMappingURL=segmentedControlTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmentedControlTokens.js","sources":["../../../../../../src/components/SegmentedControl/segmentedControlTokens.ts"],"sourcesContent":["import type { SegmentedControlSize } from './types';\nimport type { DotNotationSpacingStringToken } from '~utils/types';\n\ntype SizeTokenMap = Record<SegmentedControlSize, DotNotationSpacingStringToken>;\n\nconst paddingY: SizeTokenMap = {\n small: 'spacing.2',\n medium: 'spacing.2',\n large: 'spacing.3',\n};\n\nconst paddingX: SizeTokenMap = {\n small: 'spacing.3',\n medium: 'spacing.3',\n large: 'spacing.3',\n};\n\nconst containerPadding: SizeTokenMap = {\n small: 'spacing.2',\n medium: 'spacing.2',\n large: 'spacing.2',\n};\n\nconst gap: SizeTokenMap = {\n small: 'spacing.1',\n medium: 'spacing.1',\n large: 'spacing.1',\n};\n\nconst containerBorderRadius: Record<SegmentedControlSize, 'small' | 'medium'> = {\n small: 'small',\n medium: 'small',\n large: 'medium',\n};\n\nconst itemBorderRadius: Record<SegmentedControlSize, 'xsmall' | 'small'> = {\n small: 'xsmall',\n medium: 'xsmall',\n large: 'small',\n};\n\nconst containerHeight: Record<SegmentedControlSize, number> = {\n small: 32,\n medium: 36,\n large: 48,\n};\n\nconst itemHeight: Record<SegmentedControlSize, number> = {\n small: 24,\n medium: 28,\n large: 40,\n};\n\nconst textSizeMap: Record<SegmentedControlSize, 'small' | 'medium' | 'large'> = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n};\n\nconst iconSizeMap: Record<SegmentedControlSize, 'small' | 'medium' | 'large'> = {\n small: 'medium',\n medium: 'medium',\n large: 'large',\n};\n\nexport {\n paddingY,\n paddingX,\n containerPadding,\n containerBorderRadius,\n itemBorderRadius,\n containerHeight,\n itemHeight,\n gap,\n textSizeMap,\n iconSizeMap,\n};\n"],"names":["paddingY","small","medium","large","paddingX","containerPadding","gap","containerBorderRadius","itemBorderRadius","containerHeight","itemHeight","textSizeMap","iconSizeMap"],"mappings":"AAKA,IAAMA,QAAsB,GAAG;AAC7BC,EAAAA,KAAK,EAAE,WAAW;AAClBC,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAMC,QAAsB,GAAG;AAC7BH,EAAAA,KAAK,EAAE,WAAW;AAClBC,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAME,gBAA8B,GAAG;AACrCJ,EAAAA,KAAK,EAAE,WAAW;AAClBC,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAMG,GAAiB,GAAG;AACxBL,EAAAA,KAAK,EAAE,WAAW;AAClBC,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAMI,qBAAuE,GAAG;AAC9EN,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,OAAO;AACfC,EAAAA,KAAK,EAAE,QAAA;AACT,EAAC;AAED,IAAMK,gBAAkE,GAAG;AACzEP,EAAAA,KAAK,EAAE,QAAQ;AACfC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT,EAAC;AAED,IAAMM,eAAqD,GAAG;AAC5DR,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,KAAK,EAAE,EAAA;AACT,EAAC;AAED,IAAMO,UAAgD,GAAG;AACvDT,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,KAAK,EAAE,EAAA;AACT,EAAC;AAED,IAAMQ,WAAuE,GAAG;AAC9EV,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT,EAAC;AAED,IAAMS,WAAuE,GAAG;AAC9EX,EAAAA,KAAK,EAAE,QAAQ;AACfC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAA;AACT;;;;"}
@@ -8,14 +8,16 @@ import { forwardRef, useState, useRef, useEffect } from 'react';
8
8
  import { RzpGlassMount } from './RzpGlassMount.js';
9
9
  import { DEFAULT_CDN_PATH, getDefaultAssets, getPresetAssets, resolveConfig } from './utils.js';
10
10
  import { useMergeRefs } from '../../../utils/useMergeRefs.js';
11
+ import '../../BladeProvider/index.js';
11
12
  import { jsx } from 'react/jsx-runtime';
13
+ import useTheme from '../../BladeProvider/useTheme.js';
12
14
 
13
15
  var _excluded = ["width", "height", "className", "style", "onLoad", "onError", "assetsPath", "gradientMapCanvas", "gradientMapSrc", "gradientMap2Src", "imageSrc"];
14
16
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
17
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
18
  var FADE_IN_MS = 200;
17
19
  var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
18
- var _presetAssets$videoSr, _ref, _ref2, _presetAssets$centerG, _configProps$edgeFeat;
20
+ var _presetAssets$videoSr, _ref, _ref2, _presetAssets$centerG, _configProps$edgeFeat, _configProps$specular;
19
21
  var _props$width = props.width,
20
22
  width = _props$width === void 0 ? '100%' : _props$width,
21
23
  _props$height = props.height,
@@ -31,12 +33,19 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
31
33
  imageSrcProp = props.imageSrc,
32
34
  configProps = _objectWithoutProperties(props, _excluded);
33
35
 
36
+ // Follow Blade's color scheme: in dark mode every preset gets its dark
37
+ // counterpart (dark gradient maps, black background, no bloom, black specular)
38
+ // layered on top. Explicit props still win over the dark overlay.
39
+ var _useTheme = useTheme(),
40
+ colorScheme = _useTheme.colorScheme;
41
+ var isDark = colorScheme === 'dark';
42
+
34
43
  // Get default assets based on assetsPath
35
44
  var assetsPath = assetsPathProp !== null && assetsPathProp !== void 0 ? assetsPathProp : DEFAULT_CDN_PATH;
36
45
  var defaultAssets = getDefaultAssets(assetsPath);
37
46
 
38
47
  // Resolve assets: prop overrides preset, preset overrides default
39
- var presetAssets = getPresetAssets(props.preset, assetsPath);
48
+ var presetAssets = getPresetAssets(props.preset, assetsPath, isDark);
40
49
  var imageSrc = imageSrcProp !== null && imageSrcProp !== void 0 ? imageSrcProp : presetAssets.imageSrc;
41
50
  var videoSrc = imageSrc ? undefined : (_presetAssets$videoSr = presetAssets.videoSrc) !== null && _presetAssets$videoSr !== void 0 ? _presetAssets$videoSr : defaultAssets.videoSrc;
42
51
  var gradientMapSrc = (_ref = gradientMapSrcProp !== null && gradientMapSrcProp !== void 0 ? gradientMapSrcProp : presetAssets.gradientMapSrc) !== null && _ref !== void 0 ? _ref : defaultAssets.gradientMapSrc;
@@ -68,7 +77,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
68
77
  return _context.abrupt("return");
69
78
  case 1:
70
79
  _context.prev = 1;
71
- config = resolveConfig(props, assetsPath);
80
+ config = resolveConfig(props, assetsPath, isDark);
72
81
  mountRef.current = new RzpGlassMount(divRef.current, {
73
82
  videoSrc: videoSrc,
74
83
  imageSrc: imageSrc,
@@ -121,15 +130,15 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
121
130
  mountRef.current = null;
122
131
  setIsInitialized(false);
123
132
  };
124
- }, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);
133
+ }, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset, isDark]);
125
134
 
126
135
  // Update uniforms when config props change
127
136
  useEffect(function () {
128
137
  if (isInitialized && mountRef.current) {
129
- var config = resolveConfig(props, assetsPath);
138
+ var config = resolveConfig(props, assetsPath, isDark);
130
139
  mountRef.current.setUniforms(config);
131
140
  }
132
- }, [isInitialized, configProps.preset,
141
+ }, [isInitialized, isDark, configProps.preset,
133
142
  // Colorama
134
143
  configProps.inputMin, configProps.inputMax, configProps.modifyGamma, configProps.posterizeLevels, configProps.cycleRepetitions, configProps.phaseShift, configProps.cycleSpeed, configProps.wrapMode, configProps.reverse, configProps.blendWithOriginal,
135
144
  // Displacement
@@ -143,7 +152,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
143
152
  // Effect toggles
144
153
  configProps.enableDisplacement, configProps.enableColorama, configProps.enableBloom, configProps.enableLightSweep,
145
154
  // Light
146
- configProps.lightIntensity, configProps.lightStartFrame,
155
+ configProps.lightIntensity], _toConsumableArray((_configProps$specular = configProps.specularTint) !== null && _configProps$specular !== void 0 ? _configProps$specular : [1, 1, 1]), [configProps.lightStartFrame,
147
156
  // Playback
148
157
  configProps.paused, configProps.startTime, configProps.endTime, configProps.animateLightIndependently,
149
158
  // Cycle animation
@@ -1 +1 @@
1
- {"version":3,"file":"RzpGlass.js","sources":["../../../../../../../src/components/Spark/RzpGlass/RzpGlass.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-implicit-any-catch */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { forwardRef, useEffect, useRef, useState } from 'react';\nimport { RzpGlassMount } from './RzpGlassMount';\nimport type { RzpGlassProps } from './types';\nimport { DEFAULT_CDN_PATH, getDefaultAssets, getPresetAssets, resolveConfig } from './utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\n\n// Duration of the component's built-in fade-in transition.\n// The video is kept paused during this window so one-shot animations\n// (e.g. circleSlideUp) don't \"waste\" frames while the canvas is invisible.\nconst FADE_IN_MS = 200;\n\nconst RzpGlass = forwardRef<HTMLDivElement, RzpGlassProps>(function RzpGlass(props, forwardedRef) {\n const {\n width = '100%',\n height = '100%',\n className,\n style,\n onLoad,\n onError,\n assetsPath: assetsPathProp,\n gradientMapCanvas,\n gradientMapSrc: gradientMapSrcProp,\n gradientMap2Src: gradientMap2SrcProp,\n imageSrc: imageSrcProp,\n ...configProps\n } = props;\n\n // Get default assets based on assetsPath\n const assetsPath: string = assetsPathProp ?? DEFAULT_CDN_PATH;\n const defaultAssets = getDefaultAssets(assetsPath);\n\n // Resolve assets: prop overrides preset, preset overrides default\n const presetAssets = getPresetAssets(props.preset, assetsPath);\n const imageSrc = imageSrcProp ?? presetAssets.imageSrc;\n const videoSrc = imageSrc ? undefined : presetAssets.videoSrc ?? defaultAssets.videoSrc;\n const gradientMapSrc =\n gradientMapSrcProp ?? presetAssets.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src =\n gradientMap2SrcProp ?? presetAssets.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc =\n presetAssets.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const [isInitialized, setIsInitialized] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const divRef = useRef<HTMLDivElement>(null);\n const mountRef = useRef<RzpGlassMount | null>(null);\n\n // Initialize on mount\n useEffect(() => {\n const init = async () => {\n if (!divRef.current || mountRef.current) return;\n\n try {\n const config = resolveConfig(props, assetsPath);\n\n mountRef.current = new RzpGlassMount(\n divRef.current,\n {\n videoSrc,\n imageSrc,\n gradientMapSrc,\n gradientMap2Src,\n centerGradientMapSrc,\n },\n config,\n );\n\n await mountRef.current.loadAssets();\n\n // Pause the video during the CSS fade-in so one-shot animations\n // don't burn frames while the component is still transparent.\n // Only do this when the consumer hasn't explicitly set paused: true.\n const userWantsPaused = config.paused ?? false;\n if (!userWantsPaused) {\n mountRef.current.pause();\n }\n\n setIsInitialized(true); // kicks off the CSS opacity 0 → 1 transition\n\n // After the fade-in completes, resume video and notify the consumer.\n setTimeout(() => {\n if (!mountRef.current) return;\n if (!userWantsPaused) {\n mountRef.current.play();\n }\n onLoad?.();\n }, FADE_IN_MS);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n setError(error);\n onError?.(error);\n }\n };\n\n void init();\n\n return () => {\n mountRef.current?.dispose();\n mountRef.current = null;\n setIsInitialized(false);\n };\n }, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);\n\n // Update uniforms when config props change\n useEffect(() => {\n if (isInitialized && mountRef.current) {\n const config = resolveConfig(props, assetsPath);\n mountRef.current.setUniforms(config);\n }\n }, [\n isInitialized,\n configProps.preset,\n // Colorama\n configProps.inputMin,\n configProps.inputMax,\n configProps.modifyGamma,\n configProps.posterizeLevels,\n configProps.cycleRepetitions,\n configProps.phaseShift,\n configProps.cycleSpeed,\n configProps.wrapMode,\n configProps.reverse,\n configProps.blendWithOriginal,\n // Displacement\n configProps.numSegments,\n configProps.slitAngle,\n configProps.displacementX,\n configProps.displacementY,\n // Center element\n configProps.enableCenterElement,\n configProps.centerAnimDuration,\n // Color correction\n configProps.ccBlackPoint,\n configProps.ccWhitePoint,\n configProps.ccMidtoneGamma,\n configProps.ccGamma,\n configProps.ccContrast,\n // Zoom & Pan\n configProps.zoom,\n configProps.panX,\n configProps.panY,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...(configProps.edgeFeather ?? [0, 0, 0, 0]),\n // Effect toggles\n configProps.enableDisplacement,\n configProps.enableColorama,\n configProps.enableBloom,\n configProps.enableLightSweep,\n // Light\n configProps.lightIntensity,\n configProps.lightStartFrame,\n // Playback\n configProps.paused,\n configProps.startTime,\n configProps.endTime,\n configProps.animateLightIndependently,\n // Cycle animation\n configProps.animateCycleReps,\n configProps.cycleRepetitionsStart,\n configProps.cycleRepetitionsEnd,\n configProps.cycleRepetitionsStartFrame,\n configProps.cycleRepetitionsDuration,\n // Gradient map blend\n configProps.gradientMapBlend,\n configProps.gradientMapBlendDuration,\n ]);\n\n // Update gradient map texture when a canvas is provided\n useEffect(() => {\n if (isInitialized && mountRef.current && gradientMapCanvas) {\n mountRef.current.updateGradientMapTexture(gradientMapCanvas);\n }\n }, [isInitialized, gradientMapCanvas]);\n\n const mergedRef = useMergeRefs(forwardedRef, divRef);\n\n // Convert width/height to string if number\n const widthStyle = typeof width === 'number' ? `${width}px` : width;\n const heightStyle = typeof height === 'number' ? `${height}px` : height;\n\n if (error) {\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n ...style,\n }}\n />\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n position: 'relative',\n overflow: 'hidden',\n backgroundColor: 'transparent',\n transition: `${FADE_IN_MS}ms opacity`,\n ...(isInitialized ? { opacity: 1 } : { opacity: 0 }),\n ...style,\n }}\n />\n );\n});\n\nexport { RzpGlass };\n"],"names":["FADE_IN_MS","RzpGlass","forwardRef","props","forwardedRef","_presetAssets$videoSr","_ref","_ref2","_presetAssets$centerG","_configProps$edgeFeat","_props$width","width","_props$height","height","className","style","onLoad","onError","assetsPathProp","assetsPath","gradientMapCanvas","gradientMapSrcProp","gradientMapSrc","gradientMap2SrcProp","gradientMap2Src","imageSrcProp","imageSrc","configProps","_objectWithoutProperties","_excluded","DEFAULT_CDN_PATH","defaultAssets","getDefaultAssets","presetAssets","getPresetAssets","preset","videoSrc","undefined","centerGradientMapSrc","_useState","useState","_useState2","_slicedToArray","isInitialized","setIsInitialized","_useState3","_useState4","error","setError","divRef","useRef","mountRef","useEffect","init","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_config$paused","config","userWantsPaused","_error","_t","wrap","_context","prev","next","current","abrupt","resolveConfig","RzpGlassMount","loadAssets","paused","pause","setTimeout","play","Error","String","stop","apply","arguments","_mountRef$current","dispose","setUniforms","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","numSegments","slitAngle","displacementX","displacementY","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","zoom","panX","panY","concat","_toConsumableArray","edgeFeather","enableDisplacement","enableColorama","enableBloom","enableLightSweep","lightIntensity","lightStartFrame","startTime","endTime","animateLightIndependently","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","gradientMapBlend","gradientMapBlendDuration","updateGradientMapTexture","mergedRef","useMergeRefs","widthStyle","heightStyle","_jsx","ref","_objectSpread","position","overflow","backgroundColor","transition","opacity"],"mappings":"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"}
1
+ {"version":3,"file":"RzpGlass.js","sources":["../../../../../../../src/components/Spark/RzpGlass/RzpGlass.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-implicit-any-catch */\n/* eslint-disable @typescript-eslint/no-shadow */\nimport { forwardRef, useEffect, useRef, useState } from 'react';\nimport { RzpGlassMount } from './RzpGlassMount';\nimport type { RzpGlassProps } from './types';\nimport { DEFAULT_CDN_PATH, getDefaultAssets, getPresetAssets, resolveConfig } from './utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\nimport { useTheme } from '~components/BladeProvider';\n\n// Duration of the component's built-in fade-in transition.\n// The video is kept paused during this window so one-shot animations\n// (e.g. circleSlideUp) don't \"waste\" frames while the canvas is invisible.\nconst FADE_IN_MS = 200;\n\nconst RzpGlass = forwardRef<HTMLDivElement, RzpGlassProps>(function RzpGlass(props, forwardedRef) {\n const {\n width = '100%',\n height = '100%',\n className,\n style,\n onLoad,\n onError,\n assetsPath: assetsPathProp,\n gradientMapCanvas,\n gradientMapSrc: gradientMapSrcProp,\n gradientMap2Src: gradientMap2SrcProp,\n imageSrc: imageSrcProp,\n ...configProps\n } = props;\n\n // Follow Blade's color scheme: in dark mode every preset gets its dark\n // counterpart (dark gradient maps, black background, no bloom, black specular)\n // layered on top. Explicit props still win over the dark overlay.\n const { colorScheme } = useTheme();\n const isDark = colorScheme === 'dark';\n\n // Get default assets based on assetsPath\n const assetsPath: string = assetsPathProp ?? DEFAULT_CDN_PATH;\n const defaultAssets = getDefaultAssets(assetsPath);\n\n // Resolve assets: prop overrides preset, preset overrides default\n const presetAssets = getPresetAssets(props.preset, assetsPath, isDark);\n const imageSrc = imageSrcProp ?? presetAssets.imageSrc;\n const videoSrc = imageSrc ? undefined : presetAssets.videoSrc ?? defaultAssets.videoSrc;\n const gradientMapSrc =\n gradientMapSrcProp ?? presetAssets.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src =\n gradientMap2SrcProp ?? presetAssets.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc =\n presetAssets.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const [isInitialized, setIsInitialized] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const divRef = useRef<HTMLDivElement>(null);\n const mountRef = useRef<RzpGlassMount | null>(null);\n\n // Initialize on mount\n useEffect(() => {\n const init = async () => {\n if (!divRef.current || mountRef.current) return;\n\n try {\n const config = resolveConfig(props, assetsPath, isDark);\n\n mountRef.current = new RzpGlassMount(\n divRef.current,\n {\n videoSrc,\n imageSrc,\n gradientMapSrc,\n gradientMap2Src,\n centerGradientMapSrc,\n },\n config,\n );\n\n await mountRef.current.loadAssets();\n\n // Pause the video during the CSS fade-in so one-shot animations\n // don't burn frames while the component is still transparent.\n // Only do this when the consumer hasn't explicitly set paused: true.\n const userWantsPaused = config.paused ?? false;\n if (!userWantsPaused) {\n mountRef.current.pause();\n }\n\n setIsInitialized(true); // kicks off the CSS opacity 0 → 1 transition\n\n // After the fade-in completes, resume video and notify the consumer.\n setTimeout(() => {\n if (!mountRef.current) return;\n if (!userWantsPaused) {\n mountRef.current.play();\n }\n onLoad?.();\n }, FADE_IN_MS);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n setError(error);\n onError?.(error);\n }\n };\n\n void init();\n\n return () => {\n mountRef.current?.dispose();\n mountRef.current = null;\n setIsInitialized(false);\n };\n }, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset, isDark]);\n\n // Update uniforms when config props change\n useEffect(() => {\n if (isInitialized && mountRef.current) {\n const config = resolveConfig(props, assetsPath, isDark);\n mountRef.current.setUniforms(config);\n }\n }, [\n isInitialized,\n isDark,\n configProps.preset,\n // Colorama\n configProps.inputMin,\n configProps.inputMax,\n configProps.modifyGamma,\n configProps.posterizeLevels,\n configProps.cycleRepetitions,\n configProps.phaseShift,\n configProps.cycleSpeed,\n configProps.wrapMode,\n configProps.reverse,\n configProps.blendWithOriginal,\n // Displacement\n configProps.numSegments,\n configProps.slitAngle,\n configProps.displacementX,\n configProps.displacementY,\n // Center element\n configProps.enableCenterElement,\n configProps.centerAnimDuration,\n // Color correction\n configProps.ccBlackPoint,\n configProps.ccWhitePoint,\n configProps.ccMidtoneGamma,\n configProps.ccGamma,\n configProps.ccContrast,\n // Zoom & Pan\n configProps.zoom,\n configProps.panX,\n configProps.panY,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...(configProps.edgeFeather ?? [0, 0, 0, 0]),\n // Effect toggles\n configProps.enableDisplacement,\n configProps.enableColorama,\n configProps.enableBloom,\n configProps.enableLightSweep,\n // Light\n configProps.lightIntensity,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...(configProps.specularTint ?? [1, 1, 1]),\n configProps.lightStartFrame,\n // Playback\n configProps.paused,\n configProps.startTime,\n configProps.endTime,\n configProps.animateLightIndependently,\n // Cycle animation\n configProps.animateCycleReps,\n configProps.cycleRepetitionsStart,\n configProps.cycleRepetitionsEnd,\n configProps.cycleRepetitionsStartFrame,\n configProps.cycleRepetitionsDuration,\n // Gradient map blend\n configProps.gradientMapBlend,\n configProps.gradientMapBlendDuration,\n ]);\n\n // Update gradient map texture when a canvas is provided\n useEffect(() => {\n if (isInitialized && mountRef.current && gradientMapCanvas) {\n mountRef.current.updateGradientMapTexture(gradientMapCanvas);\n }\n }, [isInitialized, gradientMapCanvas]);\n\n const mergedRef = useMergeRefs(forwardedRef, divRef);\n\n // Convert width/height to string if number\n const widthStyle = typeof width === 'number' ? `${width}px` : width;\n const heightStyle = typeof height === 'number' ? `${height}px` : height;\n\n if (error) {\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n ...style,\n }}\n />\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n position: 'relative',\n overflow: 'hidden',\n backgroundColor: 'transparent',\n transition: `${FADE_IN_MS}ms opacity`,\n ...(isInitialized ? { opacity: 1 } : { opacity: 0 }),\n ...style,\n }}\n />\n );\n});\n\nexport { RzpGlass };\n"],"names":["FADE_IN_MS","RzpGlass","forwardRef","props","forwardedRef","_presetAssets$videoSr","_ref","_ref2","_presetAssets$centerG","_configProps$edgeFeat","_configProps$specular","_props$width","width","_props$height","height","className","style","onLoad","onError","assetsPathProp","assetsPath","gradientMapCanvas","gradientMapSrcProp","gradientMapSrc","gradientMap2SrcProp","gradientMap2Src","imageSrcProp","imageSrc","configProps","_objectWithoutProperties","_excluded","_useTheme","useTheme","colorScheme","isDark","DEFAULT_CDN_PATH","defaultAssets","getDefaultAssets","presetAssets","getPresetAssets","preset","videoSrc","undefined","centerGradientMapSrc","_useState","useState","_useState2","_slicedToArray","isInitialized","setIsInitialized","_useState3","_useState4","error","setError","divRef","useRef","mountRef","useEffect","init","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_config$paused","config","userWantsPaused","_error","_t","wrap","_context","prev","next","current","abrupt","resolveConfig","RzpGlassMount","loadAssets","paused","pause","setTimeout","play","Error","String","stop","apply","arguments","_mountRef$current","dispose","setUniforms","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","numSegments","slitAngle","displacementX","displacementY","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","zoom","panX","panY","concat","_toConsumableArray","edgeFeather","enableDisplacement","enableColorama","enableBloom","enableLightSweep","lightIntensity","specularTint","lightStartFrame","startTime","endTime","animateLightIndependently","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","gradientMapBlend","gradientMapBlendDuration","updateGradientMapTexture","mergedRef","useMergeRefs","widthStyle","heightStyle","_jsx","ref","_objectSpread","position","overflow","backgroundColor","transition","opacity"],"mappings":"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"}