@chayns-components/core 5.4.6-alpha.0 → 5.4.7

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 (472) hide show
  1. package/AGENTS.md +0 -12
  2. package/lib/cjs/components/accordion/Accordion.js +12 -107
  3. package/lib/cjs/components/accordion/Accordion.js.map +1 -1
  4. package/lib/cjs/components/accordion/Accordion.styles.js +3 -23
  5. package/lib/cjs/components/accordion/Accordion.styles.js.map +1 -1
  6. package/lib/cjs/components/accordion/accordion-body/AccordionBody.styles.js +1 -3
  7. package/lib/cjs/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  8. package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js +19 -36
  9. package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  10. package/lib/cjs/components/accordion/accordion-head/AccordionHead.js +3 -6
  11. package/lib/cjs/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  12. package/lib/cjs/components/accordion/accordion-head/AccordionHead.styles.js +0 -14
  13. package/lib/cjs/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  14. package/lib/cjs/components/amount-control/AmountControl.js +17 -31
  15. package/lib/cjs/components/amount-control/AmountControl.js.map +1 -1
  16. package/lib/cjs/components/amount-control/AmountControl.styles.js +2 -18
  17. package/lib/cjs/components/amount-control/AmountControl.styles.js.map +1 -1
  18. package/lib/cjs/components/button/Button.js +1 -5
  19. package/lib/cjs/components/button/Button.js.map +1 -1
  20. package/lib/cjs/components/button/Button.styles.js +0 -10
  21. package/lib/cjs/components/button/Button.styles.js.map +1 -1
  22. package/lib/cjs/components/button/Button.types.js.map +1 -1
  23. package/lib/cjs/components/checkbox/Checkbox.js +1 -5
  24. package/lib/cjs/components/checkbox/Checkbox.js.map +1 -1
  25. package/lib/cjs/components/checkbox/Checkbox.styles.js +2 -29
  26. package/lib/cjs/components/checkbox/Checkbox.styles.js.map +1 -1
  27. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.js +2 -7
  28. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  29. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.styles.js +2 -8
  30. package/lib/cjs/components/color-scheme-provider/ColorSchemeProvider.styles.js.map +1 -1
  31. package/lib/cjs/components/combobox/ComboBox.js +26 -70
  32. package/lib/cjs/components/combobox/ComboBox.js.map +1 -1
  33. package/lib/cjs/components/combobox/ComboBox.styles.js +0 -11
  34. package/lib/cjs/components/combobox/ComboBox.styles.js.map +1 -1
  35. package/lib/cjs/components/combobox/ComboBox.types.js.map +1 -1
  36. package/lib/cjs/components/context-menu/ContextMenu.js +42 -146
  37. package/lib/cjs/components/context-menu/ContextMenu.js.map +1 -1
  38. package/lib/cjs/components/context-menu/ContextMenu.styles.js +0 -38
  39. package/lib/cjs/components/context-menu/ContextMenu.styles.js.map +1 -1
  40. package/lib/cjs/components/context-menu/ContextMenu.types.js.map +1 -1
  41. package/lib/cjs/components/context-menu/ContextMenu.utils.js +1 -27
  42. package/lib/cjs/components/context-menu/ContextMenu.utils.js.map +1 -1
  43. package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js +8 -3
  44. package/lib/cjs/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  45. package/lib/cjs/components/dropdown-body-wrapper/DropdownBodyWrapper.js +8 -1
  46. package/lib/cjs/components/dropdown-body-wrapper/DropdownBodyWrapper.js.map +1 -1
  47. package/lib/cjs/components/file-input/FileInput.js +2 -4
  48. package/lib/cjs/components/file-input/FileInput.js.map +1 -1
  49. package/lib/cjs/components/file-list/file-item/FileItem.js +25 -48
  50. package/lib/cjs/components/file-list/file-item/FileItem.js.map +1 -1
  51. package/lib/cjs/components/file-list/file-item/FileItem.styles.js +1 -25
  52. package/lib/cjs/components/file-list/file-item/FileItem.styles.js.map +1 -1
  53. package/lib/cjs/components/file-select/FileSelect.js +4 -27
  54. package/lib/cjs/components/file-select/FileSelect.js.map +1 -1
  55. package/lib/cjs/components/file-select/FileSelect.styles.js +0 -10
  56. package/lib/cjs/components/file-select/FileSelect.styles.js.map +1 -1
  57. package/lib/cjs/components/filter/Filter.js +16 -51
  58. package/lib/cjs/components/filter/Filter.js.map +1 -1
  59. package/lib/cjs/components/filter/Filter.styles.js +0 -9
  60. package/lib/cjs/components/filter/Filter.styles.js.map +1 -1
  61. package/lib/cjs/components/filter/filter-content/FilterContent.js +5 -14
  62. package/lib/cjs/components/filter/filter-content/FilterContent.js.map +1 -1
  63. package/lib/cjs/components/filter/filter-content/FilterContent.types.js.map +1 -1
  64. package/lib/cjs/components/filter-buttons/FilterButtons.js +4 -69
  65. package/lib/cjs/components/filter-buttons/FilterButtons.js.map +1 -1
  66. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js +2 -40
  67. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  68. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js +0 -11
  69. package/lib/cjs/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  70. package/lib/cjs/components/grid-image/GridImage.js +2 -20
  71. package/lib/cjs/components/grid-image/GridImage.js.map +1 -1
  72. package/lib/cjs/components/grid-image/GridImage.styles.js +2 -11
  73. package/lib/cjs/components/grid-image/GridImage.styles.js.map +1 -1
  74. package/lib/cjs/components/grouped-image/GroupedImage.js +4 -23
  75. package/lib/cjs/components/grouped-image/GroupedImage.js.map +1 -1
  76. package/lib/cjs/components/grouped-image/GroupedImage.styles.js +0 -9
  77. package/lib/cjs/components/grouped-image/GroupedImage.styles.js.map +1 -1
  78. package/lib/cjs/components/highlight-slider/HighlightSlider.js +3 -13
  79. package/lib/cjs/components/highlight-slider/HighlightSlider.js.map +1 -1
  80. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +4 -21
  81. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  82. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +2 -11
  83. package/lib/cjs/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  84. package/lib/cjs/components/icon/Icon.js +5 -24
  85. package/lib/cjs/components/icon/Icon.js.map +1 -1
  86. package/lib/cjs/components/icon/Icon.styles.js +0 -23
  87. package/lib/cjs/components/icon/Icon.styles.js.map +1 -1
  88. package/lib/cjs/components/input/Input.js +8 -29
  89. package/lib/cjs/components/input/Input.js.map +1 -1
  90. package/lib/cjs/components/input/Input.styles.js +3 -38
  91. package/lib/cjs/components/input/Input.styles.js.map +1 -1
  92. package/lib/cjs/components/list/List.js +37 -124
  93. package/lib/cjs/components/list/List.js.map +1 -1
  94. package/lib/cjs/components/list/List.utils.js +1 -213
  95. package/lib/cjs/components/list/List.utils.js.map +1 -1
  96. package/lib/cjs/components/list/list-item/ListItem.js +3 -84
  97. package/lib/cjs/components/list/list-item/ListItem.js.map +1 -1
  98. package/lib/cjs/components/list/list-item/ListItem.styles.js +0 -7
  99. package/lib/cjs/components/list/list-item/ListItem.styles.js.map +1 -1
  100. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js +1 -5
  101. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  102. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.styles.js +1 -5
  103. package/lib/cjs/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  104. package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +0 -1
  105. package/lib/cjs/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
  106. package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +0 -3
  107. package/lib/cjs/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
  108. package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +0 -1
  109. package/lib/cjs/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
  110. package/lib/cjs/components/mention-finder/MentionFinder.js +5 -43
  111. package/lib/cjs/components/mention-finder/MentionFinder.js.map +1 -1
  112. package/lib/cjs/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -1
  113. package/lib/cjs/components/multi-action-button/MultiActionButton.js +3 -36
  114. package/lib/cjs/components/multi-action-button/MultiActionButton.js.map +1 -1
  115. package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js +0 -6
  116. package/lib/cjs/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
  117. package/lib/cjs/components/multi-action-button/MultiActionButton.types.js.map +1 -1
  118. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js +1 -7
  119. package/lib/cjs/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  120. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js +0 -12
  121. package/lib/cjs/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  122. package/lib/cjs/components/number-input/NumberInput.js +10 -13
  123. package/lib/cjs/components/number-input/NumberInput.js.map +1 -1
  124. package/lib/cjs/components/page-provider/PageProvider.js +2 -4
  125. package/lib/cjs/components/page-provider/PageProvider.js.map +1 -1
  126. package/lib/cjs/components/popup/Popup.js +1 -8
  127. package/lib/cjs/components/popup/Popup.js.map +1 -1
  128. package/lib/cjs/components/radio-button/RadioButton.js +15 -29
  129. package/lib/cjs/components/radio-button/RadioButton.js.map +1 -1
  130. package/lib/cjs/components/radio-button/RadioButton.styles.js +8 -19
  131. package/lib/cjs/components/radio-button/RadioButton.styles.js.map +1 -1
  132. package/lib/cjs/components/radio-button/radio-button-group/RadioButtonGroup.js +4 -7
  133. package/lib/cjs/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -1
  134. package/lib/cjs/components/search-box/SearchBox.js +5 -20
  135. package/lib/cjs/components/search-box/SearchBox.js.map +1 -1
  136. package/lib/cjs/components/search-input/SearchInput.js +43 -56
  137. package/lib/cjs/components/search-input/SearchInput.js.map +1 -1
  138. package/lib/cjs/components/search-input/SearchInput.styles.js +2 -26
  139. package/lib/cjs/components/search-input/SearchInput.styles.js.map +1 -1
  140. package/lib/cjs/components/select-button/SelectButton.js +2 -4
  141. package/lib/cjs/components/select-button/SelectButton.js.map +1 -1
  142. package/lib/cjs/components/setup-wizard/SetupWizard.js +4 -10
  143. package/lib/cjs/components/setup-wizard/SetupWizard.js.map +1 -1
  144. package/lib/cjs/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +3 -5
  145. package/lib/cjs/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -1
  146. package/lib/cjs/components/sharing-bar/SharingBar.js +6 -31
  147. package/lib/cjs/components/sharing-bar/SharingBar.js.map +1 -1
  148. package/lib/cjs/components/sharing-bar/SharingBar.styles.js +0 -5
  149. package/lib/cjs/components/sharing-bar/SharingBar.styles.js.map +1 -1
  150. package/lib/cjs/components/sharing-button/SharingButton.js +2 -4
  151. package/lib/cjs/components/sharing-button/SharingButton.js.map +1 -1
  152. package/lib/cjs/components/sharing-context-menu/SharingContextMenu.js +1 -3
  153. package/lib/cjs/components/sharing-context-menu/SharingContextMenu.js.map +1 -1
  154. package/lib/cjs/components/signature/Signature.js +3 -6
  155. package/lib/cjs/components/signature/Signature.js.map +1 -1
  156. package/lib/cjs/components/slider/Slider.js +7 -30
  157. package/lib/cjs/components/slider/Slider.js.map +1 -1
  158. package/lib/cjs/components/slider/Slider.styles.js +2 -9
  159. package/lib/cjs/components/slider/Slider.styles.js.map +1 -1
  160. package/lib/cjs/components/slider-button/SliderButton.js +6 -63
  161. package/lib/cjs/components/slider-button/SliderButton.js.map +1 -1
  162. package/lib/cjs/components/slider-button/SliderButton.styles.js +2 -15
  163. package/lib/cjs/components/slider-button/SliderButton.styles.js.map +1 -1
  164. package/lib/cjs/components/tag-input/TagInput.js +36 -92
  165. package/lib/cjs/components/tag-input/TagInput.js.map +1 -1
  166. package/lib/cjs/components/tag-input/TagInput.styles.js +3 -29
  167. package/lib/cjs/components/tag-input/TagInput.styles.js.map +1 -1
  168. package/lib/cjs/components/text-area/TextArea.js +8 -17
  169. package/lib/cjs/components/text-area/TextArea.js.map +1 -1
  170. package/lib/cjs/components/text-area/TextArea.styles.js +1 -15
  171. package/lib/cjs/components/text-area/TextArea.styles.js.map +1 -1
  172. package/lib/cjs/components/truncation/Truncation.js +3 -17
  173. package/lib/cjs/components/truncation/Truncation.js.map +1 -1
  174. package/lib/cjs/components/truncation/Truncation.styles.js +1 -18
  175. package/lib/cjs/components/truncation/Truncation.styles.js.map +1 -1
  176. package/lib/cjs/hooks/dropdown.js +63 -11
  177. package/lib/cjs/hooks/dropdown.js.map +1 -1
  178. package/lib/cjs/utils/file.js.map +1 -1
  179. package/lib/esm/components/accordion/Accordion.js +12 -105
  180. package/lib/esm/components/accordion/Accordion.js.map +1 -1
  181. package/lib/esm/components/accordion/Accordion.styles.js +3 -23
  182. package/lib/esm/components/accordion/Accordion.styles.js.map +1 -1
  183. package/lib/esm/components/accordion/accordion-body/AccordionBody.styles.js +1 -3
  184. package/lib/esm/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  185. package/lib/esm/components/accordion/accordion-group/AccordionGroup.js +19 -33
  186. package/lib/esm/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  187. package/lib/esm/components/accordion/accordion-head/AccordionHead.js +3 -6
  188. package/lib/esm/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  189. package/lib/esm/components/accordion/accordion-head/AccordionHead.styles.js +0 -14
  190. package/lib/esm/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  191. package/lib/esm/components/amount-control/AmountControl.js +16 -30
  192. package/lib/esm/components/amount-control/AmountControl.js.map +1 -1
  193. package/lib/esm/components/amount-control/AmountControl.styles.js +2 -18
  194. package/lib/esm/components/amount-control/AmountControl.styles.js.map +1 -1
  195. package/lib/esm/components/button/Button.js +1 -5
  196. package/lib/esm/components/button/Button.js.map +1 -1
  197. package/lib/esm/components/button/Button.styles.js +0 -10
  198. package/lib/esm/components/button/Button.styles.js.map +1 -1
  199. package/lib/esm/components/button/Button.types.js.map +1 -1
  200. package/lib/esm/components/checkbox/Checkbox.js +1 -5
  201. package/lib/esm/components/checkbox/Checkbox.js.map +1 -1
  202. package/lib/esm/components/checkbox/Checkbox.styles.js +2 -29
  203. package/lib/esm/components/checkbox/Checkbox.styles.js.map +1 -1
  204. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.js +2 -7
  205. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  206. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.styles.js +2 -8
  207. package/lib/esm/components/color-scheme-provider/ColorSchemeProvider.styles.js.map +1 -1
  208. package/lib/esm/components/combobox/ComboBox.js +22 -63
  209. package/lib/esm/components/combobox/ComboBox.js.map +1 -1
  210. package/lib/esm/components/combobox/ComboBox.styles.js +0 -11
  211. package/lib/esm/components/combobox/ComboBox.styles.js.map +1 -1
  212. package/lib/esm/components/combobox/ComboBox.types.js.map +1 -1
  213. package/lib/esm/components/context-menu/ContextMenu.js +42 -145
  214. package/lib/esm/components/context-menu/ContextMenu.js.map +1 -1
  215. package/lib/esm/components/context-menu/ContextMenu.styles.js +0 -38
  216. package/lib/esm/components/context-menu/ContextMenu.styles.js.map +1 -1
  217. package/lib/esm/components/context-menu/ContextMenu.types.js.map +1 -1
  218. package/lib/esm/components/context-menu/ContextMenu.utils.js +0 -24
  219. package/lib/esm/components/context-menu/ContextMenu.utils.js.map +1 -1
  220. package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js +8 -3
  221. package/lib/esm/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  222. package/lib/esm/components/dropdown-body-wrapper/DropdownBodyWrapper.js +8 -1
  223. package/lib/esm/components/dropdown-body-wrapper/DropdownBodyWrapper.js.map +1 -1
  224. package/lib/esm/components/file-input/FileInput.js +2 -4
  225. package/lib/esm/components/file-input/FileInput.js.map +1 -1
  226. package/lib/esm/components/file-list/file-item/FileItem.js +26 -49
  227. package/lib/esm/components/file-list/file-item/FileItem.js.map +1 -1
  228. package/lib/esm/components/file-list/file-item/FileItem.styles.js +0 -24
  229. package/lib/esm/components/file-list/file-item/FileItem.styles.js.map +1 -1
  230. package/lib/esm/components/file-select/FileSelect.js +4 -27
  231. package/lib/esm/components/file-select/FileSelect.js.map +1 -1
  232. package/lib/esm/components/file-select/FileSelect.styles.js +0 -10
  233. package/lib/esm/components/file-select/FileSelect.styles.js.map +1 -1
  234. package/lib/esm/components/filter/Filter.js +16 -52
  235. package/lib/esm/components/filter/Filter.js.map +1 -1
  236. package/lib/esm/components/filter/Filter.styles.js +0 -9
  237. package/lib/esm/components/filter/Filter.styles.js.map +1 -1
  238. package/lib/esm/components/filter/filter-content/FilterContent.js +5 -15
  239. package/lib/esm/components/filter/filter-content/FilterContent.js.map +1 -1
  240. package/lib/esm/components/filter/filter-content/FilterContent.types.js.map +1 -1
  241. package/lib/esm/components/filter-buttons/FilterButtons.js +5 -69
  242. package/lib/esm/components/filter-buttons/FilterButtons.js.map +1 -1
  243. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js +2 -40
  244. package/lib/esm/components/filter-buttons/filter-button/FilterButton.js.map +1 -1
  245. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js +0 -11
  246. package/lib/esm/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -1
  247. package/lib/esm/components/grid-image/GridImage.js +2 -20
  248. package/lib/esm/components/grid-image/GridImage.js.map +1 -1
  249. package/lib/esm/components/grid-image/GridImage.styles.js +1 -10
  250. package/lib/esm/components/grid-image/GridImage.styles.js.map +1 -1
  251. package/lib/esm/components/grouped-image/GroupedImage.js +4 -22
  252. package/lib/esm/components/grouped-image/GroupedImage.js.map +1 -1
  253. package/lib/esm/components/grouped-image/GroupedImage.styles.js +0 -9
  254. package/lib/esm/components/grouped-image/GroupedImage.styles.js.map +1 -1
  255. package/lib/esm/components/highlight-slider/HighlightSlider.js +3 -13
  256. package/lib/esm/components/highlight-slider/HighlightSlider.js.map +1 -1
  257. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js +3 -20
  258. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.js.map +1 -1
  259. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js +1 -10
  260. package/lib/esm/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.js.map +1 -1
  261. package/lib/esm/components/icon/Icon.js +7 -26
  262. package/lib/esm/components/icon/Icon.js.map +1 -1
  263. package/lib/esm/components/icon/Icon.styles.js +0 -23
  264. package/lib/esm/components/icon/Icon.styles.js.map +1 -1
  265. package/lib/esm/components/input/Input.js +4 -24
  266. package/lib/esm/components/input/Input.js.map +1 -1
  267. package/lib/esm/components/input/Input.styles.js +3 -38
  268. package/lib/esm/components/input/Input.styles.js.map +1 -1
  269. package/lib/esm/components/list/List.js +37 -123
  270. package/lib/esm/components/list/List.js.map +1 -1
  271. package/lib/esm/components/list/List.utils.js +0 -202
  272. package/lib/esm/components/list/List.utils.js.map +1 -1
  273. package/lib/esm/components/list/list-item/ListItem.js +4 -85
  274. package/lib/esm/components/list/list-item/ListItem.js.map +1 -1
  275. package/lib/esm/components/list/list-item/ListItem.styles.js +0 -7
  276. package/lib/esm/components/list/list-item/ListItem.styles.js.map +1 -1
  277. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js +2 -6
  278. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  279. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.styles.js +0 -4
  280. package/lib/esm/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  281. package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js +0 -1
  282. package/lib/esm/components/list/list-item/list-item-head/list-item-right-element/ListItemRightElement.js.map +1 -1
  283. package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js +1 -4
  284. package/lib/esm/components/list/list-item/list-item-head/list-item-subtitle/ListItemSubtitle.js.map +1 -1
  285. package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js +0 -1
  286. package/lib/esm/components/list/list-item/list-item-head/list-item-title/ListItemTitle.js.map +1 -1
  287. package/lib/esm/components/mention-finder/MentionFinder.js +3 -39
  288. package/lib/esm/components/mention-finder/MentionFinder.js.map +1 -1
  289. package/lib/esm/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -1
  290. package/lib/esm/components/multi-action-button/MultiActionButton.js +3 -36
  291. package/lib/esm/components/multi-action-button/MultiActionButton.js.map +1 -1
  292. package/lib/esm/components/multi-action-button/MultiActionButton.styles.js +0 -6
  293. package/lib/esm/components/multi-action-button/MultiActionButton.styles.js.map +1 -1
  294. package/lib/esm/components/multi-action-button/MultiActionButton.types.js.map +1 -1
  295. package/lib/esm/components/multi-action-button/action-button/ActionButton.js +1 -7
  296. package/lib/esm/components/multi-action-button/action-button/ActionButton.js.map +1 -1
  297. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js +0 -12
  298. package/lib/esm/components/multi-action-button/action-button/ActionButton.styles.js.map +1 -1
  299. package/lib/esm/components/number-input/NumberInput.js +10 -13
  300. package/lib/esm/components/number-input/NumberInput.js.map +1 -1
  301. package/lib/esm/components/page-provider/PageProvider.js +2 -4
  302. package/lib/esm/components/page-provider/PageProvider.js.map +1 -1
  303. package/lib/esm/components/popup/Popup.js +1 -8
  304. package/lib/esm/components/popup/Popup.js.map +1 -1
  305. package/lib/esm/components/radio-button/RadioButton.js +15 -29
  306. package/lib/esm/components/radio-button/RadioButton.js.map +1 -1
  307. package/lib/esm/components/radio-button/RadioButton.styles.js +8 -19
  308. package/lib/esm/components/radio-button/RadioButton.styles.js.map +1 -1
  309. package/lib/esm/components/radio-button/radio-button-group/RadioButtonGroup.js +4 -7
  310. package/lib/esm/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -1
  311. package/lib/esm/components/search-box/SearchBox.js +3 -17
  312. package/lib/esm/components/search-box/SearchBox.js.map +1 -1
  313. package/lib/esm/components/search-input/SearchInput.js +44 -56
  314. package/lib/esm/components/search-input/SearchInput.js.map +1 -1
  315. package/lib/esm/components/search-input/SearchInput.styles.js +1 -25
  316. package/lib/esm/components/search-input/SearchInput.styles.js.map +1 -1
  317. package/lib/esm/components/select-button/SelectButton.js +2 -4
  318. package/lib/esm/components/select-button/SelectButton.js.map +1 -1
  319. package/lib/esm/components/setup-wizard/SetupWizard.js +4 -10
  320. package/lib/esm/components/setup-wizard/SetupWizard.js.map +1 -1
  321. package/lib/esm/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +3 -5
  322. package/lib/esm/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -1
  323. package/lib/esm/components/sharing-bar/SharingBar.js +5 -30
  324. package/lib/esm/components/sharing-bar/SharingBar.js.map +1 -1
  325. package/lib/esm/components/sharing-bar/SharingBar.styles.js +0 -5
  326. package/lib/esm/components/sharing-bar/SharingBar.styles.js.map +1 -1
  327. package/lib/esm/components/sharing-button/SharingButton.js +2 -4
  328. package/lib/esm/components/sharing-button/SharingButton.js.map +1 -1
  329. package/lib/esm/components/sharing-context-menu/SharingContextMenu.js +1 -3
  330. package/lib/esm/components/sharing-context-menu/SharingContextMenu.js.map +1 -1
  331. package/lib/esm/components/signature/Signature.js +3 -6
  332. package/lib/esm/components/signature/Signature.js.map +1 -1
  333. package/lib/esm/components/slider/Slider.js +7 -30
  334. package/lib/esm/components/slider/Slider.js.map +1 -1
  335. package/lib/esm/components/slider/Slider.styles.js +1 -8
  336. package/lib/esm/components/slider/Slider.styles.js.map +1 -1
  337. package/lib/esm/components/slider-button/SliderButton.js +6 -62
  338. package/lib/esm/components/slider-button/SliderButton.js.map +1 -1
  339. package/lib/esm/components/slider-button/SliderButton.styles.js +1 -14
  340. package/lib/esm/components/slider-button/SliderButton.styles.js.map +1 -1
  341. package/lib/esm/components/tag-input/TagInput.js +35 -86
  342. package/lib/esm/components/tag-input/TagInput.js.map +1 -1
  343. package/lib/esm/components/tag-input/TagInput.styles.js +1 -27
  344. package/lib/esm/components/tag-input/TagInput.styles.js.map +1 -1
  345. package/lib/esm/components/text-area/TextArea.js +9 -18
  346. package/lib/esm/components/text-area/TextArea.js.map +1 -1
  347. package/lib/esm/components/text-area/TextArea.styles.js +0 -14
  348. package/lib/esm/components/text-area/TextArea.styles.js.map +1 -1
  349. package/lib/esm/components/truncation/Truncation.js +4 -18
  350. package/lib/esm/components/truncation/Truncation.js.map +1 -1
  351. package/lib/esm/components/truncation/Truncation.styles.js +0 -17
  352. package/lib/esm/components/truncation/Truncation.styles.js.map +1 -1
  353. package/lib/esm/hooks/dropdown.js +64 -12
  354. package/lib/esm/hooks/dropdown.js.map +1 -1
  355. package/lib/esm/utils/file.js.map +1 -1
  356. package/lib/types/components/accordion/Accordion.d.ts +0 -5
  357. package/lib/types/components/accordion/Accordion.styles.d.ts +4 -8
  358. package/lib/types/components/accordion/accordion-body/AccordionBody.styles.d.ts +2 -2
  359. package/lib/types/components/accordion/accordion-group/AccordionGroup.d.ts +2 -7
  360. package/lib/types/components/accordion/accordion-head/AccordionHead.d.ts +0 -1
  361. package/lib/types/components/accordion/accordion-head/AccordionHead.styles.d.ts +18 -18
  362. package/lib/types/components/amount-control/AmountControl.d.ts +0 -5
  363. package/lib/types/components/amount-control/AmountControl.styles.d.ts +4 -8
  364. package/lib/types/components/button/Button.styles.d.ts +6 -8
  365. package/lib/types/components/button/Button.types.d.ts +0 -8
  366. package/lib/types/components/checkbox/Checkbox.d.ts +0 -4
  367. package/lib/types/components/checkbox/Checkbox.styles.d.ts +1 -5
  368. package/lib/types/components/color-scheme-provider/ColorSchemeProvider.d.ts +0 -5
  369. package/lib/types/components/combobox/ComboBox.styles.d.ts +2 -4
  370. package/lib/types/components/combobox/ComboBox.types.d.ts +0 -5
  371. package/lib/types/components/context-menu/ContextMenu.styles.d.ts +2 -4
  372. package/lib/types/components/context-menu/ContextMenu.types.d.ts +0 -6
  373. package/lib/types/components/context-menu/ContextMenu.utils.d.ts +0 -10
  374. package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -1
  375. package/lib/types/components/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +2 -2
  376. package/lib/types/components/dropdown-body-wrapper/DropdownBodyWrapper.d.ts +7 -0
  377. package/lib/types/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.styles.d.ts +2 -2
  378. package/lib/types/components/expandable-content/ExpandableContent.styles.d.ts +2 -2
  379. package/lib/types/components/file-input/FileInput.d.ts +0 -4
  380. package/lib/types/components/file-input/FileInput.styles.d.ts +2 -2
  381. package/lib/types/components/file-list/file-item/FileItem.styles.d.ts +0 -3
  382. package/lib/types/components/file-select/FileSelect.d.ts +0 -4
  383. package/lib/types/components/file-select/FileSelect.styles.d.ts +4 -6
  384. package/lib/types/components/filter/Filter.d.ts +0 -1
  385. package/lib/types/components/filter/Filter.styles.d.ts +4 -6
  386. package/lib/types/components/filter/filter-content/FilterContent.types.d.ts +0 -4
  387. package/lib/types/components/filter-buttons/FilterButtons.d.ts +0 -4
  388. package/lib/types/components/filter-buttons/filter-button/FilterButton.d.ts +0 -5
  389. package/lib/types/components/filter-buttons/filter-button/FilterButton.styles.d.ts +8 -12
  390. package/lib/types/components/grid-image/GridImage.d.ts +0 -4
  391. package/lib/types/components/grid-image/GridImage.styles.d.ts +2 -4
  392. package/lib/types/components/grouped-image/GroupedImage.d.ts +0 -4
  393. package/lib/types/components/grouped-image/GroupedImage.styles.d.ts +6 -8
  394. package/lib/types/components/highlight-slider/HighlightSlider.d.ts +0 -4
  395. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.d.ts +0 -3
  396. package/lib/types/components/highlight-slider/highlight-slider-item/HighlightSliderItem.styles.d.ts +5 -9
  397. package/lib/types/components/icon/Icon.d.ts +0 -4
  398. package/lib/types/components/icon/Icon.styles.d.ts +0 -1
  399. package/lib/types/components/input/Input.d.ts +0 -4
  400. package/lib/types/components/input/Input.styles.d.ts +9 -17
  401. package/lib/types/components/list/List.d.ts +0 -11
  402. package/lib/types/components/list/List.utils.d.ts +1 -32
  403. package/lib/types/components/list/list-item/ListItem.d.ts +0 -4
  404. package/lib/types/components/list/list-item/ListItem.styles.d.ts +64 -64
  405. package/lib/types/components/list/list-item/list-item-body/ListItemBody.styles.d.ts +2 -2
  406. package/lib/types/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +194 -195
  407. package/lib/types/components/masonry/masonry-item/MasonryItem.styles.d.ts +2 -2
  408. package/lib/types/components/mention-finder/MentionFinder.styles.d.ts +4 -4
  409. package/lib/types/components/multi-action-button/MultiActionButton.styles.d.ts +2 -2
  410. package/lib/types/components/multi-action-button/MultiActionButton.types.d.ts +0 -7
  411. package/lib/types/components/multi-action-button/action-button/ActionButton.d.ts +1 -4
  412. package/lib/types/components/multi-action-button/action-button/ActionButton.styles.d.ts +2 -4
  413. package/lib/types/components/number-input/NumberInput.d.ts +0 -4
  414. package/lib/types/components/popup/popup-content-wrapper/PopupContentWrapper.styles.d.ts +2 -2
  415. package/lib/types/components/progress-bar/ProgressBar.styles.d.ts +6 -6
  416. package/lib/types/components/radio-button/RadioButton.d.ts +0 -4
  417. package/lib/types/components/radio-button/RadioButton.styles.d.ts +9 -15
  418. package/lib/types/components/radio-button/radio-button-group/RadioButtonGroup.d.ts +0 -5
  419. package/lib/types/components/search-box/SearchBox.d.ts +0 -4
  420. package/lib/types/components/search-box/SearchBox.styles.d.ts +2 -2
  421. package/lib/types/components/search-input/SearchInput.d.ts +0 -4
  422. package/lib/types/components/search-input/SearchInput.styles.d.ts +9 -17
  423. package/lib/types/components/select-button/SelectButton.d.ts +0 -4
  424. package/lib/types/components/setup-wizard/SetupWizard.d.ts +0 -5
  425. package/lib/types/components/sharing-bar/SharingBar.d.ts +0 -4
  426. package/lib/types/components/sharing-button/SharingButton.d.ts +1 -1
  427. package/lib/types/components/sharing-context-menu/SharingContextMenu.d.ts +2 -10
  428. package/lib/types/components/signature/Signature.d.ts +0 -4
  429. package/lib/types/components/skeleton/base-skeleton/BaseSkeleton.styles.d.ts +4 -4
  430. package/lib/types/components/slider/Slider.d.ts +0 -8
  431. package/lib/types/components/slider/Slider.styles.d.ts +14 -18
  432. package/lib/types/components/slider-button/SliderButton.d.ts +28 -1
  433. package/lib/types/components/slider-button/SliderButton.styles.d.ts +4 -6
  434. package/lib/types/components/tag-input/TagInput.d.ts +0 -4
  435. package/lib/types/components/tag-input/TagInput.styles.d.ts +2 -12
  436. package/lib/types/components/text-area/TextArea.d.ts +0 -4
  437. package/lib/types/components/text-area/TextArea.styles.d.ts +0 -1
  438. package/lib/types/components/truncation/Truncation.d.ts +0 -4
  439. package/lib/types/components/truncation/Truncation.styles.d.ts +2 -7
  440. package/lib/types/hooks/dropdown.d.ts +2 -0
  441. package/lib/types/utils/file.d.ts +1 -1
  442. package/package.json +3 -3
  443. package/lib/cjs/components/list/list-item/useListItemFocus.js +0 -47
  444. package/lib/cjs/components/list/list-item/useListItemFocus.js.map +0 -1
  445. package/lib/cjs/components/slider-button/SliderButton.types.js +0 -6
  446. package/lib/cjs/components/slider-button/SliderButton.types.js.map +0 -1
  447. package/lib/cjs/components/slider-button/useSliderButtonPopupKeyboard.js +0 -66
  448. package/lib/cjs/components/slider-button/useSliderButtonPopupKeyboard.js.map +0 -1
  449. package/lib/cjs/components/slider-button/useSliderButtonThumbKeyboard.js +0 -47
  450. package/lib/cjs/components/slider-button/useSliderButtonThumbKeyboard.js.map +0 -1
  451. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js +0 -68
  452. package/lib/cjs/hooks/useKeyboardFocusHighlighting.js.map +0 -1
  453. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js +0 -29
  454. package/lib/cjs/utils/keyboardFocusHighlighting.styles.js.map +0 -1
  455. package/lib/esm/components/list/list-item/useListItemFocus.js +0 -40
  456. package/lib/esm/components/list/list-item/useListItemFocus.js.map +0 -1
  457. package/lib/esm/components/slider-button/SliderButton.types.js +0 -2
  458. package/lib/esm/components/slider-button/SliderButton.types.js.map +0 -1
  459. package/lib/esm/components/slider-button/useSliderButtonPopupKeyboard.js +0 -56
  460. package/lib/esm/components/slider-button/useSliderButtonPopupKeyboard.js.map +0 -1
  461. package/lib/esm/components/slider-button/useSliderButtonThumbKeyboard.js +0 -38
  462. package/lib/esm/components/slider-button/useSliderButtonThumbKeyboard.js.map +0 -1
  463. package/lib/esm/hooks/useKeyboardFocusHighlighting.js +0 -61
  464. package/lib/esm/hooks/useKeyboardFocusHighlighting.js.map +0 -1
  465. package/lib/esm/utils/keyboardFocusHighlighting.styles.js +0 -24
  466. package/lib/esm/utils/keyboardFocusHighlighting.styles.js.map +0 -1
  467. package/lib/types/components/list/list-item/useListItemFocus.d.ts +0 -13
  468. package/lib/types/components/slider-button/SliderButton.types.d.ts +0 -32
  469. package/lib/types/components/slider-button/useSliderButtonPopupKeyboard.d.ts +0 -17
  470. package/lib/types/components/slider-button/useSliderButtonThumbKeyboard.d.ts +0 -13
  471. package/lib/types/hooks/useKeyboardFocusHighlighting.d.ts +0 -5
  472. package/lib/types/utils/keyboardFocusHighlighting.styles.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButton.js","names":["AnimatePresence","React","Icon","Tooltip","StyledActionButton","StyledActionContent","StyledIconSlot","StyledLabelWrapper","StyledSecondaryLabel","PopupAlignment","LABEL_GAP","LABEL_TRANSITION","duration","ActionButton","action","actionType","backgroundColor","isCollapsed","isDisabled","isExpanded","isHidden","isShrunk","isSolo","onClick","onMouseEnter","onMouseLeave","onFocus","onBlur","showLabel","shouldUseContentWidth","height","shouldShowKeyboardHighlighting","isPrimary","isSecondary","actionColor","color","isActionDisabled","Boolean","disabledReason","trim","shouldShowDisabledReason","iconSize","actionContent","createElement","$height","$isDisabled","icon","icons","size","initial","animate","opacity","width","marginLeft","exit","transition","style","label","disabled","$backgroundColor","$isCollapsed","$isExpanded","undefined","$isInteractionDisabled","$isHidden","$isPrimary","$isSecondary","$isShrunk","$isSolo","$pulseColors","status","pulseColors","$statusType","type","$shouldUseContentWidth","$shouldShowKeyboardHighlighting","alignment","BottomRight","item","text","maxItemWidth","displayName"],"sources":["../../../../../src/components/multi-action-button/action-button/ActionButton.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, { FC, FocusEventHandler, MouseEvent } from 'react';\nimport Icon from '../../icon/Icon';\nimport Tooltip from '../../tooltip/Tooltip';\nimport {\n StyledActionButton,\n StyledActionContent,\n StyledIconSlot,\n StyledLabelWrapper,\n StyledSecondaryLabel,\n} from './ActionButton.styles';\nimport type { MultiActionButtonAction } from '../MultiActionButton.types';\nimport { PopupAlignment } from '../../../types/popup';\n\nconst LABEL_GAP = 6;\nconst LABEL_TRANSITION = { duration: 0.3 };\n\nexport type ActionButtonProps = {\n action: MultiActionButtonAction;\n actionType: 'primary' | 'secondary';\n backgroundColor?: string;\n isCollapsed: boolean;\n isDisabled: boolean;\n isExpanded?: boolean;\n isHidden?: boolean;\n isShrunk?: boolean;\n isSolo?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n onFocus?: FocusEventHandler<HTMLButtonElement>;\n onBlur?: FocusEventHandler<HTMLButtonElement>;\n showLabel: boolean;\n shouldUseContentWidth: boolean;\n height: number;\n shouldShowKeyboardHighlighting?: boolean;\n};\n\n/**\n * Shared action button UI used by both primary and secondary actions.\n * Keeps layout and animations consistent while isolating styling details.\n */\nconst ActionButton: FC<ActionButtonProps> = ({\n action,\n actionType,\n backgroundColor,\n isCollapsed,\n isDisabled,\n isExpanded,\n isHidden,\n isShrunk,\n isSolo,\n onClick,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n showLabel,\n shouldUseContentWidth,\n height,\n shouldShowKeyboardHighlighting = false,\n}) => {\n const isPrimary = actionType === 'primary';\n const isSecondary = actionType === 'secondary';\n const actionColor = action.color ?? '#FFFFFF';\n const isActionDisabled = isDisabled || Boolean(action.isDisabled);\n const disabledReason = action.disabledReason?.trim();\n const shouldShowDisabledReason = Boolean(disabledReason) && isActionDisabled;\n const iconSize = height - 24;\n\n const actionContent = (\n <StyledActionContent>\n <StyledIconSlot $height={height} $isDisabled={isActionDisabled}>\n {typeof action.icon === 'string' ? (\n <Icon icons={[action.icon]} color={actionColor} size={iconSize} />\n ) : (\n action.icon\n )}\n </StyledIconSlot>\n <AnimatePresence initial={false}>\n {/* Animate width and margin to avoid layout jumps when labels mount/unmount. */}\n {showLabel && (\n <StyledLabelWrapper\n animate={{ opacity: 1, width: 'auto', marginLeft: LABEL_GAP }}\n exit={{ opacity: 0, width: 0, marginLeft: 0 }}\n initial={{ opacity: 0, width: 0, marginLeft: 0 }}\n transition={LABEL_TRANSITION}\n >\n <StyledSecondaryLabel style={{ color: actionColor }}>\n {action.label}\n </StyledSecondaryLabel>\n </StyledLabelWrapper>\n )}\n </AnimatePresence>\n </StyledActionContent>\n );\n\n return (\n <StyledActionButton\n aria-disabled={isActionDisabled}\n disabled={isActionDisabled && !shouldShowDisabledReason}\n $backgroundColor={backgroundColor}\n $isCollapsed={isCollapsed}\n $isExpanded={isSecondary ? isExpanded : undefined}\n $isInteractionDisabled={isActionDisabled}\n $isHidden={isSecondary ? isHidden : undefined}\n $isPrimary={isPrimary}\n $isSecondary={isSecondary}\n $isShrunk={isPrimary ? isShrunk : undefined}\n $isSolo={isPrimary ? isSolo : undefined}\n $pulseColors={action.status?.pulseColors}\n $height={height}\n $statusType={action.status?.type}\n $shouldUseContentWidth={shouldUseContentWidth}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n type=\"button\"\n >\n {shouldShowDisabledReason && disabledReason ? (\n <Tooltip\n alignment={PopupAlignment.BottomRight}\n item={{ text: disabledReason }}\n maxItemWidth={400}\n >\n {actionContent}\n </Tooltip>\n ) : (\n actionContent\n )}\n </StyledActionButton>\n );\n};\n\nActionButton.displayName = 'ActionButton';\n\nexport default ActionButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ActionButton.js","names":["AnimatePresence","React","Icon","Tooltip","StyledActionButton","StyledActionContent","StyledIconSlot","StyledLabelWrapper","StyledSecondaryLabel","PopupAlignment","LABEL_GAP","LABEL_TRANSITION","duration","ActionButton","action","actionType","backgroundColor","isCollapsed","isDisabled","isExpanded","isHidden","isShrunk","isSolo","onClick","onMouseEnter","onMouseLeave","showLabel","shouldUseContentWidth","height","isPrimary","isSecondary","actionColor","color","isActionDisabled","Boolean","disabledReason","trim","shouldShowDisabledReason","iconSize","actionContent","createElement","$height","$isDisabled","icon","icons","size","initial","animate","opacity","width","marginLeft","exit","transition","style","label","disabled","$backgroundColor","$isCollapsed","$isExpanded","undefined","$isInteractionDisabled","$isHidden","$isPrimary","$isSecondary","$isShrunk","$isSolo","$pulseColors","status","pulseColors","$statusType","type","$shouldUseContentWidth","alignment","BottomRight","item","text","maxItemWidth","displayName"],"sources":["../../../../../src/components/multi-action-button/action-button/ActionButton.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, { FC, MouseEvent } from 'react';\nimport Icon from '../../icon/Icon';\nimport Tooltip from '../../tooltip/Tooltip';\nimport {\n StyledActionButton,\n StyledActionContent,\n StyledIconSlot,\n StyledLabelWrapper,\n StyledSecondaryLabel,\n} from './ActionButton.styles';\nimport type { MultiActionButtonAction } from '../MultiActionButton.types';\nimport { PopupAlignment } from '../../../types/popup';\n\nconst LABEL_GAP = 6;\nconst LABEL_TRANSITION = { duration: 0.3 };\n\nexport type ActionButtonProps = {\n action: MultiActionButtonAction;\n actionType: 'primary' | 'secondary';\n backgroundColor?: string;\n isCollapsed: boolean;\n isDisabled: boolean;\n isExpanded?: boolean;\n isHidden?: boolean;\n isShrunk?: boolean;\n isSolo?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n showLabel: boolean;\n shouldUseContentWidth: boolean;\n height: number;\n};\n\n/**\n * Shared action button UI used by both primary and secondary actions.\n * Keeps layout and animations consistent while isolating styling details.\n */\nconst ActionButton: FC<ActionButtonProps> = ({\n action,\n actionType,\n backgroundColor,\n isCollapsed,\n isDisabled,\n isExpanded,\n isHidden,\n isShrunk,\n isSolo,\n onClick,\n onMouseEnter,\n onMouseLeave,\n showLabel,\n shouldUseContentWidth,\n height,\n}) => {\n const isPrimary = actionType === 'primary';\n const isSecondary = actionType === 'secondary';\n const actionColor = action.color ?? '#FFFFFF';\n const isActionDisabled = isDisabled || Boolean(action.isDisabled);\n const disabledReason = action.disabledReason?.trim();\n const shouldShowDisabledReason = Boolean(disabledReason) && isActionDisabled;\n const iconSize = height - 24;\n\n const actionContent = (\n <StyledActionContent>\n <StyledIconSlot $height={height} $isDisabled={isActionDisabled}>\n {typeof action.icon === 'string' ? (\n <Icon icons={[action.icon]} color={actionColor} size={iconSize} />\n ) : (\n action.icon\n )}\n </StyledIconSlot>\n <AnimatePresence initial={false}>\n {/* Animate width and margin to avoid layout jumps when labels mount/unmount. */}\n {showLabel && (\n <StyledLabelWrapper\n animate={{ opacity: 1, width: 'auto', marginLeft: LABEL_GAP }}\n exit={{ opacity: 0, width: 0, marginLeft: 0 }}\n initial={{ opacity: 0, width: 0, marginLeft: 0 }}\n transition={LABEL_TRANSITION}\n >\n <StyledSecondaryLabel style={{ color: actionColor }}>\n {action.label}\n </StyledSecondaryLabel>\n </StyledLabelWrapper>\n )}\n </AnimatePresence>\n </StyledActionContent>\n );\n\n return (\n <StyledActionButton\n aria-disabled={isActionDisabled}\n disabled={isActionDisabled && !shouldShowDisabledReason}\n $backgroundColor={backgroundColor}\n $isCollapsed={isCollapsed}\n $isExpanded={isSecondary ? isExpanded : undefined}\n $isInteractionDisabled={isActionDisabled}\n $isHidden={isSecondary ? isHidden : undefined}\n $isPrimary={isPrimary}\n $isSecondary={isSecondary}\n $isShrunk={isPrimary ? isShrunk : undefined}\n $isSolo={isPrimary ? isSolo : undefined}\n $pulseColors={action.status?.pulseColors}\n $height={height}\n $statusType={action.status?.type}\n $shouldUseContentWidth={shouldUseContentWidth}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n type=\"button\"\n >\n {shouldShowDisabledReason && disabledReason ? (\n <Tooltip\n alignment={PopupAlignment.BottomRight}\n item={{ text: disabledReason }}\n maxItemWidth={400}\n >\n {actionContent}\n </Tooltip>\n ) : (\n actionContent\n )}\n </StyledActionButton>\n );\n};\n\nActionButton.displayName = 'ActionButton';\n\nexport default ActionButton;\n"],"mappings":"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","ignoreList":[]}
@@ -169,18 +169,6 @@ export const StyledActionButton = styled.button`
169
169
  background-color: ${`color-mix(in srgb, ${$backgroundColor || theme?.primary || '#000'} 85%, black)`};
170
170
  }
171
171
  `}
172
-
173
- ${({
174
- $shouldShowKeyboardHighlighting
175
- }) => $shouldShowKeyboardHighlighting && css`
176
- &:focus-visible {
177
- transition: none;
178
- outline: solid 2px color-mix(in srgb, currentColor 70%, transparent);
179
- box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.3);
180
- outline-offset: 1px;
181
- color: white;
182
- }
183
- `}
184
172
  `;
185
173
  export const StyledActionContent = styled.span`
186
174
  align-items: center;
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButton.styles.js","names":["motion","styled","css","keyframes","MultiActionButtonStatusType","pulse","color1","color2","StyledActionButton","button","$height","$backgroundColor","theme","primary","$shouldUseContentWidth","$isExpanded","props","$isCollapsed","$isPrimary","$isShrunk","$isSecondary","$isHidden","$isSolo","$isInteractionDisabled","$statusType","$pulseColors","Pulse","$shouldShowKeyboardHighlighting","StyledActionContent","span","StyledIconSlot","$isDisabled","StyledLabelWrapper","StyledSecondaryLabel"],"sources":["../../../../../src/components/multi-action-button/action-button/ActionButton.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css, keyframes } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport { MultiActionButtonStatusType } from '../MultiActionButton.types';\n\ntype StyledActionButtonProps = WithTheme<{\n $backgroundColor?: string;\n $isCollapsed?: boolean;\n $isExpanded?: boolean;\n $isHidden?: boolean;\n $isPrimary?: boolean;\n $isSecondary?: boolean;\n $isShrunk?: boolean;\n $isSolo?: boolean;\n $pulseColors?: [string, string];\n $isInteractionDisabled?: boolean;\n $height: number;\n $statusType?: MultiActionButtonStatusType;\n $shouldUseContentWidth?: boolean;\n $shouldShowKeyboardHighlighting?: boolean;\n}>;\n\nconst pulse = (color1: string, color2: string) => keyframes`\n 0% {\n background: ${color1};\n }\n 50% {\n background: ${color2};\n }\n 100% {\n background: ${color1};\n }\n`;\n\nexport const StyledActionButton = styled.button<StyledActionButtonProps>`\n align-items: center;\n border: none;\n border-radius: ${({ $height }) => $height / 2}px;\n cursor: pointer;\n display: inline-flex;\n flex: 1 1 auto;\n height: ${({ $height }) => $height}px;\n line-height: 22px;\n min-height: ${({ $height }) => $height}px;\n overflow: hidden;\n padding: 0;\n position: relative;\n transition:\n background-color 0.2s ease,\n border-radius 0.2s ease,\n color 0.2s ease,\n flex-grow 0.2s ease,\n opacity 0.2s ease,\n padding 0.2s ease,\n width 0.2s ease;\n user-select: none;\n white-space: nowrap;\n\n background-color: ${({ $backgroundColor, theme }) =>\n $backgroundColor || theme?.primary || '#000'};\n color: #fff;\n\n /* When width is content-driven, avoid flex stretching. */\n ${({ $shouldUseContentWidth }) =>\n $shouldUseContentWidth &&\n css`\n flex: 0 1 auto;\n `}\n\n /* Expanded secondary button when width is not content-driven. */\n ${({ $isExpanded, $shouldUseContentWidth }) =>\n $isExpanded &&\n !$shouldUseContentWidth &&\n css`\n flex: 1 1 auto;\n min-width: 0;\n `}\n\n /* Collapsed state clamps to a fixed icon size. */\n ${(props) =>\n props.$isCollapsed &&\n css`\n flex: 0 0 auto;\n padding: 0;\n width: ${props.$height}px;\n `}\n\n /* Primary action stretches unless content-driven. */\n ${({ $isPrimary, $isCollapsed, $shouldUseContentWidth }) =>\n $isPrimary &&\n !$isCollapsed &&\n !$shouldUseContentWidth &&\n css`\n flex: 1 1 auto;\n min-width: 0;\n `}\n\n /* Shrink the primary action to icon size when secondary is expanded. */\n ${(props) =>\n props.$isShrunk &&\n !props.$shouldUseContentWidth &&\n css`\n flex: 0 0 auto;\n padding: 0;\n width: ${props.$height}px;\n `}\n\n /* Keep secondary icon-only when collapsed and not expanded. */\n ${(props) =>\n props.$isSecondary &&\n !props.$isExpanded &&\n !props.$shouldUseContentWidth &&\n css`\n flex: 0 0 auto;\n padding: 0;\n width: ${props.$height}px;\n `}\n\n /* Fully hide the secondary action when the whole control is collapsed. */\n ${({ $isHidden }) =>\n $isHidden &&\n css`\n opacity: 0;\n pointer-events: none;\n width: 0;\n `}\n\n /* Joining both buttons into a pill shape. */\n ${({ $isPrimary }) =>\n $isPrimary &&\n css`\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n `}\n\n ${(props) =>\n props.$isPrimary &&\n props.$isCollapsed &&\n css`\n border-bottom-right-radius: ${props.$height / 2}px;\n border-top-right-radius: ${props.$height / 2}px;\n `}\n\n ${({ $isSecondary }) =>\n $isSecondary &&\n css`\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n `}\n\n ${(props) =>\n props.$isSolo &&\n css`\n border-radius: ${props.$height / 2}px;\n `}\n\n ${(props) =>\n props.$isCollapsed &&\n css`\n border-radius: ${props.$height / 2}px;\n `}\n\n ${({ $isInteractionDisabled }) =>\n $isInteractionDisabled &&\n css`\n cursor: default;\n `}\n\n /* Optional pulse overlay used by status. */\n ${({ $statusType, $pulseColors }) =>\n $statusType === MultiActionButtonStatusType.Pulse &&\n css`\n overflow: hidden;\n\n &::before {\n animation: ${pulse($pulseColors?.[0] || '#A50000', $pulseColors?.[1] || '#630000')}\n 1.6s ease-in-out infinite;\n border-radius: 3px;\n content: '';\n inset: 0;\n pointer-events: none;\n position: absolute;\n }\n `}\n\n &:disabled {\n cursor: default;\n }\n\n ${({ $isInteractionDisabled, $backgroundColor, theme }) =>\n !$isInteractionDisabled &&\n css`\n &:hover:not(:disabled) {\n background-color: ${`color-mix(in srgb, ${$backgroundColor || theme?.primary || '#000'} 85%, black)`};\n }\n `}\n\n ${({ $shouldShowKeyboardHighlighting }) =>\n $shouldShowKeyboardHighlighting &&\n css`\n &:focus-visible {\n transition: none;\n outline: solid 2px color-mix(in srgb, currentColor 70%, transparent);\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.3);\n outline-offset: 1px;\n color: white;\n }\n `}\n`;\n\nexport const StyledActionContent = styled.span`\n align-items: center;\n display: inline-flex;\n flex: 1 1 auto;\n gap: 0;\n min-width: 0;\n position: relative;\n z-index: 1;\n`;\n\nexport const StyledIconSlot = styled.span<{ $height: number; $isDisabled?: boolean }>`\n align-items: center;\n display: inline-flex;\n flex: 0 0 auto;\n height: ${({ $height }) => $height}px;\n justify-content: center;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.5 : 1)};\n transition: opacity 0.2s ease;\n width: ${({ $height }) => $height}px;\n`;\n\nexport const StyledLabelWrapper = styled(motion.span)`\n /* The wrapper animates width/margin to avoid layout jumps. */\n display: inline-flex;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-align: left;\n`;\n\nexport const StyledSecondaryLabel = styled.span`\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n padding-right: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ActionButton.styles.js","names":["motion","styled","css","keyframes","MultiActionButtonStatusType","pulse","color1","color2","StyledActionButton","button","$height","$backgroundColor","theme","primary","$shouldUseContentWidth","$isExpanded","props","$isCollapsed","$isPrimary","$isShrunk","$isSecondary","$isHidden","$isSolo","$isInteractionDisabled","$statusType","$pulseColors","Pulse","StyledActionContent","span","StyledIconSlot","$isDisabled","StyledLabelWrapper","StyledSecondaryLabel"],"sources":["../../../../../src/components/multi-action-button/action-button/ActionButton.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css, keyframes } from 'styled-components';\nimport type { WithTheme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport { MultiActionButtonStatusType } from '../MultiActionButton.types';\n\ntype StyledActionButtonProps = WithTheme<{\n $backgroundColor?: string;\n $isCollapsed?: boolean;\n $isExpanded?: boolean;\n $isHidden?: boolean;\n $isPrimary?: boolean;\n $isSecondary?: boolean;\n $isShrunk?: boolean;\n $isSolo?: boolean;\n $pulseColors?: [string, string];\n $isInteractionDisabled?: boolean;\n $height: number;\n $statusType?: MultiActionButtonStatusType;\n $shouldUseContentWidth?: boolean;\n}>;\n\nconst pulse = (color1: string, color2: string) => keyframes`\n 0% {\n background: ${color1};\n }\n 50% {\n background: ${color2};\n }\n 100% {\n background: ${color1};\n }\n`;\n\nexport const StyledActionButton = styled.button<StyledActionButtonProps>`\n align-items: center;\n border: none;\n border-radius: ${({ $height }) => $height / 2}px;\n cursor: pointer;\n display: inline-flex;\n flex: 1 1 auto;\n height: ${({ $height }) => $height}px;\n line-height: 22px;\n min-height: ${({ $height }) => $height}px;\n overflow: hidden;\n padding: 0;\n position: relative;\n transition:\n background-color 0.2s ease,\n border-radius 0.2s ease,\n color 0.2s ease,\n flex-grow 0.2s ease,\n opacity 0.2s ease,\n padding 0.2s ease,\n width 0.2s ease;\n user-select: none;\n white-space: nowrap;\n\n background-color: ${({ $backgroundColor, theme }) =>\n $backgroundColor || theme?.primary || '#000'};\n color: #fff;\n\n /* When width is content-driven, avoid flex stretching. */\n ${({ $shouldUseContentWidth }) =>\n $shouldUseContentWidth &&\n css`\n flex: 0 1 auto;\n `}\n\n /* Expanded secondary button when width is not content-driven. */\n ${({ $isExpanded, $shouldUseContentWidth }) =>\n $isExpanded &&\n !$shouldUseContentWidth &&\n css`\n flex: 1 1 auto;\n min-width: 0;\n `}\n\n /* Collapsed state clamps to a fixed icon size. */\n ${(props) =>\n props.$isCollapsed &&\n css`\n flex: 0 0 auto;\n padding: 0;\n width: ${props.$height}px;\n `}\n\n /* Primary action stretches unless content-driven. */\n ${({ $isPrimary, $isCollapsed, $shouldUseContentWidth }) =>\n $isPrimary &&\n !$isCollapsed &&\n !$shouldUseContentWidth &&\n css`\n flex: 1 1 auto;\n min-width: 0;\n `}\n\n /* Shrink the primary action to icon size when secondary is expanded. */\n ${(props) =>\n props.$isShrunk &&\n !props.$shouldUseContentWidth &&\n css`\n flex: 0 0 auto;\n padding: 0;\n width: ${props.$height}px;\n `}\n\n /* Keep secondary icon-only when collapsed and not expanded. */\n ${(props) =>\n props.$isSecondary &&\n !props.$isExpanded &&\n !props.$shouldUseContentWidth &&\n css`\n flex: 0 0 auto;\n padding: 0;\n width: ${props.$height}px;\n `}\n\n /* Fully hide the secondary action when the whole control is collapsed. */\n ${({ $isHidden }) =>\n $isHidden &&\n css`\n opacity: 0;\n pointer-events: none;\n width: 0;\n `}\n\n /* Joining both buttons into a pill shape. */\n ${({ $isPrimary }) =>\n $isPrimary &&\n css`\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n `}\n\n ${(props) =>\n props.$isPrimary &&\n props.$isCollapsed &&\n css`\n border-bottom-right-radius: ${props.$height / 2}px;\n border-top-right-radius: ${props.$height / 2}px;\n `}\n\n ${({ $isSecondary }) =>\n $isSecondary &&\n css`\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n `}\n\n ${(props) =>\n props.$isSolo &&\n css`\n border-radius: ${props.$height / 2}px;\n `}\n\n ${(props) =>\n props.$isCollapsed &&\n css`\n border-radius: ${props.$height / 2}px;\n `}\n\n ${({ $isInteractionDisabled }) =>\n $isInteractionDisabled &&\n css`\n cursor: default;\n `}\n\n /* Optional pulse overlay used by status. */\n ${({ $statusType, $pulseColors }) =>\n $statusType === MultiActionButtonStatusType.Pulse &&\n css`\n overflow: hidden;\n\n &::before {\n animation: ${pulse($pulseColors?.[0] || '#A50000', $pulseColors?.[1] || '#630000')}\n 1.6s ease-in-out infinite;\n border-radius: 3px;\n content: '';\n inset: 0;\n pointer-events: none;\n position: absolute;\n }\n `}\n\n &:disabled {\n cursor: default;\n }\n\n ${({ $isInteractionDisabled, $backgroundColor, theme }) =>\n !$isInteractionDisabled &&\n css`\n &:hover:not(:disabled) {\n background-color: ${`color-mix(in srgb, ${$backgroundColor || theme?.primary || '#000'} 85%, black)`};\n }\n `}\n`;\n\nexport const StyledActionContent = styled.span`\n align-items: center;\n display: inline-flex;\n flex: 1 1 auto;\n gap: 0;\n min-width: 0;\n position: relative;\n z-index: 1;\n`;\n\nexport const StyledIconSlot = styled.span<{ $height: number; $isDisabled?: boolean }>`\n align-items: center;\n display: inline-flex;\n flex: 0 0 auto;\n height: ${({ $height }) => $height}px;\n justify-content: center;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.5 : 1)};\n transition: opacity 0.2s ease;\n width: ${({ $height }) => $height}px;\n`;\n\nexport const StyledLabelWrapper = styled(motion.span)`\n /* The wrapper animates width/margin to avoid layout jumps. */\n display: inline-flex;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-align: left;\n`;\n\nexport const StyledSecondaryLabel = styled.span`\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n padding-right: 18px;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ import Input from '../input/Input';
6
6
  const NumberInput = t0 => {
7
7
  "use memo";
8
8
 
9
- const $ = _c(42);
9
+ const $ = _c(41);
10
10
  const {
11
11
  isDecimalInput,
12
12
  isMoneyInput,
@@ -20,8 +20,7 @@ const NumberInput = t0 => {
20
20
  isDisabled,
21
21
  onChange,
22
22
  shouldShowOnlyBottomBorder,
23
- minNumber: t3,
24
- shouldEnableKeyboardHighlighting
23
+ minNumber: t3
25
24
  } = t0;
26
25
  const maxNumber = t1 === undefined ? Infinity : t1;
27
26
  const shouldTriggerChangeOnFormat = t2 === undefined ? true : t2;
@@ -199,7 +198,7 @@ const NumberInput = t0 => {
199
198
  const t11 = hasFocus ? plainText : formattedValue;
200
199
  const t12 = typeof isInvalid === "boolean" ? isInvalid : isValueInvalid;
201
200
  let t13;
202
- if ($[31] !== isDisabled || $[32] !== localPlaceholder || $[33] !== onLocalBlur || $[34] !== onLocalChange || $[35] !== onLocalFocus || $[36] !== shouldEnableKeyboardHighlighting || $[37] !== shouldRemainPlaceholder || $[38] !== shouldShowOnlyBottomBorder || $[39] !== t11 || $[40] !== t12) {
201
+ if ($[31] !== isDisabled || $[32] !== localPlaceholder || $[33] !== onLocalBlur || $[34] !== onLocalChange || $[35] !== onLocalFocus || $[36] !== shouldRemainPlaceholder || $[37] !== shouldShowOnlyBottomBorder || $[38] !== t11 || $[39] !== t12) {
203
202
  t13 = /*#__PURE__*/React.createElement(Input, {
204
203
  shouldRemainPlaceholder: shouldRemainPlaceholder,
205
204
  shouldShowOnlyBottomBorder: shouldShowOnlyBottomBorder,
@@ -211,22 +210,20 @@ const NumberInput = t0 => {
211
210
  onFocus: onLocalFocus,
212
211
  isDisabled: isDisabled,
213
212
  isInvalid: t12,
214
- shouldShowCenteredContent: shouldShowOnlyBottomBorder,
215
- shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlighting
213
+ shouldShowCenteredContent: shouldShowOnlyBottomBorder
216
214
  });
217
215
  $[31] = isDisabled;
218
216
  $[32] = localPlaceholder;
219
217
  $[33] = onLocalBlur;
220
218
  $[34] = onLocalChange;
221
219
  $[35] = onLocalFocus;
222
- $[36] = shouldEnableKeyboardHighlighting;
223
- $[37] = shouldRemainPlaceholder;
224
- $[38] = shouldShowOnlyBottomBorder;
225
- $[39] = t11;
226
- $[40] = t12;
227
- $[41] = t13;
220
+ $[36] = shouldRemainPlaceholder;
221
+ $[37] = shouldShowOnlyBottomBorder;
222
+ $[38] = t11;
223
+ $[39] = t12;
224
+ $[40] = t13;
228
225
  } else {
229
- t13 = $[41];
226
+ t13 = $[40];
230
227
  }
231
228
  return t13;
232
229
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","names":["React","useEffect","useRef","useState","NUMBER_CLEAR_REGEX","formateNumber","isValidString","parseFloatWithDecimals","Input","NumberInput","t0","$","_c","isDecimalInput","isMoneyInput","isTimeInput","isInvalid","maxNumber","t1","value","shouldTriggerChangeOnFormat","t2","placeholder","onBlur","isDisabled","onChange","shouldShowOnlyBottomBorder","minNumber","t3","shouldEnableKeyboardHighlighting","undefined","Infinity","plainText","setPlainText","formattedValue","setFormattedValue","hasFocus","setHasFocus","shouldRemainPlaceholder","setShouldRemainPlaceholder","isValueInvalid","setIsValueInvalid","localPlaceholder","initialInputRef","t4","event","newValue","target","current","sanitizedValueString","replace","includes","length","valueToCheck","replaceAll","string","Number","match","onLocalChange","t5","sanitizedValue","newIsInvalid","parsedNumber","stringValue","decimals","newStringValue","number","onLocalBlur","t6","onLocalFocus","t7","t8","parsedNumber_0","t10","t9","t11","t12","t13","createElement","inputMode","displayName"],"sources":["../../../../src/components/number-input/NumberInput.tsx"],"sourcesContent":["import React, { ChangeEventHandler, FC, useEffect, useRef, useState } from 'react';\nimport { NUMBER_CLEAR_REGEX } from '../../constants/numberInput';\nimport { formateNumber, isValidString, parseFloatWithDecimals } from '../../utils/numberInput';\nimport Input from '../input/Input';\n\nexport type NumberInputProps = {\n /**\n * Applies rules for decimal input.\n * Enables the user to input one zero as number before the comma\n */\n isDecimalInput?: boolean;\n /**\n * Whether the input is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the value is invalid.\n */\n isInvalid?: boolean;\n /**\n * Applies rules for money input.\n * Rules: only two decimal places, one zero before the comma\n */\n isMoneyInput?: boolean;\n /**\n * Whether the value should be formatted as a time.\n */\n isTimeInput?: boolean;\n /**\n * Limits the number to this value\n */\n maxNumber?: number;\n /**\n * Limits the number to this value\n */\n minNumber?: number;\n /**\n * Callback function that is called when the input gets out of focus\n */\n onBlur?: (newNumber: number | string | null, isInvalid: boolean) => void;\n /**\n * Callback function that is called when the input changes\n * It will pass the text from the input\n */\n onChange?: (newValue: string) => void;\n /**\n * Placeholder for the input field\n */\n placeholder?: string;\n /**\n * Whether only the bottom border should be displayed\n */\n shouldShowOnlyBottomBorder?: boolean;\n /**\n * Whether the onChange function should be triggert when the value is formatted on the focus or blur\n */\n shouldTriggerChangeOnFormat?: boolean;\n /**\n * The value, that should be displayed in the input, when it is in focus.\n * You can also pass a stringified number as default value.\n * NOTE: If you pass a stringified number, it will be formatted to the selected format\n */\n value?: string;\n /**\n * Enables keyboard-only focus highlighting.\n */\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nconst NumberInput: FC<NumberInputProps> = ({\n isDecimalInput,\n isMoneyInput,\n isTimeInput,\n isInvalid,\n maxNumber = Infinity,\n value,\n shouldTriggerChangeOnFormat = true,\n placeholder,\n onBlur,\n isDisabled,\n onChange,\n shouldShowOnlyBottomBorder,\n minNumber = -Infinity,\n shouldEnableKeyboardHighlighting,\n}) => {\n 'use memo';\n\n // the plainText will be shown in the input, when it is in focus\n const [plainText, setPlainText] = useState<string>('');\n // the formattedValue will be shown in the input, when it is not in focus\n const [formattedValue, setFormattedValue] = useState<string>('');\n const [hasFocus, setHasFocus] = useState<boolean>(false);\n const [shouldRemainPlaceholder, setShouldRemainPlaceholder] = useState<boolean>(false);\n\n const [isValueInvalid, setIsValueInvalid] = useState(false);\n const localPlaceholder = placeholder ?? (isMoneyInput ? '€' : undefined);\n\n const initialInputRef = useRef(true);\n\n const onLocalChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const newValue = event.target.value;\n\n initialInputRef.current = false;\n\n const sanitizedValueString = newValue\n // Removes everything except numbers, commas and points\n .replace(NUMBER_CLEAR_REGEX, '');\n\n if (\n isTimeInput &&\n ((sanitizedValueString.includes(':') && sanitizedValueString.length > 5) ||\n (!sanitizedValueString.includes(':') && sanitizedValueString.length > 4))\n ) {\n return;\n }\n\n const valueToCheck = sanitizedValueString.replaceAll(',', '.');\n\n if (!isValidString({ string: valueToCheck, isMoneyInput, isDecimalInput, isTimeInput })) {\n return;\n }\n\n if (\n (maxNumber && Number(valueToCheck) > maxNumber) ||\n (minNumber && Number(valueToCheck) < minNumber)\n ) {\n return;\n }\n\n if (newValue.length === 1 && newValue.match(/^[0-9]+$/) === null) {\n setShouldRemainPlaceholder(true);\n } else {\n setShouldRemainPlaceholder(false);\n }\n\n setPlainText(sanitizedValueString.replaceAll('.', ','));\n\n if (typeof onChange === 'function') {\n onChange(sanitizedValueString.replaceAll('.', ','));\n }\n };\n\n const onLocalBlur = () => {\n const sanitizedValue = plainText;\n let newIsInvalid = false;\n let parsedNumber = null;\n\n if (!isTimeInput) {\n parsedNumber = parseFloatWithDecimals({\n stringValue: sanitizedValue.replace(',', '.').replaceAll(':', '').replace('€', ''),\n decimals: isMoneyInput ? 2 : undefined,\n });\n\n if (\n parsedNumber &&\n parsedNumber !== 0 &&\n (parsedNumber > maxNumber || parsedNumber < minNumber)\n ) {\n newIsInvalid = true;\n }\n\n setIsValueInvalid(newIsInvalid);\n }\n\n const newStringValue =\n plainText.length === 0\n ? ''\n : formateNumber({\n number: isTimeInput ? sanitizedValue : parsedNumber,\n isMoneyInput,\n isTimeInput,\n });\n\n setFormattedValue(`${newStringValue} ${isMoneyInput ? '€' : ''}`);\n setPlainText(newStringValue.replaceAll('.', ''));\n setHasFocus(false);\n\n if (typeof onChange === 'function' && shouldTriggerChangeOnFormat) {\n onChange(newStringValue.replaceAll('.', ''));\n }\n\n if (typeof onBlur === 'function') {\n if (isTimeInput) {\n onBlur(newStringValue, newIsInvalid);\n } else {\n onBlur(parsedNumber, newIsInvalid);\n }\n }\n };\n\n const onLocalFocus = () => {\n // formattedValue will be a number string with german number format (e.g. 1.000,00)\n // It will remove all dots, so that the user can type in the number\n setPlainText(formattedValue.replaceAll('.', '').replace('€', '').replaceAll(' ', ''));\n\n // This will update the external state\n if (typeof onChange === 'function' && shouldTriggerChangeOnFormat) {\n onChange(formattedValue.replaceAll('.', '').replace('€', '').replaceAll(' ', ''));\n }\n\n setIsValueInvalid(false);\n setHasFocus(true);\n };\n\n // updates the formattedValue, when the value changes\n useEffect(() => {\n let parsedNumber = null;\n\n if (!isTimeInput) {\n parsedNumber = parseFloatWithDecimals({\n stringValue: plainText\n .replace(',', '.')\n .replaceAll(':', '')\n .replace('€', '')\n .replaceAll(' ', ''),\n decimals: isMoneyInput ? 2 : undefined,\n });\n\n // checks, if a given number is invalid, if the input is not in focus\n if (!hasFocus) {\n if (parsedNumber === null && initialInputRef.current) {\n setIsValueInvalid(false);\n } else {\n setIsValueInvalid(\n parsedNumber === null ||\n parsedNumber > maxNumber ||\n parsedNumber < minNumber,\n );\n }\n }\n }\n\n setFormattedValue(\n plainText.length === 0\n ? ''\n : `${formateNumber({\n number: isTimeInput ? plainText : parsedNumber,\n isMoneyInput,\n isTimeInput,\n })}${isMoneyInput ? ' €' : ''}`,\n );\n }, [hasFocus, isMoneyInput, isTimeInput, maxNumber, minNumber, plainText]);\n\n useEffect(() => {\n if (typeof value === 'string') {\n setPlainText(value.replace('€', '').replaceAll(' ', ''));\n }\n }, [value]);\n\n return (\n <Input\n shouldRemainPlaceholder={shouldRemainPlaceholder}\n shouldShowOnlyBottomBorder={shouldShowOnlyBottomBorder}\n inputMode=\"decimal\"\n onChange={onLocalChange}\n value={hasFocus ? plainText : formattedValue}\n placeholder={localPlaceholder}\n onBlur={onLocalBlur}\n onFocus={onLocalFocus}\n isDisabled={isDisabled}\n isInvalid={typeof isInvalid === 'boolean' ? isInvalid : isValueInvalid}\n shouldShowCenteredContent={shouldShowOnlyBottomBorder}\n shouldEnableKeyboardHighlighting={shouldEnableKeyboardHighlighting}\n />\n );\n};\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberInput.js","names":["React","useEffect","useRef","useState","NUMBER_CLEAR_REGEX","formateNumber","isValidString","parseFloatWithDecimals","Input","NumberInput","t0","$","_c","isDecimalInput","isMoneyInput","isTimeInput","isInvalid","maxNumber","t1","value","shouldTriggerChangeOnFormat","t2","placeholder","onBlur","isDisabled","onChange","shouldShowOnlyBottomBorder","minNumber","t3","undefined","Infinity","plainText","setPlainText","formattedValue","setFormattedValue","hasFocus","setHasFocus","shouldRemainPlaceholder","setShouldRemainPlaceholder","isValueInvalid","setIsValueInvalid","localPlaceholder","initialInputRef","t4","event","newValue","target","current","sanitizedValueString","replace","includes","length","valueToCheck","replaceAll","string","Number","match","onLocalChange","t5","sanitizedValue","newIsInvalid","parsedNumber","stringValue","decimals","newStringValue","number","onLocalBlur","t6","onLocalFocus","t7","t8","parsedNumber_0","t10","t9","t11","t12","t13","createElement","inputMode","displayName"],"sources":["../../../../src/components/number-input/NumberInput.tsx"],"sourcesContent":["import React, { ChangeEventHandler, FC, useEffect, useRef, useState } from 'react';\nimport { NUMBER_CLEAR_REGEX } from '../../constants/numberInput';\nimport { formateNumber, isValidString, parseFloatWithDecimals } from '../../utils/numberInput';\nimport Input from '../input/Input';\n\nexport type NumberInputProps = {\n /**\n * Applies rules for decimal input.\n * Enables the user to input one zero as number before the comma\n */\n isDecimalInput?: boolean;\n /**\n * Whether the input is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the value is invalid.\n */\n isInvalid?: boolean;\n /**\n * Applies rules for money input.\n * Rules: only two decimal places, one zero before the comma\n */\n isMoneyInput?: boolean;\n /**\n * Whether the value should be formatted as a time.\n */\n isTimeInput?: boolean;\n /**\n * Limits the number to this value\n */\n maxNumber?: number;\n /**\n * Limits the number to this value\n */\n minNumber?: number;\n /**\n * Callback function that is called when the input gets out of focus\n */\n onBlur?: (newNumber: number | string | null, isInvalid: boolean) => void;\n /**\n * Callback function that is called when the input changes\n * It will pass the text from the input\n */\n onChange?: (newValue: string) => void;\n /**\n * Placeholder for the input field\n */\n placeholder?: string;\n /**\n * Whether only the bottom border should be displayed\n */\n shouldShowOnlyBottomBorder?: boolean;\n /**\n * Whether the onChange function should be triggert when the value is formatted on the focus or blur\n */\n shouldTriggerChangeOnFormat?: boolean;\n /**\n * The value, that should be displayed in the input, when it is in focus.\n * You can also pass a stringified number as default value.\n * NOTE: If you pass a stringified number, it will be formatted to the selected format\n */\n value?: string;\n};\n\nconst NumberInput: FC<NumberInputProps> = ({\n isDecimalInput,\n isMoneyInput,\n isTimeInput,\n isInvalid,\n maxNumber = Infinity,\n value,\n shouldTriggerChangeOnFormat = true,\n placeholder,\n onBlur,\n isDisabled,\n onChange,\n shouldShowOnlyBottomBorder,\n minNumber = -Infinity,\n}) => {\n 'use memo';\n\n // the plainText will be shown in the input, when it is in focus\n const [plainText, setPlainText] = useState<string>('');\n // the formattedValue will be shown in the input, when it is not in focus\n const [formattedValue, setFormattedValue] = useState<string>('');\n const [hasFocus, setHasFocus] = useState<boolean>(false);\n const [shouldRemainPlaceholder, setShouldRemainPlaceholder] = useState<boolean>(false);\n\n const [isValueInvalid, setIsValueInvalid] = useState(false);\n const localPlaceholder = placeholder ?? (isMoneyInput ? '€' : undefined);\n\n const initialInputRef = useRef(true);\n\n const onLocalChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const newValue = event.target.value;\n\n initialInputRef.current = false;\n\n const sanitizedValueString = newValue\n // Removes everything except numbers, commas and points\n .replace(NUMBER_CLEAR_REGEX, '');\n\n if (\n isTimeInput &&\n ((sanitizedValueString.includes(':') && sanitizedValueString.length > 5) ||\n (!sanitizedValueString.includes(':') && sanitizedValueString.length > 4))\n ) {\n return;\n }\n\n const valueToCheck = sanitizedValueString.replaceAll(',', '.');\n\n if (!isValidString({ string: valueToCheck, isMoneyInput, isDecimalInput, isTimeInput })) {\n return;\n }\n\n if (\n (maxNumber && Number(valueToCheck) > maxNumber) ||\n (minNumber && Number(valueToCheck) < minNumber)\n ) {\n return;\n }\n\n if (newValue.length === 1 && newValue.match(/^[0-9]+$/) === null) {\n setShouldRemainPlaceholder(true);\n } else {\n setShouldRemainPlaceholder(false);\n }\n\n setPlainText(sanitizedValueString.replaceAll('.', ','));\n\n if (typeof onChange === 'function') {\n onChange(sanitizedValueString.replaceAll('.', ','));\n }\n };\n\n const onLocalBlur = () => {\n const sanitizedValue = plainText;\n let newIsInvalid = false;\n let parsedNumber = null;\n\n if (!isTimeInput) {\n parsedNumber = parseFloatWithDecimals({\n stringValue: sanitizedValue.replace(',', '.').replaceAll(':', '').replace('€', ''),\n decimals: isMoneyInput ? 2 : undefined,\n });\n\n if (\n parsedNumber &&\n parsedNumber !== 0 &&\n (parsedNumber > maxNumber || parsedNumber < minNumber)\n ) {\n newIsInvalid = true;\n }\n\n setIsValueInvalid(newIsInvalid);\n }\n\n const newStringValue =\n plainText.length === 0\n ? ''\n : formateNumber({\n number: isTimeInput ? sanitizedValue : parsedNumber,\n isMoneyInput,\n isTimeInput,\n });\n\n setFormattedValue(`${newStringValue} ${isMoneyInput ? '€' : ''}`);\n setPlainText(newStringValue.replaceAll('.', ''));\n setHasFocus(false);\n\n if (typeof onChange === 'function' && shouldTriggerChangeOnFormat) {\n onChange(newStringValue.replaceAll('.', ''));\n }\n\n if (typeof onBlur === 'function') {\n if (isTimeInput) {\n onBlur(newStringValue, newIsInvalid);\n } else {\n onBlur(parsedNumber, newIsInvalid);\n }\n }\n };\n\n const onLocalFocus = () => {\n // formattedValue will be a number string with german number format (e.g. 1.000,00)\n // It will remove all dots, so that the user can type in the number\n setPlainText(formattedValue.replaceAll('.', '').replace('€', '').replaceAll(' ', ''));\n\n // This will update the external state\n if (typeof onChange === 'function' && shouldTriggerChangeOnFormat) {\n onChange(formattedValue.replaceAll('.', '').replace('€', '').replaceAll(' ', ''));\n }\n\n setIsValueInvalid(false);\n setHasFocus(true);\n };\n\n // updates the formattedValue, when the value changes\n useEffect(() => {\n let parsedNumber = null;\n\n if (!isTimeInput) {\n parsedNumber = parseFloatWithDecimals({\n stringValue: plainText\n .replace(',', '.')\n .replaceAll(':', '')\n .replace('€', '')\n .replaceAll(' ', ''),\n decimals: isMoneyInput ? 2 : undefined,\n });\n\n // checks, if a given number is invalid, if the input is not in focus\n if (!hasFocus) {\n if (parsedNumber === null && initialInputRef.current) {\n setIsValueInvalid(false);\n } else {\n setIsValueInvalid(\n parsedNumber === null ||\n parsedNumber > maxNumber ||\n parsedNumber < minNumber,\n );\n }\n }\n }\n\n setFormattedValue(\n plainText.length === 0\n ? ''\n : `${formateNumber({\n number: isTimeInput ? plainText : parsedNumber,\n isMoneyInput,\n isTimeInput,\n })}${isMoneyInput ? ' €' : ''}`,\n );\n }, [hasFocus, isMoneyInput, isTimeInput, maxNumber, minNumber, plainText]);\n\n useEffect(() => {\n if (typeof value === 'string') {\n setPlainText(value.replace('€', '').replaceAll(' ', ''));\n }\n }, [value]);\n\n return (\n <Input\n shouldRemainPlaceholder={shouldRemainPlaceholder}\n shouldShowOnlyBottomBorder={shouldShowOnlyBottomBorder}\n inputMode=\"decimal\"\n onChange={onLocalChange}\n value={hasFocus ? plainText : formattedValue}\n placeholder={localPlaceholder}\n onBlur={onLocalBlur}\n onFocus={onLocalFocus}\n isDisabled={isDisabled}\n isInvalid={typeof isInvalid === 'boolean' ? isInvalid : isValueInvalid}\n shouldShowCenteredContent={shouldShowOnlyBottomBorder}\n />\n );\n};\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"],"mappings":"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","ignoreList":[]}
@@ -32,8 +32,7 @@ const PageProvider = ({
32
32
  shouldRemovePadding = false,
33
33
  shouldUseUsableHeight = false,
34
34
  iconColor,
35
- customVariables,
36
- shouldEnableKeyboardHighlighting
35
+ customVariables
37
36
  }) => {
38
37
  const {
39
38
  runtimeEnvironment
@@ -56,8 +55,7 @@ const PageProvider = ({
56
55
  height: '100%'
57
56
  } : style,
58
57
  customVariables: customVariables,
59
- iconColor: iconColor,
60
- shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlighting
58
+ iconColor: iconColor
61
59
  }, children), /*#__PURE__*/React.createElement(GlobalStyle, null));
62
60
  };
63
61
  PageProvider.displayName = 'PageProvider';
@@ -1 +1 @@
1
- {"version":3,"file":"PageProvider.js","names":["RuntimeEnviroment","useEnvironment","React","createGlobalStyle","useUsableHeight","ColorSchemeProvider","StyledPageProvider","GlobalStyle","PageProvider","children","color","colorMode","secondaryColor","siteId","style","shouldReduceUsableHeightByCoverHeight","shouldRemovePadding","shouldUseUsableHeight","iconColor","customVariables","shouldEnableKeyboardHighlighting","runtimeEnvironment","usableHeight","shouldReduceByCoverHeight","shouldUsePadding","IntercomPlugin","PagemakerPlugin","includes","createElement","className","$shouldUsePadding","$usableHeight","undefined","height","displayName"],"sources":["../../../../src/components/page-provider/PageProvider.tsx"],"sourcesContent":["import { RuntimeEnviroment, useEnvironment } from 'chayns-api';\nimport React, { FC } from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport { useUsableHeight } from '../../utils/pageProvider';\nimport ColorSchemeProvider, {\n type ColorSchemeProviderProps,\n} from '../color-scheme-provider/ColorSchemeProvider';\nimport { StyledPageProvider } from './PageProvider.styles';\n\n/**\n * Props for the PageProvider component.\n * @description\n * This interface defines the props that can be passed to the PageProvider component\n * for controlling the layout and styling behavior.\n * @example\n * <PageProvider shouldRemovePadding={true}>\n * {children}\n * </PageProvider>\n */\ninterface PageProviderProps extends ColorSchemeProviderProps {\n /**\n * Controls whether the usable height should be reduced by the cover height\n * @description\n * When true, the usable height will be reduced by the cover image height. This is useful\n * when the page should not be scrollable due to the cover image. The property has no effect\n * when `shouldUseUsableHeight` is false.\n * @default false\n * @optional\n */\n shouldReduceUsableHeightByCoverHeight?: boolean;\n /**\n * Controls whether padding should be removed from the page\n * @description\n * When true, the padding around the page content will be removed. This is useful when the\n * page should not have any padding, for example, when it is embedded in a pagemaker page.\n * @default false\n * @optional\n */\n shouldRemovePadding?: boolean;\n /**\n * Controls whether the component should use the calculated usable height\n * @description\n * When true, the page will cover the entire usable height of the screen. This means that\n * the viewport is not scrollable and the page takes up the full height not required by the\n * title or bottom bar. Optionally, the height of the cover image can be reduced by setting\n * `shouldReduceUsableHeightByCoverHeight` to true.\n * @default false\n * @optional\n */\n shouldUseUsableHeight?: boolean;\n}\n\nconst GlobalStyle = createGlobalStyle`\n *, *::before, *::after {\n box-sizing: border-box;\n }\n`;\n\nconst PageProvider: FC<PageProviderProps> = ({\n children,\n color,\n colorMode,\n secondaryColor,\n siteId,\n style = {},\n shouldReduceUsableHeightByCoverHeight = false,\n shouldRemovePadding = false,\n shouldUseUsableHeight = false,\n iconColor,\n customVariables,\n shouldEnableKeyboardHighlighting,\n}) => {\n const { runtimeEnvironment } = useEnvironment();\n\n const usableHeight = useUsableHeight({\n shouldReduceByCoverHeight: shouldReduceUsableHeightByCoverHeight,\n });\n\n const shouldUsePadding =\n !shouldRemovePadding &&\n ![RuntimeEnviroment.IntercomPlugin, RuntimeEnviroment.PagemakerPlugin, 6].includes(\n runtimeEnvironment as number,\n );\n\n return (\n <StyledPageProvider\n className=\"page-provider\"\n $shouldUsePadding={shouldUsePadding}\n $usableHeight={shouldUseUsableHeight ? usableHeight : undefined}\n >\n <ColorSchemeProvider\n color={color}\n secondaryColor={secondaryColor}\n colorMode={colorMode}\n siteId={siteId}\n style={shouldUseUsableHeight ? { ...style, height: '100%' } : style}\n customVariables={customVariables}\n iconColor={iconColor}\n shouldEnableKeyboardHighlighting={shouldEnableKeyboardHighlighting}\n >\n {children}\n </ColorSchemeProvider>\n <GlobalStyle />\n </StyledPageProvider>\n );\n};\nPageProvider.displayName = 'PageProvider';\n\nexport default PageProvider;\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,cAAc,QAAQ,YAAY;AAC9D,OAAOC,KAAK,MAAc,OAAO;AACjC,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,OAAOC,mBAAmB,MAEnB,8CAA8C;AACrD,SAASC,kBAAkB,QAAQ,uBAAuB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,MAAMC,WAAW,GAAGJ,iBAAiB;AACrC;AACA;AACA;AACA,CAAC;AAED,MAAMK,YAAmC,GAAGA,CAAC;EACzCC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,cAAc;EACdC,MAAM;EACNC,KAAK,GAAG,CAAC,CAAC;EACVC,qCAAqC,GAAG,KAAK;EAC7CC,mBAAmB,GAAG,KAAK;EAC3BC,qBAAqB,GAAG,KAAK;EAC7BC,SAAS;EACTC,eAAe;EACfC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEC;EAAmB,CAAC,GAAGpB,cAAc,CAAC,CAAC;EAE/C,MAAMqB,YAAY,GAAGlB,eAAe,CAAC;IACjCmB,yBAAyB,EAAER;EAC/B,CAAC,CAAC;EAEF,MAAMS,gBAAgB,GAClB,CAACR,mBAAmB,IACpB,CAAC,CAAChB,iBAAiB,CAACyB,cAAc,EAAEzB,iBAAiB,CAAC0B,eAAe,EAAE,CAAC,CAAC,CAACC,QAAQ,CAC9EN,kBACJ,CAAC;EAEL,oBACInB,KAAA,CAAA0B,aAAA,CAACtB,kBAAkB;IACfuB,SAAS,EAAC,eAAe;IACzBC,iBAAiB,EAAEN,gBAAiB;IACpCO,aAAa,EAAEd,qBAAqB,GAAGK,YAAY,GAAGU;EAAU,gBAEhE9B,KAAA,CAAA0B,aAAA,CAACvB,mBAAmB;IAChBK,KAAK,EAAEA,KAAM;IACbE,cAAc,EAAEA,cAAe;IAC/BD,SAAS,EAAEA,SAAU;IACrBE,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEG,qBAAqB,GAAG;MAAE,GAAGH,KAAK;MAAEmB,MAAM,EAAE;IAAO,CAAC,GAAGnB,KAAM;IACpEK,eAAe,EAAEA,eAAgB;IACjCD,SAAS,EAAEA,SAAU;IACrBE,gCAAgC,EAAEA;EAAiC,GAElEX,QACgB,CAAC,eACtBP,KAAA,CAAA0B,aAAA,CAACrB,WAAW,MAAE,CACE,CAAC;AAE7B,CAAC;AACDC,YAAY,CAAC0B,WAAW,GAAG,cAAc;AAEzC,eAAe1B,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"PageProvider.js","names":["RuntimeEnviroment","useEnvironment","React","createGlobalStyle","useUsableHeight","ColorSchemeProvider","StyledPageProvider","GlobalStyle","PageProvider","children","color","colorMode","secondaryColor","siteId","style","shouldReduceUsableHeightByCoverHeight","shouldRemovePadding","shouldUseUsableHeight","iconColor","customVariables","runtimeEnvironment","usableHeight","shouldReduceByCoverHeight","shouldUsePadding","IntercomPlugin","PagemakerPlugin","includes","createElement","className","$shouldUsePadding","$usableHeight","undefined","height","displayName"],"sources":["../../../../src/components/page-provider/PageProvider.tsx"],"sourcesContent":["import { RuntimeEnviroment, useEnvironment } from 'chayns-api';\nimport React, { FC } from 'react';\nimport { createGlobalStyle } from 'styled-components';\nimport { useUsableHeight } from '../../utils/pageProvider';\nimport ColorSchemeProvider, {\n type ColorSchemeProviderProps,\n} from '../color-scheme-provider/ColorSchemeProvider';\nimport { StyledPageProvider } from './PageProvider.styles';\n\n/**\n * Props for the PageProvider component.\n * @description\n * This interface defines the props that can be passed to the PageProvider component\n * for controlling the layout and styling behavior.\n * @example\n * <PageProvider shouldRemovePadding={true}>\n * {children}\n * </PageProvider>\n */\ninterface PageProviderProps extends ColorSchemeProviderProps {\n /**\n * Controls whether the usable height should be reduced by the cover height\n * @description\n * When true, the usable height will be reduced by the cover image height. This is useful\n * when the page should not be scrollable due to the cover image. The property has no effect\n * when `shouldUseUsableHeight` is false.\n * @default false\n * @optional\n */\n shouldReduceUsableHeightByCoverHeight?: boolean;\n /**\n * Controls whether padding should be removed from the page\n * @description\n * When true, the padding around the page content will be removed. This is useful when the\n * page should not have any padding, for example, when it is embedded in a pagemaker page.\n * @default false\n * @optional\n */\n shouldRemovePadding?: boolean;\n /**\n * Controls whether the component should use the calculated usable height\n * @description\n * When true, the page will cover the entire usable height of the screen. This means that\n * the viewport is not scrollable and the page takes up the full height not required by the\n * title or bottom bar. Optionally, the height of the cover image can be reduced by setting\n * `shouldReduceUsableHeightByCoverHeight` to true.\n * @default false\n * @optional\n */\n shouldUseUsableHeight?: boolean;\n}\n\nconst GlobalStyle = createGlobalStyle`\n *, *::before, *::after {\n box-sizing: border-box;\n }\n`;\n\nconst PageProvider: FC<PageProviderProps> = ({\n children,\n color,\n colorMode,\n secondaryColor,\n siteId,\n style = {},\n shouldReduceUsableHeightByCoverHeight = false,\n shouldRemovePadding = false,\n shouldUseUsableHeight = false,\n iconColor,\n customVariables,\n}) => {\n const { runtimeEnvironment } = useEnvironment();\n\n const usableHeight = useUsableHeight({\n shouldReduceByCoverHeight: shouldReduceUsableHeightByCoverHeight,\n });\n\n const shouldUsePadding =\n !shouldRemovePadding &&\n ![RuntimeEnviroment.IntercomPlugin, RuntimeEnviroment.PagemakerPlugin, 6].includes(\n runtimeEnvironment as number,\n );\n\n return (\n <StyledPageProvider\n className=\"page-provider\"\n $shouldUsePadding={shouldUsePadding}\n $usableHeight={shouldUseUsableHeight ? usableHeight : undefined}\n >\n <ColorSchemeProvider\n color={color}\n secondaryColor={secondaryColor}\n colorMode={colorMode}\n siteId={siteId}\n style={shouldUseUsableHeight ? { ...style, height: '100%' } : style}\n customVariables={customVariables}\n iconColor={iconColor}\n >\n {children}\n </ColorSchemeProvider>\n <GlobalStyle />\n </StyledPageProvider>\n );\n};\nPageProvider.displayName = 'PageProvider';\n\nexport default PageProvider;\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,cAAc,QAAQ,YAAY;AAC9D,OAAOC,KAAK,MAAc,OAAO;AACjC,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,eAAe,QAAQ,0BAA0B;AAC1D,OAAOC,mBAAmB,MAEnB,8CAA8C;AACrD,SAASC,kBAAkB,QAAQ,uBAAuB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,MAAMC,WAAW,GAAGJ,iBAAiB;AACrC;AACA;AACA;AACA,CAAC;AAED,MAAMK,YAAmC,GAAGA,CAAC;EACzCC,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,cAAc;EACdC,MAAM;EACNC,KAAK,GAAG,CAAC,CAAC;EACVC,qCAAqC,GAAG,KAAK;EAC7CC,mBAAmB,GAAG,KAAK;EAC3BC,qBAAqB,GAAG,KAAK;EAC7BC,SAAS;EACTC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEC;EAAmB,CAAC,GAAGnB,cAAc,CAAC,CAAC;EAE/C,MAAMoB,YAAY,GAAGjB,eAAe,CAAC;IACjCkB,yBAAyB,EAAEP;EAC/B,CAAC,CAAC;EAEF,MAAMQ,gBAAgB,GAClB,CAACP,mBAAmB,IACpB,CAAC,CAAChB,iBAAiB,CAACwB,cAAc,EAAExB,iBAAiB,CAACyB,eAAe,EAAE,CAAC,CAAC,CAACC,QAAQ,CAC9EN,kBACJ,CAAC;EAEL,oBACIlB,KAAA,CAAAyB,aAAA,CAACrB,kBAAkB;IACfsB,SAAS,EAAC,eAAe;IACzBC,iBAAiB,EAAEN,gBAAiB;IACpCO,aAAa,EAAEb,qBAAqB,GAAGI,YAAY,GAAGU;EAAU,gBAEhE7B,KAAA,CAAAyB,aAAA,CAACtB,mBAAmB;IAChBK,KAAK,EAAEA,KAAM;IACbE,cAAc,EAAEA,cAAe;IAC/BD,SAAS,EAAEA,SAAU;IACrBE,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEG,qBAAqB,GAAG;MAAE,GAAGH,KAAK;MAAEkB,MAAM,EAAE;IAAO,CAAC,GAAGlB,KAAM;IACpEK,eAAe,EAAEA,eAAgB;IACjCD,SAAS,EAAEA;EAAU,GAEpBT,QACgB,CAAC,eACtBP,KAAA,CAAAyB,aAAA,CAACpB,WAAW,MAAE,CACE,CAAC;AAE7B,CAAC;AACDC,YAAY,CAACyB,WAAW,GAAG,cAAc;AAEzC,eAAezB,YAAY","ignoreList":[]}
@@ -220,11 +220,6 @@ const Popup = /*#__PURE__*/forwardRef(({
220
220
  handleHide();
221
221
  }
222
222
  }, [handleHide]);
223
- const handleDocumentKeyDown = useCallback(event => {
224
- if (event.key === 'Escape') {
225
- handleHide();
226
- }
227
- }, [handleHide]);
228
223
  useImperativeHandle(ref, () => ({
229
224
  hide: handleHide,
230
225
  show: handleShow
@@ -237,13 +232,11 @@ const Popup = /*#__PURE__*/forwardRef(({
237
232
  document.addEventListener('click', handleDocumentClick, true);
238
233
  window.addEventListener('blur', handleHide);
239
234
  }
240
- document.addEventListener('keydown', handleDocumentKeyDown);
241
235
  return () => {
242
236
  document.removeEventListener('click', handleDocumentClick, true);
243
237
  window.removeEventListener('blur', handleHide);
244
- document.removeEventListener('keydown', handleDocumentKeyDown);
245
238
  };
246
- }, [handleDocumentClick, handleDocumentKeyDown, handleHide, isControlled, isPopupOpen, shouldBeOpen]);
239
+ }, [handleDocumentClick, handleHide, isControlled, isPopupOpen, shouldBeOpen]);
247
240
  useEffect(() => {
248
241
  if (previousIsVisibleRef.current === isPopupOpen) {
249
242
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","names":["AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","createPortal","useUuid","PopupAlignment","AreaContextProvider","PopupContentWrapper","StyledPopup","useMeasuredClone","Popup","alignment","content","onShow","container","onHide","children","isOpen","shouldHideOnChildrenLeave","shouldShowOnHover","shouldUseChildrenWidth","shouldScrollWithContent","shouldUseFullWidth","yOffset","shouldBeOpen","ref","coordinates","setCoordinates","x","y","internalAlignment","setInternalAlignment","TopLeft","offset","setOffset","isInternallyOpen","setIsInternallyOpen","portal","setPortal","pseudoSize","setPseudoSize","newContainer","setNewContainer","contentMaxHeight","setContentMaxHeight","undefined","timeout","previousIsVisibleRef","uuid","isControlled","isPopupOpen","height","width","measuredElement","shouldPreventTextWrapping","popupContentRef","popupRef","current","el","element","closest","Element","updatePopupPosition","HORIZONTAL_PADDING","pseudoHeight","pseudoWidth","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","getBoundingClientRect","document","body","containerHeight","containerWidth","zoomX","offsetWidth","zoomY","offsetHeight","childrenCenterX","scrollLeft","scrollTop","boundaryLeft","boundaryWidth","relativeX","shouldShowBottom","BottomLeft","BottomRight","BottomCenter","shouldForceRight","TopRight","shouldUseCenterAlignment","TopCenter","hasEnoughSpaceForCenter","isRight","newOffset","right","newX","handleShow","handleReposition","window","addEventListener","removeEventListener","viewHeight","clientHeight","includes","handleChildrenClick","handleHide","handleMouseEnter","clearTimeout","handleMouseLeave","setTimeout","handleDocumentClick","event","contains","target","handleDocumentKeyDown","key","hide","show","createElement","initial","maxHeight","onMouseLeave","onMouseEnter","shouldChangeColor","Fragment","className","onClick","$shouldUseChildrenWidth","$shouldUseFullWidth","displayName"],"sources":["../../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { PopupAlignment, PopupCoordinates, PopupRef } from '../../types/popup';\nimport AreaContextProvider from '../area-provider/AreaContextProvider';\nimport PopupContentWrapper from './popup-content-wrapper/PopupContentWrapper';\nimport { StyledPopup } from './Popup.styles';\nimport { useMeasuredClone } from '../../hooks/element';\nimport type { PopupProps } from './Popup.types';\n\nexport type { PopupProps } from './Popup.types';\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n (\n {\n alignment,\n content,\n onShow,\n container,\n onHide,\n children,\n isOpen,\n shouldHideOnChildrenLeave,\n shouldShowOnHover = false,\n shouldUseChildrenWidth = true,\n shouldScrollWithContent = true,\n shouldUseFullWidth = false,\n yOffset = 0,\n shouldBeOpen = false,\n },\n ref,\n ) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<PopupAlignment>(\n PopupAlignment.TopLeft,\n );\n const [offset, setOffset] = useState<number>(0);\n const [isInternallyOpen, setIsInternallyOpen] = useState(shouldBeOpen);\n const [portal, setPortal] = useState<ReactPortal>();\n const [pseudoSize, setPseudoSize] = useState<{ height: number; width: number }>();\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n const [contentMaxHeight, setContentMaxHeight] = useState<number | undefined>(undefined);\n\n const timeout = useRef<number>();\n const previousIsVisibleRef = useRef(false);\n\n const uuid = useUuid();\n const isControlled = typeof isOpen === 'boolean';\n const isPopupOpen = isControlled ? isOpen : isInternallyOpen;\n\n const { height, width, measuredElement } = useMeasuredClone({\n content,\n shouldPreventTextWrapping: !shouldUseChildrenWidth,\n });\n\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (popupRef.current && !container) {\n const el = popupRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n setPseudoSize({ height, width });\n }, [height, width]);\n\n const updatePopupPosition = useCallback(() => {\n if (popupRef.current && pseudoSize) {\n if (!newContainer) {\n return;\n }\n\n const HORIZONTAL_PADDING = 23;\n\n const { height: pseudoHeight, width: pseudoWidth } = pseudoSize;\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n const element = shouldScrollWithContent ? newContainer : document.body;\n\n const {\n height: containerHeight,\n width: containerWidth,\n top,\n left,\n } = element.getBoundingClientRect();\n\n const zoomX = containerWidth / (element as HTMLElement).offsetWidth;\n const zoomY = containerHeight / (element as HTMLElement).offsetHeight;\n\n const childrenCenterX = childrenLeft + childrenWidth / 2;\n const x = (childrenCenterX - left) / zoomX + element.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;\n\n // Use one coordinate space for all horizontal bounds checks.\n const boundaryLeft = element.scrollLeft;\n const boundaryWidth = containerWidth / zoomX;\n const relativeX = x - boundaryLeft;\n\n const shouldShowBottom =\n pseudoHeight > childrenTop - 25 ||\n alignment === PopupAlignment.BottomLeft ||\n alignment === PopupAlignment.BottomRight ||\n alignment === PopupAlignment.BottomCenter;\n\n const shouldForceRight = shouldShowBottom\n ? alignment === PopupAlignment.BottomRight\n : alignment === PopupAlignment.TopRight;\n\n const shouldUseCenterAlignment = shouldShowBottom\n ? alignment === PopupAlignment.BottomCenter\n : alignment === PopupAlignment.TopCenter;\n\n const hasEnoughSpaceForCenter =\n pseudoWidth / 2 <= relativeX - HORIZONTAL_PADDING &&\n pseudoWidth / 2 <= boundaryWidth - relativeX - HORIZONTAL_PADDING;\n\n if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter,\n );\n setOffset(0);\n setCoordinates({\n x,\n y,\n });\n } else {\n let isRight = false;\n\n if (pseudoWidth > relativeX - HORIZONTAL_PADDING || shouldForceRight) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight,\n );\n isRight = true;\n } else {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomLeft : PopupAlignment.TopLeft,\n );\n }\n\n let newOffset;\n\n if (isRight) {\n newOffset =\n relativeX + pseudoWidth >= boundaryWidth - HORIZONTAL_PADDING\n ? relativeX + pseudoWidth - (boundaryWidth - HORIZONTAL_PADDING)\n : 0;\n } else {\n const right = boundaryWidth - relativeX;\n\n newOffset =\n right + pseudoWidth >= boundaryWidth + HORIZONTAL_PADDING\n ? right + pseudoWidth - (boundaryWidth + HORIZONTAL_PADDING)\n : 0;\n }\n\n setOffset(newOffset);\n\n const newX = x - newOffset;\n\n setCoordinates({\n x: newX,\n y,\n });\n }\n }\n }, [alignment, newContainer, pseudoSize, shouldScrollWithContent, yOffset]);\n\n const handleShow = useCallback(() => {\n updatePopupPosition();\n\n if (isControlled) {\n return;\n }\n\n setIsInternallyOpen(true);\n }, [isControlled, updatePopupPosition]);\n\n useEffect(() => {\n if (isControlled) {\n if (isOpen) {\n updatePopupPosition();\n }\n\n return;\n }\n\n if (shouldBeOpen) {\n handleShow();\n }\n }, [handleShow, isControlled, isOpen, shouldBeOpen, updatePopupPosition]);\n\n const handleReposition = useCallback(() => {\n if (isPopupOpen) {\n updatePopupPosition();\n }\n }, [isPopupOpen, updatePopupPosition]);\n\n useEffect(() => {\n if (!isPopupOpen) {\n return undefined;\n }\n\n window.addEventListener('resize', handleReposition);\n window.addEventListener('scroll', handleReposition, true);\n\n return () => {\n window.removeEventListener('resize', handleReposition);\n window.removeEventListener('scroll', handleReposition, true);\n };\n }, [handleReposition, isPopupOpen]);\n\n useEffect(() => {\n if (!newContainer || !popupRef.current) return;\n\n const viewHeight = newContainer.clientHeight;\n const childrenHeight = popupRef.current.getBoundingClientRect().height;\n\n if (\n [\n PopupAlignment.TopLeft,\n PopupAlignment.TopRight,\n PopupAlignment.TopCenter,\n ].includes(internalAlignment)\n ) {\n setContentMaxHeight(coordinates.y - 20);\n } else {\n setContentMaxHeight(viewHeight - childrenHeight - coordinates.y - 20);\n }\n }, [coordinates.y, internalAlignment, newContainer]);\n\n const handleChildrenClick = () => {\n if (isControlled) {\n return;\n }\n\n handleShow();\n };\n\n const handleHide = useCallback(() => {\n if (isControlled) {\n return;\n }\n\n setIsInternallyOpen(false);\n }, [isControlled]);\n\n const handleMouseEnter = useCallback(() => {\n if (isControlled) {\n return;\n }\n\n if (shouldShowOnHover) {\n window.clearTimeout(timeout.current);\n handleShow();\n }\n }, [handleShow, isControlled, shouldShowOnHover]);\n\n const handleMouseLeave = useCallback(() => {\n if (isControlled) {\n return;\n }\n\n if (!shouldShowOnHover) {\n return;\n }\n\n if (shouldHideOnChildrenLeave) {\n handleHide();\n\n return;\n }\n\n timeout.current = window.setTimeout(() => {\n handleHide();\n }, 500);\n }, [handleHide, isControlled, shouldHideOnChildrenLeave, shouldShowOnHover]);\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!popupContentRef.current?.contains(event.target as Node)) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n const handleDocumentKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n handleHide();\n }\n },\n [handleHide],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n if (!isPopupOpen) {\n return undefined;\n }\n\n if (!isControlled && !shouldBeOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n }\n\n document.addEventListener('keydown', handleDocumentKeyDown);\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n document.removeEventListener('keydown', handleDocumentKeyDown);\n };\n }, [\n handleDocumentClick,\n handleDocumentKeyDown,\n handleHide,\n isControlled,\n isPopupOpen,\n shouldBeOpen,\n ]);\n\n useEffect(() => {\n if (previousIsVisibleRef.current === isPopupOpen) {\n return;\n }\n\n previousIsVisibleRef.current = isPopupOpen;\n\n if (isPopupOpen) {\n onShow?.();\n\n return;\n }\n\n onHide?.();\n }, [isPopupOpen, onHide, onShow]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isPopupOpen && (\n <PopupContentWrapper\n width={pseudoSize?.width ?? 0}\n offset={offset}\n shouldScrollWithContent={shouldScrollWithContent}\n coordinates={coordinates}\n key={`tooltip_${uuid}`}\n maxHeight={contentMaxHeight}\n alignment={internalAlignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n >\n <AreaContextProvider shouldChangeColor>\n {content}\n </AreaContextProvider>\n </PopupContentWrapper>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n contentMaxHeight,\n internalAlignment,\n newContainer,\n content,\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isPopupOpen,\n offset,\n pseudoSize?.width,\n uuid,\n shouldScrollWithContent,\n ]);\n\n return (\n <>\n {measuredElement}\n <StyledPopup\n className=\"beta-chayns-popup\"\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n $shouldUseChildrenWidth={shouldUseChildrenWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n >\n {children}\n </StyledPopup>\n {portal}\n </>\n );\n },\n);\n\nPopup.displayName = 'Popup';\n\nexport default Popup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Popup.js","names":["AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","createPortal","useUuid","PopupAlignment","AreaContextProvider","PopupContentWrapper","StyledPopup","useMeasuredClone","Popup","alignment","content","onShow","container","onHide","children","isOpen","shouldHideOnChildrenLeave","shouldShowOnHover","shouldUseChildrenWidth","shouldScrollWithContent","shouldUseFullWidth","yOffset","shouldBeOpen","ref","coordinates","setCoordinates","x","y","internalAlignment","setInternalAlignment","TopLeft","offset","setOffset","isInternallyOpen","setIsInternallyOpen","portal","setPortal","pseudoSize","setPseudoSize","newContainer","setNewContainer","contentMaxHeight","setContentMaxHeight","undefined","timeout","previousIsVisibleRef","uuid","isControlled","isPopupOpen","height","width","measuredElement","shouldPreventTextWrapping","popupContentRef","popupRef","current","el","element","closest","Element","updatePopupPosition","HORIZONTAL_PADDING","pseudoHeight","pseudoWidth","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","getBoundingClientRect","document","body","containerHeight","containerWidth","zoomX","offsetWidth","zoomY","offsetHeight","childrenCenterX","scrollLeft","scrollTop","boundaryLeft","boundaryWidth","relativeX","shouldShowBottom","BottomLeft","BottomRight","BottomCenter","shouldForceRight","TopRight","shouldUseCenterAlignment","TopCenter","hasEnoughSpaceForCenter","isRight","newOffset","right","newX","handleShow","handleReposition","window","addEventListener","removeEventListener","viewHeight","clientHeight","includes","handleChildrenClick","handleHide","handleMouseEnter","clearTimeout","handleMouseLeave","setTimeout","handleDocumentClick","event","contains","target","hide","show","createElement","initial","key","maxHeight","onMouseLeave","onMouseEnter","shouldChangeColor","Fragment","className","onClick","$shouldUseChildrenWidth","$shouldUseFullWidth","displayName"],"sources":["../../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n forwardRef,\n ReactPortal,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { useUuid } from '../../hooks/uuid';\nimport { PopupAlignment, PopupCoordinates, PopupRef } from '../../types/popup';\nimport AreaContextProvider from '../area-provider/AreaContextProvider';\nimport PopupContentWrapper from './popup-content-wrapper/PopupContentWrapper';\nimport { StyledPopup } from './Popup.styles';\nimport { useMeasuredClone } from '../../hooks/element';\nimport type { PopupProps } from './Popup.types';\n\nexport type { PopupProps } from './Popup.types';\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n (\n {\n alignment,\n content,\n onShow,\n container,\n onHide,\n children,\n isOpen,\n shouldHideOnChildrenLeave,\n shouldShowOnHover = false,\n shouldUseChildrenWidth = true,\n shouldScrollWithContent = true,\n shouldUseFullWidth = false,\n yOffset = 0,\n shouldBeOpen = false,\n },\n ref,\n ) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n\n const [internalAlignment, setInternalAlignment] = useState<PopupAlignment>(\n PopupAlignment.TopLeft,\n );\n const [offset, setOffset] = useState<number>(0);\n const [isInternallyOpen, setIsInternallyOpen] = useState(shouldBeOpen);\n const [portal, setPortal] = useState<ReactPortal>();\n const [pseudoSize, setPseudoSize] = useState<{ height: number; width: number }>();\n const [newContainer, setNewContainer] = useState<Element | null>(container ?? null);\n const [contentMaxHeight, setContentMaxHeight] = useState<number | undefined>(undefined);\n\n const timeout = useRef<number>();\n const previousIsVisibleRef = useRef(false);\n\n const uuid = useUuid();\n const isControlled = typeof isOpen === 'boolean';\n const isPopupOpen = isControlled ? isOpen : isInternallyOpen;\n\n const { height, width, measuredElement } = useMeasuredClone({\n content,\n shouldPreventTextWrapping: !shouldUseChildrenWidth,\n });\n\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (popupRef.current && !container) {\n const el = popupRef.current as HTMLElement;\n\n const element = el.closest('.dialog-inner, .page-provider, .tapp, body');\n\n setNewContainer(element);\n }\n }, [container]);\n\n useEffect(() => {\n if (container instanceof Element) {\n setNewContainer(container);\n }\n }, [container]);\n\n useEffect(() => {\n setPseudoSize({ height, width });\n }, [height, width]);\n\n const updatePopupPosition = useCallback(() => {\n if (popupRef.current && pseudoSize) {\n if (!newContainer) {\n return;\n }\n\n const HORIZONTAL_PADDING = 23;\n\n const { height: pseudoHeight, width: pseudoWidth } = pseudoSize;\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n const element = shouldScrollWithContent ? newContainer : document.body;\n\n const {\n height: containerHeight,\n width: containerWidth,\n top,\n left,\n } = element.getBoundingClientRect();\n\n const zoomX = containerWidth / (element as HTMLElement).offsetWidth;\n const zoomY = containerHeight / (element as HTMLElement).offsetHeight;\n\n const childrenCenterX = childrenLeft + childrenWidth / 2;\n const x = (childrenCenterX - left) / zoomX + element.scrollLeft;\n const y =\n (childrenTop + childrenHeight / 2 - top) / zoomY + element.scrollTop - yOffset;\n\n // Use one coordinate space for all horizontal bounds checks.\n const boundaryLeft = element.scrollLeft;\n const boundaryWidth = containerWidth / zoomX;\n const relativeX = x - boundaryLeft;\n\n const shouldShowBottom =\n pseudoHeight > childrenTop - 25 ||\n alignment === PopupAlignment.BottomLeft ||\n alignment === PopupAlignment.BottomRight ||\n alignment === PopupAlignment.BottomCenter;\n\n const shouldForceRight = shouldShowBottom\n ? alignment === PopupAlignment.BottomRight\n : alignment === PopupAlignment.TopRight;\n\n const shouldUseCenterAlignment = shouldShowBottom\n ? alignment === PopupAlignment.BottomCenter\n : alignment === PopupAlignment.TopCenter;\n\n const hasEnoughSpaceForCenter =\n pseudoWidth / 2 <= relativeX - HORIZONTAL_PADDING &&\n pseudoWidth / 2 <= boundaryWidth - relativeX - HORIZONTAL_PADDING;\n\n if (shouldUseCenterAlignment && hasEnoughSpaceForCenter) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomCenter : PopupAlignment.TopCenter,\n );\n setOffset(0);\n setCoordinates({\n x,\n y,\n });\n } else {\n let isRight = false;\n\n if (pseudoWidth > relativeX - HORIZONTAL_PADDING || shouldForceRight) {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomRight : PopupAlignment.TopRight,\n );\n isRight = true;\n } else {\n setInternalAlignment(\n shouldShowBottom ? PopupAlignment.BottomLeft : PopupAlignment.TopLeft,\n );\n }\n\n let newOffset;\n\n if (isRight) {\n newOffset =\n relativeX + pseudoWidth >= boundaryWidth - HORIZONTAL_PADDING\n ? relativeX + pseudoWidth - (boundaryWidth - HORIZONTAL_PADDING)\n : 0;\n } else {\n const right = boundaryWidth - relativeX;\n\n newOffset =\n right + pseudoWidth >= boundaryWidth + HORIZONTAL_PADDING\n ? right + pseudoWidth - (boundaryWidth + HORIZONTAL_PADDING)\n : 0;\n }\n\n setOffset(newOffset);\n\n const newX = x - newOffset;\n\n setCoordinates({\n x: newX,\n y,\n });\n }\n }\n }, [alignment, newContainer, pseudoSize, shouldScrollWithContent, yOffset]);\n\n const handleShow = useCallback(() => {\n updatePopupPosition();\n\n if (isControlled) {\n return;\n }\n\n setIsInternallyOpen(true);\n }, [isControlled, updatePopupPosition]);\n\n useEffect(() => {\n if (isControlled) {\n if (isOpen) {\n updatePopupPosition();\n }\n\n return;\n }\n\n if (shouldBeOpen) {\n handleShow();\n }\n }, [handleShow, isControlled, isOpen, shouldBeOpen, updatePopupPosition]);\n\n const handleReposition = useCallback(() => {\n if (isPopupOpen) {\n updatePopupPosition();\n }\n }, [isPopupOpen, updatePopupPosition]);\n\n useEffect(() => {\n if (!isPopupOpen) {\n return undefined;\n }\n\n window.addEventListener('resize', handleReposition);\n window.addEventListener('scroll', handleReposition, true);\n\n return () => {\n window.removeEventListener('resize', handleReposition);\n window.removeEventListener('scroll', handleReposition, true);\n };\n }, [handleReposition, isPopupOpen]);\n\n useEffect(() => {\n if (!newContainer || !popupRef.current) return;\n\n const viewHeight = newContainer.clientHeight;\n const childrenHeight = popupRef.current.getBoundingClientRect().height;\n\n if (\n [\n PopupAlignment.TopLeft,\n PopupAlignment.TopRight,\n PopupAlignment.TopCenter,\n ].includes(internalAlignment)\n ) {\n setContentMaxHeight(coordinates.y - 20);\n } else {\n setContentMaxHeight(viewHeight - childrenHeight - coordinates.y - 20);\n }\n }, [coordinates.y, internalAlignment, newContainer]);\n\n const handleChildrenClick = () => {\n if (isControlled) {\n return;\n }\n\n handleShow();\n };\n\n const handleHide = useCallback(() => {\n if (isControlled) {\n return;\n }\n\n setIsInternallyOpen(false);\n }, [isControlled]);\n\n const handleMouseEnter = useCallback(() => {\n if (isControlled) {\n return;\n }\n\n if (shouldShowOnHover) {\n window.clearTimeout(timeout.current);\n handleShow();\n }\n }, [handleShow, isControlled, shouldShowOnHover]);\n\n const handleMouseLeave = useCallback(() => {\n if (isControlled) {\n return;\n }\n\n if (!shouldShowOnHover) {\n return;\n }\n\n if (shouldHideOnChildrenLeave) {\n handleHide();\n\n return;\n }\n\n timeout.current = window.setTimeout(() => {\n handleHide();\n }, 500);\n }, [handleHide, isControlled, shouldHideOnChildrenLeave, shouldShowOnHover]);\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (!popupContentRef.current?.contains(event.target as Node)) {\n handleHide();\n }\n },\n [handleHide],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n if (!isPopupOpen) {\n return undefined;\n }\n\n if (!isControlled && !shouldBeOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isControlled, isPopupOpen, shouldBeOpen]);\n\n useEffect(() => {\n if (previousIsVisibleRef.current === isPopupOpen) {\n return;\n }\n\n previousIsVisibleRef.current = isPopupOpen;\n\n if (isPopupOpen) {\n onShow?.();\n\n return;\n }\n\n onHide?.();\n }, [isPopupOpen, onHide, onShow]);\n\n useEffect(() => {\n if (!newContainer) {\n return;\n }\n\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isPopupOpen && (\n <PopupContentWrapper\n width={pseudoSize?.width ?? 0}\n offset={offset}\n shouldScrollWithContent={shouldScrollWithContent}\n coordinates={coordinates}\n key={`tooltip_${uuid}`}\n maxHeight={contentMaxHeight}\n alignment={internalAlignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n >\n <AreaContextProvider shouldChangeColor>\n {content}\n </AreaContextProvider>\n </PopupContentWrapper>\n )}\n </AnimatePresence>,\n newContainer,\n ),\n );\n }, [\n contentMaxHeight,\n internalAlignment,\n newContainer,\n content,\n coordinates,\n handleMouseEnter,\n handleMouseLeave,\n isPopupOpen,\n offset,\n pseudoSize?.width,\n uuid,\n shouldScrollWithContent,\n ]);\n\n return (\n <>\n {measuredElement}\n <StyledPopup\n className=\"beta-chayns-popup\"\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n $shouldUseChildrenWidth={shouldUseChildrenWidth}\n $shouldUseFullWidth={shouldUseFullWidth}\n >\n {children}\n </StyledPopup>\n {portal}\n </>\n );\n },\n);\n\nPopup.displayName = 'Popup';\n\nexport default Popup;\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,6 @@ import React, { useCallback, useContext, useEffect, useMemo, useState, useRef }
3
3
  import { RadioButtonGroupContext } from './radio-button-group/RadioButtonGroup';
4
4
  import { StyledLabelWrapper, StyledMotionRadioButtonChildren, StyledRadioButton, StyledRadioButtonCheckBox, StyledRadioButtonCheckBoxMark, StyledRadioButtonLabel, StyledRadioButtonPseudoCheckBox, StyledRadioButtonWrapper } from './RadioButton.styles';
5
5
  import { getHeightOfSingleTextLine } from '../../utils/calculate';
6
- import { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';
7
6
  const RadioButton = ({
8
7
  children,
9
8
  shouldShowRightElementOnlyOnChecked = false,
@@ -11,16 +10,14 @@ const RadioButton = ({
11
10
  id,
12
11
  rightElement,
13
12
  shouldShowCentered = true,
14
- isDisabled = false,
15
- shouldEnableKeyboardHighlighting
13
+ isDisabled = false
16
14
  }) => {
17
15
  const {
18
16
  selectedRadioButtonId,
19
17
  updateSelectedRadioButtonId,
20
18
  radioButtonRightElements,
21
19
  updateHasRightElement,
22
- radioButtonsCanBeUnchecked,
23
- shouldEnableKeyboardHighlighting: shouldEnableKeyboardHighlightingFromGroup
20
+ radioButtonsCanBeUnchecked
24
21
  } = useContext(RadioButtonGroupContext);
25
22
  const [internalIsChecked, setInternalIsChecked] = useState(false);
26
23
  const [isHovered, setIsHovered] = useState(false);
@@ -30,8 +27,6 @@ const RadioButton = ({
30
27
  const isInGroup = typeof updateSelectedRadioButtonId === 'function';
31
28
  const isMarked = isInGroup ? selectedRadioButtonId === id : internalIsChecked;
32
29
  const uncheckable = radioButtonsCanBeUnchecked;
33
- const effectiveShouldEnableKeyboardHighlighting = shouldEnableKeyboardHighlightingFromGroup ?? shouldEnableKeyboardHighlighting;
34
- const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(effectiveShouldEnableKeyboardHighlighting && !isDisabled);
35
30
  useEffect(() => {
36
31
  if (radioButtonRootRef.current && !shouldShowCentered) {
37
32
  const singleLineHeight = getHeightOfSingleTextLine({
@@ -65,12 +60,6 @@ const RadioButton = ({
65
60
  const handleMouseLeave = () => {
66
61
  setIsHovered(false);
67
62
  };
68
- const handleKeyDown = useCallback(event => {
69
- if (event.key === 'Enter') {
70
- event.preventDefault();
71
- handleClick();
72
- }
73
- }, [handleClick]);
74
63
  const radioButtonRightElementMargin = useMemo(() => {
75
64
  if (!radioButtonRightElements) {
76
65
  return 'NONE';
@@ -116,20 +105,8 @@ const RadioButton = ({
116
105
  $isDisabled: isDisabled,
117
106
  $radioButtonRightElementMargin: radioButtonRightElementMargin
118
107
  }, /*#__PURE__*/React.createElement(StyledRadioButtonWrapper, {
119
- ref: radioButtonRootRef,
120
- $shouldShowKeyboardHighlighting: shouldShowKeyboardHighlighting
121
- }, /*#__PURE__*/React.createElement(StyledRadioButtonCheckBox, {
122
- onClick: handleClick,
123
- onMouseEnter: handleMouseEnter,
124
- onMouseLeave: handleMouseLeave,
125
- onKeyDown: handleKeyDown,
126
- disabled: isDisabled,
127
- $isDisabled: isDisabled,
128
- $shouldShowKeyboardHighlighting: shouldShowKeyboardHighlighting,
129
- type: "radio",
130
- checked: isMarked,
131
- onChange: () => {}
132
- }), /*#__PURE__*/React.createElement(StyledRadioButtonPseudoCheckBox, {
108
+ ref: radioButtonRootRef
109
+ }, /*#__PURE__*/React.createElement(StyledRadioButtonPseudoCheckBox, {
133
110
  $isDisabled: isDisabled,
134
111
  $isChecked: isMarked,
135
112
  ref: radioButtonBoxRef,
@@ -144,7 +121,16 @@ const RadioButton = ({
144
121
  $isHovered: isHovered,
145
122
  $isSelected: isMarked,
146
123
  $isDisabled: isDisabled
147
- })), /*#__PURE__*/React.createElement(StyledLabelWrapper, null, label && /*#__PURE__*/React.createElement(StyledRadioButtonLabel, {
124
+ })), /*#__PURE__*/React.createElement(StyledRadioButtonCheckBox, {
125
+ onClick: handleClick,
126
+ onMouseEnter: handleMouseEnter,
127
+ onMouseLeave: handleMouseLeave,
128
+ disabled: isDisabled,
129
+ $isDisabled: isDisabled,
130
+ type: "radio",
131
+ checked: isMarked,
132
+ onChange: () => {}
133
+ }), /*#__PURE__*/React.createElement(StyledLabelWrapper, null, label && /*#__PURE__*/React.createElement(StyledRadioButtonLabel, {
148
134
  $isDisabled: isDisabled,
149
135
  onClick: handleClick,
150
136
  onMouseEnter: handleMouseEnter,
@@ -162,7 +148,7 @@ const RadioButton = ({
162
148
  transition: {
163
149
  duration: 0.2
164
150
  }
165
- }, children))), [children, handleClick, handleKeyDown, handleMouseEnter, isDisabled, isHovered, isMarked, label, radioButtonRightElementMargin, radioButtonTop, rightElement, shouldShowCentered, shouldShowKeyboardHighlighting, shouldShowRightElement]);
151
+ }, children))), [children, handleClick, handleMouseEnter, isDisabled, isHovered, isMarked, label, radioButtonRightElementMargin, radioButtonTop, rightElement, shouldShowCentered, shouldShowRightElement]);
166
152
  };
167
153
  RadioButton.displayName = 'RadioButton';
168
154
  export default RadioButton;