@chayns-components/core 5.0.0-beta.48 → 5.0.0-beta.482

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 (442) hide show
  1. package/README.md +3 -19
  2. package/lib/api/image/post.d.ts +14 -0
  3. package/lib/api/image/post.js +33 -0
  4. package/lib/api/image/post.js.map +1 -0
  5. package/lib/api/signature/delete.d.ts +1 -0
  6. package/lib/api/signature/delete.js +27 -0
  7. package/lib/api/signature/delete.js.map +1 -0
  8. package/lib/api/signature/get.d.ts +1 -0
  9. package/lib/api/signature/get.js +33 -0
  10. package/lib/api/signature/get.js.map +1 -0
  11. package/lib/api/signature/put.d.ts +1 -0
  12. package/lib/api/signature/put.js +31 -0
  13. package/lib/api/signature/put.js.map +1 -0
  14. package/lib/api/theme/get.d.ts +2 -0
  15. package/lib/api/theme/get.js +14 -0
  16. package/lib/api/theme/get.js.map +1 -0
  17. package/lib/api/video/post.d.ts +15 -0
  18. package/lib/api/video/post.js +30 -0
  19. package/lib/api/video/post.js.map +1 -0
  20. package/lib/components/accordion/Accordion.d.ts +21 -6
  21. package/lib/components/accordion/Accordion.js +78 -54
  22. package/lib/components/accordion/Accordion.js.map +1 -1
  23. package/lib/components/accordion/Accordion.styles.d.ts +11 -7
  24. package/lib/components/accordion/Accordion.styles.js +66 -53
  25. package/lib/components/accordion/Accordion.styles.js.map +1 -1
  26. package/lib/components/accordion/accordion-body/AccordionBody.d.ts +9 -1
  27. package/lib/components/accordion/accordion-body/AccordionBody.js +12 -20
  28. package/lib/components/accordion/accordion-body/AccordionBody.js.map +1 -1
  29. package/lib/components/accordion/accordion-body/AccordionBody.styles.d.ts +268 -3
  30. package/lib/components/accordion/accordion-body/AccordionBody.styles.js +6 -15
  31. package/lib/components/accordion/accordion-body/AccordionBody.styles.js.map +1 -1
  32. package/lib/components/accordion/accordion-content/AccordionContent.js +8 -16
  33. package/lib/components/accordion/accordion-content/AccordionContent.js.map +1 -1
  34. package/lib/components/accordion/accordion-content/AccordionContent.styles.d.ts +8 -6
  35. package/lib/components/accordion/accordion-content/AccordionContent.styles.js +7 -16
  36. package/lib/components/accordion/accordion-content/AccordionContent.styles.js.map +1 -1
  37. package/lib/components/accordion/accordion-group/AccordionGroup.d.ts +9 -2
  38. package/lib/components/accordion/accordion-group/AccordionGroup.js +15 -20
  39. package/lib/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
  40. package/lib/components/accordion/accordion-head/AccordionHead.d.ts +2 -0
  41. package/lib/components/accordion/accordion-head/AccordionHead.js +45 -40
  42. package/lib/components/accordion/accordion-head/AccordionHead.js.map +1 -1
  43. package/lib/components/accordion/accordion-head/AccordionHead.styles.d.ts +2424 -15
  44. package/lib/components/accordion/accordion-head/AccordionHead.styles.js +70 -61
  45. package/lib/components/accordion/accordion-head/AccordionHead.styles.js.map +1 -1
  46. package/lib/components/accordion/accordion-intro/AccordionIntro.js +4 -12
  47. package/lib/components/accordion/accordion-intro/AccordionIntro.js.map +1 -1
  48. package/lib/components/accordion/accordion-intro/AccordionIntro.styles.d.ts +2 -1
  49. package/lib/components/accordion/accordion-intro/AccordionIntro.styles.js +2 -10
  50. package/lib/components/accordion/accordion-intro/AccordionIntro.styles.js.map +1 -1
  51. package/lib/components/accordion/accordion-item/AccordionItem.d.ts +9 -0
  52. package/lib/components/accordion/accordion-item/AccordionItem.js +20 -0
  53. package/lib/components/accordion/accordion-item/AccordionItem.js.map +1 -0
  54. package/lib/components/accordion/accordion-item/AccordionItem.styles.d.ts +7 -0
  55. package/lib/components/accordion/accordion-item/AccordionItem.styles.js +26 -0
  56. package/lib/components/accordion/accordion-item/AccordionItem.styles.js.map +1 -0
  57. package/lib/components/amount-control/AmountControl.d.ts +22 -0
  58. package/lib/components/amount-control/AmountControl.js +178 -0
  59. package/lib/components/amount-control/AmountControl.js.map +1 -0
  60. package/lib/components/amount-control/AmountControl.styles.d.ts +288 -0
  61. package/lib/components/amount-control/AmountControl.styles.js +50 -0
  62. package/lib/components/amount-control/AmountControl.styles.js.map +1 -0
  63. package/lib/components/badge/Badge.d.ts +5 -1
  64. package/lib/components/badge/Badge.js +12 -17
  65. package/lib/components/badge/Badge.js.map +1 -1
  66. package/lib/components/badge/Badge.styles.d.ts +9 -4
  67. package/lib/components/badge/Badge.styles.js +12 -14
  68. package/lib/components/badge/Badge.styles.js.map +1 -1
  69. package/lib/components/button/Button.d.ts +5 -1
  70. package/lib/components/button/Button.js +71 -20
  71. package/lib/components/button/Button.js.map +1 -1
  72. package/lib/components/button/Button.styles.d.ts +813 -6
  73. package/lib/components/button/Button.styles.js +44 -26
  74. package/lib/components/button/Button.styles.js.map +1 -1
  75. package/lib/components/checkbox/Checkbox.d.ts +10 -2
  76. package/lib/components/checkbox/Checkbox.js +19 -22
  77. package/lib/components/checkbox/Checkbox.js.map +1 -1
  78. package/lib/components/checkbox/Checkbox.styles.d.ts +12 -5
  79. package/lib/components/checkbox/Checkbox.styles.js +70 -63
  80. package/lib/components/checkbox/Checkbox.styles.js.map +1 -1
  81. package/lib/components/color-scheme-provider/ColorSchemeProvider.d.ts +6 -0
  82. package/lib/components/color-scheme-provider/ColorSchemeProvider.js +75 -40
  83. package/lib/components/color-scheme-provider/ColorSchemeProvider.js.map +1 -1
  84. package/lib/components/combobox/ComboBox.d.ts +43 -0
  85. package/lib/components/combobox/ComboBox.js +183 -0
  86. package/lib/components/combobox/ComboBox.js.map +1 -0
  87. package/lib/components/combobox/ComboBox.styles.d.ts +291 -0
  88. package/lib/components/combobox/ComboBox.styles.js +198 -0
  89. package/lib/components/combobox/ComboBox.styles.js.map +1 -0
  90. package/lib/components/combobox/combobox-item/ComboBoxItem.d.ts +12 -0
  91. package/lib/components/combobox/combobox-item/ComboBoxItem.js +32 -0
  92. package/lib/components/combobox/combobox-item/ComboBoxItem.js.map +1 -0
  93. package/lib/components/combobox/combobox-item/ComboBoxItem.styles.d.ts +12 -0
  94. package/lib/components/combobox/combobox-item/ComboBoxItem.styles.js +54 -0
  95. package/lib/components/combobox/combobox-item/ComboBoxItem.styles.js.map +1 -0
  96. package/lib/components/content-card/ContentCard.d.ts +13 -0
  97. package/lib/components/content-card/ContentCard.js +14 -0
  98. package/lib/components/content-card/ContentCard.js.map +1 -0
  99. package/lib/components/content-card/ContentCard.styles.d.ts +2 -0
  100. package/lib/components/content-card/ContentCard.styles.js +32 -0
  101. package/lib/components/content-card/ContentCard.styles.js.map +1 -0
  102. package/lib/components/context-menu/ContextMenu.d.ts +3 -3
  103. package/lib/components/context-menu/ContextMenu.js +43 -53
  104. package/lib/components/context-menu/ContextMenu.js.map +1 -1
  105. package/lib/components/context-menu/ContextMenu.styles.d.ts +2 -1
  106. package/lib/components/context-menu/ContextMenu.styles.js +2 -10
  107. package/lib/components/context-menu/ContextMenu.styles.js.map +1 -1
  108. package/lib/components/context-menu/context-menu-content/ContextMenuContent.d.ts +1 -1
  109. package/lib/components/context-menu/context-menu-content/ContextMenuContent.js +17 -23
  110. package/lib/components/context-menu/context-menu-content/ContextMenuContent.js.map +1 -1
  111. package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.d.ts +275 -10
  112. package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.js +25 -38
  113. package/lib/components/context-menu/context-menu-content/ContextMenuContent.styles.js.map +1 -1
  114. package/lib/components/file-input/FileInput.d.ts +29 -0
  115. package/lib/components/file-input/FileInput.js +112 -0
  116. package/lib/components/file-input/FileInput.js.map +1 -0
  117. package/lib/components/file-input/FileInput.styles.d.ts +277 -0
  118. package/lib/components/file-input/FileInput.styles.js +39 -0
  119. package/lib/components/file-input/FileInput.styles.js.map +1 -0
  120. package/lib/components/file-input/file-list/FileListItem.d.ts +9 -0
  121. package/lib/components/file-input/file-list/FileListItem.js +27 -0
  122. package/lib/components/file-input/file-list/FileListItem.js.map +1 -0
  123. package/lib/components/file-input/file-list/FileListItem.styles.d.ts +2 -0
  124. package/lib/components/file-input/file-list/FileListItem.styles.js +3 -0
  125. package/lib/components/file-input/file-list/FileListItem.styles.js.map +1 -0
  126. package/lib/components/filter-buttons/FilterButtons.d.ts +22 -0
  127. package/lib/components/filter-buttons/FilterButtons.js +79 -0
  128. package/lib/components/filter-buttons/FilterButtons.js.map +1 -0
  129. package/lib/components/filter-buttons/FilterButtons.styles.d.ts +2 -0
  130. package/lib/components/filter-buttons/FilterButtons.styles.js +7 -0
  131. package/lib/components/filter-buttons/FilterButtons.styles.js.map +1 -0
  132. package/lib/components/filter-buttons/filter-button/FilterButton.d.ts +14 -0
  133. package/lib/components/filter-buttons/filter-button/FilterButton.js +38 -0
  134. package/lib/components/filter-buttons/filter-button/FilterButton.js.map +1 -0
  135. package/lib/components/filter-buttons/filter-button/FilterButton.styles.d.ts +287 -0
  136. package/lib/components/filter-buttons/filter-button/FilterButton.styles.js +98 -0
  137. package/lib/components/filter-buttons/filter-button/FilterButton.styles.js.map +1 -0
  138. package/lib/components/grid-image/GridImage.js +20 -29
  139. package/lib/components/grid-image/GridImage.js.map +1 -1
  140. package/lib/components/grid-image/GridImage.styles.d.ts +15 -14
  141. package/lib/components/grid-image/GridImage.styles.js +21 -32
  142. package/lib/components/grid-image/GridImage.styles.js.map +1 -1
  143. package/lib/components/icon/Icon.js +20 -25
  144. package/lib/components/icon/Icon.js.map +1 -1
  145. package/lib/components/icon/Icon.styles.d.ts +13 -12
  146. package/lib/components/icon/Icon.styles.js +23 -33
  147. package/lib/components/icon/Icon.styles.js.map +1 -1
  148. package/lib/components/input/Input.d.ts +42 -2
  149. package/lib/components/input/Input.js +96 -29
  150. package/lib/components/input/Input.js.map +1 -1
  151. package/lib/components/input/Input.styles.d.ts +559 -7
  152. package/lib/components/input/Input.styles.js +118 -41
  153. package/lib/components/input/Input.styles.js.map +1 -1
  154. package/lib/components/list/List.d.ts +6 -0
  155. package/lib/components/list/List.js +16 -23
  156. package/lib/components/list/List.js.map +1 -1
  157. package/lib/components/list/list-item/ListItem.d.ts +1 -1
  158. package/lib/components/list/list-item/ListItem.js +24 -30
  159. package/lib/components/list/list-item/ListItem.js.map +1 -1
  160. package/lib/components/list/list-item/ListItem.styles.d.ts +9 -6
  161. package/lib/components/list/list-item/ListItem.styles.js +30 -39
  162. package/lib/components/list/list-item/ListItem.styles.js.map +1 -1
  163. package/lib/components/list/list-item/list-item-body/ListItemBody.d.ts +6 -2
  164. package/lib/components/list/list-item/list-item-body/ListItemBody.js +28 -15
  165. package/lib/components/list/list-item/list-item-body/ListItemBody.js.map +1 -1
  166. package/lib/components/list/list-item/list-item-body/ListItemBody.styles.d.ts +267 -1
  167. package/lib/components/list/list-item/list-item-body/ListItemBody.styles.js +3 -11
  168. package/lib/components/list/list-item/list-item-body/ListItemBody.styles.js.map +1 -1
  169. package/lib/components/list/list-item/list-item-content/ListItemContent.d.ts +8 -2
  170. package/lib/components/list/list-item/list-item-content/ListItemContent.js +4 -12
  171. package/lib/components/list/list-item/list-item-content/ListItemContent.js.map +1 -1
  172. package/lib/components/list/list-item/list-item-content/ListItemContent.styles.d.ts +2 -1
  173. package/lib/components/list/list-item/list-item-content/ListItemContent.styles.js +2 -10
  174. package/lib/components/list/list-item/list-item-content/ListItemContent.styles.js.map +1 -1
  175. package/lib/components/list/list-item/list-item-head/ListItemHead.js +25 -35
  176. package/lib/components/list/list-item/list-item-head/ListItemHead.js.map +1 -1
  177. package/lib/components/list/list-item/list-item-head/ListItemHead.styles.d.ts +546 -16
  178. package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js +19 -38
  179. package/lib/components/list/list-item/list-item-head/ListItemHead.styles.js.map +1 -1
  180. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js +5 -13
  181. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.js.map +1 -1
  182. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.d.ts +2 -1
  183. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js +2 -10
  184. package/lib/components/list/list-item/list-item-head/list-item-icon/ListItemIcon.styles.js.map +1 -1
  185. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js +11 -21
  186. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.js.map +1 -1
  187. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.d.ts +8 -7
  188. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js +7 -16
  189. package/lib/components/list/list-item/list-item-head/list-item-image/ListItemImage.styles.js.map +1 -1
  190. package/lib/components/mention-finder/MentionFinder.d.ts +31 -0
  191. package/lib/components/mention-finder/MentionFinder.js +130 -0
  192. package/lib/components/mention-finder/MentionFinder.js.map +1 -0
  193. package/lib/components/mention-finder/MentionFinder.styles.d.ts +272 -0
  194. package/lib/components/mention-finder/MentionFinder.styles.js +84 -0
  195. package/lib/components/mention-finder/MentionFinder.styles.js.map +1 -0
  196. package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.d.ts +10 -0
  197. package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.js +23 -0
  198. package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.js.map +1 -0
  199. package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.styles.d.ts +11 -0
  200. package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js +83 -0
  201. package/lib/components/mention-finder/mention-finder-item/MentionFinderItem.styles.js.map +1 -0
  202. package/lib/components/number-input/NumberInput.d.ts +54 -0
  203. package/lib/components/number-input/NumberInput.js +133 -0
  204. package/lib/components/number-input/NumberInput.js.map +1 -0
  205. package/lib/components/popup/Popup.d.ts +30 -0
  206. package/lib/components/popup/Popup.js +150 -0
  207. package/lib/components/popup/Popup.js.map +1 -0
  208. package/lib/components/popup/Popup.styles.d.ts +5 -0
  209. package/lib/components/popup/Popup.styles.js +21 -0
  210. package/lib/components/popup/Popup.styles.js.map +1 -0
  211. package/lib/components/popup/popup-content/PopupContent.d.ts +10 -0
  212. package/lib/components/popup/popup-content/PopupContent.js +64 -0
  213. package/lib/components/popup/popup-content/PopupContent.js.map +1 -0
  214. package/lib/components/popup/popup-content/PopupContent.styles.d.ts +274 -0
  215. package/lib/components/popup/popup-content/PopupContent.styles.js +84 -0
  216. package/lib/components/popup/popup-content/PopupContent.styles.js.map +1 -0
  217. package/lib/components/progress-bar/ProgressBar.d.ts +13 -0
  218. package/lib/components/progress-bar/ProgressBar.js +31 -0
  219. package/lib/components/progress-bar/ProgressBar.js.map +1 -0
  220. package/lib/components/progress-bar/ProgressBar.styles.d.ts +272 -0
  221. package/lib/components/progress-bar/ProgressBar.styles.js +30 -0
  222. package/lib/components/progress-bar/ProgressBar.styles.js.map +1 -0
  223. package/lib/components/radio-button/RadioButton.d.ts +30 -0
  224. package/lib/components/radio-button/RadioButton.js +92 -0
  225. package/lib/components/radio-button/RadioButton.js.map +1 -0
  226. package/lib/components/radio-button/RadioButton.styles.d.ts +287 -0
  227. package/lib/components/radio-button/RadioButton.styles.js +105 -0
  228. package/lib/components/radio-button/RadioButton.styles.js.map +1 -0
  229. package/lib/components/radio-button/radio-button-group/RadioButtonGroup.d.ts +17 -0
  230. package/lib/components/radio-button/radio-button-group/RadioButtonGroup.js +38 -0
  231. package/lib/components/radio-button/radio-button-group/RadioButtonGroup.js.map +1 -0
  232. package/lib/components/scroll-view/ScrollView.d.ts +13 -0
  233. package/lib/components/scroll-view/ScrollView.js +19 -0
  234. package/lib/components/scroll-view/ScrollView.js.map +1 -0
  235. package/lib/components/scroll-view/ScrollView.styles.d.ts +9 -0
  236. package/lib/components/scroll-view/ScrollView.styles.js +41 -0
  237. package/lib/components/scroll-view/ScrollView.styles.js.map +1 -0
  238. package/lib/components/search-box/SearchBox.d.ts +41 -0
  239. package/lib/components/search-box/SearchBox.js +267 -0
  240. package/lib/components/search-box/SearchBox.js.map +1 -0
  241. package/lib/components/search-box/SearchBox.styles.d.ts +274 -0
  242. package/lib/components/search-box/SearchBox.styles.js +71 -0
  243. package/lib/components/search-box/SearchBox.styles.js.map +1 -0
  244. package/lib/components/search-box/search-box-item/SearchBoxItem.d.ts +11 -0
  245. package/lib/components/search-box/search-box-item/SearchBoxItem.js +27 -0
  246. package/lib/components/search-box/search-box-item/SearchBoxItem.js.map +1 -0
  247. package/lib/components/search-box/search-box-item/SearchBoxItem.styles.d.ts +13 -0
  248. package/lib/components/search-box/search-box-item/SearchBoxItem.styles.js +55 -0
  249. package/lib/components/search-box/search-box-item/SearchBoxItem.styles.js.map +1 -0
  250. package/lib/components/search-input/SearchInput.d.ts +33 -0
  251. package/lib/components/search-input/SearchInput.js +93 -0
  252. package/lib/components/search-input/SearchInput.js.map +1 -0
  253. package/lib/components/search-input/SearchInput.styles.d.ts +534 -0
  254. package/lib/components/search-input/SearchInput.styles.js +19 -0
  255. package/lib/components/search-input/SearchInput.styles.js.map +1 -0
  256. package/lib/components/select-button/SelectButton.d.ts +34 -0
  257. package/lib/components/select-button/SelectButton.js +56 -0
  258. package/lib/components/select-button/SelectButton.js.map +1 -0
  259. package/lib/components/select-button/SelectButton.styles.d.ts +2 -0
  260. package/lib/components/select-button/SelectButton.styles.js +3 -0
  261. package/lib/components/select-button/SelectButton.styles.js.map +1 -0
  262. package/lib/components/setup-wizard/SetupWizard.d.ts +27 -0
  263. package/lib/components/setup-wizard/SetupWizard.js +73 -0
  264. package/lib/components/setup-wizard/SetupWizard.js.map +1 -0
  265. package/lib/components/setup-wizard/SetupWizard.styles.d.ts +2 -0
  266. package/lib/components/setup-wizard/SetupWizard.styles.js +3 -0
  267. package/lib/components/setup-wizard/SetupWizard.styles.js.map +1 -0
  268. package/lib/components/setup-wizard/setup-wizard-item/SetupWizardItem.d.ts +21 -0
  269. package/lib/components/setup-wizard/setup-wizard-item/SetupWizardItem.js +49 -0
  270. package/lib/components/setup-wizard/setup-wizard-item/SetupWizardItem.js.map +1 -0
  271. package/lib/components/setup-wizard/setup-wizard-item/SetupWizardItem.styles.d.ts +3 -0
  272. package/lib/components/setup-wizard/setup-wizard-item/SetupWizardItem.styles.js +7 -0
  273. package/lib/components/setup-wizard/setup-wizard-item/SetupWizardItem.styles.js.map +1 -0
  274. package/lib/components/sharing-bar/SharingBar.d.ts +18 -0
  275. package/lib/components/sharing-bar/SharingBar.js +101 -0
  276. package/lib/components/sharing-bar/SharingBar.js.map +1 -0
  277. package/lib/components/sharing-bar/SharingBar.styles.d.ts +6 -0
  278. package/lib/components/sharing-bar/SharingBar.styles.js +17 -0
  279. package/lib/components/sharing-bar/SharingBar.styles.js.map +1 -0
  280. package/lib/components/signature/Signature.d.ts +33 -0
  281. package/lib/components/signature/Signature.js +95 -0
  282. package/lib/components/signature/Signature.js.map +1 -0
  283. package/lib/components/signature/Signature.styles.d.ts +5 -0
  284. package/lib/components/signature/Signature.styles.js +14 -0
  285. package/lib/components/signature/Signature.styles.js.map +1 -0
  286. package/lib/components/slider/Slider.d.ts +45 -0
  287. package/lib/components/slider/Slider.js +181 -0
  288. package/lib/components/slider/Slider.js.map +1 -0
  289. package/lib/components/slider/Slider.styles.d.ts +16 -0
  290. package/lib/components/slider/Slider.styles.js +98 -0
  291. package/lib/components/slider/Slider.styles.js.map +1 -0
  292. package/lib/components/slider-button/SliderButton.d.ts +23 -0
  293. package/lib/components/slider-button/SliderButton.js +148 -0
  294. package/lib/components/slider-button/SliderButton.js.map +1 -0
  295. package/lib/components/slider-button/SliderButton.styles.d.ts +279 -0
  296. package/lib/components/slider-button/SliderButton.styles.js +62 -0
  297. package/lib/components/slider-button/SliderButton.styles.js.map +1 -0
  298. package/lib/components/small-wait-cursor/SmallWaitCursor.d.ts +31 -0
  299. package/lib/components/small-wait-cursor/SmallWaitCursor.js +36 -0
  300. package/lib/components/small-wait-cursor/SmallWaitCursor.js.map +1 -0
  301. package/lib/components/small-wait-cursor/SmallWaitCursor.styles.d.ts +19 -0
  302. package/lib/components/small-wait-cursor/SmallWaitCursor.styles.js +93 -0
  303. package/lib/components/small-wait-cursor/SmallWaitCursor.styles.js.map +1 -0
  304. package/lib/components/tag-input/TagInput.d.ts +22 -0
  305. package/lib/components/tag-input/TagInput.js +79 -0
  306. package/lib/components/tag-input/TagInput.js.map +1 -0
  307. package/lib/components/tag-input/TagInput.styles.d.ts +9 -0
  308. package/lib/components/tag-input/TagInput.styles.js +41 -0
  309. package/lib/components/tag-input/TagInput.styles.js.map +1 -0
  310. package/lib/components/text-area/TextArea.d.ts +29 -0
  311. package/lib/components/text-area/TextArea.js +49 -0
  312. package/lib/components/text-area/TextArea.js.map +1 -0
  313. package/lib/components/text-area/TextArea.styles.d.ts +16 -0
  314. package/lib/components/text-area/TextArea.styles.js +101 -0
  315. package/lib/components/text-area/TextArea.styles.js.map +1 -0
  316. package/lib/components/tooltip/Tooltip.d.ts +22 -0
  317. package/lib/components/tooltip/Tooltip.js +33 -0
  318. package/lib/components/tooltip/Tooltip.js.map +1 -0
  319. package/lib/components/tooltip/Tooltip.styles.d.ts +2 -0
  320. package/lib/components/tooltip/Tooltip.styles.js +3 -0
  321. package/lib/components/tooltip/Tooltip.styles.js.map +1 -0
  322. package/lib/components/tooltip/tooltip-item/TooltipItem.d.ts +13 -0
  323. package/lib/components/tooltip/tooltip-item/TooltipItem.js +22 -0
  324. package/lib/components/tooltip/tooltip-item/TooltipItem.js.map +1 -0
  325. package/lib/components/tooltip/tooltip-item/TooltipItem.styles.d.ts +15 -0
  326. package/lib/components/tooltip/tooltip-item/TooltipItem.styles.js +36 -0
  327. package/lib/components/tooltip/tooltip-item/TooltipItem.styles.js.map +1 -0
  328. package/lib/components/truncation/Truncation.d.ts +34 -0
  329. package/lib/components/truncation/Truncation.js +132 -0
  330. package/lib/components/truncation/Truncation.js.map +1 -0
  331. package/lib/components/truncation/Truncation.styles.d.ts +277 -0
  332. package/lib/components/truncation/Truncation.styles.js +44 -0
  333. package/lib/components/truncation/Truncation.styles.js.map +1 -0
  334. package/lib/constants/mentionFinder.d.ts +4 -0
  335. package/lib/constants/mentionFinder.js +6 -0
  336. package/lib/constants/mentionFinder.js.map +1 -0
  337. package/lib/constants/numberInput.d.ts +5 -0
  338. package/lib/constants/numberInput.js +6 -0
  339. package/lib/constants/numberInput.js.map +1 -0
  340. package/lib/constants/signature.d.ts +1 -0
  341. package/lib/constants/signature.js +2 -0
  342. package/lib/constants/signature.js.map +1 -0
  343. package/lib/hooks/useElementSize.d.ts +2 -0
  344. package/lib/hooks/useElementSize.js +9 -0
  345. package/lib/hooks/useElementSize.js.map +1 -0
  346. package/lib/hooks/uuid.js +4 -11
  347. package/lib/hooks/uuid.js.map +1 -1
  348. package/lib/index.d.ts +44 -1
  349. package/lib/index.js +49 -111
  350. package/lib/index.js.map +1 -1
  351. package/lib/types/chayns.d.ts +67 -1
  352. package/lib/types/chayns.js +3 -10
  353. package/lib/types/chayns.js.map +1 -1
  354. package/lib/types/colorSchemeProvider.d.ts +15 -0
  355. package/lib/types/colorSchemeProvider.js +9 -0
  356. package/lib/types/colorSchemeProvider.js.map +1 -0
  357. package/lib/types/comboBox.d.ts +4 -0
  358. package/lib/types/comboBox.js +6 -0
  359. package/lib/types/comboBox.js.map +1 -0
  360. package/lib/{components/context-menu/constants/alignment.js → types/contextMenu.js} +4 -11
  361. package/lib/types/contextMenu.js.map +1 -0
  362. package/lib/types/file.d.ts +46 -0
  363. package/lib/types/file.js +2 -0
  364. package/lib/types/file.js.map +1 -0
  365. package/lib/types/filterButtons.d.ts +15 -0
  366. package/lib/types/filterButtons.js +11 -0
  367. package/lib/types/filterButtons.js.map +1 -0
  368. package/lib/types/popup.d.ts +16 -0
  369. package/lib/types/popup.js +10 -0
  370. package/lib/types/popup.js.map +1 -0
  371. package/lib/types/radioButton.d.ts +4 -0
  372. package/lib/types/radioButton.js +2 -0
  373. package/lib/types/radioButton.js.map +1 -0
  374. package/lib/types/searchBox.d.ts +5 -0
  375. package/lib/types/searchBox.js +2 -0
  376. package/lib/types/searchBox.js.map +1 -0
  377. package/lib/types/selectButton.d.ts +4 -0
  378. package/lib/types/selectButton.js +2 -0
  379. package/lib/types/selectButton.js.map +1 -0
  380. package/lib/types/signature.d.ts +10 -0
  381. package/lib/types/signature.js +2 -0
  382. package/lib/types/signature.js.map +1 -0
  383. package/lib/types/slider-button.d.ts +4 -0
  384. package/lib/types/slider-button.js +2 -0
  385. package/lib/types/slider-button.js.map +1 -0
  386. package/lib/types/tagInput.d.ts +4 -0
  387. package/lib/types/tagInput.js +2 -0
  388. package/lib/types/tagInput.js.map +1 -0
  389. package/lib/types/tooltip.d.ts +9 -0
  390. package/lib/types/tooltip.js +2 -0
  391. package/lib/types/tooltip.js.map +1 -0
  392. package/lib/types/truncation.d.ts +5 -0
  393. package/lib/types/truncation.js +7 -0
  394. package/lib/types/truncation.js.map +1 -0
  395. package/lib/{components/accordion/utils.js → utils/accordion.js} +2 -9
  396. package/lib/utils/accordion.js.map +1 -0
  397. package/lib/utils/amountControl.d.ts +7 -0
  398. package/lib/utils/amountControl.js +15 -0
  399. package/lib/utils/amountControl.js.map +1 -0
  400. package/lib/utils/calculate.d.ts +5 -0
  401. package/lib/utils/calculate.js +63 -0
  402. package/lib/utils/calculate.js.map +1 -0
  403. package/lib/utils/file.d.ts +363 -0
  404. package/lib/utils/file.js +393 -0
  405. package/lib/utils/file.js.map +1 -0
  406. package/lib/utils/fileDialog.d.ts +7 -0
  407. package/lib/utils/fileDialog.js +65 -0
  408. package/lib/utils/fileDialog.js.map +1 -0
  409. package/lib/utils/font.d.ts +8 -0
  410. package/lib/utils/font.js +67 -0
  411. package/lib/utils/font.js.map +1 -0
  412. package/lib/utils/icon.js +5 -0
  413. package/lib/utils/icon.js.map +1 -0
  414. package/lib/utils/isTobitEmployee.d.ts +1 -0
  415. package/lib/utils/isTobitEmployee.js +21 -0
  416. package/lib/utils/isTobitEmployee.js.map +1 -0
  417. package/lib/utils/numberInput.d.ts +23 -0
  418. package/lib/utils/numberInput.js +83 -0
  419. package/lib/utils/numberInput.js.map +1 -0
  420. package/lib/utils/searchBox.d.ts +7 -0
  421. package/lib/utils/searchBox.js +16 -0
  422. package/lib/utils/searchBox.js.map +1 -0
  423. package/lib/utils/slider.d.ts +7 -0
  424. package/lib/utils/slider.js +28 -0
  425. package/lib/utils/slider.js.map +1 -0
  426. package/lib/utils/sliderButton.d.ts +15 -0
  427. package/lib/utils/sliderButton.js +45 -0
  428. package/lib/utils/sliderButton.js.map +1 -0
  429. package/lib/utils/truncation.d.ts +1 -0
  430. package/lib/utils/truncation.js +27 -0
  431. package/lib/utils/truncation.js.map +1 -0
  432. package/lib/utils/uploadFile.d.ts +7 -0
  433. package/lib/utils/uploadFile.js +35 -0
  434. package/lib/utils/uploadFile.js.map +1 -0
  435. package/package.json +32 -21
  436. package/lib/components/accordion/utils.js.map +0 -1
  437. package/lib/components/context-menu/constants/alignment.js.map +0 -1
  438. package/lib/components/icon/utils.js +0 -13
  439. package/lib/components/icon/utils.js.map +0 -1
  440. /package/lib/{components/context-menu/constants/alignment.d.ts → types/contextMenu.d.ts} +0 -0
  441. /package/lib/{components/accordion/utils.d.ts → utils/accordion.d.ts} +0 -0
  442. /package/lib/{components/icon/utils.d.ts → utils/icon.d.ts} +0 -0
@@ -0,0 +1,133 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import Input from '../input/Input';
3
+ import { NUMBER_CLEAR_REGEX } from '../../constants/numberInput';
4
+ import { formateNumber, isValidString, parseFloatWithDecimals } from '../../utils/numberInput';
5
+ const NumberInput = _ref => {
6
+ let {
7
+ isDecimalInput,
8
+ isMoneyInput,
9
+ isTimeInput,
10
+ maxNumber = Infinity,
11
+ value,
12
+ placeholder,
13
+ onBlur,
14
+ isDisabled,
15
+ onChange,
16
+ shouldShowOnlyBottomBorder,
17
+ minNumber = -Infinity
18
+ } = _ref;
19
+ // the plainText will be shown in the input, when it is in focus
20
+ const [plainText, setPlainText] = useState('');
21
+ // the formattedValue will be shown in the input, when it is not in focus
22
+ const [formattedValue, setFormattedValue] = useState('');
23
+ const [hasFocus, setHasFocus] = useState(false);
24
+ const [isValueInvalid, setIsValueInvalid] = useState(false);
25
+ const localPlaceholder = placeholder ?? (isMoneyInput ? '€' : undefined);
26
+ const onLocalChange = event => {
27
+ const newValue = event.target.value;
28
+ if (newValue.replaceAll(':', '').length > 4) {
29
+ return;
30
+ }
31
+ const sanitizedValueString = newValue
32
+ // Removes everything except numbers, commas and points
33
+ .replace(NUMBER_CLEAR_REGEX, '');
34
+ const valueToCheck = sanitizedValueString.replaceAll(',', '.');
35
+ if (!isValidString({
36
+ string: valueToCheck,
37
+ isMoneyInput,
38
+ isDecimalInput,
39
+ isTimeInput
40
+ })) {
41
+ return;
42
+ }
43
+ setPlainText(sanitizedValueString.replaceAll('.', ','));
44
+ if (typeof onChange === 'function') {
45
+ onChange(sanitizedValueString.replaceAll('.', ','));
46
+ }
47
+ };
48
+ const onLocalBlur = () => {
49
+ const sanitizedValue = plainText.length === 0 ? '0' : plainText;
50
+ let isInvalid = false;
51
+ let parsedNumber = null;
52
+ if (!isTimeInput) {
53
+ parsedNumber = parseFloatWithDecimals({
54
+ stringValue: sanitizedValue.replace(',', '.').replaceAll(':', ''),
55
+ decimals: isMoneyInput ? 2 : undefined
56
+ });
57
+ if (parsedNumber !== 0 && (parsedNumber > maxNumber || parsedNumber < minNumber)) {
58
+ isInvalid = true;
59
+ }
60
+ setIsValueInvalid(isInvalid);
61
+ }
62
+ const newStringValue = plainText.length === 0 ? '' : formateNumber({
63
+ number: isTimeInput ? sanitizedValue : parsedNumber,
64
+ isMoneyInput,
65
+ isTimeInput
66
+ });
67
+ setFormattedValue(newStringValue);
68
+ setPlainText(newStringValue.replaceAll('.', ''));
69
+ setHasFocus(false);
70
+ if (typeof onChange === 'function') {
71
+ onChange(newStringValue.replaceAll('.', ''));
72
+ }
73
+ if (typeof onBlur === 'function') {
74
+ if (isTimeInput) {
75
+ onBlur(newStringValue, isInvalid);
76
+ } else {
77
+ onBlur(parsedNumber === 0 ? null : parsedNumber, isInvalid);
78
+ }
79
+ }
80
+ };
81
+ const onLocalFocus = () => {
82
+ // formattedValue will be a number string with german number format (e.g. 1.000,00)
83
+ // It will remove all dots, so that the user can type in the number
84
+ setPlainText(formattedValue.replaceAll('.', ''));
85
+
86
+ // This will update the external state
87
+ if (typeof onChange === 'function') {
88
+ onChange(formattedValue.replaceAll('.', ''));
89
+ }
90
+ setIsValueInvalid(false);
91
+ setHasFocus(true);
92
+ };
93
+
94
+ // updates the formattedValue, when the value changes
95
+ useEffect(() => {
96
+ let parsedNumber = null;
97
+ if (!isTimeInput) {
98
+ parsedNumber = parseFloatWithDecimals({
99
+ stringValue: plainText.replace(',', '.').replaceAll(':', ''),
100
+ decimals: isMoneyInput ? 2 : undefined
101
+ });
102
+
103
+ // checks, if a given number is invalid, if the input is not in focus
104
+ if (!hasFocus) {
105
+ setIsValueInvalid(parsedNumber > maxNumber || parsedNumber < minNumber);
106
+ }
107
+ }
108
+ setFormattedValue(plainText.length === 0 ? '' : formateNumber({
109
+ number: isTimeInput ? plainText : parsedNumber,
110
+ isMoneyInput,
111
+ isTimeInput
112
+ }));
113
+ }, [hasFocus, isMoneyInput, isTimeInput, maxNumber, minNumber, plainText]);
114
+ useEffect(() => {
115
+ if (typeof value === 'string') {
116
+ setPlainText(value);
117
+ }
118
+ }, [value]);
119
+ return /*#__PURE__*/React.createElement(Input, {
120
+ shouldShowOnlyBottomBorder: shouldShowOnlyBottomBorder,
121
+ inputMode: "decimal",
122
+ onChange: onLocalChange,
123
+ value: hasFocus ? plainText : formattedValue,
124
+ placeholder: localPlaceholder,
125
+ onBlur: onLocalBlur,
126
+ onFocus: onLocalFocus,
127
+ isDisabled: isDisabled,
128
+ isInvalid: isValueInvalid
129
+ });
130
+ };
131
+ NumberInput.displayName = 'NumberInput';
132
+ export default NumberInput;
133
+ //# sourceMappingURL=NumberInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberInput.js","names":["React","useEffect","useState","Input","NUMBER_CLEAR_REGEX","formateNumber","isValidString","parseFloatWithDecimals","NumberInput","_ref","isDecimalInput","isMoneyInput","isTimeInput","maxNumber","Infinity","value","placeholder","onBlur","isDisabled","onChange","shouldShowOnlyBottomBorder","minNumber","plainText","setPlainText","formattedValue","setFormattedValue","hasFocus","setHasFocus","isValueInvalid","setIsValueInvalid","localPlaceholder","undefined","onLocalChange","event","newValue","target","replaceAll","length","sanitizedValueString","replace","valueToCheck","string","onLocalBlur","sanitizedValue","isInvalid","parsedNumber","stringValue","decimals","newStringValue","number","onLocalFocus","createElement","inputMode","onFocus","displayName"],"sources":["../../../src/components/number-input/NumberInput.tsx"],"sourcesContent":["import React, { ChangeEventHandler, FC, useEffect, useState } from 'react';\nimport Input from '../input/Input';\nimport { NUMBER_CLEAR_REGEX } from '../../constants/numberInput';\nimport { formateNumber, isValidString, parseFloatWithDecimals } from '../../utils/numberInput';\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 * 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 * 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 maxNumber = Infinity,\n value,\n placeholder,\n onBlur,\n isDisabled,\n onChange,\n shouldShowOnlyBottomBorder,\n minNumber = -Infinity,\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\n const [isValueInvalid, setIsValueInvalid] = useState(false);\n const localPlaceholder = placeholder ?? (isMoneyInput ? '€' : undefined);\n\n const onLocalChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n const newValue = event.target.value;\n\n if (newValue.replaceAll(':', '').length > 4) {\n return;\n }\n\n const sanitizedValueString = newValue\n // Removes everything except numbers, commas and points\n .replace(NUMBER_CLEAR_REGEX, '');\n\n const valueToCheck = sanitizedValueString.replaceAll(',', '.');\n\n if (!isValidString({ string: valueToCheck, isMoneyInput, isDecimalInput, isTimeInput })) {\n return;\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.length === 0 ? '0' : plainText;\n let isInvalid = false;\n let parsedNumber = null;\n\n if (!isTimeInput) {\n parsedNumber = parseFloatWithDecimals({\n stringValue: sanitizedValue.replace(',', '.').replaceAll(':', ''),\n decimals: isMoneyInput ? 2 : undefined,\n });\n\n if (parsedNumber !== 0 && (parsedNumber > maxNumber || parsedNumber < minNumber)) {\n isInvalid = true;\n }\n\n setIsValueInvalid(isInvalid);\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);\n setPlainText(newStringValue.replaceAll('.', ''));\n setHasFocus(false);\n\n if (typeof onChange === 'function') {\n onChange(newStringValue.replaceAll('.', ''));\n }\n\n if (typeof onBlur === 'function') {\n if (isTimeInput) {\n onBlur(newStringValue, isInvalid);\n } else {\n onBlur(parsedNumber === 0 ? null : parsedNumber, isInvalid);\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('.', ''));\n\n // This will update the external state\n if (typeof onChange === 'function') {\n onChange(formattedValue.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.replace(',', '.').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 setIsValueInvalid(parsedNumber > maxNumber || parsedNumber < minNumber);\n }\n }\n\n setFormattedValue(\n plainText.length === 0\n ? ''\n : formateNumber({\n number: isTimeInput ? plainText : parsedNumber,\n isMoneyInput,\n isTimeInput,\n }),\n );\n }, [hasFocus, isMoneyInput, isTimeInput, maxNumber, minNumber, plainText]);\n\n useEffect(() => {\n if (typeof value === 'string') {\n setPlainText(value);\n }\n }, [value]);\n\n return (\n <Input\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={isValueInvalid}\n />\n );\n};\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { PopupRef } from '../../types/popup';
3
+ export type PopupProps = {
4
+ /**
5
+ * The element over which the content of the `ContextMenu` should be displayed.
6
+ */
7
+ children?: ReactNode;
8
+ /**
9
+ * The content that should be displayed inside the popup.
10
+ */
11
+ content: ReactNode;
12
+ /**
13
+ * Function to be executed when the content of the Context menu has been hidden.
14
+ */
15
+ onHide?: VoidFunction;
16
+ /**
17
+ * Function to be executed when the content of the Context menu has been shown.
18
+ */
19
+ onShow?: VoidFunction;
20
+ /**
21
+ * Whether the popup should be opened on hover. If not, the popup will be opened on click.
22
+ */
23
+ shouldShowOnHover?: boolean;
24
+ /**
25
+ * The Y offset of the popup to the children.
26
+ */
27
+ yOffset?: number;
28
+ };
29
+ declare const Popup: React.ForwardRefExoticComponent<PopupProps & React.RefAttributes<PopupRef>>;
30
+ export default Popup;
@@ -0,0 +1,150 @@
1
+ import { getWindowMetrics } from 'chayns-api';
2
+ import { AnimatePresence } from 'framer-motion';
3
+ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import { useUuid } from '../../hooks/uuid';
6
+ import { PopupAlignment } from '../../types/popup';
7
+ import PopupContent from './popup-content/PopupContent';
8
+ import { StyledPopup, StyledPopupPseudo } from './Popup.styles';
9
+ const Popup = /*#__PURE__*/forwardRef((_ref, ref) => {
10
+ let {
11
+ content,
12
+ onShow,
13
+ onHide,
14
+ children,
15
+ shouldShowOnHover = false,
16
+ yOffset = 0
17
+ } = _ref;
18
+ const [coordinates, setCoordinates] = useState({
19
+ x: 0,
20
+ y: 0
21
+ });
22
+ const container = document.querySelector('.tapp') || document.body;
23
+ const [alignment, setAlignment] = useState(PopupAlignment.TopLeft);
24
+ const [isOpen, setIsOpen] = useState(false);
25
+ const [portal, setPortal] = useState();
26
+ const [menuHeight, setMenuHeight] = useState(0);
27
+ const uuid = useUuid();
28
+
29
+ // ToDo: Replace with hook if new chayns api is ready
30
+ const popupContentRef = useRef(null);
31
+ const popupPseudoContentRef = useRef(null);
32
+ const popupRef = useRef(null);
33
+ const handleShow = useCallback(() => {
34
+ if (popupRef.current && popupPseudoContentRef.current) {
35
+ const {
36
+ height: pseudoHeight,
37
+ width: pseudoWidth
38
+ } = popupPseudoContentRef.current.getBoundingClientRect();
39
+ const {
40
+ height: childrenHeight,
41
+ left: childrenLeft,
42
+ top: childrenTop,
43
+ width: childrenWidth
44
+ } = popupRef.current.getBoundingClientRect();
45
+ if (pseudoHeight > childrenTop - 25) {
46
+ if (pseudoWidth > childrenLeft + childrenWidth / 2 - 25) {
47
+ setAlignment(PopupAlignment.BottomRight);
48
+ } else {
49
+ setAlignment(PopupAlignment.BottomLeft);
50
+ }
51
+ setCoordinates({
52
+ x: childrenLeft + childrenWidth / 2,
53
+ y: childrenTop + childrenHeight + yOffset
54
+ });
55
+ } else {
56
+ if (pseudoWidth > childrenLeft + childrenWidth / 2 - 25) {
57
+ setAlignment(PopupAlignment.TopRight);
58
+ } else {
59
+ setAlignment(PopupAlignment.TopLeft);
60
+ }
61
+ setCoordinates({
62
+ x: childrenLeft + childrenWidth / 2,
63
+ y: childrenTop - yOffset
64
+ });
65
+ }
66
+ setIsOpen(true);
67
+ }
68
+ }, [yOffset]);
69
+ const handleChildrenClick = () => {
70
+ if (!shouldShowOnHover) {
71
+ handleShow();
72
+ }
73
+ };
74
+ const handleHide = useCallback(() => {
75
+ setIsOpen(false);
76
+ }, []);
77
+ const handleMouseEnter = () => {
78
+ if (shouldShowOnHover) {
79
+ handleShow();
80
+ }
81
+ };
82
+ const handleMouseLeave = useCallback(event => {
83
+ if (shouldShowOnHover) {
84
+ if (event.currentTarget.dataset.ispopup === 'true') {
85
+ handleHide();
86
+ }
87
+ if (event.relatedTarget && (event.relatedTarget === popupContentRef.current || popupContentRef.current?.contains(event.relatedTarget))) {
88
+ return;
89
+ }
90
+ handleHide();
91
+ }
92
+ }, [handleHide, shouldShowOnHover]);
93
+ const handleDocumentClick = useCallback(event => {
94
+ if (!popupContentRef.current?.contains(event.target) && !shouldShowOnHover) {
95
+ event.preventDefault();
96
+ event.stopPropagation();
97
+ handleHide();
98
+ }
99
+ }, [handleHide, shouldShowOnHover]);
100
+ useImperativeHandle(ref, () => ({
101
+ hide: handleHide,
102
+ show: handleShow
103
+ }), [handleHide, handleShow]);
104
+ useEffect(() => {
105
+ void getWindowMetrics().then(result => {
106
+ if (result.topBarHeight) {
107
+ setMenuHeight(result.topBarHeight);
108
+ }
109
+ });
110
+ }, []);
111
+ useEffect(() => {
112
+ if (isOpen) {
113
+ document.addEventListener('click', handleDocumentClick, true);
114
+ window.addEventListener('blur', handleHide);
115
+ if (typeof onShow === 'function') {
116
+ onShow();
117
+ }
118
+ } else if (typeof onHide === 'function') {
119
+ onHide();
120
+ }
121
+ return () => {
122
+ document.removeEventListener('click', handleDocumentClick, true);
123
+ window.removeEventListener('blur', handleHide);
124
+ };
125
+ }, [handleDocumentClick, handleHide, isOpen, onHide, onShow]);
126
+ useEffect(() => {
127
+ setPortal(() => /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(AnimatePresence, {
128
+ initial: false
129
+ }, isOpen && /*#__PURE__*/React.createElement(PopupContent, {
130
+ coordinates: coordinates,
131
+ content: content,
132
+ key: `tooltip_${uuid}`,
133
+ alignment: alignment,
134
+ ref: popupContentRef,
135
+ onMouseLeave: handleMouseLeave
136
+ })), container));
137
+ }, [alignment, container, content, coordinates, handleMouseLeave, isOpen, uuid]);
138
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledPopupPseudo, {
139
+ ref: popupPseudoContentRef,
140
+ $menuHeight: menuHeight
141
+ }, content), /*#__PURE__*/React.createElement(StyledPopup, {
142
+ ref: popupRef,
143
+ onClick: handleChildrenClick,
144
+ onMouseLeave: handleMouseLeave,
145
+ onMouseEnter: handleMouseEnter
146
+ }, children), portal);
147
+ });
148
+ Popup.displayName = 'Popup';
149
+ export default Popup;
150
+ //# sourceMappingURL=Popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.js","names":["getWindowMetrics","AnimatePresence","React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","createPortal","useUuid","PopupAlignment","PopupContent","StyledPopup","StyledPopupPseudo","Popup","_ref","ref","content","onShow","onHide","children","shouldShowOnHover","yOffset","coordinates","setCoordinates","x","y","container","document","querySelector","body","alignment","setAlignment","TopLeft","isOpen","setIsOpen","portal","setPortal","menuHeight","setMenuHeight","uuid","popupContentRef","popupPseudoContentRef","popupRef","handleShow","current","height","pseudoHeight","width","pseudoWidth","getBoundingClientRect","childrenHeight","left","childrenLeft","top","childrenTop","childrenWidth","BottomRight","BottomLeft","TopRight","handleChildrenClick","handleHide","handleMouseEnter","handleMouseLeave","event","currentTarget","dataset","ispopup","relatedTarget","contains","handleDocumentClick","target","preventDefault","stopPropagation","hide","show","then","result","topBarHeight","addEventListener","window","removeEventListener","createElement","initial","key","onMouseLeave","Fragment","$menuHeight","onClick","onMouseEnter","displayName"],"sources":["../../../src/components/popup/Popup.tsx"],"sourcesContent":["import { getWindowMetrics } from 'chayns-api';\nimport { AnimatePresence } from 'framer-motion';\nimport React, {\n forwardRef,\n MouseEvent,\n ReactNode,\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 PopupContent from './popup-content/PopupContent';\nimport { StyledPopup, StyledPopupPseudo } from './Popup.styles';\n\nexport type PopupProps = {\n /**\n * The element over which the content of the `ContextMenu` should be displayed.\n */\n children?: ReactNode;\n /**\n * The content that should be displayed inside the popup.\n */\n content: ReactNode;\n /**\n * Function to be executed when the content of the Context menu has been hidden.\n */\n onHide?: VoidFunction;\n /**\n * Function to be executed when the content of the Context menu has been shown.\n */\n onShow?: VoidFunction;\n /**\n * Whether the popup should be opened on hover. If not, the popup will be opened on click.\n */\n shouldShowOnHover?: boolean;\n /**\n * The Y offset of the popup to the children.\n */\n yOffset?: number;\n};\n\nconst Popup = forwardRef<PopupRef, PopupProps>(\n ({ content, onShow, onHide, children, shouldShowOnHover = false, yOffset = 0 }, ref) => {\n const [coordinates, setCoordinates] = useState<PopupCoordinates>({\n x: 0,\n y: 0,\n });\n const container = document.querySelector('.tapp') || document.body;\n\n const [alignment, setAlignment] = useState<PopupAlignment>(PopupAlignment.TopLeft);\n const [isOpen, setIsOpen] = useState(false);\n const [portal, setPortal] = useState<ReactPortal>();\n const [menuHeight, setMenuHeight] = useState(0);\n\n const uuid = useUuid();\n\n // ToDo: Replace with hook if new chayns api is ready\n const popupContentRef = useRef<HTMLDivElement>(null);\n const popupPseudoContentRef = useRef<HTMLDivElement>(null);\n const popupRef = useRef<HTMLDivElement>(null);\n\n const handleShow = useCallback(() => {\n if (popupRef.current && popupPseudoContentRef.current) {\n const { height: pseudoHeight, width: pseudoWidth } =\n popupPseudoContentRef.current.getBoundingClientRect();\n\n const {\n height: childrenHeight,\n left: childrenLeft,\n top: childrenTop,\n width: childrenWidth,\n } = popupRef.current.getBoundingClientRect();\n\n if (pseudoHeight > childrenTop - 25) {\n if (pseudoWidth > childrenLeft + childrenWidth / 2 - 25) {\n setAlignment(PopupAlignment.BottomRight);\n } else {\n setAlignment(PopupAlignment.BottomLeft);\n }\n\n setCoordinates({\n x: childrenLeft + childrenWidth / 2,\n y: childrenTop + childrenHeight + yOffset,\n });\n } else {\n if (pseudoWidth > childrenLeft + childrenWidth / 2 - 25) {\n setAlignment(PopupAlignment.TopRight);\n } else {\n setAlignment(PopupAlignment.TopLeft);\n }\n\n setCoordinates({\n x: childrenLeft + childrenWidth / 2,\n y: childrenTop - yOffset,\n });\n }\n\n setIsOpen(true);\n }\n }, [yOffset]);\n\n const handleChildrenClick = () => {\n if (!shouldShowOnHover) {\n handleShow();\n }\n };\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleMouseEnter = () => {\n if (shouldShowOnHover) {\n handleShow();\n }\n };\n\n const handleMouseLeave = useCallback(\n (event: MouseEvent) => {\n if (shouldShowOnHover) {\n if ((event.currentTarget as HTMLElement).dataset.ispopup === 'true') {\n handleHide();\n }\n\n if (\n event.relatedTarget &&\n (event.relatedTarget === popupContentRef.current ||\n popupContentRef.current?.contains(event.relatedTarget as Node))\n ) {\n return;\n }\n\n handleHide();\n }\n },\n [handleHide, shouldShowOnHover],\n );\n\n const handleDocumentClick = useCallback<EventListener>(\n (event) => {\n if (\n !popupContentRef.current?.contains(event.target as Node) &&\n !shouldShowOnHover\n ) {\n event.preventDefault();\n event.stopPropagation();\n\n handleHide();\n }\n },\n [handleHide, shouldShowOnHover],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n useEffect(() => {\n void getWindowMetrics().then((result) => {\n if (result.topBarHeight) {\n setMenuHeight(result.topBarHeight);\n }\n });\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n document.addEventListener('click', handleDocumentClick, true);\n window.addEventListener('blur', handleHide);\n\n if (typeof onShow === 'function') {\n onShow();\n }\n } else if (typeof onHide === 'function') {\n onHide();\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick, true);\n window.removeEventListener('blur', handleHide);\n };\n }, [handleDocumentClick, handleHide, isOpen, onHide, onShow]);\n\n useEffect(() => {\n setPortal(() =>\n createPortal(\n <AnimatePresence initial={false}>\n {isOpen && (\n <PopupContent\n coordinates={coordinates}\n content={content}\n key={`tooltip_${uuid}`}\n alignment={alignment}\n ref={popupContentRef}\n onMouseLeave={handleMouseLeave}\n />\n )}\n </AnimatePresence>,\n container,\n ),\n );\n }, [alignment, container, content, coordinates, handleMouseLeave, isOpen, uuid]);\n\n return (\n <>\n <StyledPopupPseudo ref={popupPseudoContentRef} $menuHeight={menuHeight}>\n {content}\n </StyledPopupPseudo>\n <StyledPopup\n ref={popupRef}\n onClick={handleChildrenClick}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\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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"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledPopup: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>;
3
+ export declare const StyledPopupPseudo: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
4
+ $menuHeight: number;
5
+ }>>;
@@ -0,0 +1,21 @@
1
+ import styled from 'styled-components';
2
+ export const StyledPopup = styled.span`
3
+ cursor: pointer;
4
+ position: relative;
5
+ display: flex;
6
+ width: fit-content;
7
+ height: fit-content;
8
+ `;
9
+ export const StyledPopupPseudo = styled.div`
10
+ top: ${_ref => {
11
+ let {
12
+ $menuHeight
13
+ } = _ref;
14
+ return `${$menuHeight - 0}px`;
15
+ }};
16
+ left: 0;
17
+ pointer-events: none;
18
+ visibility: hidden;
19
+ position: absolute;
20
+ `;
21
+ //# sourceMappingURL=Popup.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.styles.js","names":["styled","StyledPopup","span","StyledPopupPseudo","div","_ref","$menuHeight"],"sources":["../../../src/components/popup/Popup.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledPopup = styled.span`\n cursor: pointer;\n position: relative;\n display: flex;\n width: fit-content;\n height: fit-content;\n`;\n\nexport const StyledPopupPseudo = styled.div<{\n $menuHeight: number;\n}>`\n top: ${({ $menuHeight }) => `${$menuHeight - 0}px`};\n left: 0;\n pointer-events: none;\n visibility: hidden;\n position: absolute;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,WAAW,GAAGD,MAAM,CAACE,IAAK;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGH,MAAM,CAACI,GAErC;AACH,WAAWC,IAAA;EAAA,IAAC;IAAEC;EAAY,CAAC,GAAAD,IAAA;EAAA,OAAM,GAAEC,WAAW,GAAG,CAAE,IAAG;AAAA,CAAC;AACvD;AACA;AACA;AACA;AACA,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React, { ReactNode, type MouseEventHandler } from 'react';
2
+ import { PopupAlignment, PopupCoordinates } from '../../../types/popup';
3
+ type PopupContentProps = {
4
+ alignment: PopupAlignment;
5
+ coordinates: PopupCoordinates;
6
+ content: ReactNode;
7
+ onMouseLeave: MouseEventHandler<HTMLSpanElement>;
8
+ };
9
+ declare const PopupContent: React.ForwardRefExoticComponent<PopupContentProps & React.RefAttributes<HTMLDivElement>>;
10
+ export default PopupContent;
@@ -0,0 +1,64 @@
1
+ import { useSite } from 'chayns-api';
2
+ import React from 'react';
3
+ import { PopupAlignment } from '../../../types/popup';
4
+ import { StyledMotionPopupContent, StyledPopupContentInner } from './PopupContent.styles';
5
+ const PopupContent = /*#__PURE__*/React.forwardRef((_ref, ref) => {
6
+ let {
7
+ alignment,
8
+ coordinates,
9
+ content,
10
+ onMouseLeave
11
+ } = _ref;
12
+ const {
13
+ colorMode
14
+ } = useSite();
15
+ const isBottomLeftAlignment = alignment === PopupAlignment.BottomLeft;
16
+ const isTopLeftAlignment = alignment === PopupAlignment.TopLeft;
17
+ const isTopRightAlignment = alignment === PopupAlignment.TopRight;
18
+ const percentageOffsetX = isBottomLeftAlignment || isTopLeftAlignment ? -100 : 0;
19
+ const percentageOffsetY = isTopRightAlignment || isTopLeftAlignment ? -100 : 0;
20
+ const anchorOffsetX = isBottomLeftAlignment || isTopLeftAlignment ? 21 : -21;
21
+ const anchorOffsetY = isTopRightAlignment || isTopLeftAlignment ? -21 : 21;
22
+ const exitAndInitialY = isTopLeftAlignment || isTopRightAlignment ? -16 : 16;
23
+ return /*#__PURE__*/React.createElement(StyledMotionPopupContent, {
24
+ animate: {
25
+ opacity: 1,
26
+ y: 0
27
+ },
28
+ $colorMode: colorMode,
29
+ exit: {
30
+ opacity: 0,
31
+ y: exitAndInitialY
32
+ },
33
+ initial: {
34
+ opacity: 0,
35
+ y: exitAndInitialY
36
+ },
37
+ $position: alignment,
38
+ ref: ref,
39
+ "data-ispopup": "true",
40
+ onMouseLeave: onMouseLeave,
41
+ style: {
42
+ left: coordinates.x,
43
+ top: coordinates.y
44
+ },
45
+ transition: {
46
+ type: 'tween'
47
+ },
48
+ transformTemplate: _ref2 => {
49
+ let {
50
+ y = '0px'
51
+ } = _ref2;
52
+ return `
53
+ translateX(${percentageOffsetX}%)
54
+ translateY(${percentageOffsetY}%)
55
+ translateX(${anchorOffsetX}px)
56
+ translateY(${anchorOffsetY}px)
57
+ translateY(${y})
58
+ `;
59
+ }
60
+ }, /*#__PURE__*/React.createElement(StyledPopupContentInner, null, content));
61
+ });
62
+ PopupContent.displayName = 'PopupContent';
63
+ export default PopupContent;
64
+ //# sourceMappingURL=PopupContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopupContent.js","names":["useSite","React","PopupAlignment","StyledMotionPopupContent","StyledPopupContentInner","PopupContent","forwardRef","_ref","ref","alignment","coordinates","content","onMouseLeave","colorMode","isBottomLeftAlignment","BottomLeft","isTopLeftAlignment","TopLeft","isTopRightAlignment","TopRight","percentageOffsetX","percentageOffsetY","anchorOffsetX","anchorOffsetY","exitAndInitialY","createElement","animate","opacity","y","$colorMode","exit","initial","$position","style","left","x","top","transition","type","transformTemplate","_ref2","displayName"],"sources":["../../../../src/components/popup/popup-content/PopupContent.tsx"],"sourcesContent":["import { useSite } from 'chayns-api';\nimport React, { ReactNode, type MouseEventHandler } from 'react';\nimport { PopupAlignment, PopupCoordinates } from '../../../types/popup';\nimport { StyledMotionPopupContent, StyledPopupContentInner } from './PopupContent.styles';\n\ntype PopupContentProps = {\n alignment: PopupAlignment;\n coordinates: PopupCoordinates;\n content: ReactNode;\n onMouseLeave: MouseEventHandler<HTMLSpanElement>;\n};\n\nconst PopupContent = React.forwardRef<HTMLDivElement, PopupContentProps>(\n ({ alignment, coordinates, content, onMouseLeave }, ref) => {\n const { colorMode } = useSite();\n\n const isBottomLeftAlignment = alignment === PopupAlignment.BottomLeft;\n const isTopLeftAlignment = alignment === PopupAlignment.TopLeft;\n const isTopRightAlignment = alignment === PopupAlignment.TopRight;\n\n const percentageOffsetX = isBottomLeftAlignment || isTopLeftAlignment ? -100 : 0;\n const percentageOffsetY = isTopRightAlignment || isTopLeftAlignment ? -100 : 0;\n\n const anchorOffsetX = isBottomLeftAlignment || isTopLeftAlignment ? 21 : -21;\n const anchorOffsetY = isTopRightAlignment || isTopLeftAlignment ? -21 : 21;\n\n const exitAndInitialY = isTopLeftAlignment || isTopRightAlignment ? -16 : 16;\n\n return (\n <StyledMotionPopupContent\n animate={{ opacity: 1, y: 0 }}\n $colorMode={colorMode}\n exit={{ opacity: 0, y: exitAndInitialY }}\n initial={{ opacity: 0, y: exitAndInitialY }}\n $position={alignment}\n ref={ref}\n data-ispopup=\"true\"\n onMouseLeave={onMouseLeave}\n style={{ left: coordinates.x, top: coordinates.y }}\n transition={{ type: 'tween' }}\n transformTemplate={({ y = '0px' }) => `\n translateX(${percentageOffsetX}%)\n translateY(${percentageOffsetY}%)\n translateX(${anchorOffsetX}px)\n translateY(${anchorOffsetY}px)\n translateY(${y})\n `}\n >\n <StyledPopupContentInner>{content}</StyledPopupContentInner>\n </StyledMotionPopupContent>\n );\n },\n);\n\nPopupContent.displayName = 'PopupContent';\n\nexport default PopupContent;\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AACpC,OAAOC,KAAK,MAA6C,OAAO;AAChE,SAASC,cAAc,QAA0B,sBAAsB;AACvE,SAASC,wBAAwB,EAAEC,uBAAuB,QAAQ,uBAAuB;AASzF,MAAMC,YAAY,gBAAGJ,KAAK,CAACK,UAAU,CACjC,CAAAC,IAAA,EAAoDC,GAAG,KAAK;EAAA,IAA3D;IAAEC,SAAS;IAAEC,WAAW;IAAEC,OAAO;IAAEC;EAAa,CAAC,GAAAL,IAAA;EAC9C,MAAM;IAAEM;EAAU,CAAC,GAAGb,OAAO,CAAC,CAAC;EAE/B,MAAMc,qBAAqB,GAAGL,SAAS,KAAKP,cAAc,CAACa,UAAU;EACrE,MAAMC,kBAAkB,GAAGP,SAAS,KAAKP,cAAc,CAACe,OAAO;EAC/D,MAAMC,mBAAmB,GAAGT,SAAS,KAAKP,cAAc,CAACiB,QAAQ;EAEjE,MAAMC,iBAAiB,GAAGN,qBAAqB,IAAIE,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC;EAChF,MAAMK,iBAAiB,GAAGH,mBAAmB,IAAIF,kBAAkB,GAAG,CAAC,GAAG,GAAG,CAAC;EAE9E,MAAMM,aAAa,GAAGR,qBAAqB,IAAIE,kBAAkB,GAAG,EAAE,GAAG,CAAC,EAAE;EAC5E,MAAMO,aAAa,GAAGL,mBAAmB,IAAIF,kBAAkB,GAAG,CAAC,EAAE,GAAG,EAAE;EAE1E,MAAMQ,eAAe,GAAGR,kBAAkB,IAAIE,mBAAmB,GAAG,CAAC,EAAE,GAAG,EAAE;EAE5E,oBACIjB,KAAA,CAAAwB,aAAA,CAACtB,wBAAwB;IACrBuB,OAAO,EAAE;MAAEC,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAE;IAC9BC,UAAU,EAAEhB,SAAU;IACtBiB,IAAI,EAAE;MAAEH,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAEJ;IAAgB,CAAE;IACzCO,OAAO,EAAE;MAAEJ,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAEJ;IAAgB,CAAE;IAC5CQ,SAAS,EAAEvB,SAAU;IACrBD,GAAG,EAAEA,GAAI;IACT,gBAAa,MAAM;IACnBI,YAAY,EAAEA,YAAa;IAC3BqB,KAAK,EAAE;MAAEC,IAAI,EAAExB,WAAW,CAACyB,CAAC;MAAEC,GAAG,EAAE1B,WAAW,CAACkB;IAAE,CAAE;IACnDS,UAAU,EAAE;MAAEC,IAAI,EAAE;IAAQ,CAAE;IAC9BC,iBAAiB,EAAEC,KAAA;MAAA,IAAC;QAAEZ,CAAC,GAAG;MAAM,CAAC,GAAAY,KAAA;MAAA,OAAM;AACvD,iCAAiCpB,iBAAkB;AACnD,iCAAiCC,iBAAkB;AACnD,iCAAiCC,aAAc;AAC/C,iCAAiCC,aAAc;AAC/C,iCAAiCK,CAAE;AACnC,iBAAiB;IAAA;EAAC,gBAEF3B,KAAA,CAAAwB,aAAA,CAACrB,uBAAuB,QAAEO,OAAiC,CACrC,CAAC;AAEnC,CACJ,CAAC;AAEDN,YAAY,CAACoC,WAAW,GAAG,cAAc;AAEzC,eAAepC,YAAY"}