@knocklabs/react 0.12.1 → 0.13.0

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 (335) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/_virtual/_rolldown/runtime.js +1 -0
  3. package/dist/cjs/index.css +1 -1
  4. package/dist/cjs/index.js +1 -2
  5. package/dist/cjs/modules/core/components/Button/Button.js +2 -2
  6. package/dist/cjs/modules/core/components/Button/Button.js.map +1 -1
  7. package/dist/cjs/modules/core/components/Button/ButtonGroup.js +2 -2
  8. package/dist/cjs/modules/core/components/Button/ButtonGroup.js.map +1 -1
  9. package/dist/cjs/modules/core/components/Button/ButtonSpinner.js +2 -2
  10. package/dist/cjs/modules/core/components/Button/ButtonSpinner.js.map +1 -1
  11. package/dist/cjs/modules/core/components/Button/index.js +1 -0
  12. package/dist/cjs/modules/core/components/Icons/Bell.js +2 -2
  13. package/dist/cjs/modules/core/components/Icons/Bell.js.map +1 -1
  14. package/dist/cjs/modules/core/components/Icons/CheckmarkCircle.js +2 -2
  15. package/dist/cjs/modules/core/components/Icons/CheckmarkCircle.js.map +1 -1
  16. package/dist/cjs/modules/core/components/Icons/ChevronDown.js +2 -2
  17. package/dist/cjs/modules/core/components/Icons/ChevronDown.js.map +1 -1
  18. package/dist/cjs/modules/core/components/Icons/CloseCircle.js +2 -2
  19. package/dist/cjs/modules/core/components/Icons/CloseCircle.js.map +1 -1
  20. package/dist/cjs/modules/core/components/Icons/index.js +1 -0
  21. package/dist/cjs/modules/core/components/Spinner/Spinner.js +3 -3
  22. package/dist/cjs/modules/core/components/Spinner/Spinner.js.map +1 -1
  23. package/dist/cjs/modules/core/components/Spinner/index.js +1 -0
  24. package/dist/cjs/modules/core/cx/index.js +2 -2
  25. package/dist/cjs/modules/core/cx/index.js.map +1 -1
  26. package/dist/cjs/modules/core/debounce/index.js +2 -2
  27. package/dist/cjs/modules/core/debounce/index.js.map +1 -1
  28. package/dist/cjs/modules/core/hooks/index.js +1 -0
  29. package/dist/cjs/modules/core/hooks/useComponentVisible.js +2 -2
  30. package/dist/cjs/modules/core/hooks/useComponentVisible.js.map +1 -1
  31. package/dist/cjs/modules/core/hooks/useOnBottomScroll.js +2 -2
  32. package/dist/cjs/modules/core/hooks/useOnBottomScroll.js.map +1 -1
  33. package/dist/cjs/modules/core/index.js +1 -0
  34. package/dist/cjs/modules/core/utils.js +2 -2
  35. package/dist/cjs/modules/core/utils.js.map +1 -1
  36. package/dist/cjs/modules/feed/components/EmptyFeed/EmptyFeed.js +2 -2
  37. package/dist/cjs/modules/feed/components/EmptyFeed/EmptyFeed.js.map +1 -1
  38. package/dist/cjs/modules/feed/components/EmptyFeed/index.js +1 -0
  39. package/dist/cjs/modules/feed/components/NotificationCell/ArchiveButton.js +2 -2
  40. package/dist/cjs/modules/feed/components/NotificationCell/ArchiveButton.js.map +1 -1
  41. package/dist/cjs/modules/feed/components/NotificationCell/Avatar.js +2 -2
  42. package/dist/cjs/modules/feed/components/NotificationCell/Avatar.js.map +1 -1
  43. package/dist/cjs/modules/feed/components/NotificationCell/NotificationCell.js +2 -2
  44. package/dist/cjs/modules/feed/components/NotificationCell/NotificationCell.js.map +1 -1
  45. package/dist/cjs/modules/feed/components/NotificationCell/index.js +1 -0
  46. package/dist/cjs/modules/feed/components/NotificationFeed/Dropdown.js +2 -2
  47. package/dist/cjs/modules/feed/components/NotificationFeed/Dropdown.js.map +1 -1
  48. package/dist/cjs/modules/feed/components/NotificationFeed/MarkAsRead.js +2 -2
  49. package/dist/cjs/modules/feed/components/NotificationFeed/MarkAsRead.js.map +1 -1
  50. package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeed.js +2 -2
  51. package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeed.js.map +1 -1
  52. package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeedHeader.js +2 -2
  53. package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeedHeader.js.map +1 -1
  54. package/dist/cjs/modules/feed/components/NotificationFeed/index.js +1 -0
  55. package/dist/cjs/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js +2 -2
  56. package/dist/cjs/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js.map +1 -1
  57. package/dist/cjs/modules/feed/components/NotificationFeedContainer/index.js +1 -0
  58. package/dist/cjs/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.js +2 -2
  59. package/dist/cjs/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.js.map +1 -1
  60. package/dist/cjs/modules/feed/components/NotificationFeedPopover/index.js +1 -0
  61. package/dist/cjs/modules/feed/components/NotificationIconButton/NotificationIconButton.js +2 -2
  62. package/dist/cjs/modules/feed/components/NotificationIconButton/NotificationIconButton.js.map +1 -1
  63. package/dist/cjs/modules/feed/components/NotificationIconButton/index.js +1 -0
  64. package/dist/cjs/modules/feed/components/UnseenBadge/UnseenBadge.js +2 -2
  65. package/dist/cjs/modules/feed/components/UnseenBadge/UnseenBadge.js.map +1 -1
  66. package/dist/cjs/modules/feed/components/UnseenBadge/index.js +1 -0
  67. package/dist/cjs/modules/feed/index.js +1 -0
  68. package/dist/cjs/modules/guide/components/Banner/Banner.js +2 -2
  69. package/dist/cjs/modules/guide/components/Banner/Banner.js.map +1 -1
  70. package/dist/cjs/modules/guide/components/Banner/index.js +1 -0
  71. package/dist/cjs/modules/guide/components/Card/Card.js +2 -2
  72. package/dist/cjs/modules/guide/components/Card/Card.js.map +1 -1
  73. package/dist/cjs/modules/guide/components/Card/index.js +1 -0
  74. package/dist/cjs/modules/guide/components/Modal/Modal.js +2 -2
  75. package/dist/cjs/modules/guide/components/Modal/Modal.js.map +1 -1
  76. package/dist/cjs/modules/guide/components/Modal/index.js +1 -0
  77. package/dist/cjs/modules/guide/components/Toolbar/KnockButton.js +2 -2
  78. package/dist/cjs/modules/guide/components/Toolbar/KnockButton.js.map +1 -1
  79. package/dist/cjs/modules/guide/components/Toolbar/V2/FocusChin.js +2 -2
  80. package/dist/cjs/modules/guide/components/Toolbar/V2/FocusChin.js.map +1 -1
  81. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideAnnotatedStatusDot.js +2 -2
  82. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideAnnotatedStatusDot.js.map +1 -1
  83. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideContextDetails.js +2 -2
  84. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideContextDetails.js.map +1 -1
  85. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideRow.js +2 -2
  86. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideRow.js.map +1 -1
  87. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideRowDetails.js +2 -2
  88. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideRowDetails.js.map +1 -1
  89. package/dist/cjs/modules/guide/components/Toolbar/V2/Kbd.js +2 -2
  90. package/dist/cjs/modules/guide/components/Toolbar/V2/Kbd.js.map +1 -1
  91. package/dist/cjs/modules/guide/components/Toolbar/V2/V2.js +2 -2
  92. package/dist/cjs/modules/guide/components/Toolbar/V2/V2.js.map +1 -1
  93. package/dist/cjs/modules/guide/components/Toolbar/V2/helpers.js +2 -2
  94. package/dist/cjs/modules/guide/components/Toolbar/V2/helpers.js.map +1 -1
  95. package/dist/cjs/modules/guide/components/Toolbar/V2/index.js +1 -0
  96. package/dist/cjs/modules/guide/components/Toolbar/V2/useDraggable.js +2 -2
  97. package/dist/cjs/modules/guide/components/Toolbar/V2/useDraggable.js.map +1 -1
  98. package/dist/cjs/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.js +2 -2
  99. package/dist/cjs/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.js.map +1 -1
  100. package/dist/cjs/modules/guide/components/Toolbar/index.js +1 -0
  101. package/dist/cjs/modules/guide/components/Toolbar/shared.js +2 -2
  102. package/dist/cjs/modules/guide/components/Toolbar/shared.js.map +1 -1
  103. package/dist/cjs/modules/guide/components/Toolbar/styles.inline.js +2 -0
  104. package/dist/cjs/modules/guide/components/Toolbar/styles.inline.js.map +1 -0
  105. package/dist/cjs/modules/guide/components/Toolbar/useToolbarStyles.js +2 -2
  106. package/dist/cjs/modules/guide/components/Toolbar/useToolbarStyles.js.map +1 -1
  107. package/dist/cjs/modules/guide/components/helpers.js +2 -2
  108. package/dist/cjs/modules/guide/components/helpers.js.map +1 -1
  109. package/dist/cjs/modules/guide/components/index.js +1 -0
  110. package/dist/cjs/modules/guide/index.js +1 -0
  111. package/dist/cjs/modules/guide/providers/KnockGuideProvider.js +2 -2
  112. package/dist/cjs/modules/guide/providers/KnockGuideProvider.js.map +1 -1
  113. package/dist/cjs/modules/guide/providers/index.js +1 -0
  114. package/dist/cjs/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.js +2 -2
  115. package/dist/cjs/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.js.map +1 -1
  116. package/dist/cjs/modules/ms-teams/components/MsTeamsAuthButton/index.js +1 -0
  117. package/dist/cjs/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.js +2 -2
  118. package/dist/cjs/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.js.map +1 -1
  119. package/dist/cjs/modules/ms-teams/components/MsTeamsAuthContainer/index.js +1 -0
  120. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelCombobox.js +2 -2
  121. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelCombobox.js.map +1 -1
  122. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelInTeamCombobox.js +2 -2
  123. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelInTeamCombobox.js.map +1 -1
  124. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsConnectionError.js +2 -2
  125. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsConnectionError.js.map +1 -1
  126. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsErrorMessage.js +2 -2
  127. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsErrorMessage.js.map +1 -1
  128. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsTeamCombobox.js +2 -2
  129. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsTeamCombobox.js.map +1 -1
  130. package/dist/cjs/modules/ms-teams/components/MsTeamsChannelCombobox/index.js +1 -0
  131. package/dist/cjs/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.js +2 -2
  132. package/dist/cjs/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.js.map +1 -1
  133. package/dist/cjs/modules/ms-teams/components/MsTeamsIcon/index.js +1 -0
  134. package/dist/cjs/modules/ms-teams/index.js +1 -0
  135. package/dist/cjs/modules/ms-teams/utils.js +2 -2
  136. package/dist/cjs/modules/ms-teams/utils.js.map +1 -1
  137. package/dist/cjs/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.js +2 -2
  138. package/dist/cjs/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.js.map +1 -1
  139. package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js +2 -2
  140. package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js.map +1 -1
  141. package/dist/cjs/modules/slack/components/SlackAuthButton/index.js +1 -0
  142. package/dist/cjs/modules/slack/components/SlackAuthContainer/SlackAuthContainer.js +2 -2
  143. package/dist/cjs/modules/slack/components/SlackAuthContainer/SlackAuthContainer.js.map +1 -1
  144. package/dist/cjs/modules/slack/components/SlackAuthContainer/index.js +1 -0
  145. package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.js +2 -2
  146. package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.js.map +1 -1
  147. package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectionError.js +2 -2
  148. package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectionError.js.map +1 -1
  149. package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackErrorMessage.js +2 -2
  150. package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackErrorMessage.js.map +1 -1
  151. package/dist/cjs/modules/slack/components/SlackChannelCombobox/index.js +1 -0
  152. package/dist/cjs/modules/slack/components/SlackIcon/SlackIcon.js +2 -2
  153. package/dist/cjs/modules/slack/components/SlackIcon/SlackIcon.js.map +1 -1
  154. package/dist/cjs/modules/slack/components/SlackIcon/index.js +1 -0
  155. package/dist/cjs/modules/slack/index.js +1 -0
  156. package/dist/cjs/modules/slack/utils.js +2 -2
  157. package/dist/cjs/modules/slack/utils.js.map +1 -1
  158. package/dist/cjs/next/KnockGuideLocationSensor.js +2 -2
  159. package/dist/cjs/next/KnockGuideLocationSensor.js.map +1 -1
  160. package/dist/cjs/next.js +1 -2
  161. package/dist/cjs/tanstack/KnockGuideLocationSensor.js +2 -2
  162. package/dist/cjs/tanstack/KnockGuideLocationSensor.js.map +1 -1
  163. package/dist/cjs/tanstack.js +1 -2
  164. package/dist/esm/index.mjs +36 -118
  165. package/dist/esm/modules/core/components/Button/Button.mjs +28 -21
  166. package/dist/esm/modules/core/components/Button/Button.mjs.map +1 -1
  167. package/dist/esm/modules/core/components/Button/ButtonGroup.mjs +11 -9
  168. package/dist/esm/modules/core/components/Button/ButtonGroup.mjs.map +1 -1
  169. package/dist/esm/modules/core/components/Button/ButtonSpinner.mjs +13 -10
  170. package/dist/esm/modules/core/components/Button/ButtonSpinner.mjs.map +1 -1
  171. package/dist/esm/modules/core/components/Button/index.mjs +3 -0
  172. package/dist/esm/modules/core/components/Icons/Bell.mjs +26 -10
  173. package/dist/esm/modules/core/components/Icons/Bell.mjs.map +1 -1
  174. package/dist/esm/modules/core/components/Icons/CheckmarkCircle.mjs +26 -10
  175. package/dist/esm/modules/core/components/Icons/CheckmarkCircle.mjs.map +1 -1
  176. package/dist/esm/modules/core/components/Icons/ChevronDown.mjs +21 -10
  177. package/dist/esm/modules/core/components/Icons/ChevronDown.mjs.map +1 -1
  178. package/dist/esm/modules/core/components/Icons/CloseCircle.mjs +18 -10
  179. package/dist/esm/modules/core/components/Icons/CloseCircle.mjs.map +1 -1
  180. package/dist/esm/modules/core/components/Icons/index.mjs +5 -0
  181. package/dist/esm/modules/core/components/Spinner/Spinner.mjs +40 -30
  182. package/dist/esm/modules/core/components/Spinner/Spinner.mjs.map +1 -1
  183. package/dist/esm/modules/core/components/Spinner/index.mjs +2 -0
  184. package/dist/esm/modules/core/cx/index.mjs +6 -5
  185. package/dist/esm/modules/core/cx/index.mjs.map +1 -1
  186. package/dist/esm/modules/core/debounce/index.mjs +14 -14
  187. package/dist/esm/modules/core/debounce/index.mjs.map +1 -1
  188. package/dist/esm/modules/core/hooks/index.mjs +2 -0
  189. package/dist/esm/modules/core/hooks/useComponentVisible.mjs +17 -18
  190. package/dist/esm/modules/core/hooks/useComponentVisible.mjs.map +1 -1
  191. package/dist/esm/modules/core/hooks/useOnBottomScroll.mjs +21 -21
  192. package/dist/esm/modules/core/hooks/useOnBottomScroll.mjs.map +1 -1
  193. package/dist/esm/modules/core/index.mjs +14 -0
  194. package/dist/esm/modules/core/utils.mjs +10 -11
  195. package/dist/esm/modules/core/utils.mjs.map +1 -1
  196. package/dist/esm/modules/feed/components/EmptyFeed/EmptyFeed.mjs +23 -14
  197. package/dist/esm/modules/feed/components/EmptyFeed/EmptyFeed.mjs.map +1 -1
  198. package/dist/esm/modules/feed/components/EmptyFeed/index.mjs +2 -0
  199. package/dist/esm/modules/feed/components/NotificationCell/ArchiveButton.mjs +42 -40
  200. package/dist/esm/modules/feed/components/NotificationCell/ArchiveButton.mjs.map +1 -1
  201. package/dist/esm/modules/feed/components/NotificationCell/Avatar.mjs +24 -15
  202. package/dist/esm/modules/feed/components/NotificationCell/Avatar.mjs.map +1 -1
  203. package/dist/esm/modules/feed/components/NotificationCell/NotificationCell.mjs +88 -64
  204. package/dist/esm/modules/feed/components/NotificationCell/NotificationCell.mjs.map +1 -1
  205. package/dist/esm/modules/feed/components/NotificationCell/index.mjs +3 -0
  206. package/dist/esm/modules/feed/components/NotificationFeed/Dropdown.mjs +22 -17
  207. package/dist/esm/modules/feed/components/NotificationFeed/Dropdown.mjs.map +1 -1
  208. package/dist/esm/modules/feed/components/NotificationFeed/MarkAsRead.mjs +26 -21
  209. package/dist/esm/modules/feed/components/NotificationFeed/MarkAsRead.mjs.map +1 -1
  210. package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeed.mjs +78 -68
  211. package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeed.mjs.map +1 -1
  212. package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeedHeader.mjs +33 -17
  213. package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeedHeader.mjs.map +1 -1
  214. package/dist/esm/modules/feed/components/NotificationFeed/index.mjs +4 -0
  215. package/dist/esm/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.mjs +11 -9
  216. package/dist/esm/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.mjs.map +1 -1
  217. package/dist/esm/modules/feed/components/NotificationFeedContainer/index.mjs +2 -0
  218. package/dist/esm/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.mjs +62 -65
  219. package/dist/esm/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.mjs.map +1 -1
  220. package/dist/esm/modules/feed/components/NotificationFeedPopover/index.mjs +2 -0
  221. package/dist/esm/modules/feed/components/NotificationIconButton/NotificationIconButton.mjs +22 -17
  222. package/dist/esm/modules/feed/components/NotificationIconButton/NotificationIconButton.mjs.map +1 -1
  223. package/dist/esm/modules/feed/components/NotificationIconButton/index.mjs +2 -0
  224. package/dist/esm/modules/feed/components/UnseenBadge/UnseenBadge.mjs +27 -23
  225. package/dist/esm/modules/feed/components/UnseenBadge/UnseenBadge.mjs.map +1 -1
  226. package/dist/esm/modules/feed/components/UnseenBadge/index.mjs +2 -0
  227. package/dist/esm/modules/feed/index.mjs +18 -0
  228. package/dist/esm/modules/guide/components/Banner/Banner.mjs +138 -129
  229. package/dist/esm/modules/guide/components/Banner/Banner.mjs.map +1 -1
  230. package/dist/esm/modules/guide/components/Banner/index.mjs +2 -0
  231. package/dist/esm/modules/guide/components/Card/Card.mjs +184 -167
  232. package/dist/esm/modules/guide/components/Card/Card.mjs.map +1 -1
  233. package/dist/esm/modules/guide/components/Card/index.mjs +2 -0
  234. package/dist/esm/modules/guide/components/Modal/Modal.mjs +188 -168
  235. package/dist/esm/modules/guide/components/Modal/Modal.mjs.map +1 -1
  236. package/dist/esm/modules/guide/components/Modal/index.mjs +2 -0
  237. package/dist/esm/modules/guide/components/Toolbar/KnockButton.mjs +46 -24
  238. package/dist/esm/modules/guide/components/Toolbar/KnockButton.mjs.map +1 -1
  239. package/dist/esm/modules/guide/components/Toolbar/V2/FocusChin.mjs +174 -111
  240. package/dist/esm/modules/guide/components/Toolbar/V2/FocusChin.mjs.map +1 -1
  241. package/dist/esm/modules/guide/components/Toolbar/V2/GuideAnnotatedStatusDot.mjs +82 -19
  242. package/dist/esm/modules/guide/components/Toolbar/V2/GuideAnnotatedStatusDot.mjs.map +1 -1
  243. package/dist/esm/modules/guide/components/Toolbar/V2/GuideContextDetails.mjs +189 -47
  244. package/dist/esm/modules/guide/components/Toolbar/V2/GuideContextDetails.mjs.map +1 -1
  245. package/dist/esm/modules/guide/components/Toolbar/V2/GuideRow.mjs +229 -143
  246. package/dist/esm/modules/guide/components/Toolbar/V2/GuideRow.mjs.map +1 -1
  247. package/dist/esm/modules/guide/components/Toolbar/V2/GuideRowDetails.mjs +180 -68
  248. package/dist/esm/modules/guide/components/Toolbar/V2/GuideRowDetails.mjs.map +1 -1
  249. package/dist/esm/modules/guide/components/Toolbar/V2/Kbd.mjs +17 -14
  250. package/dist/esm/modules/guide/components/Toolbar/V2/Kbd.mjs.map +1 -1
  251. package/dist/esm/modules/guide/components/Toolbar/V2/V2.mjs +315 -159
  252. package/dist/esm/modules/guide/components/Toolbar/V2/V2.mjs.map +1 -1
  253. package/dist/esm/modules/guide/components/Toolbar/V2/helpers.mjs +9 -11
  254. package/dist/esm/modules/guide/components/Toolbar/V2/helpers.mjs.map +1 -1
  255. package/dist/esm/modules/guide/components/Toolbar/V2/index.mjs +2 -0
  256. package/dist/esm/modules/guide/components/Toolbar/V2/useDraggable.mjs +66 -74
  257. package/dist/esm/modules/guide/components/Toolbar/V2/useDraggable.mjs.map +1 -1
  258. package/dist/esm/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.mjs +136 -192
  259. package/dist/esm/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.mjs.map +1 -1
  260. package/dist/esm/modules/guide/components/Toolbar/index.mjs +3 -0
  261. package/dist/esm/modules/guide/components/Toolbar/shared.mjs +6 -5
  262. package/dist/esm/modules/guide/components/Toolbar/shared.mjs.map +1 -1
  263. package/dist/esm/modules/guide/components/Toolbar/styles.inline.mjs +6 -0
  264. package/dist/esm/modules/guide/components/Toolbar/styles.inline.mjs.map +1 -0
  265. package/dist/esm/modules/guide/components/Toolbar/useToolbarStyles.mjs +13 -12
  266. package/dist/esm/modules/guide/components/Toolbar/useToolbarStyles.mjs.map +1 -1
  267. package/dist/esm/modules/guide/components/helpers.mjs +15 -15
  268. package/dist/esm/modules/guide/components/helpers.mjs.map +1 -1
  269. package/dist/esm/modules/guide/components/index.mjs +9 -0
  270. package/dist/esm/modules/guide/index.mjs +8 -0
  271. package/dist/esm/modules/guide/providers/KnockGuideProvider.mjs +19 -17
  272. package/dist/esm/modules/guide/providers/KnockGuideProvider.mjs.map +1 -1
  273. package/dist/esm/modules/guide/providers/index.mjs +2 -0
  274. package/dist/esm/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.mjs +78 -52
  275. package/dist/esm/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.mjs.map +1 -1
  276. package/dist/esm/modules/ms-teams/components/MsTeamsAuthButton/index.mjs +2 -0
  277. package/dist/esm/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.mjs +33 -16
  278. package/dist/esm/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.mjs.map +1 -1
  279. package/dist/esm/modules/ms-teams/components/MsTeamsAuthContainer/index.mjs +2 -0
  280. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelCombobox.mjs +60 -28
  281. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelCombobox.mjs.map +1 -1
  282. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelInTeamCombobox.mjs +47 -39
  283. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsChannelInTeamCombobox.mjs.map +1 -1
  284. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsConnectionError.mjs +11 -14
  285. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsConnectionError.mjs.map +1 -1
  286. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsErrorMessage.mjs +23 -11
  287. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsErrorMessage.mjs.map +1 -1
  288. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsTeamCombobox.mjs +41 -33
  289. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/MsTeamsTeamCombobox.mjs.map +1 -1
  290. package/dist/esm/modules/ms-teams/components/MsTeamsChannelCombobox/index.mjs +2 -0
  291. package/dist/esm/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.mjs +99 -15
  292. package/dist/esm/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.mjs.map +1 -1
  293. package/dist/esm/modules/ms-teams/components/MsTeamsIcon/index.mjs +2 -0
  294. package/dist/esm/modules/ms-teams/index.mjs +7 -0
  295. package/dist/esm/modules/ms-teams/utils.mjs +6 -5
  296. package/dist/esm/modules/ms-teams/utils.mjs.map +1 -1
  297. package/dist/esm/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.mjs +48 -32
  298. package/dist/esm/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.mjs.map +1 -1
  299. package/dist/esm/modules/slack/components/SlackAuthButton/SlackAuthButton.mjs +82 -58
  300. package/dist/esm/modules/slack/components/SlackAuthButton/SlackAuthButton.mjs.map +1 -1
  301. package/dist/esm/modules/slack/components/SlackAuthButton/index.mjs +2 -0
  302. package/dist/esm/modules/slack/components/SlackAuthContainer/SlackAuthContainer.mjs +33 -16
  303. package/dist/esm/modules/slack/components/SlackAuthContainer/SlackAuthContainer.mjs.map +1 -1
  304. package/dist/esm/modules/slack/components/SlackAuthContainer/index.mjs +2 -0
  305. package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.mjs +100 -66
  306. package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.mjs.map +1 -1
  307. package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectionError.mjs +11 -14
  308. package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectionError.mjs.map +1 -1
  309. package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackErrorMessage.mjs +23 -11
  310. package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackErrorMessage.mjs.map +1 -1
  311. package/dist/esm/modules/slack/components/SlackChannelCombobox/index.mjs +2 -0
  312. package/dist/esm/modules/slack/components/SlackIcon/SlackIcon.mjs +32 -12
  313. package/dist/esm/modules/slack/components/SlackIcon/SlackIcon.mjs.map +1 -1
  314. package/dist/esm/modules/slack/components/SlackIcon/index.mjs +2 -0
  315. package/dist/esm/modules/slack/index.mjs +7 -0
  316. package/dist/esm/modules/slack/utils.mjs +6 -5
  317. package/dist/esm/modules/slack/utils.mjs.map +1 -1
  318. package/dist/esm/next/KnockGuideLocationSensor.mjs +37 -37
  319. package/dist/esm/next/KnockGuideLocationSensor.mjs.map +1 -1
  320. package/dist/esm/next.mjs +2 -5
  321. package/dist/esm/tanstack/KnockGuideLocationSensor.mjs +16 -19
  322. package/dist/esm/tanstack/KnockGuideLocationSensor.mjs.map +1 -1
  323. package/dist/esm/tanstack.mjs +2 -5
  324. package/dist/index.css +1 -1
  325. package/package.json +12 -14
  326. package/dist/cjs/index.js.map +0 -1
  327. package/dist/cjs/modules/guide/components/Toolbar/styles.css.inline.js +0 -2
  328. package/dist/cjs/modules/guide/components/Toolbar/styles.css.inline.js.map +0 -1
  329. package/dist/cjs/next.js.map +0 -1
  330. package/dist/cjs/tanstack.js.map +0 -1
  331. package/dist/esm/index.mjs.map +0 -1
  332. package/dist/esm/modules/guide/components/Toolbar/styles.css.inline.mjs +0 -5
  333. package/dist/esm/modules/guide/components/Toolbar/styles.css.inline.mjs.map +0 -1
  334. package/dist/esm/next.mjs.map +0 -1
  335. package/dist/esm/tanstack.mjs.map +0 -1
@@ -1,69 +1,79 @@
1
- import { isRequestInFlight as C, NetworkStatus as f } from "@knocklabs/client";
2
- import { FilterStatus as I, useKnockFeed as B, useFeedSettings as q, useTranslations as x } from "@knocklabs/react-core";
3
- import e, { useState as K, useRef as H, useEffect as _, useCallback as M } from "react";
4
- import { Spinner as P } from "../../../core/components/Spinner/Spinner.mjs";
5
- import z from "../../../core/hooks/useOnBottomScroll.mjs";
6
- import { EmptyFeed as A } from "../EmptyFeed/EmptyFeed.mjs";
7
- import { NotificationCell as O } from "../NotificationCell/NotificationCell.mjs";
8
- /* empty css */
9
- import { NotificationFeedHeader as T } from "./NotificationFeedHeader.mjs";
10
- /* empty css */
11
- const U = (t) => /* @__PURE__ */ e.createElement(O, { key: t.item.id, ...t }), $ = (t) => /* @__PURE__ */ e.createElement(T, { ...t }), j = ({
12
- colorMode: t
13
- }) => /* @__PURE__ */ e.createElement("div", { className: "rnf-notification-feed__spinner-container" }, /* @__PURE__ */ e.createElement(P, { thickness: 3, size: "16px", color: t === "dark" ? "rgba(255, 255, 255, 0.65)" : void 0 })), D = "https://knock.app?utm_source=powered-by-knock&utm_medium=referral&utm_campaign=knock-branding-feed", te = ({
14
- EmptyComponent: t = /* @__PURE__ */ e.createElement(A, null),
15
- renderItem: g = U,
16
- onNotificationClick: E,
17
- onNotificationButtonClick: b,
18
- onMarkAllAsReadClick: N,
19
- initialFilterStatus: r = I.All,
20
- header: h,
21
- renderHeader: S = $,
22
- renderLoading: m = j
23
- }) => {
24
- var p;
25
- const [a, l] = K(r), {
26
- feedClient: n,
27
- useFeedStore: F,
28
- colorMode: c
29
- } = B(), {
30
- settings: i
31
- } = q(n), {
32
- t: R
33
- } = x(), {
34
- pageInfo: d,
35
- items: u,
36
- networkStatus: o
37
- } = F(), k = H(null);
38
- _(() => {
39
- l(r);
40
- }, [r]), _(() => {
41
- n.fetch({
42
- status: a
43
- });
44
- }, [n, a]);
45
- const v = u.length === 0, s = C(o), w = M(() => {
46
- !s && d.after && n.fetchNextPage();
47
- }, [s, d, n]);
48
- return z({
49
- ref: k,
50
- callback: w,
51
- offset: 70
52
- }), /* @__PURE__ */ e.createElement("div", { className: `rnf-notification-feed rnf-notification-feed--${c}` }, h || S({
53
- setFilterStatus: l,
54
- filterStatus: a,
55
- onMarkAllAsReadClick: N
56
- }), /* @__PURE__ */ e.createElement("div", { className: "rnf-notification-feed__container", ref: k }, o === f.loading && m({
57
- colorMode: c
58
- }), /* @__PURE__ */ e.createElement("div", { className: "rnf-notification-feed__feed-items-container" }, o !== f.loading && u.map((y) => g({
59
- item: y,
60
- onItemClick: E,
61
- onButtonClick: b
62
- }))), o === f.fetchMore && m({
63
- colorMode: c
64
- }), !s && v && t), ((p = i == null ? void 0 : i.features) == null ? void 0 : p.branding_required) && /* @__PURE__ */ e.createElement("div", { className: "rnf-notification-feed__knock-branding" }, /* @__PURE__ */ e.createElement("a", { href: D, target: "_blank" }, R("poweredBy") || "Powered by Knock")));
1
+ import { Spinner as e } from "../../../core/components/Spinner/Spinner.mjs";
2
+ import "../../../core/components/Spinner/index.mjs";
3
+ import t from "../../../core/hooks/useOnBottomScroll.mjs";
4
+ import { EmptyFeed as n } from "../EmptyFeed/EmptyFeed.mjs";
5
+ import "../EmptyFeed/index.mjs";
6
+ import { NotificationCell as r } from "../NotificationCell/NotificationCell.mjs";
7
+ import "../NotificationCell/index.mjs";
8
+ /* empty css */
9
+ import { NotificationFeedHeader as i } from "./NotificationFeedHeader.mjs";
10
+ import { FilterStatus as a, useFeedSettings as o, useKnockFeed as s, useTranslations as c } from "@knocklabs/react-core";
11
+ import { useCallback as l, useEffect as u, useRef as d, useState as f } from "react";
12
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
13
+ import { NetworkStatus as h, isRequestInFlight as g } from "@knocklabs/client";
14
+ //#region src/modules/feed/components/NotificationFeed/NotificationFeed.tsx
15
+ var _ = (e) => /* @__PURE__ */ p(r, { ...e }, e.item.id), v = (e) => /* @__PURE__ */ p(i, { ...e }), y = ({ colorMode: t }) => /* @__PURE__ */ p("div", {
16
+ className: "rnf-notification-feed__spinner-container",
17
+ children: /* @__PURE__ */ p(e, {
18
+ thickness: 3,
19
+ size: "16px",
20
+ color: t === "dark" ? "rgba(255, 255, 255, 0.65)" : void 0
21
+ })
22
+ }), b = "https://knock.app?utm_source=powered-by-knock&utm_medium=referral&utm_campaign=knock-branding-feed", x = ({ EmptyComponent: e = /* @__PURE__ */ p(n, {}), renderItem: r = _, onNotificationClick: i, onNotificationButtonClick: x, onMarkAllAsReadClick: S, initialFilterStatus: C = a.All, header: w, renderHeader: T = v, renderLoading: E = y }) => {
23
+ let [D, O] = f(C), { feedClient: k, useFeedStore: A, colorMode: j } = s(), { settings: M } = o(k), { t: N } = c(), { pageInfo: P, items: F, networkStatus: I } = A(), L = d(null);
24
+ u(() => {
25
+ O(C);
26
+ }, [C]), u(() => {
27
+ k.fetch({ status: D });
28
+ }, [k, D]);
29
+ let R = F.length === 0, z = g(I);
30
+ return t({
31
+ ref: L,
32
+ callback: l(() => {
33
+ !z && P.after && k.fetchNextPage();
34
+ }, [
35
+ z,
36
+ P,
37
+ k
38
+ ]),
39
+ offset: 70
40
+ }), /* @__PURE__ */ m("div", {
41
+ className: `rnf-notification-feed rnf-notification-feed--${j}`,
42
+ children: [
43
+ w || T({
44
+ setFilterStatus: O,
45
+ filterStatus: D,
46
+ onMarkAllAsReadClick: S
47
+ }),
48
+ /* @__PURE__ */ m("div", {
49
+ className: "rnf-notification-feed__container",
50
+ ref: L,
51
+ children: [
52
+ I === h.loading && E({ colorMode: j }),
53
+ /* @__PURE__ */ p("div", {
54
+ className: "rnf-notification-feed__feed-items-container",
55
+ children: I !== h.loading && F.map((e) => r({
56
+ item: e,
57
+ onItemClick: i,
58
+ onButtonClick: x
59
+ }))
60
+ }),
61
+ I === h.fetchMore && E({ colorMode: j }),
62
+ !z && R && e
63
+ ]
64
+ }),
65
+ M?.features?.branding_required && /* @__PURE__ */ p("div", {
66
+ className: "rnf-notification-feed__knock-branding",
67
+ children: /* @__PURE__ */ p("a", {
68
+ href: b,
69
+ target: "_blank",
70
+ children: N("poweredBy") || "Powered by Knock"
71
+ })
72
+ })
73
+ ]
74
+ });
65
75
  };
66
- export {
67
- te as NotificationFeed
68
- };
69
- //# sourceMappingURL=NotificationFeed.mjs.map
76
+ //#endregion
77
+ export { x as NotificationFeed };
78
+
79
+ //# sourceMappingURL=NotificationFeed.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationFeed.mjs","sources":["../../../../../../src/modules/feed/components/NotificationFeed/NotificationFeed.tsx"],"sourcesContent":["import { FeedItem, NetworkStatus, isRequestInFlight } from \"@knocklabs/client\";\nimport {\n ColorMode,\n FilterStatus,\n useFeedSettings,\n useKnockFeed,\n useTranslations,\n} from \"@knocklabs/react-core\";\nimport { GenericData } from \"@knocklabs/types\";\nimport React, {\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { Spinner } from \"../../../core/components/Spinner\";\nimport useOnBottomScroll from \"../../../core/hooks/useOnBottomScroll\";\nimport { EmptyFeed } from \"../EmptyFeed\";\nimport { NotificationCell, NotificationCellProps } from \"../NotificationCell\";\n\nimport {\n NotificationFeedHeader,\n NotificationFeedHeaderProps,\n} from \"./NotificationFeedHeader\";\nimport \"./styles.css\";\n\nexport type RenderItemProps<T = GenericData> = {\n item: FeedItem<T>;\n onItemClick?: NotificationCellProps[\"onItemClick\"];\n onButtonClick?: NotificationCellProps[\"onButtonClick\"];\n};\n\nexport type RenderItem = (props: RenderItemProps) => ReactNode;\n\nexport type RenderLoadingProps = {\n colorMode: ColorMode;\n};\n\nexport type RenderLoading = (props: RenderLoadingProps) => ReactNode;\n\nexport interface NotificationFeedProps {\n EmptyComponent?: ReactNode;\n /**\n * @deprecated Use `renderHeader` instead to accept `NotificationFeedHeaderProps`\n */\n header?: ReactNode;\n renderItem?: RenderItem;\n renderHeader?: (props: NotificationFeedHeaderProps) => ReactNode;\n onNotificationClick?: NotificationCellProps[\"onItemClick\"];\n onNotificationButtonClick?: NotificationCellProps[\"onButtonClick\"];\n onMarkAllAsReadClick?: (e: React.MouseEvent, unreadItems: FeedItem[]) => void;\n initialFilterStatus?: FilterStatus;\n renderLoading?: RenderLoading;\n}\n\nconst defaultRenderItem = (props: RenderItemProps) => (\n <NotificationCell key={props.item.id} {...props} />\n);\n\nconst defaultRenderHeader = (props: NotificationFeedHeaderProps) => (\n <NotificationFeedHeader {...props} />\n);\n\nconst defaultRenderLoading = ({ colorMode }: RenderLoadingProps) => (\n <div className=\"rnf-notification-feed__spinner-container\">\n <Spinner\n thickness={3}\n size=\"16px\"\n color={colorMode === \"dark\" ? \"rgba(255, 255, 255, 0.65)\" : undefined}\n />\n </div>\n);\n\nconst poweredByKnockUrl =\n \"https://knock.app?utm_source=powered-by-knock&utm_medium=referral&utm_campaign=knock-branding-feed\";\n\nexport const NotificationFeed: React.FC<NotificationFeedProps> = ({\n EmptyComponent = <EmptyFeed />,\n renderItem = defaultRenderItem,\n onNotificationClick,\n onNotificationButtonClick,\n onMarkAllAsReadClick,\n initialFilterStatus = FilterStatus.All,\n header,\n renderHeader = defaultRenderHeader,\n renderLoading = defaultRenderLoading,\n}) => {\n const [status, setStatus] = useState(initialFilterStatus);\n const { feedClient, useFeedStore, colorMode } = useKnockFeed();\n const { settings } = useFeedSettings(feedClient);\n const { t } = useTranslations();\n\n const { pageInfo, items, networkStatus } = useFeedStore();\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setStatus(initialFilterStatus);\n }, [initialFilterStatus]);\n\n useEffect(() => {\n // When the feed client changes, or the status changes issue a re-fetch\n feedClient.fetch({ status });\n }, [feedClient, status]);\n\n const noItems = items.length === 0;\n const requestInFlight = isRequestInFlight(networkStatus);\n\n // Handle fetching more once we reach the bottom of the list\n const onBottomCallback = useCallback(() => {\n if (!requestInFlight && pageInfo.after) {\n feedClient.fetchNextPage();\n }\n }, [requestInFlight, pageInfo, feedClient]);\n\n // Once we scroll to the bottom of the view we want to automatically fetch\n // more items for the feed and bring them into the list\n useOnBottomScroll({\n ref: containerRef,\n callback: onBottomCallback,\n offset: 70,\n });\n\n return (\n <div\n className={`rnf-notification-feed rnf-notification-feed--${colorMode}`}\n >\n {header ||\n renderHeader({\n setFilterStatus: setStatus,\n filterStatus: status,\n onMarkAllAsReadClick,\n })}\n\n <div className=\"rnf-notification-feed__container\" ref={containerRef}>\n {networkStatus === NetworkStatus.loading &&\n renderLoading({ colorMode })}\n\n <div className=\"rnf-notification-feed__feed-items-container\">\n {networkStatus !== NetworkStatus.loading &&\n items.map((item: FeedItem) =>\n renderItem({\n item,\n onItemClick: onNotificationClick,\n onButtonClick: onNotificationButtonClick,\n }),\n )}\n </div>\n\n {networkStatus === NetworkStatus.fetchMore &&\n renderLoading({ colorMode })}\n\n {!requestInFlight && noItems && EmptyComponent}\n </div>\n\n {settings?.features?.branding_required && (\n <div className=\"rnf-notification-feed__knock-branding\">\n <a href={poweredByKnockUrl} target=\"_blank\">\n {t(\"poweredBy\") || \"Powered by Knock\"}\n </a>\n </div>\n )}\n </div>\n );\n};\n"],"names":["defaultRenderItem","props","React","NotificationCell","item","id","defaultRenderHeader","NotificationFeedHeader","defaultRenderLoading","colorMode","Spinner","undefined","poweredByKnockUrl","NotificationFeed","EmptyComponent","EmptyFeed","renderItem","onNotificationClick","onNotificationButtonClick","onMarkAllAsReadClick","initialFilterStatus","FilterStatus","All","header","renderHeader","renderLoading","status","setStatus","useState","feedClient","useFeedStore","useKnockFeed","settings","useFeedSettings","t","useTranslations","pageInfo","items","networkStatus","containerRef","useRef","useEffect","fetch","noItems","length","requestInFlight","isRequestInFlight","onBottomCallback","useCallback","after","fetchNextPage","useOnBottomScroll","ref","callback","offset","setFilterStatus","filterStatus","NetworkStatus","loading","map","onItemClick","onButtonClick","fetchMore","features","branding_required"],"mappings":";;;;;;;;;;AAyDA,MAAMA,IAAoBA,CAACC,MACxBC,gBAAAA,EAAA,cAAAC,GAAA,EAAiB,KAAKF,EAAMG,KAAKC,IAAI,GAAIJ,EAC3C,CAAA,GAEKK,IAAsBA,CAACL,MAC1BC,gBAAAA,EAAA,cAAAK,GAAA,EAA2BN,GAAAA,GAC7B,GAEKO,IAAuBA,CAAC;AAAA,EAAEC,WAAAA;AAA8B,MAC3DP,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,2CAAA,mCACZQ,GACC,EAAA,WAAW,GACX,MAAK,QACL,OAAOD,MAAc,SAAS,8BAA8BE,QAAU,CAE1E,GAGIC,IACJ,sGAEWC,KAAoDA,CAAC;AAAA,EAChEC,gBAAAA,oCAAkBC,GAAY,IAAA;AAAA,EAC9BC,YAAAA,IAAahB;AAAAA,EACbiB,qBAAAA;AAAAA,EACAC,2BAAAA;AAAAA,EACAC,sBAAAA;AAAAA,EACAC,qBAAAA,IAAsBC,EAAaC;AAAAA,EACnCC,QAAAA;AAAAA,EACAC,cAAAA,IAAelB;AAAAA,EACfmB,eAAAA,IAAgBjB;AAClB,MAAM;;AACJ,QAAM,CAACkB,GAAQC,CAAS,IAAIC,EAASR,CAAmB,GAClD;AAAA,IAAES,YAAAA;AAAAA,IAAYC,cAAAA;AAAAA,IAAcrB,WAAAA;AAAAA,MAAcsB,EAAa,GACvD;AAAA,IAAEC,UAAAA;AAAAA,EAAAA,IAAaC,EAAgBJ,CAAU,GACzC;AAAA,IAAEK,GAAAA;AAAAA,MAAMC,EAAgB,GAExB;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,OAAAA;AAAAA,IAAOC,eAAAA;AAAAA,MAAkBR,EAAa,GAClDS,IAAeC,EAAuB,IAAI;AAEhDC,EAAAA,EAAU,MAAM;AACdd,IAAAA,EAAUP,CAAmB;AAAA,EAAA,GAC5B,CAACA,CAAmB,CAAC,GAExBqB,EAAU,MAAM;AAEdZ,IAAAA,EAAWa,MAAM;AAAA,MAAEhB,QAAAA;AAAAA,IAAAA,CAAQ;AAAA,EAAA,GAC1B,CAACG,GAAYH,CAAM,CAAC;AAEjBiB,QAAAA,IAAUN,EAAMO,WAAW,GAC3BC,IAAkBC,EAAkBR,CAAa,GAGjDS,IAAmBC,EAAY,MAAM;AACrC,IAAA,CAACH,KAAmBT,EAASa,SAC/BpB,EAAWqB,cAAc;AAAA,EAE1B,GAAA,CAACL,GAAiBT,GAAUP,CAAU,CAAC;AAIxB,SAAAsB,EAAA;AAAA,IAChBC,KAAKb;AAAAA,IACLc,UAAUN;AAAAA,IACVO,QAAQ;AAAA,EAAA,CACT,mCAGE,OACC,EAAA,WAAW,gDAAgD7C,CAAS,MAEnEc,KACCC,EAAa;AAAA,IACX+B,iBAAiB5B;AAAAA,IACjB6B,cAAc9B;AAAAA,IACdP,sBAAAA;AAAAA,EACD,CAAA,GAEHjB,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,oCAAmC,KAAKqC,EACpDD,GAAAA,MAAkBmB,EAAcC,WAC/BjC,EAAc;AAAA,IAAEhB,WAAAA;AAAAA,EAAAA,CAAW,GAE5BP,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,8CAAA,GACZoC,MAAkBmB,EAAcC,WAC/BrB,EAAMsB,IAAI,CAACvD,MACTY,EAAW;AAAA,IACTZ,MAAAA;AAAAA,IACAwD,aAAa3C;AAAAA,IACb4C,eAAe3C;AAAAA,EAChB,CAAA,CACH,CACJ,GAECoB,MAAkBmB,EAAcK,aAC/BrC,EAAc;AAAA,IAAEhB,WAAAA;AAAAA,EAAW,CAAA,GAE5B,CAACoC,KAAmBF,KAAW7B,CAClC,KAECkB,IAAAA,KAAAA,gBAAAA,EAAU+B,aAAV/B,gBAAAA,EAAoBgC,sBAClB9D,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,2CACbA,gBAAAA,EAAA,cAAC,KAAE,EAAA,MAAMU,GAAmB,QAAO,SAChCsB,GAAAA,EAAE,WAAW,KAAK,kBACrB,CACF,CAEJ;AAEJ;"}
1
+ {"version":3,"file":"NotificationFeed.mjs","names":[],"sources":["../../../../../../src/modules/feed/components/NotificationFeed/NotificationFeed.tsx"],"sourcesContent":["import { FeedItem, NetworkStatus, isRequestInFlight } from \"@knocklabs/client\";\nimport {\n ColorMode,\n FilterStatus,\n useFeedSettings,\n useKnockFeed,\n useTranslations,\n} from \"@knocklabs/react-core\";\nimport { GenericData } from \"@knocklabs/types\";\nimport React, {\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { Spinner } from \"../../../core/components/Spinner\";\nimport useOnBottomScroll from \"../../../core/hooks/useOnBottomScroll\";\nimport { EmptyFeed } from \"../EmptyFeed\";\nimport { NotificationCell, NotificationCellProps } from \"../NotificationCell\";\n\nimport {\n NotificationFeedHeader,\n NotificationFeedHeaderProps,\n} from \"./NotificationFeedHeader\";\nimport \"./styles.css\";\n\nexport type RenderItemProps<T = GenericData> = {\n item: FeedItem<T>;\n onItemClick?: NotificationCellProps[\"onItemClick\"];\n onButtonClick?: NotificationCellProps[\"onButtonClick\"];\n};\n\nexport type RenderItem = (props: RenderItemProps) => ReactNode;\n\nexport type RenderLoadingProps = {\n colorMode: ColorMode;\n};\n\nexport type RenderLoading = (props: RenderLoadingProps) => ReactNode;\n\nexport interface NotificationFeedProps {\n EmptyComponent?: ReactNode;\n /**\n * @deprecated Use `renderHeader` instead to accept `NotificationFeedHeaderProps`\n */\n header?: ReactNode;\n renderItem?: RenderItem;\n renderHeader?: (props: NotificationFeedHeaderProps) => ReactNode;\n onNotificationClick?: NotificationCellProps[\"onItemClick\"];\n onNotificationButtonClick?: NotificationCellProps[\"onButtonClick\"];\n onMarkAllAsReadClick?: (e: React.MouseEvent, unreadItems: FeedItem[]) => void;\n initialFilterStatus?: FilterStatus;\n renderLoading?: RenderLoading;\n}\n\nconst defaultRenderItem = (props: RenderItemProps) => (\n <NotificationCell key={props.item.id} {...props} />\n);\n\nconst defaultRenderHeader = (props: NotificationFeedHeaderProps) => (\n <NotificationFeedHeader {...props} />\n);\n\nconst defaultRenderLoading = ({ colorMode }: RenderLoadingProps) => (\n <div className=\"rnf-notification-feed__spinner-container\">\n <Spinner\n thickness={3}\n size=\"16px\"\n color={colorMode === \"dark\" ? \"rgba(255, 255, 255, 0.65)\" : undefined}\n />\n </div>\n);\n\nconst poweredByKnockUrl =\n \"https://knock.app?utm_source=powered-by-knock&utm_medium=referral&utm_campaign=knock-branding-feed\";\n\nexport const NotificationFeed: React.FC<NotificationFeedProps> = ({\n EmptyComponent = <EmptyFeed />,\n renderItem = defaultRenderItem,\n onNotificationClick,\n onNotificationButtonClick,\n onMarkAllAsReadClick,\n initialFilterStatus = FilterStatus.All,\n header,\n renderHeader = defaultRenderHeader,\n renderLoading = defaultRenderLoading,\n}) => {\n const [status, setStatus] = useState(initialFilterStatus);\n const { feedClient, useFeedStore, colorMode } = useKnockFeed();\n const { settings } = useFeedSettings(feedClient);\n const { t } = useTranslations();\n\n const { pageInfo, items, networkStatus } = useFeedStore();\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n setStatus(initialFilterStatus);\n }, [initialFilterStatus]);\n\n useEffect(() => {\n // When the feed client changes, or the status changes issue a re-fetch\n feedClient.fetch({ status });\n }, [feedClient, status]);\n\n const noItems = items.length === 0;\n const requestInFlight = isRequestInFlight(networkStatus);\n\n // Handle fetching more once we reach the bottom of the list\n const onBottomCallback = useCallback(() => {\n if (!requestInFlight && pageInfo.after) {\n feedClient.fetchNextPage();\n }\n }, [requestInFlight, pageInfo, feedClient]);\n\n // Once we scroll to the bottom of the view we want to automatically fetch\n // more items for the feed and bring them into the list\n useOnBottomScroll({\n ref: containerRef,\n callback: onBottomCallback,\n offset: 70,\n });\n\n return (\n <div\n className={`rnf-notification-feed rnf-notification-feed--${colorMode}`}\n >\n {header ||\n renderHeader({\n setFilterStatus: setStatus,\n filterStatus: status,\n onMarkAllAsReadClick,\n })}\n\n <div className=\"rnf-notification-feed__container\" ref={containerRef}>\n {networkStatus === NetworkStatus.loading &&\n renderLoading({ colorMode })}\n\n <div className=\"rnf-notification-feed__feed-items-container\">\n {networkStatus !== NetworkStatus.loading &&\n items.map((item: FeedItem) =>\n renderItem({\n item,\n onItemClick: onNotificationClick,\n onButtonClick: onNotificationButtonClick,\n }),\n )}\n </div>\n\n {networkStatus === NetworkStatus.fetchMore &&\n renderLoading({ colorMode })}\n\n {!requestInFlight && noItems && EmptyComponent}\n </div>\n\n {settings?.features?.branding_required && (\n <div className=\"rnf-notification-feed__knock-branding\">\n <a href={poweredByKnockUrl} target=\"_blank\">\n {t(\"poweredBy\") || \"Powered by Knock\"}\n </a>\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAyDA,IAAM,KAAqB,MACzB,kBAAC,GAAD,EAAsC,GAAI,EAAQ,GAA3B,EAAM,KAAK,EAAgB,GAG9C,KAAuB,MAC3B,kBAAC,GAAD,EAAwB,GAAI,EAAQ,CAAA,GAGhC,KAAwB,EAAE,mBAC9B,kBAAC,OAAD;CAAK,WAAU;WACb,kBAAC,GAAD;EACE,WAAW;EACX,MAAK;EACL,OAAO,MAAc,SAAS,8BAA8B,KAAA;CAC7D,CAAA;AACE,CAAA,GAGD,IACJ,sGAEW,KAAqD,EAChE,oBAAiB,kBAAC,GAAD,CAAY,CAAA,GAC7B,gBAAa,GACb,wBACA,8BACA,yBACA,yBAAsB,EAAa,KACnC,WACA,kBAAe,GACf,mBAAgB,QACZ;CACJ,IAAM,CAAC,GAAQ,KAAa,EAAS,CAAmB,GAClD,EAAE,eAAY,iBAAc,iBAAc,EAAa,GACvD,EAAE,gBAAa,EAAgB,CAAU,GACzC,EAAE,SAAM,EAAgB,GAExB,EAAE,aAAU,UAAO,qBAAkB,EAAa,GAClD,IAAe,EAAuB,IAAI;CAMhD,AAJA,QAAgB;EACd,EAAU,CAAmB;CAC/B,GAAG,CAAC,CAAmB,CAAC,GAExB,QAAgB;EAEd,EAAW,MAAM,EAAE,UAAO,CAAC;CAC7B,GAAG,CAAC,GAAY,CAAM,CAAC;CAEvB,IAAM,IAAU,EAAM,WAAW,GAC3B,IAAkB,EAAkB,CAAa;CAiBvD,OANA,EAAkB;EAChB,KAAK;EACL,UAVuB,QAAkB;GACzC,AAAI,CAAC,KAAmB,EAAS,SAC/B,EAAW,cAAc;EAE7B,GAAG;GAAC;GAAiB;GAAU;EAAU,CAM7B;EACV,QAAQ;CACV,CAAC,GAGC,kBAAC,OAAD;EACE,WAAW,gDAAgD;YAD7D;GAGG,KACC,EAAa;IACX,iBAAiB;IACjB,cAAc;IACd;GACF,CAAC;GAEH,kBAAC,OAAD;IAAK,WAAU;IAAmC,KAAK;cAAvD;KACG,MAAkB,EAAc,WAC/B,EAAc,EAAE,aAAU,CAAC;KAE7B,kBAAC,OAAD;MAAK,WAAU;gBACZ,MAAkB,EAAc,WAC/B,EAAM,KAAK,MACT,EAAW;OACT;OACA,aAAa;OACb,eAAe;MACjB,CAAC,CACH;KACC,CAAA;KAEJ,MAAkB,EAAc,aAC/B,EAAc,EAAE,aAAU,CAAC;KAE5B,CAAC,KAAmB,KAAW;IAC7B;;GAEJ,GAAU,UAAU,qBACnB,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,KAAD;KAAG,MAAM;KAAmB,QAAO;eAChC,EAAE,WAAW,KAAK;IAClB,CAAA;GACA,CAAA;EAEJ;;AAET"}
@@ -1,18 +1,34 @@
1
- import { FilterStatus as a, useTranslations as c } from "@knocklabs/react-core";
2
- import e from "react";
3
- import { Dropdown as l } from "./Dropdown.mjs";
4
- import { MarkAsRead as m } from "./MarkAsRead.mjs";
5
- const s = [a.All, a.Unread, a.Read], u = ({
6
- onMarkAllAsReadClick: r,
7
- filterStatus: o,
8
- setFilterStatus: i
9
- }) => {
10
- const {
11
- t: n
12
- } = c();
13
- return /* @__PURE__ */ e.createElement("header", { className: "rnf-notification-feed__header" }, /* @__PURE__ */ e.createElement("div", { className: "rnf-notification-feed__selector" }, /* @__PURE__ */ e.createElement("span", { className: "rnf-notification-feed__type" }, n("notifications")), /* @__PURE__ */ e.createElement(l, { value: o, onChange: (t) => i(t.target.value) }, s.map((t) => /* @__PURE__ */ e.createElement("option", { key: t, value: t }, n(t))))), /* @__PURE__ */ e.createElement(m, { onClick: r }));
1
+ import { Dropdown as e } from "./Dropdown.mjs";
2
+ import { MarkAsRead as t } from "./MarkAsRead.mjs";
3
+ import { FilterStatus as n, useTranslations as r } from "@knocklabs/react-core";
4
+ import "react";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/modules/feed/components/NotificationFeed/NotificationFeedHeader.tsx
7
+ var o = [
8
+ n.All,
9
+ n.Unread,
10
+ n.Read
11
+ ], s = ({ onMarkAllAsReadClick: n, filterStatus: s, setFilterStatus: c }) => {
12
+ let { t: l } = r();
13
+ return /* @__PURE__ */ a("header", {
14
+ className: "rnf-notification-feed__header",
15
+ children: [/* @__PURE__ */ a("div", {
16
+ className: "rnf-notification-feed__selector",
17
+ children: [/* @__PURE__ */ i("span", {
18
+ className: "rnf-notification-feed__type",
19
+ children: l("notifications")
20
+ }), /* @__PURE__ */ i(e, {
21
+ value: s,
22
+ onChange: (e) => c(e.target.value),
23
+ children: o.map((e) => /* @__PURE__ */ i("option", {
24
+ value: e,
25
+ children: l(e)
26
+ }, e))
27
+ })]
28
+ }), /* @__PURE__ */ i(t, { onClick: n })]
29
+ });
14
30
  };
15
- export {
16
- u as NotificationFeedHeader
17
- };
18
- //# sourceMappingURL=NotificationFeedHeader.mjs.map
31
+ //#endregion
32
+ export { s as NotificationFeedHeader };
33
+
34
+ //# sourceMappingURL=NotificationFeedHeader.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationFeedHeader.mjs","sources":["../../../../../../src/modules/feed/components/NotificationFeed/NotificationFeedHeader.tsx"],"sourcesContent":["import { FeedItem } from \"@knocklabs/client\";\nimport { FilterStatus, useTranslations } from \"@knocklabs/react-core\";\nimport React, { SetStateAction } from \"react\";\n\nimport { Dropdown } from \"./Dropdown\";\nimport { MarkAsRead } from \"./MarkAsRead\";\n\nexport type NotificationFeedHeaderProps = {\n filterStatus: FilterStatus;\n setFilterStatus: React.Dispatch<SetStateAction<FilterStatus>>;\n onMarkAllAsReadClick?: (e: React.MouseEvent, unreadItems: FeedItem[]) => void;\n};\n\nconst OrderedFilterStatuses = [\n FilterStatus.All,\n FilterStatus.Unread,\n FilterStatus.Read,\n];\n\nexport const NotificationFeedHeader: React.FC<NotificationFeedHeaderProps> = ({\n onMarkAllAsReadClick,\n filterStatus,\n setFilterStatus,\n}) => {\n const { t } = useTranslations();\n\n return (\n <header className=\"rnf-notification-feed__header\">\n <div className=\"rnf-notification-feed__selector\">\n <span className=\"rnf-notification-feed__type\">\n {t(\"notifications\")}\n </span>\n <Dropdown\n value={filterStatus}\n onChange={(e) => setFilterStatus(e.target.value as FilterStatus)}\n >\n {OrderedFilterStatuses.map((filterStatus) => (\n <option key={filterStatus} value={filterStatus}>\n {t(filterStatus)}\n </option>\n ))}\n </Dropdown>\n </div>\n <MarkAsRead onClick={onMarkAllAsReadClick} />\n </header>\n );\n};\n"],"names":["OrderedFilterStatuses","FilterStatus","All","Unread","Read","NotificationFeedHeader","onMarkAllAsReadClick","filterStatus","setFilterStatus","t","useTranslations","React","Dropdown","e","target","value","map","MarkAsRead"],"mappings":";;;;AAaA,MAAMA,IAAwB,CAC5BC,EAAaC,KACbD,EAAaE,QACbF,EAAaG,IAAI,GAGNC,IAAgEA,CAAC;AAAA,EAC5EC,sBAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,iBAAAA;AACF,MAAM;AACE,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB;AAG5B,SAAAC,gBAAAA,EAAA,cAAC,YAAO,WAAU,gCAAA,mCACf,OAAI,EAAA,WAAU,kCACb,GAAAA,gBAAAA,EAAA,cAAC,QAAK,EAAA,WAAU,iCACbF,EAAE,eAAe,CACpB,GACAE,gBAAAA,EAAA,cAACC,KACC,OAAOL,GACP,UAAWM,CAAAA,MAAML,EAAgBK,EAAEC,OAAOC,KAAqB,EAAA,GAE9Df,EAAsBgB,IAAKT,CAAAA,MACzBI,gBAAAA,EAAA,cAAA,UAAA,EAAO,KAAKJ,GAAc,OAAOA,EAAAA,GAC/BE,EAAEF,CAAY,CACjB,CACD,CACH,CACF,GACCI,gBAAAA,EAAA,cAAAM,GAAA,EAAW,SAASX,EAAqB,CAAA,CAC5C;AAEJ;"}
1
+ {"version":3,"file":"NotificationFeedHeader.mjs","names":[],"sources":["../../../../../../src/modules/feed/components/NotificationFeed/NotificationFeedHeader.tsx"],"sourcesContent":["import { FeedItem } from \"@knocklabs/client\";\nimport { FilterStatus, useTranslations } from \"@knocklabs/react-core\";\nimport React, { SetStateAction } from \"react\";\n\nimport { Dropdown } from \"./Dropdown\";\nimport { MarkAsRead } from \"./MarkAsRead\";\n\nexport type NotificationFeedHeaderProps = {\n filterStatus: FilterStatus;\n setFilterStatus: React.Dispatch<SetStateAction<FilterStatus>>;\n onMarkAllAsReadClick?: (e: React.MouseEvent, unreadItems: FeedItem[]) => void;\n};\n\nconst OrderedFilterStatuses = [\n FilterStatus.All,\n FilterStatus.Unread,\n FilterStatus.Read,\n];\n\nexport const NotificationFeedHeader: React.FC<NotificationFeedHeaderProps> = ({\n onMarkAllAsReadClick,\n filterStatus,\n setFilterStatus,\n}) => {\n const { t } = useTranslations();\n\n return (\n <header className=\"rnf-notification-feed__header\">\n <div className=\"rnf-notification-feed__selector\">\n <span className=\"rnf-notification-feed__type\">\n {t(\"notifications\")}\n </span>\n <Dropdown\n value={filterStatus}\n onChange={(e) => setFilterStatus(e.target.value as FilterStatus)}\n >\n {OrderedFilterStatuses.map((filterStatus) => (\n <option key={filterStatus} value={filterStatus}>\n {t(filterStatus)}\n </option>\n ))}\n </Dropdown>\n </div>\n <MarkAsRead onClick={onMarkAllAsReadClick} />\n </header>\n );\n};\n"],"mappings":";;;;;;AAaA,IAAM,IAAwB;CAC5B,EAAa;CACb,EAAa;CACb,EAAa;AACf,GAEa,KAAiE,EAC5E,yBACA,iBACA,yBACI;CACJ,IAAM,EAAE,SAAM,EAAgB;CAE9B,OACE,kBAAC,UAAD;EAAQ,WAAU;YAAlB,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,QAAD;IAAM,WAAU;cACb,EAAE,eAAe;GACd,CAAA,GACN,kBAAC,GAAD;IACE,OAAO;IACP,WAAW,MAAM,EAAgB,EAAE,OAAO,KAAqB;cAE9D,EAAsB,KAAK,MAC1B,kBAAC,UAAD;KAA2B,OAAO;eAC/B,EAAE,CAAY;IACT,GAFK,CAEL,CACT;GACO,CAAA,CACP;MACL,kBAAC,GAAD,EAAY,SAAS,EAAuB,CAAA,CACtC;;AAEZ"}
@@ -0,0 +1,4 @@
1
+ import { MarkAsRead as e } from "./MarkAsRead.mjs";
2
+ import { NotificationFeedHeader as t } from "./NotificationFeedHeader.mjs";
3
+ import { NotificationFeed as n } from "./NotificationFeed.mjs";
4
+ export { e as MarkAsRead, n as NotificationFeed, t as NotificationFeedHeader };
@@ -1,9 +1,11 @@
1
- import t from "react";
2
- /* empty css */
3
- const i = ({
4
- children: e
5
- }) => /* @__PURE__ */ t.createElement("div", { className: "rnf-feed-provider" }, e);
6
- export {
7
- i as NotificationFeedContainer
8
- };
9
- //# sourceMappingURL=NotificationFeedContainer.mjs.map
1
+ /* empty css */
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ //#region src/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.tsx
4
+ var t = ({ children: t }) => /* @__PURE__ */ e("div", {
5
+ className: "rnf-feed-provider",
6
+ children: t
7
+ });
8
+ //#endregion
9
+ export { t as NotificationFeedContainer };
10
+
11
+ //# sourceMappingURL=NotificationFeedContainer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationFeedContainer.mjs","sources":["../../../../../../src/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.tsx"],"sourcesContent":["import { FunctionComponent, ReactNode } from \"react\";\n\nimport \"./styles.css\";\n\nexport const NotificationFeedContainer: FunctionComponent<{\n children?: ReactNode | undefined;\n}> = ({ children }) => <div className=\"rnf-feed-provider\">{children}</div>;\n"],"names":["NotificationFeedContainer","children","React"],"mappings":";;AAIO,MAAMA,IAERA,CAAC;AAAA,EAAEC,UAAAA;AAAS,MAAOC,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,oBAAA,GAAqBD,CAAS;"}
1
+ {"version":3,"file":"NotificationFeedContainer.mjs","names":[],"sources":["../../../../../../src/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.tsx"],"sourcesContent":["import { FunctionComponent, ReactNode } from \"react\";\n\nimport \"./styles.css\";\n\nexport const NotificationFeedContainer: FunctionComponent<{\n children?: ReactNode | undefined;\n}> = ({ children }) => <div className=\"rnf-feed-provider\">{children}</div>;\n"],"mappings":";;;AAIA,IAAa,KAEP,EAAE,kBAAe,kBAAC,OAAD;CAAK,WAAU;CAAqB;AAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { NotificationFeedContainer as e } from "./NotificationFeedContainer.mjs";
2
+ export { e as NotificationFeedContainer };
@@ -1,66 +1,63 @@
1
- import { useTranslations as E, useKnockFeed as _ } from "@knocklabs/react-core";
2
- import { createPopper as g } from "@popperjs/core";
3
- import i, { useEffect as p } from "react";
4
- import F from "../../../core/hooks/useComponentVisible.mjs";
5
- import { NotificationFeed as N } from "../NotificationFeed/NotificationFeed.mjs";
6
- import "../NotificationFeed/NotificationFeedHeader.mjs";
7
- /* empty css */
8
- /* empty css */
9
- const x = ({
10
- store: e,
11
- feedClient: t
12
- }) => {
13
- e.metadata.unseen_count > 0 && t.markAllAsSeen();
14
- }, M = ({
15
- isVisible: e,
16
- onOpen: t = x,
17
- onClose: m,
18
- buttonRef: r,
19
- closeOnClickOutside: d = !0,
20
- placement: a = "bottom-end",
21
- ...l
22
- }) => {
23
- const {
24
- t: u
25
- } = E(), {
26
- colorMode: v,
27
- feedClient: f,
28
- useFeedStore: y
29
- } = _(), c = y(), {
30
- ref: n
31
- } = F(e, (o) => {
32
- var s;
33
- o.target instanceof Element && ((s = r.current) != null && s.contains(o.target)) || m(o);
34
- }, {
35
- closeOnClickOutside: d
36
- });
37
- return p(() => {
38
- e && t && t({
39
- store: c,
40
- feedClient: f
41
- });
42
- }, [e, t, c, f]), p(() => {
43
- if (r.current && n.current) {
44
- const o = g(r.current, n.current, {
45
- strategy: "fixed",
46
- placement: a,
47
- modifiers: [{
48
- name: "offset",
49
- options: {
50
- offset: [0, 8]
51
- }
52
- }]
53
- });
54
- return () => {
55
- o.destroy();
56
- };
57
- }
58
- }, [r, n, a]), /* @__PURE__ */ i.createElement("div", { className: `rnf-notification-feed-popover rnf-notification-feed-popover--${v}`, style: {
59
- visibility: e ? "visible" : "hidden",
60
- opacity: e ? 1 : 0
61
- }, ref: n, role: "dialog", "aria-label": u("notifications"), tabIndex: -1 }, /* @__PURE__ */ i.createElement("div", { className: "rnf-notification-feed-popover__inner" }, /* @__PURE__ */ i.createElement(N, { ...l })));
1
+ import { NotificationFeed as e } from "../NotificationFeed/NotificationFeed.mjs";
2
+ import "../NotificationFeed/index.mjs";
3
+ import t from "../../../core/hooks/useComponentVisible.mjs";
4
+ /* empty css */
5
+ import { useKnockFeed as n, useTranslations as r } from "@knocklabs/react-core";
6
+ import { useEffect as i } from "react";
7
+ import { jsx as a } from "react/jsx-runtime";
8
+ import { createPopper as o } from "@popperjs/core";
9
+ //#region src/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.tsx
10
+ var s = ({ store: e, feedClient: t }) => {
11
+ e.metadata.unseen_count > 0 && t.markAllAsSeen();
12
+ }, c = ({ isVisible: c, onOpen: l = s, onClose: u, buttonRef: d, closeOnClickOutside: f = !0, placement: p = "bottom-end", ...m }) => {
13
+ let { t: h } = r(), { colorMode: g, feedClient: _, useFeedStore: v } = n(), y = v(), { ref: b } = t(c, (e) => {
14
+ e.target instanceof Element && d.current?.contains(e.target) || u(e);
15
+ }, { closeOnClickOutside: f });
16
+ return i(() => {
17
+ c && l && l({
18
+ store: y,
19
+ feedClient: _
20
+ });
21
+ }, [
22
+ c,
23
+ l,
24
+ y,
25
+ _
26
+ ]), i(() => {
27
+ if (d.current && b.current) {
28
+ let e = o(d.current, b.current, {
29
+ strategy: "fixed",
30
+ placement: p,
31
+ modifiers: [{
32
+ name: "offset",
33
+ options: { offset: [0, 8] }
34
+ }]
35
+ });
36
+ return () => {
37
+ e.destroy();
38
+ };
39
+ }
40
+ }, [
41
+ d,
42
+ b,
43
+ p
44
+ ]), /* @__PURE__ */ a("div", {
45
+ className: `rnf-notification-feed-popover rnf-notification-feed-popover--${g}`,
46
+ style: {
47
+ visibility: c ? "visible" : "hidden",
48
+ opacity: +!!c
49
+ },
50
+ ref: b,
51
+ role: "dialog",
52
+ "aria-label": h("notifications"),
53
+ tabIndex: -1,
54
+ children: /* @__PURE__ */ a("div", {
55
+ className: "rnf-notification-feed-popover__inner",
56
+ children: /* @__PURE__ */ a(e, { ...m })
57
+ })
58
+ });
62
59
  };
63
- export {
64
- M as NotificationFeedPopover
65
- };
66
- //# sourceMappingURL=NotificationFeedPopover.mjs.map
60
+ //#endregion
61
+ export { c as NotificationFeedPopover };
62
+
63
+ //# sourceMappingURL=NotificationFeedPopover.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationFeedPopover.mjs","sources":["../../../../../../src/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.tsx"],"sourcesContent":["import { Feed, FeedStoreState } from \"@knocklabs/client\";\nimport { useKnockFeed, useTranslations } from \"@knocklabs/react-core\";\nimport { Placement, createPopper } from \"@popperjs/core\";\nimport React, { RefObject, useEffect } from \"react\";\n\nimport useComponentVisible from \"../../../core/hooks/useComponentVisible\";\nimport { NotificationFeed, NotificationFeedProps } from \"../NotificationFeed\";\n\nimport \"./styles.css\";\n\ntype OnOpenOptions = {\n store: FeedStoreState;\n feedClient: Feed;\n};\n\nconst defaultOnOpen = ({ store, feedClient }: OnOpenOptions) => {\n if (store.metadata.unseen_count > 0) {\n feedClient.markAllAsSeen();\n }\n};\n\nexport interface NotificationFeedPopoverProps extends NotificationFeedProps {\n isVisible: boolean;\n onOpen?: (arg: OnOpenOptions) => void;\n onClose: (e: Event) => void;\n buttonRef: RefObject<HTMLElement | null>;\n closeOnClickOutside?: boolean;\n placement?: Placement;\n}\n\nexport const NotificationFeedPopover: React.FC<\n NotificationFeedPopoverProps\n> = ({\n isVisible,\n onOpen = defaultOnOpen,\n onClose,\n buttonRef,\n closeOnClickOutside = true,\n placement = \"bottom-end\",\n ...feedProps\n}) => {\n const { t } = useTranslations();\n const { colorMode, feedClient, useFeedStore } = useKnockFeed();\n const store = useFeedStore();\n\n const { ref: popperRef } = useComponentVisible(\n isVisible,\n (event) => {\n // If the button is clicked, let that onClick handler handle the close\n if (\n event.target instanceof Element &&\n buttonRef.current?.contains(event.target)\n ) {\n return;\n }\n onClose(event);\n },\n {\n closeOnClickOutside,\n },\n );\n\n useEffect(() => {\n // Whenever the feed is opened, we want to invoke the `onOpen` callback\n // function to handle any side effects.\n if (isVisible && onOpen) {\n onOpen({ store, feedClient });\n }\n }, [isVisible, onOpen, store, feedClient]);\n\n useEffect(() => {\n if (buttonRef.current && popperRef.current) {\n const popperInstance = createPopper(\n buttonRef.current,\n popperRef.current,\n {\n strategy: \"fixed\",\n placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 8],\n },\n },\n ],\n },\n );\n\n // Cleanup\n return () => {\n popperInstance.destroy();\n };\n }\n }, [buttonRef, popperRef, placement]);\n\n return (\n <div\n className={`rnf-notification-feed-popover rnf-notification-feed-popover--${colorMode}`}\n style={{\n visibility: isVisible ? \"visible\" : \"hidden\",\n opacity: isVisible ? 1 : 0,\n }}\n ref={popperRef}\n role=\"dialog\"\n aria-label={t(\"notifications\")}\n tabIndex={-1}\n >\n <div className=\"rnf-notification-feed-popover__inner\">\n <NotificationFeed {...feedProps} />\n </div>\n </div>\n );\n};\n"],"names":["defaultOnOpen","store","feedClient","metadata","unseen_count","markAllAsSeen","NotificationFeedPopover","isVisible","onOpen","onClose","buttonRef","closeOnClickOutside","placement","feedProps","t","useTranslations","colorMode","useFeedStore","useKnockFeed","ref","popperRef","useComponentVisible","event","target","Element","current","contains","useEffect","popperInstance","createPopper","strategy","modifiers","name","options","offset","destroy","visibility","opacity","React","NotificationFeed"],"mappings":";;;;;;;;AAeA,MAAMA,IAAgBA,CAAC;AAAA,EAAEC,OAAAA;AAAAA,EAAOC,YAAAA;AAA0B,MAAM;AAC1DD,EAAAA,EAAME,SAASC,eAAe,KAChCF,EAAWG,cAAc;AAE7B,GAWaC,IAETA,CAAC;AAAA,EACHC,WAAAA;AAAAA,EACAC,QAAAA,IAASR;AAAAA,EACTS,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,qBAAAA,IAAsB;AAAA,EACtBC,WAAAA,IAAY;AAAA,EACZ,GAAGC;AACL,MAAM;AACE,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB,GACxB;AAAA,IAAEC,WAAAA;AAAAA,IAAWd,YAAAA;AAAAA,IAAYe,cAAAA;AAAAA,MAAiBC,EAAa,GACvDjB,IAAQgB,EAAa,GAErB;AAAA,IAAEE,KAAKC;AAAAA,EAAAA,IAAcC,EACzBd,GACCe,CAAUA,MAAA;;AAGPA,IAAAA,EAAMC,kBAAkBC,aACxBd,IAAAA,EAAUe,YAAVf,QAAAA,EAAmBgB,SAASJ,EAAMC,YAIpCd,EAAQa,CAAK;AAAA,EAAA,GAEf;AAAA,IACEX,qBAAAA;AAAAA,EAAAA,CAEJ;AAEAgB,SAAAA,EAAU,MAAM;AAGd,IAAIpB,KAAaC,KACRA,EAAA;AAAA,MAAEP,OAAAA;AAAAA,MAAOC,YAAAA;AAAAA,IAAAA,CAAY;AAAA,KAE7B,CAACK,GAAWC,GAAQP,GAAOC,CAAU,CAAC,GAEzCyB,EAAU,MAAM;AACVjB,QAAAA,EAAUe,WAAWL,EAAUK,SAAS;AAC1C,YAAMG,IAAiBC,EACrBnB,EAAUe,SACVL,EAAUK,SACV;AAAA,QACEK,UAAU;AAAA,QACVlB,WAAAA;AAAAA,QACAmB,WAAW,CACT;AAAA,UACEC,MAAM;AAAA,UACNC,SAAS;AAAA,YACPC,QAAQ,CAAC,GAAG,CAAC;AAAA,UAAA;AAAA,QAEhB,CAAA;AAAA,MAAA,CAGP;AAGA,aAAO,MAAM;AACXN,QAAAA,EAAeO,QAAQ;AAAA,MACzB;AAAA,IAAA;AAAA,EAED,GAAA,CAACzB,GAAWU,GAAWR,CAAS,CAAC,mCAGjC,OACC,EAAA,WAAW,gEAAgEI,CAAS,IACpF,OAAO;AAAA,IACLoB,YAAY7B,IAAY,YAAY;AAAA,IACpC8B,SAAS9B,IAAY,IAAI;AAAA,EAC3B,GACA,KAAKa,GACL,MAAK,UACL,cAAYN,EAAE,eAAe,GAC7B,UAAU,MAETwB,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,0CACbA,gBAAAA,EAAA,cAACC,KAAiB,GAAI1B,EAAAA,CAAU,CAClC,CACF;AAEJ;"}
1
+ {"version":3,"file":"NotificationFeedPopover.mjs","names":[],"sources":["../../../../../../src/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.tsx"],"sourcesContent":["import { Feed, FeedStoreState } from \"@knocklabs/client\";\nimport { useKnockFeed, useTranslations } from \"@knocklabs/react-core\";\nimport { Placement, createPopper } from \"@popperjs/core\";\nimport React, { RefObject, useEffect } from \"react\";\n\nimport useComponentVisible from \"../../../core/hooks/useComponentVisible\";\nimport { NotificationFeed, NotificationFeedProps } from \"../NotificationFeed\";\n\nimport \"./styles.css\";\n\ntype OnOpenOptions = {\n store: FeedStoreState;\n feedClient: Feed;\n};\n\nconst defaultOnOpen = ({ store, feedClient }: OnOpenOptions) => {\n if (store.metadata.unseen_count > 0) {\n feedClient.markAllAsSeen();\n }\n};\n\nexport interface NotificationFeedPopoverProps extends NotificationFeedProps {\n isVisible: boolean;\n onOpen?: (arg: OnOpenOptions) => void;\n onClose: (e: Event) => void;\n buttonRef: RefObject<HTMLElement | null>;\n closeOnClickOutside?: boolean;\n placement?: Placement;\n}\n\nexport const NotificationFeedPopover: React.FC<\n NotificationFeedPopoverProps\n> = ({\n isVisible,\n onOpen = defaultOnOpen,\n onClose,\n buttonRef,\n closeOnClickOutside = true,\n placement = \"bottom-end\",\n ...feedProps\n}) => {\n const { t } = useTranslations();\n const { colorMode, feedClient, useFeedStore } = useKnockFeed();\n const store = useFeedStore();\n\n const { ref: popperRef } = useComponentVisible(\n isVisible,\n (event) => {\n // If the button is clicked, let that onClick handler handle the close\n if (\n event.target instanceof Element &&\n buttonRef.current?.contains(event.target)\n ) {\n return;\n }\n onClose(event);\n },\n {\n closeOnClickOutside,\n },\n );\n\n useEffect(() => {\n // Whenever the feed is opened, we want to invoke the `onOpen` callback\n // function to handle any side effects.\n if (isVisible && onOpen) {\n onOpen({ store, feedClient });\n }\n }, [isVisible, onOpen, store, feedClient]);\n\n useEffect(() => {\n if (buttonRef.current && popperRef.current) {\n const popperInstance = createPopper(\n buttonRef.current,\n popperRef.current,\n {\n strategy: \"fixed\",\n placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 8],\n },\n },\n ],\n },\n );\n\n // Cleanup\n return () => {\n popperInstance.destroy();\n };\n }\n }, [buttonRef, popperRef, placement]);\n\n return (\n <div\n className={`rnf-notification-feed-popover rnf-notification-feed-popover--${colorMode}`}\n style={{\n visibility: isVisible ? \"visible\" : \"hidden\",\n opacity: isVisible ? 1 : 0,\n }}\n ref={popperRef}\n role=\"dialog\"\n aria-label={t(\"notifications\")}\n tabIndex={-1}\n >\n <div className=\"rnf-notification-feed-popover__inner\">\n <NotificationFeed {...feedProps} />\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAeA,IAAM,KAAiB,EAAE,UAAO,oBAAgC;CAC9D,AAAI,EAAM,SAAS,eAAe,KAChC,EAAW,cAAc;AAE7B,GAWa,KAER,EACH,cACA,YAAS,GACT,YACA,cACA,yBAAsB,IACtB,eAAY,cACZ,GAAG,QACC;CACJ,IAAM,EAAE,SAAM,EAAgB,GACxB,EAAE,cAAW,eAAY,oBAAiB,EAAa,GACvD,IAAQ,EAAa,GAErB,EAAE,KAAK,MAAc,EACzB,IACC,MAAU;EAGP,EAAM,kBAAkB,WACxB,EAAU,SAAS,SAAS,EAAM,MAAM,KAI1C,EAAQ,CAAK;CACf,GACA,EACE,uBACF,CACF;CAoCA,OAlCA,QAAgB;EAGd,AAAI,KAAa,KACf,EAAO;GAAE;GAAO;EAAW,CAAC;CAEhC,GAAG;EAAC;EAAW;EAAQ;EAAO;CAAU,CAAC,GAEzC,QAAgB;EACd,IAAI,EAAU,WAAW,EAAU,SAAS;GAC1C,IAAM,IAAiB,EACrB,EAAU,SACV,EAAU,SACV;IACE,UAAU;IACV;IACA,WAAW,CACT;KACE,MAAM;KACN,SAAS,EACP,QAAQ,CAAC,GAAG,CAAC,EACf;IACF,CACF;GACF,CACF;GAGA,aAAa;IACX,EAAe,QAAQ;GACzB;EACF;CACF,GAAG;EAAC;EAAW;EAAW;CAAS,CAAC,GAGlC,kBAAC,OAAD;EACE,WAAW,gEAAgE;EAC3E,OAAO;GACL,YAAY,IAAY,YAAY;GACpC,SAAS;EACX;EACA,KAAK;EACL,MAAK;EACL,cAAY,EAAE,eAAe;EAC7B,UAAU;YAEV,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,GAAD,EAAkB,GAAI,EAAY,CAAA;EAC/B,CAAA;CACF,CAAA;AAET"}
@@ -0,0 +1,2 @@
1
+ import { NotificationFeedPopover as e } from "./NotificationFeedPopover.mjs";
2
+ export { e as NotificationFeedPopover };
@@ -1,18 +1,23 @@
1
- import { useKnockFeed as i } from "@knocklabs/react-core";
2
- import t from "react";
3
- import { BellIcon as a } from "../../../core/components/Icons/Bell.mjs";
4
- import { UnseenBadge as c } from "../UnseenBadge/UnseenBadge.mjs";
5
- /* empty css */
6
- const p = t.forwardRef(({
7
- onClick: o,
8
- badgeCountType: e
9
- }, n) => {
10
- const {
11
- colorMode: r
12
- } = i();
13
- return /* @__PURE__ */ t.createElement("button", { className: `rnf-notification-icon-button rnf-notification-icon-button--${r}`, "aria-label": "Open notification feed", ref: n, onClick: o }, /* @__PURE__ */ t.createElement(a, { "aria-hidden": !0 }), /* @__PURE__ */ t.createElement(c, { badgeCountType: e }));
1
+ import { BellIcon as e } from "../../../core/components/Icons/Bell.mjs";
2
+ import "../../../core/components/Icons/index.mjs";
3
+ import { UnseenBadge as t } from "../UnseenBadge/UnseenBadge.mjs";
4
+ import "../UnseenBadge/index.mjs";
5
+ /* empty css */
6
+ import { useKnockFeed as n } from "@knocklabs/react-core";
7
+ import r from "react";
8
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
9
+ //#region src/modules/feed/components/NotificationIconButton/NotificationIconButton.tsx
10
+ var o = r.forwardRef(({ onClick: r, badgeCountType: o }, s) => {
11
+ let { colorMode: c } = n();
12
+ return /* @__PURE__ */ a("button", {
13
+ className: `rnf-notification-icon-button rnf-notification-icon-button--${c}`,
14
+ "aria-label": "Open notification feed",
15
+ ref: s,
16
+ onClick: r,
17
+ children: [/* @__PURE__ */ i(e, { "aria-hidden": !0 }), /* @__PURE__ */ i(t, { badgeCountType: o })]
18
+ });
14
19
  });
15
- export {
16
- p as NotificationIconButton
17
- };
18
- //# sourceMappingURL=NotificationIconButton.mjs.map
20
+ //#endregion
21
+ export { o as NotificationIconButton };
22
+
23
+ //# sourceMappingURL=NotificationIconButton.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationIconButton.mjs","sources":["../../../../../../src/modules/feed/components/NotificationIconButton/NotificationIconButton.tsx"],"sourcesContent":["import { type BadgeCountType, useKnockFeed } from \"@knocklabs/react-core\";\nimport React, { SyntheticEvent } from \"react\";\n\nimport { BellIcon } from \"../../../core/components/Icons\";\nimport { UnseenBadge } from \"../UnseenBadge\";\n\nimport \"./styles.css\";\n\nexport interface NotificationIconButtonProps {\n // What value should we use to drive the badge count?\n badgeCountType?: BadgeCountType;\n onClick: (e: SyntheticEvent) => void;\n}\n\nexport const NotificationIconButton = React.forwardRef<\n HTMLButtonElement,\n NotificationIconButtonProps\n>(({ onClick, badgeCountType }, ref) => {\n const { colorMode } = useKnockFeed();\n\n return (\n <button\n className={`rnf-notification-icon-button rnf-notification-icon-button--${colorMode}`}\n aria-label=\"Open notification feed\"\n ref={ref}\n onClick={onClick}\n >\n <BellIcon aria-hidden />\n <UnseenBadge badgeCountType={badgeCountType} />\n </button>\n );\n});\n"],"names":["NotificationIconButton","React","forwardRef","onClick","badgeCountType","ref","colorMode","useKnockFeed","BellIcon","UnseenBadge"],"mappings":";;;;;AAcaA,MAAAA,IAAyBC,EAAMC,WAG1C,CAAC;AAAA,EAAEC,SAAAA;AAAAA,EAASC,gBAAAA;AAAe,GAAGC,MAAQ;AAChC,QAAA;AAAA,IAAEC,WAAAA;AAAAA,MAAcC,EAAa;AAEnC,yCACG,UACC,EAAA,WAAW,8DAA8DD,CAAS,IAClF,cAAW,0BACX,KAAAD,GACA,SAAAF,KAEAF,gBAAAA,EAAA,cAACO,KAAS,eAAW,GAAA,CAAA,GACpBP,gBAAAA,EAAA,cAAAQ,GAAA,EAAY,gBAAAL,EAA+B,CAAA,CAC9C;AAEJ,CAAC;"}
1
+ {"version":3,"file":"NotificationIconButton.mjs","names":[],"sources":["../../../../../../src/modules/feed/components/NotificationIconButton/NotificationIconButton.tsx"],"sourcesContent":["import { type BadgeCountType, useKnockFeed } from \"@knocklabs/react-core\";\nimport React, { SyntheticEvent } from \"react\";\n\nimport { BellIcon } from \"../../../core/components/Icons\";\nimport { UnseenBadge } from \"../UnseenBadge\";\n\nimport \"./styles.css\";\n\nexport interface NotificationIconButtonProps {\n // What value should we use to drive the badge count?\n badgeCountType?: BadgeCountType;\n onClick: (e: SyntheticEvent) => void;\n}\n\nexport const NotificationIconButton = React.forwardRef<\n HTMLButtonElement,\n NotificationIconButtonProps\n>(({ onClick, badgeCountType }, ref) => {\n const { colorMode } = useKnockFeed();\n\n return (\n <button\n className={`rnf-notification-icon-button rnf-notification-icon-button--${colorMode}`}\n aria-label=\"Open notification feed\"\n ref={ref}\n onClick={onClick}\n >\n <BellIcon aria-hidden />\n <UnseenBadge badgeCountType={badgeCountType} />\n </button>\n );\n});\n"],"mappings":";;;;;;;;;AAcA,IAAa,IAAyB,EAAM,YAGzC,EAAE,YAAS,qBAAkB,MAAQ;CACtC,IAAM,EAAE,iBAAc,EAAa;CAEnC,OACE,kBAAC,UAAD;EACE,WAAW,8DAA8D;EACzE,cAAW;EACN;EACI;YAJX,CAME,kBAAC,GAAD,EAAU,eAAA,GAAa,CAAA,GACvB,kBAAC,GAAD,EAA6B,kBAAiB,CAAA,CACxC;;AAEZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { NotificationIconButton as e } from "./NotificationIconButton.mjs";
2
+ export { e as NotificationIconButton };
@@ -1,25 +1,29 @@
1
- import { useKnockFeed as u, getBadgeAriaLabel as s, formatBadgeCount as o } from "@knocklabs/react-core";
2
- import a from "react";
3
- /* empty css */
4
- function c(n, e) {
5
- switch (n) {
6
- case "all":
7
- return e.total_count;
8
- case "unread":
9
- return e.unread_count;
10
- case "unseen":
11
- return e.unseen_count;
12
- }
1
+ /* empty css */
2
+ import { formatBadgeCount as e, getBadgeAriaLabel as t, useKnockFeed as n } from "@knocklabs/react-core";
3
+ import "react";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region src/modules/feed/components/UnseenBadge/UnseenBadge.tsx
6
+ function i(e, t) {
7
+ switch (e) {
8
+ case "all": return t.total_count;
9
+ case "unread": return t.unread_count;
10
+ case "unseen": return t.unseen_count;
11
+ }
13
12
  }
14
- const m = ({
15
- badgeCountType: n = "unseen"
16
- }) => {
17
- const {
18
- useFeedStore: e
19
- } = u(), t = e((r) => c(n, r.metadata));
20
- return t !== 0 ? /* @__PURE__ */ a.createElement("div", { className: "rnf-unseen-badge", role: "status", "aria-label": s(t, n) }, /* @__PURE__ */ a.createElement("span", { className: "rnf-unseen-badge__count", "aria-hidden": "true" }, o(t))) : null;
13
+ var a = ({ badgeCountType: a = "unseen" }) => {
14
+ let { useFeedStore: o } = n(), s = o((e) => i(a, e.metadata));
15
+ return s === 0 ? null : /* @__PURE__ */ r("div", {
16
+ className: "rnf-unseen-badge",
17
+ role: "status",
18
+ "aria-label": t(s, a),
19
+ children: /* @__PURE__ */ r("span", {
20
+ className: "rnf-unseen-badge__count",
21
+ "aria-hidden": "true",
22
+ children: e(s)
23
+ })
24
+ });
21
25
  };
22
- export {
23
- m as UnseenBadge
24
- };
25
- //# sourceMappingURL=UnseenBadge.mjs.map
26
+ //#endregion
27
+ export { a as UnseenBadge };
28
+
29
+ //# sourceMappingURL=UnseenBadge.mjs.map