@burdenoff/microfe-eventfullymanaged 2026.704.6 → 2026.704.8

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 (856) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/eventfullymanaged/api/eventApi.js +88 -87
  3. package/dist/eventfullymanaged/api/eventApi.js.map +1 -1
  4. package/dist/eventfullymanaged/components/EventCharts.js +260 -0
  5. package/dist/eventfullymanaged/components/EventCharts.js.map +1 -0
  6. package/dist/eventfullymanaged/components/index.js +1 -0
  7. package/dist/eventfullymanaged/lib/format.js +27 -0
  8. package/dist/eventfullymanaged/lib/format.js.map +1 -0
  9. package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js +222 -78
  10. package/dist/eventfullymanaged/pages/dashboard/DashboardPage.js.map +1 -1
  11. package/dist/eventfullymanaged/pages/events/EventDetailPage.js +691 -347
  12. package/dist/eventfullymanaged/pages/events/EventDetailPage.js.map +1 -1
  13. package/dist/eventfullymanaged/pages/events/EventFormPage.js +14 -0
  14. package/dist/eventfullymanaged/pages/events/EventFormPage.js.map +1 -1
  15. package/dist/eventfullymanaged/pages/exhibitors/ExhibitorsPage.js +240 -122
  16. package/dist/eventfullymanaged/pages/exhibitors/ExhibitorsPage.js.map +1 -1
  17. package/dist/eventfullymanaged/pages/leads/LeadCaptureDialog.js +60 -50
  18. package/dist/eventfullymanaged/pages/leads/LeadCaptureDialog.js.map +1 -1
  19. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js +318 -108
  20. package/dist/eventfullymanaged/pages/modules/AnalyticsPage.js.map +1 -1
  21. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js +288 -204
  22. package/dist/eventfullymanaged/pages/modules/CommunicationPage.js.map +1 -1
  23. package/dist/eventfullymanaged/pages/modules/EventsPage.js +313 -98
  24. package/dist/eventfullymanaged/pages/modules/EventsPage.js.map +1 -1
  25. package/dist/eventfullymanaged/pages/modules/KioskPage.js +597 -397
  26. package/dist/eventfullymanaged/pages/modules/KioskPage.js.map +1 -1
  27. package/dist/eventfullymanaged/pages/modules/NetworkingPage.js +349 -148
  28. package/dist/eventfullymanaged/pages/modules/NetworkingPage.js.map +1 -1
  29. package/dist/eventfullymanaged/pages/modules/RegistrationPage.js +329 -215
  30. package/dist/eventfullymanaged/pages/modules/RegistrationPage.js.map +1 -1
  31. package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js +147 -100
  32. package/dist/eventfullymanaged/pages/modules/SponsorDetailsPage.js.map +1 -1
  33. package/dist/eventfullymanaged/pages/registration/AttendeeFormPage.js +25 -2
  34. package/dist/eventfullymanaged/pages/registration/AttendeeFormPage.js.map +1 -1
  35. package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.js +134 -76
  36. package/dist/eventfullymanaged/pages/registration/PromoCodeFormPage.js.map +1 -1
  37. package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js +661 -305
  38. package/dist/eventfullymanaged/pages/registration/RegisterAttendeePage.js.map +1 -1
  39. package/dist/eventfullymanaged/pages/speakers/SpeakersPage.js +198 -77
  40. package/dist/eventfullymanaged/pages/speakers/SpeakersPage.js.map +1 -1
  41. package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js +254 -135
  42. package/dist/eventfullymanaged/pages/sponsors/SponsorsListPage.js.map +1 -1
  43. package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js +335 -116
  44. package/dist/eventfullymanaged/pages/venues/FloorPlansPage.js.map +1 -1
  45. package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js +73 -45
  46. package/dist/eventfullymanaged/pages/venues/VenueDetailPage.js.map +1 -1
  47. package/dist/eventfullymanaged/pages/venues/VenueFormPage.js +101 -100
  48. package/dist/eventfullymanaged/pages/venues/VenueFormPage.js.map +1 -1
  49. package/dist/eventfullymanaged/pages/venues/VenueListPage.js +147 -104
  50. package/dist/eventfullymanaged/pages/venues/VenueListPage.js.map +1 -1
  51. package/dist/node_modules/clsx/dist/clsx.js +18 -0
  52. package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
  53. package/dist/node_modules/d3-array/src/ascending.js +8 -0
  54. package/dist/node_modules/d3-array/src/ascending.js.map +1 -0
  55. package/dist/node_modules/d3-array/src/bisect.js +10 -0
  56. package/dist/node_modules/d3-array/src/bisect.js.map +1 -0
  57. package/dist/node_modules/d3-array/src/bisector.js +43 -0
  58. package/dist/node_modules/d3-array/src/bisector.js.map +1 -0
  59. package/dist/node_modules/d3-array/src/descending.js +8 -0
  60. package/dist/node_modules/d3-array/src/descending.js.map +1 -0
  61. package/dist/node_modules/d3-array/src/max.js +14 -0
  62. package/dist/node_modules/d3-array/src/max.js.map +1 -0
  63. package/dist/node_modules/d3-array/src/min.js +14 -0
  64. package/dist/node_modules/d3-array/src/min.js.map +1 -0
  65. package/dist/node_modules/d3-array/src/number.js +15 -0
  66. package/dist/node_modules/d3-array/src/number.js.map +1 -0
  67. package/dist/node_modules/d3-array/src/quantile.js +25 -0
  68. package/dist/node_modules/d3-array/src/quantile.js.map +1 -0
  69. package/dist/node_modules/d3-array/src/quickselect.js +26 -0
  70. package/dist/node_modules/d3-array/src/quickselect.js.map +1 -0
  71. package/dist/node_modules/d3-array/src/range.js +10 -0
  72. package/dist/node_modules/d3-array/src/range.js.map +1 -0
  73. package/dist/node_modules/d3-array/src/sort.js +17 -0
  74. package/dist/node_modules/d3-array/src/sort.js.map +1 -0
  75. package/dist/node_modules/d3-array/src/ticks.js +34 -0
  76. package/dist/node_modules/d3-array/src/ticks.js.map +1 -0
  77. package/dist/node_modules/d3-color/src/color.js +291 -0
  78. package/dist/node_modules/d3-color/src/color.js.map +1 -0
  79. package/dist/node_modules/d3-color/src/define.js +13 -0
  80. package/dist/node_modules/d3-color/src/define.js.map +1 -0
  81. package/dist/node_modules/d3-format/src/defaultLocale.js +15 -0
  82. package/dist/node_modules/d3-format/src/defaultLocale.js.map +1 -0
  83. package/dist/node_modules/d3-format/src/exponent.js +9 -0
  84. package/dist/node_modules/d3-format/src/exponent.js.map +1 -0
  85. package/dist/node_modules/d3-format/src/formatDecimal.js +13 -0
  86. package/dist/node_modules/d3-format/src/formatDecimal.js.map +1 -0
  87. package/dist/node_modules/d3-format/src/formatGroup.js +11 -0
  88. package/dist/node_modules/d3-format/src/formatGroup.js.map +1 -0
  89. package/dist/node_modules/d3-format/src/formatNumerals.js +12 -0
  90. package/dist/node_modules/d3-format/src/formatNumerals.js.map +1 -0
  91. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
  92. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
  93. package/dist/node_modules/d3-format/src/formatRounded.js +12 -0
  94. package/dist/node_modules/d3-format/src/formatRounded.js.map +1 -0
  95. package/dist/node_modules/d3-format/src/formatSpecifier.js +29 -0
  96. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
  97. package/dist/node_modules/d3-format/src/formatTrim.js +20 -0
  98. package/dist/node_modules/d3-format/src/formatTrim.js.map +1 -0
  99. package/dist/node_modules/d3-format/src/formatTypes.js +23 -0
  100. package/dist/node_modules/d3-format/src/formatTypes.js.map +1 -0
  101. package/dist/node_modules/d3-format/src/identity.js +8 -0
  102. package/dist/node_modules/d3-format/src/identity.js.map +1 -0
  103. package/dist/node_modules/d3-format/src/locale.js +86 -0
  104. package/dist/node_modules/d3-format/src/locale.js.map +1 -0
  105. package/dist/node_modules/d3-format/src/precisionFixed.js +9 -0
  106. package/dist/node_modules/d3-format/src/precisionFixed.js.map +1 -0
  107. package/dist/node_modules/d3-format/src/precisionPrefix.js +9 -0
  108. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +1 -0
  109. package/dist/node_modules/d3-format/src/precisionRound.js +9 -0
  110. package/dist/node_modules/d3-format/src/precisionRound.js.map +1 -0
  111. package/dist/node_modules/d3-interpolate/src/array.js +15 -0
  112. package/dist/node_modules/d3-interpolate/src/array.js.map +1 -0
  113. package/dist/node_modules/d3-interpolate/src/basis.js +16 -0
  114. package/dist/node_modules/d3-interpolate/src/basis.js.map +1 -0
  115. package/dist/node_modules/d3-interpolate/src/basisClosed.js +13 -0
  116. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +1 -0
  117. package/dist/node_modules/d3-interpolate/src/color.js +25 -0
  118. package/dist/node_modules/d3-interpolate/src/color.js.map +1 -0
  119. package/dist/node_modules/d3-interpolate/src/constant.js +6 -0
  120. package/dist/node_modules/d3-interpolate/src/constant.js.map +1 -0
  121. package/dist/node_modules/d3-interpolate/src/date.js +11 -0
  122. package/dist/node_modules/d3-interpolate/src/date.js.map +1 -0
  123. package/dist/node_modules/d3-interpolate/src/number.js +10 -0
  124. package/dist/node_modules/d3-interpolate/src/number.js.map +1 -0
  125. package/dist/node_modules/d3-interpolate/src/numberArray.js +16 -0
  126. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +1 -0
  127. package/dist/node_modules/d3-interpolate/src/object.js +14 -0
  128. package/dist/node_modules/d3-interpolate/src/object.js.map +1 -0
  129. package/dist/node_modules/d3-interpolate/src/piecewise.js +14 -0
  130. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +1 -0
  131. package/dist/node_modules/d3-interpolate/src/rgb.js +19 -0
  132. package/dist/node_modules/d3-interpolate/src/rgb.js.map +1 -0
  133. package/dist/node_modules/d3-interpolate/src/round.js +10 -0
  134. package/dist/node_modules/d3-interpolate/src/round.js.map +1 -0
  135. package/dist/node_modules/d3-interpolate/src/string.js +28 -0
  136. package/dist/node_modules/d3-interpolate/src/string.js.map +1 -0
  137. package/dist/node_modules/d3-interpolate/src/value.js +18 -0
  138. package/dist/node_modules/d3-interpolate/src/value.js.map +1 -0
  139. package/dist/node_modules/d3-path/src/path.js +65 -0
  140. package/dist/node_modules/d3-path/src/path.js.map +1 -0
  141. package/dist/node_modules/d3-scale/src/band.js +52 -0
  142. package/dist/node_modules/d3-scale/src/band.js.map +1 -0
  143. package/dist/node_modules/d3-scale/src/constant.js +10 -0
  144. package/dist/node_modules/d3-scale/src/constant.js.map +1 -0
  145. package/dist/node_modules/d3-scale/src/continuous.js +73 -0
  146. package/dist/node_modules/d3-scale/src/continuous.js.map +1 -0
  147. package/dist/node_modules/d3-scale/src/diverging.js +82 -0
  148. package/dist/node_modules/d3-scale/src/diverging.js.map +1 -0
  149. package/dist/node_modules/d3-scale/src/identity.js +20 -0
  150. package/dist/node_modules/d3-scale/src/identity.js.map +1 -0
  151. package/dist/node_modules/d3-scale/src/init.js +29 -0
  152. package/dist/node_modules/d3-scale/src/init.js.map +1 -0
  153. package/dist/node_modules/d3-scale/src/linear.js +36 -0
  154. package/dist/node_modules/d3-scale/src/linear.js.map +1 -0
  155. package/dist/node_modules/d3-scale/src/log.js +77 -0
  156. package/dist/node_modules/d3-scale/src/log.js.map +1 -0
  157. package/dist/node_modules/d3-scale/src/nice.js +10 -0
  158. package/dist/node_modules/d3-scale/src/nice.js.map +1 -0
  159. package/dist/node_modules/d3-scale/src/number.js +8 -0
  160. package/dist/node_modules/d3-scale/src/number.js.map +1 -0
  161. package/dist/node_modules/d3-scale/src/ordinal.js +31 -0
  162. package/dist/node_modules/d3-scale/src/ordinal.js.map +1 -0
  163. package/dist/node_modules/d3-scale/src/pow.js +37 -0
  164. package/dist/node_modules/d3-scale/src/pow.js.map +1 -0
  165. package/dist/node_modules/d3-scale/src/quantile.js +37 -0
  166. package/dist/node_modules/d3-scale/src/quantile.js.map +1 -0
  167. package/dist/node_modules/d3-scale/src/quantize.js +33 -0
  168. package/dist/node_modules/d3-scale/src/quantize.js.map +1 -0
  169. package/dist/node_modules/d3-scale/src/radial.js +39 -0
  170. package/dist/node_modules/d3-scale/src/radial.js.map +1 -0
  171. package/dist/node_modules/d3-scale/src/sequential.js +67 -0
  172. package/dist/node_modules/d3-scale/src/sequential.js.map +1 -0
  173. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +30 -0
  174. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +1 -0
  175. package/dist/node_modules/d3-scale/src/symlog.js +30 -0
  176. package/dist/node_modules/d3-scale/src/symlog.js.map +1 -0
  177. package/dist/node_modules/d3-scale/src/threshold.js +25 -0
  178. package/dist/node_modules/d3-scale/src/threshold.js.map +1 -0
  179. package/dist/node_modules/d3-scale/src/tickFormat.js +31 -0
  180. package/dist/node_modules/d3-scale/src/tickFormat.js.map +1 -0
  181. package/dist/node_modules/d3-scale/src/time.js +47 -0
  182. package/dist/node_modules/d3-scale/src/time.js.map +1 -0
  183. package/dist/node_modules/d3-scale/src/utcTime.js +19 -0
  184. package/dist/node_modules/d3-scale/src/utcTime.js.map +1 -0
  185. package/dist/node_modules/d3-shape/src/area.js +55 -0
  186. package/dist/node_modules/d3-shape/src/area.js.map +1 -0
  187. package/dist/node_modules/d3-shape/src/array.js +8 -0
  188. package/dist/node_modules/d3-shape/src/array.js.map +1 -0
  189. package/dist/node_modules/d3-shape/src/constant.js +10 -0
  190. package/dist/node_modules/d3-shape/src/constant.js.map +1 -0
  191. package/dist/node_modules/d3-shape/src/curve/basis.js +49 -0
  192. package/dist/node_modules/d3-shape/src/curve/basis.js.map +1 -0
  193. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +50 -0
  194. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +1 -0
  195. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +46 -0
  196. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +1 -0
  197. package/dist/node_modules/d3-shape/src/curve/bump.js +40 -0
  198. package/dist/node_modules/d3-shape/src/curve/bump.js.map +1 -0
  199. package/dist/node_modules/d3-shape/src/curve/linear.js +36 -0
  200. package/dist/node_modules/d3-shape/src/curve/linear.js.map +1 -0
  201. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +25 -0
  202. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -0
  203. package/dist/node_modules/d3-shape/src/curve/monotone.js +94 -0
  204. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +1 -0
  205. package/dist/node_modules/d3-shape/src/curve/natural.js +39 -0
  206. package/dist/node_modules/d3-shape/src/curve/natural.js.map +1 -0
  207. package/dist/node_modules/d3-shape/src/curve/step.js +47 -0
  208. package/dist/node_modules/d3-shape/src/curve/step.js.map +1 -0
  209. package/dist/node_modules/d3-shape/src/line.js +30 -0
  210. package/dist/node_modules/d3-shape/src/line.js.map +1 -0
  211. package/dist/node_modules/d3-shape/src/math.js +8 -0
  212. package/dist/node_modules/d3-shape/src/math.js.map +1 -0
  213. package/dist/node_modules/d3-shape/src/noop.js +6 -0
  214. package/dist/node_modules/d3-shape/src/noop.js.map +1 -0
  215. package/dist/node_modules/d3-shape/src/offset/expand.js +15 -0
  216. package/dist/node_modules/d3-shape/src/offset/expand.js.map +1 -0
  217. package/dist/node_modules/d3-shape/src/offset/none.js +8 -0
  218. package/dist/node_modules/d3-shape/src/offset/none.js.map +1 -0
  219. package/dist/node_modules/d3-shape/src/offset/silhouette.js +15 -0
  220. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +1 -0
  221. package/dist/node_modules/d3-shape/src/offset/wiggle.js +21 -0
  222. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +1 -0
  223. package/dist/node_modules/d3-shape/src/order/none.js +9 -0
  224. package/dist/node_modules/d3-shape/src/order/none.js.map +1 -0
  225. package/dist/node_modules/d3-shape/src/path.js +19 -0
  226. package/dist/node_modules/d3-shape/src/path.js.map +1 -0
  227. package/dist/node_modules/d3-shape/src/point.js +11 -0
  228. package/dist/node_modules/d3-shape/src/point.js.map +1 -0
  229. package/dist/node_modules/d3-shape/src/stack.js +34 -0
  230. package/dist/node_modules/d3-shape/src/stack.js.map +1 -0
  231. package/dist/node_modules/d3-shape/src/symbol/circle.js +10 -0
  232. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +1 -0
  233. package/dist/node_modules/d3-shape/src/symbol/cross.js +10 -0
  234. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +1 -0
  235. package/dist/node_modules/d3-shape/src/symbol/diamond.js +10 -0
  236. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +1 -0
  237. package/dist/node_modules/d3-shape/src/symbol/square.js +10 -0
  238. package/dist/node_modules/d3-shape/src/symbol/square.js.map +1 -0
  239. package/dist/node_modules/d3-shape/src/symbol/star.js +15 -0
  240. package/dist/node_modules/d3-shape/src/symbol/star.js.map +1 -0
  241. package/dist/node_modules/d3-shape/src/symbol/triangle.js +10 -0
  242. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +1 -0
  243. package/dist/node_modules/d3-shape/src/symbol/wye.js +10 -0
  244. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +1 -0
  245. package/dist/node_modules/d3-shape/src/symbol.js +23 -0
  246. package/dist/node_modules/d3-shape/src/symbol.js.map +1 -0
  247. package/dist/node_modules/d3-time/src/day.js +21 -0
  248. package/dist/node_modules/d3-time/src/day.js.map +1 -0
  249. package/dist/node_modules/d3-time/src/duration.js +6 -0
  250. package/dist/node_modules/d3-time/src/duration.js.map +1 -0
  251. package/dist/node_modules/d3-time/src/hour.js +19 -0
  252. package/dist/node_modules/d3-time/src/hour.js.map +1 -0
  253. package/dist/node_modules/d3-time/src/interval.js +28 -0
  254. package/dist/node_modules/d3-time/src/interval.js.map +1 -0
  255. package/dist/node_modules/d3-time/src/millisecond.js +14 -0
  256. package/dist/node_modules/d3-time/src/millisecond.js.map +1 -0
  257. package/dist/node_modules/d3-time/src/minute.js +19 -0
  258. package/dist/node_modules/d3-time/src/minute.js.map +1 -0
  259. package/dist/node_modules/d3-time/src/month.js +18 -0
  260. package/dist/node_modules/d3-time/src/month.js.map +1 -0
  261. package/dist/node_modules/d3-time/src/second.js +13 -0
  262. package/dist/node_modules/d3-time/src/second.js.map +1 -0
  263. package/dist/node_modules/d3-time/src/ticks.js +125 -0
  264. package/dist/node_modules/d3-time/src/ticks.js.map +1 -0
  265. package/dist/node_modules/d3-time/src/week.js +25 -0
  266. package/dist/node_modules/d3-time/src/week.js.map +1 -0
  267. package/dist/node_modules/d3-time/src/year.js +26 -0
  268. package/dist/node_modules/d3-time/src/year.js.map +1 -0
  269. package/dist/node_modules/d3-time-format/src/defaultLocale.js +62 -0
  270. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +1 -0
  271. package/dist/node_modules/d3-time-format/src/locale.js +490 -0
  272. package/dist/node_modules/d3-time-format/src/locale.js.map +1 -0
  273. package/dist/node_modules/decimal.js-light/decimal.js +378 -0
  274. package/dist/node_modules/decimal.js-light/decimal.js.map +1 -0
  275. package/dist/node_modules/eventemitter3/index.js +95 -0
  276. package/dist/node_modules/eventemitter3/index.js.map +1 -0
  277. package/dist/node_modules/fast-equals/dist/es/index.js +267 -0
  278. package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -0
  279. package/dist/node_modules/internmap/src/index.js +40 -0
  280. package/dist/node_modules/internmap/src/index.js.map +1 -0
  281. package/dist/node_modules/lodash/_DataView.js +12 -0
  282. package/dist/node_modules/lodash/_DataView.js.map +1 -0
  283. package/dist/node_modules/lodash/_Hash.js +23 -0
  284. package/dist/node_modules/lodash/_Hash.js.map +1 -0
  285. package/dist/node_modules/lodash/_ListCache.js +23 -0
  286. package/dist/node_modules/lodash/_ListCache.js.map +1 -0
  287. package/dist/node_modules/lodash/_Map.js +12 -0
  288. package/dist/node_modules/lodash/_Map.js.map +1 -0
  289. package/dist/node_modules/lodash/_MapCache.js +23 -0
  290. package/dist/node_modules/lodash/_MapCache.js.map +1 -0
  291. package/dist/node_modules/lodash/_Promise.js +12 -0
  292. package/dist/node_modules/lodash/_Promise.js.map +1 -0
  293. package/dist/node_modules/lodash/_Set.js +12 -0
  294. package/dist/node_modules/lodash/_Set.js.map +1 -0
  295. package/dist/node_modules/lodash/_SetCache.js +18 -0
  296. package/dist/node_modules/lodash/_SetCache.js.map +1 -0
  297. package/dist/node_modules/lodash/_Stack.js +20 -0
  298. package/dist/node_modules/lodash/_Stack.js.map +1 -0
  299. package/dist/node_modules/lodash/_Symbol.js +11 -0
  300. package/dist/node_modules/lodash/_Symbol.js.map +1 -0
  301. package/dist/node_modules/lodash/_Uint8Array.js +11 -0
  302. package/dist/node_modules/lodash/_Uint8Array.js.map +1 -0
  303. package/dist/node_modules/lodash/_WeakMap.js +12 -0
  304. package/dist/node_modules/lodash/_WeakMap.js.map +1 -0
  305. package/dist/node_modules/lodash/_apply.js +19 -0
  306. package/dist/node_modules/lodash/_apply.js.map +1 -0
  307. package/dist/node_modules/lodash/_arrayEvery.js +14 -0
  308. package/dist/node_modules/lodash/_arrayEvery.js.map +1 -0
  309. package/dist/node_modules/lodash/_arrayFilter.js +17 -0
  310. package/dist/node_modules/lodash/_arrayFilter.js.map +1 -0
  311. package/dist/node_modules/lodash/_arrayIncludes.js +15 -0
  312. package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -0
  313. package/dist/node_modules/lodash/_arrayIncludesWith.js +14 -0
  314. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
  315. package/dist/node_modules/lodash/_arrayLikeKeys.js +22 -0
  316. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
  317. package/dist/node_modules/lodash/_arrayMap.js +14 -0
  318. package/dist/node_modules/lodash/_arrayMap.js.map +1 -0
  319. package/dist/node_modules/lodash/_arrayPush.js +14 -0
  320. package/dist/node_modules/lodash/_arrayPush.js.map +1 -0
  321. package/dist/node_modules/lodash/_arraySome.js +14 -0
  322. package/dist/node_modules/lodash/_arraySome.js.map +1 -0
  323. package/dist/node_modules/lodash/_asciiToArray.js +13 -0
  324. package/dist/node_modules/lodash/_asciiToArray.js.map +1 -0
  325. package/dist/node_modules/lodash/_assocIndexOf.js +16 -0
  326. package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -0
  327. package/dist/node_modules/lodash/_baseAssignValue.js +20 -0
  328. package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -0
  329. package/dist/node_modules/lodash/_baseEach.js +13 -0
  330. package/dist/node_modules/lodash/_baseEach.js.map +1 -0
  331. package/dist/node_modules/lodash/_baseEvery.js +18 -0
  332. package/dist/node_modules/lodash/_baseEvery.js.map +1 -0
  333. package/dist/node_modules/lodash/_baseExtremum.js +19 -0
  334. package/dist/node_modules/lodash/_baseExtremum.js.map +1 -0
  335. package/dist/node_modules/lodash/_baseFindIndex.js +14 -0
  336. package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -0
  337. package/dist/node_modules/lodash/_baseFlatten.js +21 -0
  338. package/dist/node_modules/lodash/_baseFlatten.js.map +1 -0
  339. package/dist/node_modules/lodash/_baseFor.js +11 -0
  340. package/dist/node_modules/lodash/_baseFor.js.map +1 -0
  341. package/dist/node_modules/lodash/_baseForOwn.js +16 -0
  342. package/dist/node_modules/lodash/_baseForOwn.js.map +1 -0
  343. package/dist/node_modules/lodash/_baseGet.js +18 -0
  344. package/dist/node_modules/lodash/_baseGet.js.map +1 -0
  345. package/dist/node_modules/lodash/_baseGetAllKeys.js +17 -0
  346. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
  347. package/dist/node_modules/lodash/_baseGetTag.js +17 -0
  348. package/dist/node_modules/lodash/_baseGetTag.js.map +1 -0
  349. package/dist/node_modules/lodash/_baseGt.js +13 -0
  350. package/dist/node_modules/lodash/_baseGt.js.map +1 -0
  351. package/dist/node_modules/lodash/_baseHasIn.js +13 -0
  352. package/dist/node_modules/lodash/_baseHasIn.js.map +1 -0
  353. package/dist/node_modules/lodash/_baseIndexOf.js +17 -0
  354. package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -0
  355. package/dist/node_modules/lodash/_baseIsArguments.js +16 -0
  356. package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -0
  357. package/dist/node_modules/lodash/_baseIsEqual.js +16 -0
  358. package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -0
  359. package/dist/node_modules/lodash/_baseIsEqualDeep.js +37 -0
  360. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
  361. package/dist/node_modules/lodash/_baseIsMatch.js +33 -0
  362. package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -0
  363. package/dist/node_modules/lodash/_baseIsNaN.js +13 -0
  364. package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -0
  365. package/dist/node_modules/lodash/_baseIsNative.js +18 -0
  366. package/dist/node_modules/lodash/_baseIsNative.js.map +1 -0
  367. package/dist/node_modules/lodash/_baseIsTypedArray.js +18 -0
  368. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
  369. package/dist/node_modules/lodash/_baseIteratee.js +19 -0
  370. package/dist/node_modules/lodash/_baseIteratee.js.map +1 -0
  371. package/dist/node_modules/lodash/_baseKeys.js +19 -0
  372. package/dist/node_modules/lodash/_baseKeys.js.map +1 -0
  373. package/dist/node_modules/lodash/_baseLt.js +13 -0
  374. package/dist/node_modules/lodash/_baseLt.js.map +1 -0
  375. package/dist/node_modules/lodash/_baseMap.js +19 -0
  376. package/dist/node_modules/lodash/_baseMap.js.map +1 -0
  377. package/dist/node_modules/lodash/_baseMatches.js +20 -0
  378. package/dist/node_modules/lodash/_baseMatches.js.map +1 -0
  379. package/dist/node_modules/lodash/_baseMatchesProperty.js +24 -0
  380. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
  381. package/dist/node_modules/lodash/_baseOrderBy.js +39 -0
  382. package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -0
  383. package/dist/node_modules/lodash/_baseProperty.js +15 -0
  384. package/dist/node_modules/lodash/_baseProperty.js.map +1 -0
  385. package/dist/node_modules/lodash/_basePropertyDeep.js +17 -0
  386. package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -0
  387. package/dist/node_modules/lodash/_baseRange.js +15 -0
  388. package/dist/node_modules/lodash/_baseRange.js.map +1 -0
  389. package/dist/node_modules/lodash/_baseRest.js +17 -0
  390. package/dist/node_modules/lodash/_baseRest.js.map +1 -0
  391. package/dist/node_modules/lodash/_baseSetToString.js +21 -0
  392. package/dist/node_modules/lodash/_baseSetToString.js.map +1 -0
  393. package/dist/node_modules/lodash/_baseSlice.js +16 -0
  394. package/dist/node_modules/lodash/_baseSlice.js.map +1 -0
  395. package/dist/node_modules/lodash/_baseSome.js +18 -0
  396. package/dist/node_modules/lodash/_baseSome.js.map +1 -0
  397. package/dist/node_modules/lodash/_baseSortBy.js +15 -0
  398. package/dist/node_modules/lodash/_baseSortBy.js.map +1 -0
  399. package/dist/node_modules/lodash/_baseTimes.js +14 -0
  400. package/dist/node_modules/lodash/_baseTimes.js.map +1 -0
  401. package/dist/node_modules/lodash/_baseToString.js +22 -0
  402. package/dist/node_modules/lodash/_baseToString.js.map +1 -0
  403. package/dist/node_modules/lodash/_baseTrim.js +15 -0
  404. package/dist/node_modules/lodash/_baseTrim.js.map +1 -0
  405. package/dist/node_modules/lodash/_baseUnary.js +15 -0
  406. package/dist/node_modules/lodash/_baseUnary.js.map +1 -0
  407. package/dist/node_modules/lodash/_baseUniq.js +34 -0
  408. package/dist/node_modules/lodash/_baseUniq.js.map +1 -0
  409. package/dist/node_modules/lodash/_cacheHas.js +13 -0
  410. package/dist/node_modules/lodash/_cacheHas.js.map +1 -0
  411. package/dist/node_modules/lodash/_castPath.js +18 -0
  412. package/dist/node_modules/lodash/_castPath.js.map +1 -0
  413. package/dist/node_modules/lodash/_castSlice.js +16 -0
  414. package/dist/node_modules/lodash/_castSlice.js.map +1 -0
  415. package/dist/node_modules/lodash/_compareAscending.js +20 -0
  416. package/dist/node_modules/lodash/_compareAscending.js.map +1 -0
  417. package/dist/node_modules/lodash/_compareMultiple.js +19 -0
  418. package/dist/node_modules/lodash/_compareMultiple.js.map +1 -0
  419. package/dist/node_modules/lodash/_coreJsData.js +11 -0
  420. package/dist/node_modules/lodash/_coreJsData.js.map +1 -0
  421. package/dist/node_modules/lodash/_createBaseEach.js +20 -0
  422. package/dist/node_modules/lodash/_createBaseEach.js.map +1 -0
  423. package/dist/node_modules/lodash/_createBaseFor.js +19 -0
  424. package/dist/node_modules/lodash/_createBaseFor.js.map +1 -0
  425. package/dist/node_modules/lodash/_createCaseFirst.js +22 -0
  426. package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -0
  427. package/dist/node_modules/lodash/_createFind.js +27 -0
  428. package/dist/node_modules/lodash/_createFind.js.map +1 -0
  429. package/dist/node_modules/lodash/_createRange.js +19 -0
  430. package/dist/node_modules/lodash/_createRange.js.map +1 -0
  431. package/dist/node_modules/lodash/_createSet.js +16 -0
  432. package/dist/node_modules/lodash/_createSet.js.map +1 -0
  433. package/dist/node_modules/lodash/_defineProperty.js +17 -0
  434. package/dist/node_modules/lodash/_defineProperty.js.map +1 -0
  435. package/dist/node_modules/lodash/_equalArrays.js +42 -0
  436. package/dist/node_modules/lodash/_equalArrays.js.map +1 -0
  437. package/dist/node_modules/lodash/_equalByTag.js +42 -0
  438. package/dist/node_modules/lodash/_equalByTag.js.map +1 -0
  439. package/dist/node_modules/lodash/_equalObjects.js +39 -0
  440. package/dist/node_modules/lodash/_equalObjects.js.map +1 -0
  441. package/dist/node_modules/lodash/_freeGlobal.js +10 -0
  442. package/dist/node_modules/lodash/_freeGlobal.js.map +1 -0
  443. package/dist/node_modules/lodash/_getAllKeys.js +17 -0
  444. package/dist/node_modules/lodash/_getAllKeys.js.map +1 -0
  445. package/dist/node_modules/lodash/_getMapData.js +16 -0
  446. package/dist/node_modules/lodash/_getMapData.js.map +1 -0
  447. package/dist/node_modules/lodash/_getMatchData.js +24 -0
  448. package/dist/node_modules/lodash/_getMatchData.js.map +1 -0
  449. package/dist/node_modules/lodash/_getNative.js +17 -0
  450. package/dist/node_modules/lodash/_getNative.js.map +1 -0
  451. package/dist/node_modules/lodash/_getPrototype.js +11 -0
  452. package/dist/node_modules/lodash/_getPrototype.js.map +1 -0
  453. package/dist/node_modules/lodash/_getRawTag.js +21 -0
  454. package/dist/node_modules/lodash/_getRawTag.js.map +1 -0
  455. package/dist/node_modules/lodash/_getSymbols.js +17 -0
  456. package/dist/node_modules/lodash/_getSymbols.js.map +1 -0
  457. package/dist/node_modules/lodash/_getTag.js +28 -0
  458. package/dist/node_modules/lodash/_getTag.js.map +1 -0
  459. package/dist/node_modules/lodash/_getValue.js +13 -0
  460. package/dist/node_modules/lodash/_getValue.js.map +1 -0
  461. package/dist/node_modules/lodash/_hasPath.js +26 -0
  462. package/dist/node_modules/lodash/_hasPath.js.map +1 -0
  463. package/dist/node_modules/lodash/_hasUnicode.js +14 -0
  464. package/dist/node_modules/lodash/_hasUnicode.js.map +1 -0
  465. package/dist/node_modules/lodash/_hashClear.js +15 -0
  466. package/dist/node_modules/lodash/_hashClear.js.map +1 -0
  467. package/dist/node_modules/lodash/_hashDelete.js +14 -0
  468. package/dist/node_modules/lodash/_hashDelete.js.map +1 -0
  469. package/dist/node_modules/lodash/_hashGet.js +20 -0
  470. package/dist/node_modules/lodash/_hashGet.js.map +1 -0
  471. package/dist/node_modules/lodash/_hashHas.js +16 -0
  472. package/dist/node_modules/lodash/_hashHas.js.map +1 -0
  473. package/dist/node_modules/lodash/_hashSet.js +16 -0
  474. package/dist/node_modules/lodash/_hashSet.js.map +1 -0
  475. package/dist/node_modules/lodash/_isFlattenable.js +17 -0
  476. package/dist/node_modules/lodash/_isFlattenable.js.map +1 -0
  477. package/dist/node_modules/lodash/_isIndex.js +15 -0
  478. package/dist/node_modules/lodash/_isIndex.js.map +1 -0
  479. package/dist/node_modules/lodash/_isIterateeCall.js +20 -0
  480. package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -0
  481. package/dist/node_modules/lodash/_isKey.js +18 -0
  482. package/dist/node_modules/lodash/_isKey.js.map +1 -0
  483. package/dist/node_modules/lodash/_isKeyable.js +14 -0
  484. package/dist/node_modules/lodash/_isKeyable.js.map +1 -0
  485. package/dist/node_modules/lodash/_isMasked.js +18 -0
  486. package/dist/node_modules/lodash/_isMasked.js.map +1 -0
  487. package/dist/node_modules/lodash/_isPrototype.js +15 -0
  488. package/dist/node_modules/lodash/_isPrototype.js.map +1 -0
  489. package/dist/node_modules/lodash/_isStrictComparable.js +15 -0
  490. package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -0
  491. package/dist/node_modules/lodash/_listCacheClear.js +13 -0
  492. package/dist/node_modules/lodash/_listCacheClear.js.map +1 -0
  493. package/dist/node_modules/lodash/_listCacheDelete.js +16 -0
  494. package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -0
  495. package/dist/node_modules/lodash/_listCacheGet.js +16 -0
  496. package/dist/node_modules/lodash/_listCacheGet.js.map +1 -0
  497. package/dist/node_modules/lodash/_listCacheHas.js +15 -0
  498. package/dist/node_modules/lodash/_listCacheHas.js.map +1 -0
  499. package/dist/node_modules/lodash/_listCacheSet.js +16 -0
  500. package/dist/node_modules/lodash/_listCacheSet.js.map +1 -0
  501. package/dist/node_modules/lodash/_mapCacheClear.js +21 -0
  502. package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -0
  503. package/dist/node_modules/lodash/_mapCacheDelete.js +16 -0
  504. package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -0
  505. package/dist/node_modules/lodash/_mapCacheGet.js +15 -0
  506. package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -0
  507. package/dist/node_modules/lodash/_mapCacheHas.js +15 -0
  508. package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -0
  509. package/dist/node_modules/lodash/_mapCacheSet.js +16 -0
  510. package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -0
  511. package/dist/node_modules/lodash/_mapToArray.js +16 -0
  512. package/dist/node_modules/lodash/_mapToArray.js.map +1 -0
  513. package/dist/node_modules/lodash/_matchesStrictComparable.js +15 -0
  514. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
  515. package/dist/node_modules/lodash/_memoizeCapped.js +18 -0
  516. package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -0
  517. package/dist/node_modules/lodash/_nativeCreate.js +11 -0
  518. package/dist/node_modules/lodash/_nativeCreate.js.map +1 -0
  519. package/dist/node_modules/lodash/_nativeKeys.js +11 -0
  520. package/dist/node_modules/lodash/_nativeKeys.js.map +1 -0
  521. package/dist/node_modules/lodash/_nodeUtil.js +16 -0
  522. package/dist/node_modules/lodash/_nodeUtil.js.map +1 -0
  523. package/dist/node_modules/lodash/_objectToString.js +14 -0
  524. package/dist/node_modules/lodash/_objectToString.js.map +1 -0
  525. package/dist/node_modules/lodash/_overArg.js +15 -0
  526. package/dist/node_modules/lodash/_overArg.js.map +1 -0
  527. package/dist/node_modules/lodash/_overRest.js +20 -0
  528. package/dist/node_modules/lodash/_overRest.js.map +1 -0
  529. package/dist/node_modules/lodash/_root.js +12 -0
  530. package/dist/node_modules/lodash/_root.js.map +1 -0
  531. package/dist/node_modules/lodash/_setCacheAdd.js +14 -0
  532. package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -0
  533. package/dist/node_modules/lodash/_setCacheHas.js +13 -0
  534. package/dist/node_modules/lodash/_setCacheHas.js.map +1 -0
  535. package/dist/node_modules/lodash/_setToArray.js +16 -0
  536. package/dist/node_modules/lodash/_setToArray.js.map +1 -0
  537. package/dist/node_modules/lodash/_setToString.js +13 -0
  538. package/dist/node_modules/lodash/_setToString.js.map +1 -0
  539. package/dist/node_modules/lodash/_shortOut.js +21 -0
  540. package/dist/node_modules/lodash/_shortOut.js.map +1 -0
  541. package/dist/node_modules/lodash/_stackClear.js +15 -0
  542. package/dist/node_modules/lodash/_stackClear.js.map +1 -0
  543. package/dist/node_modules/lodash/_stackDelete.js +14 -0
  544. package/dist/node_modules/lodash/_stackDelete.js.map +1 -0
  545. package/dist/node_modules/lodash/_stackGet.js +13 -0
  546. package/dist/node_modules/lodash/_stackGet.js.map +1 -0
  547. package/dist/node_modules/lodash/_stackHas.js +13 -0
  548. package/dist/node_modules/lodash/_stackHas.js.map +1 -0
  549. package/dist/node_modules/lodash/_stackSet.js +23 -0
  550. package/dist/node_modules/lodash/_stackSet.js.map +1 -0
  551. package/dist/node_modules/lodash/_strictIndexOf.js +14 -0
  552. package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -0
  553. package/dist/node_modules/lodash/_stringToArray.js +17 -0
  554. package/dist/node_modules/lodash/_stringToArray.js.map +1 -0
  555. package/dist/node_modules/lodash/_stringToPath.js +17 -0
  556. package/dist/node_modules/lodash/_stringToPath.js.map +1 -0
  557. package/dist/node_modules/lodash/_toKey.js +17 -0
  558. package/dist/node_modules/lodash/_toKey.js.map +1 -0
  559. package/dist/node_modules/lodash/_toSource.js +22 -0
  560. package/dist/node_modules/lodash/_toSource.js.map +1 -0
  561. package/dist/node_modules/lodash/_trimmedEndIndex.js +15 -0
  562. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
  563. package/dist/node_modules/lodash/_unicodeToArray.js +24 -0
  564. package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -0
  565. package/dist/node_modules/lodash/constant.js +15 -0
  566. package/dist/node_modules/lodash/constant.js.map +1 -0
  567. package/dist/node_modules/lodash/debounce.js +57 -0
  568. package/dist/node_modules/lodash/debounce.js.map +1 -0
  569. package/dist/node_modules/lodash/eq.js +13 -0
  570. package/dist/node_modules/lodash/eq.js.map +1 -0
  571. package/dist/node_modules/lodash/every.js +20 -0
  572. package/dist/node_modules/lodash/every.js.map +1 -0
  573. package/dist/node_modules/lodash/find.js +12 -0
  574. package/dist/node_modules/lodash/find.js.map +1 -0
  575. package/dist/node_modules/lodash/findIndex.js +20 -0
  576. package/dist/node_modules/lodash/findIndex.js.map +1 -0
  577. package/dist/node_modules/lodash/flatMap.js +16 -0
  578. package/dist/node_modules/lodash/flatMap.js.map +1 -0
  579. package/dist/node_modules/lodash/get.js +16 -0
  580. package/dist/node_modules/lodash/get.js.map +1 -0
  581. package/dist/node_modules/lodash/hasIn.js +16 -0
  582. package/dist/node_modules/lodash/hasIn.js.map +1 -0
  583. package/dist/node_modules/lodash/identity.js +13 -0
  584. package/dist/node_modules/lodash/identity.js.map +1 -0
  585. package/dist/node_modules/lodash/isArguments.js +17 -0
  586. package/dist/node_modules/lodash/isArguments.js.map +1 -0
  587. package/dist/node_modules/lodash/isArray.js +10 -0
  588. package/dist/node_modules/lodash/isArray.js.map +1 -0
  589. package/dist/node_modules/lodash/isArrayLike.js +16 -0
  590. package/dist/node_modules/lodash/isArrayLike.js.map +1 -0
  591. package/dist/node_modules/lodash/isBoolean.js +16 -0
  592. package/dist/node_modules/lodash/isBoolean.js.map +1 -0
  593. package/dist/node_modules/lodash/isBuffer.js +13 -0
  594. package/dist/node_modules/lodash/isBuffer.js.map +1 -0
  595. package/dist/node_modules/lodash/isEqual.js +15 -0
  596. package/dist/node_modules/lodash/isEqual.js.map +1 -0
  597. package/dist/node_modules/lodash/isFunction.js +18 -0
  598. package/dist/node_modules/lodash/isFunction.js.map +1 -0
  599. package/dist/node_modules/lodash/isLength.js +14 -0
  600. package/dist/node_modules/lodash/isLength.js.map +1 -0
  601. package/dist/node_modules/lodash/isNaN.js +15 -0
  602. package/dist/node_modules/lodash/isNaN.js.map +1 -0
  603. package/dist/node_modules/lodash/isNil.js +13 -0
  604. package/dist/node_modules/lodash/isNil.js.map +1 -0
  605. package/dist/node_modules/lodash/isNumber.js +16 -0
  606. package/dist/node_modules/lodash/isNumber.js.map +1 -0
  607. package/dist/node_modules/lodash/isObject.js +14 -0
  608. package/dist/node_modules/lodash/isObject.js.map +1 -0
  609. package/dist/node_modules/lodash/isObjectLike.js +13 -0
  610. package/dist/node_modules/lodash/isObjectLike.js.map +1 -0
  611. package/dist/node_modules/lodash/isPlainObject.js +21 -0
  612. package/dist/node_modules/lodash/isPlainObject.js.map +1 -0
  613. package/dist/node_modules/lodash/isString.js +17 -0
  614. package/dist/node_modules/lodash/isString.js.map +1 -0
  615. package/dist/node_modules/lodash/isSymbol.js +16 -0
  616. package/dist/node_modules/lodash/isSymbol.js.map +1 -0
  617. package/dist/node_modules/lodash/isTypedArray.js +14 -0
  618. package/dist/node_modules/lodash/isTypedArray.js.map +1 -0
  619. package/dist/node_modules/lodash/keys.js +17 -0
  620. package/dist/node_modules/lodash/keys.js.map +1 -0
  621. package/dist/node_modules/lodash/last.js +14 -0
  622. package/dist/node_modules/lodash/last.js.map +1 -0
  623. package/dist/node_modules/lodash/map.js +18 -0
  624. package/dist/node_modules/lodash/map.js.map +1 -0
  625. package/dist/node_modules/lodash/mapValues.js +20 -0
  626. package/dist/node_modules/lodash/mapValues.js.map +1 -0
  627. package/dist/node_modules/lodash/max.js +17 -0
  628. package/dist/node_modules/lodash/max.js.map +1 -0
  629. package/dist/node_modules/lodash/maxBy.js +17 -0
  630. package/dist/node_modules/lodash/maxBy.js.map +1 -0
  631. package/dist/node_modules/lodash/memoize.js +22 -0
  632. package/dist/node_modules/lodash/memoize.js.map +1 -0
  633. package/dist/node_modules/lodash/min.js +17 -0
  634. package/dist/node_modules/lodash/min.js.map +1 -0
  635. package/dist/node_modules/lodash/minBy.js +17 -0
  636. package/dist/node_modules/lodash/minBy.js.map +1 -0
  637. package/dist/node_modules/lodash/noop.js +11 -0
  638. package/dist/node_modules/lodash/noop.js.map +1 -0
  639. package/dist/node_modules/lodash/now.js +14 -0
  640. package/dist/node_modules/lodash/now.js.map +1 -0
  641. package/dist/node_modules/lodash/property.js +18 -0
  642. package/dist/node_modules/lodash/property.js.map +1 -0
  643. package/dist/node_modules/lodash/range.js +11 -0
  644. package/dist/node_modules/lodash/range.js.map +1 -0
  645. package/dist/node_modules/lodash/some.js +20 -0
  646. package/dist/node_modules/lodash/some.js.map +1 -0
  647. package/dist/node_modules/lodash/sortBy.js +19 -0
  648. package/dist/node_modules/lodash/sortBy.js.map +1 -0
  649. package/dist/node_modules/lodash/stubArray.js +13 -0
  650. package/dist/node_modules/lodash/stubArray.js.map +1 -0
  651. package/dist/node_modules/lodash/stubFalse.js +13 -0
  652. package/dist/node_modules/lodash/stubFalse.js.map +1 -0
  653. package/dist/node_modules/lodash/throttle.js +22 -0
  654. package/dist/node_modules/lodash/throttle.js.map +1 -0
  655. package/dist/node_modules/lodash/toFinite.js +15 -0
  656. package/dist/node_modules/lodash/toFinite.js.map +1 -0
  657. package/dist/node_modules/lodash/toInteger.js +16 -0
  658. package/dist/node_modules/lodash/toInteger.js.map +1 -0
  659. package/dist/node_modules/lodash/toNumber.js +26 -0
  660. package/dist/node_modules/lodash/toNumber.js.map +1 -0
  661. package/dist/node_modules/lodash/toString.js +15 -0
  662. package/dist/node_modules/lodash/toString.js.map +1 -0
  663. package/dist/node_modules/lodash/uniqBy.js +16 -0
  664. package/dist/node_modules/lodash/uniqBy.js.map +1 -0
  665. package/dist/node_modules/lodash/upperFirst.js +11 -0
  666. package/dist/node_modules/lodash/upperFirst.js.map +1 -0
  667. package/dist/node_modules/object-assign/index.js +41 -0
  668. package/dist/node_modules/object-assign/index.js.map +1 -0
  669. package/dist/node_modules/prop-types/checkPropTypes.js +46 -0
  670. package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -0
  671. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +49 -0
  672. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
  673. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +272 -0
  674. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
  675. package/dist/node_modules/prop-types/index.js +16 -0
  676. package/dist/node_modules/prop-types/index.js.map +1 -0
  677. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
  678. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
  679. package/dist/node_modules/prop-types/lib/has.js +10 -0
  680. package/dist/node_modules/prop-types/lib/has.js.map +1 -0
  681. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +84 -0
  682. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
  683. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +64 -0
  684. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
  685. package/dist/node_modules/prop-types/node_modules/react-is/index.js +12 -0
  686. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
  687. package/dist/node_modules/react-is/cjs/react-is.development.js +87 -0
  688. package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -0
  689. package/dist/node_modules/react-is/cjs/react-is.production.min.js +65 -0
  690. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
  691. package/dist/node_modules/react-is/index.js +12 -0
  692. package/dist/node_modules/react-is/index.js.map +1 -0
  693. package/dist/node_modules/react-smooth/es6/Animate.js +374 -0
  694. package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -0
  695. package/dist/node_modules/react-smooth/es6/AnimateManager.js +73 -0
  696. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -0
  697. package/dist/node_modules/react-smooth/es6/configUpdate.js +173 -0
  698. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -0
  699. package/dist/node_modules/react-smooth/es6/easing.js +152 -0
  700. package/dist/node_modules/react-smooth/es6/easing.js.map +1 -0
  701. package/dist/node_modules/react-smooth/es6/index.js +9 -0
  702. package/dist/node_modules/react-smooth/es6/index.js.map +1 -0
  703. package/dist/node_modules/react-smooth/es6/setRafTimeout.js +14 -0
  704. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -0
  705. package/dist/node_modules/react-smooth/es6/util.js +92 -0
  706. package/dist/node_modules/react-smooth/es6/util.js.map +1 -0
  707. package/dist/node_modules/recharts/es6/cartesian/Area.js +435 -0
  708. package/dist/node_modules/recharts/es6/cartesian/Area.js.map +1 -0
  709. package/dist/node_modules/recharts/es6/cartesian/Bar.js +387 -0
  710. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -0
  711. package/dist/node_modules/recharts/es6/cartesian/Brush.js +499 -0
  712. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -0
  713. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +338 -0
  714. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -0
  715. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +243 -0
  716. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -0
  717. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +173 -0
  718. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -0
  719. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +178 -0
  720. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -0
  721. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +254 -0
  722. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -0
  723. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +144 -0
  724. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -0
  725. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +143 -0
  726. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -0
  727. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +18 -0
  728. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -0
  729. package/dist/node_modules/recharts/es6/cartesian/getTicks.js +121 -0
  730. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -0
  731. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +101 -0
  732. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -0
  733. package/dist/node_modules/recharts/es6/chart/AreaChart.js +22 -0
  734. package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +1 -0
  735. package/dist/node_modules/recharts/es6/chart/BarChart.js +24 -0
  736. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -0
  737. package/dist/node_modules/recharts/es6/chart/PieChart.js +34 -0
  738. package/dist/node_modules/recharts/es6/chart/PieChart.js.map +1 -0
  739. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +1245 -0
  740. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -0
  741. package/dist/node_modules/recharts/es6/component/Cell.js +9 -0
  742. package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -0
  743. package/dist/node_modules/recharts/es6/component/Cursor.js +93 -0
  744. package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -0
  745. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +237 -0
  746. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -0
  747. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +171 -0
  748. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -0
  749. package/dist/node_modules/recharts/es6/component/Label.js +353 -0
  750. package/dist/node_modules/recharts/es6/component/Label.js.map +1 -0
  751. package/dist/node_modules/recharts/es6/component/LabelList.js +166 -0
  752. package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -0
  753. package/dist/node_modules/recharts/es6/component/Legend.js +234 -0
  754. package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -0
  755. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +187 -0
  756. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -0
  757. package/dist/node_modules/recharts/es6/component/Text.js +225 -0
  758. package/dist/node_modules/recharts/es6/component/Text.js.map +1 -0
  759. package/dist/node_modules/recharts/es6/component/Tooltip.js +182 -0
  760. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -0
  761. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +198 -0
  762. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -0
  763. package/dist/node_modules/recharts/es6/container/Layer.js +40 -0
  764. package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -0
  765. package/dist/node_modules/recharts/es6/container/Surface.js +60 -0
  766. package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -0
  767. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +46 -0
  768. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -0
  769. package/dist/node_modules/recharts/es6/polar/Pie.js +435 -0
  770. package/dist/node_modules/recharts/es6/polar/Pie.js.map +1 -0
  771. package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +215 -0
  772. package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js.map +1 -0
  773. package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +268 -0
  774. package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js.map +1 -0
  775. package/dist/node_modules/recharts/es6/shape/Cross.js +112 -0
  776. package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -0
  777. package/dist/node_modules/recharts/es6/shape/Curve.js +136 -0
  778. package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -0
  779. package/dist/node_modules/recharts/es6/shape/Dot.js +27 -0
  780. package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -0
  781. package/dist/node_modules/recharts/es6/shape/Polygon.js +112 -0
  782. package/dist/node_modules/recharts/es6/shape/Polygon.js.map +1 -0
  783. package/dist/node_modules/recharts/es6/shape/Rectangle.js +205 -0
  784. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -0
  785. package/dist/node_modules/recharts/es6/shape/Sector.js +192 -0
  786. package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -0
  787. package/dist/node_modules/recharts/es6/shape/Symbols.js +143 -0
  788. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -0
  789. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +175 -0
  790. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -0
  791. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +181 -0
  792. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -0
  793. package/dist/node_modules/recharts/es6/util/BarUtils.js +112 -0
  794. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -0
  795. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +234 -0
  796. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -0
  797. package/dist/node_modules/recharts/es6/util/ChartUtils.js +554 -0
  798. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -0
  799. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +70 -0
  800. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -0
  801. package/dist/node_modules/recharts/es6/util/DOMUtils.js +108 -0
  802. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -0
  803. package/dist/node_modules/recharts/es6/util/DataUtils.js +57 -0
  804. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -0
  805. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +58 -0
  806. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -0
  807. package/dist/node_modules/recharts/es6/util/Events.js +7 -0
  808. package/dist/node_modules/recharts/es6/util/Events.js.map +1 -0
  809. package/dist/node_modules/recharts/es6/util/Global.js +21 -0
  810. package/dist/node_modules/recharts/es6/util/Global.js.map +1 -0
  811. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +9 -0
  812. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -0
  813. package/dist/node_modules/recharts/es6/util/LogUtils.js +15 -0
  814. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -0
  815. package/dist/node_modules/recharts/es6/util/PolarUtils.js +198 -0
  816. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -0
  817. package/dist/node_modules/recharts/es6/util/ReactUtils.js +137 -0
  818. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -0
  819. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +181 -0
  820. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -0
  821. package/dist/node_modules/recharts/es6/util/ShallowEqual.js +10 -0
  822. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -0
  823. package/dist/node_modules/recharts/es6/util/TickUtils.js +31 -0
  824. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -0
  825. package/dist/node_modules/recharts/es6/util/calculateViewBox.js +25 -0
  826. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -0
  827. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +23 -0
  828. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -0
  829. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +16 -0
  830. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -0
  831. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +17 -0
  832. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -0
  833. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +12 -0
  834. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -0
  835. package/dist/node_modules/recharts/es6/util/getLegendProps.js +88 -0
  836. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -0
  837. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +13 -0
  838. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -0
  839. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +12 -0
  840. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -0
  841. package/dist/node_modules/recharts/es6/util/tooltip/translate.js +87 -0
  842. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -0
  843. package/dist/node_modules/recharts/es6/util/types.js +43 -0
  844. package/dist/node_modules/recharts/es6/util/types.js.map +1 -0
  845. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +132 -0
  846. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -0
  847. package/dist/node_modules/recharts-scale/es6/index.js +1 -0
  848. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +32 -0
  849. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -0
  850. package/dist/node_modules/recharts-scale/es6/util/utils.js +79 -0
  851. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -0
  852. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +13 -0
  853. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -0
  854. package/dist/node_modules/victory-vendor/es/d3-scale.js +53 -0
  855. package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -0
  856. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CommunicationPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/CommunicationPage.tsx"],"sourcesContent":["import { Megaphone, Send, Upload } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n Badge,\n Button,\n EmphasisPanel,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n Input,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { useMemo, useState } from 'react';\n\nimport {\n useAnnouncementsQuery,\n useCommunicationCampaignsQuery,\n usePublishAnnouncementMutation,\n useSendCommunicationCampaignMutation,\n useUpsertAnnouncementMutation,\n useUpsertCommunicationCampaignMutation,\n} from '../../api/eventApi';\nimport { ActionMenu, type ActionMenuItem } from '../../components/ActionMenu';\nimport { Pagination, usePagination } from '../../components/Pagination';\nimport { describeError, mutationSucceeded } from '../../lib/mutationResult';\nimport { notify } from '../../lib/toast';\n\ntype SimpleRow = {\n id: string;\n name?: string | null;\n title?: string | null;\n status?: string | null;\n};\n\nfunction statusVariant(status: string): 'success' | 'warning' | 'secondary' | 'info' {\n const value = status.toLowerCase();\n if (['published', 'sent', 'active', 'completed'].includes(value)) return 'success';\n if (['cancelled', 'archived', 'failed', 'expired'].includes(value)) return 'warning';\n if (['draft', 'created', 'pending', 'scheduled'].includes(value)) return 'info';\n return 'secondary';\n}\n\nconst isDraft = (status?: string | null): boolean => {\n const value = (status ?? '').toLowerCase();\n return value === '' || value === 'draft' || value === 'created';\n};\n\nconst rowLabel = (row: SimpleRow, fallback: string): string => row.title ?? row.name ?? `${fallback} ${row.id}`;\n\nfunction EntityRow({\n title,\n status,\n actions,\n ariaLabel,\n}: {\n title: string;\n status?: string | null;\n actions: ActionMenuItem[];\n ariaLabel: string;\n}) {\n return (\n <li className=\"flex items-center justify-between gap-3 rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1\">\n <p className=\"min-w-0 truncate font-medium text-text-primary\">{title}</p>\n <div className=\"flex shrink-0 items-center gap-2\">\n {status ? (\n <Badge variant={statusVariant(status)} className=\"uppercase\">\n {status}\n </Badge>\n ) : null}\n {actions.length > 0 ? <ActionMenu ariaLabel={ariaLabel} extraItems={actions} /> : null}\n </div>\n </li>\n );\n}\n\nexport default function CommunicationPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n const announcementPagination = usePagination({ pageSize: 10 });\n const campaignPagination = usePagination({ pageSize: 10 });\n\n const announcementsQuery = useAnnouncementsQuery({\n limit: announcementPagination.limit,\n offset: announcementPagination.offset,\n });\n const campaignsQuery = useCommunicationCampaignsQuery({\n limit: campaignPagination.limit,\n offset: campaignPagination.offset,\n });\n\n const [createAnnouncement, { loading: creatingAnnouncement }] = useUpsertAnnouncementMutation();\n const [publishAnnouncement, { loading: publishing }] = usePublishAnnouncementMutation();\n const [createCampaign, { loading: creatingCampaign }] = useUpsertCommunicationCampaignMutation();\n const [sendCampaign, { loading: sending }] = useSendCommunicationCampaignMutation();\n\n const [announcementTitle, setAnnouncementTitle] = useState('');\n const [campaignTitle, setCampaignTitle] = useState('');\n\n const announcements = useMemo(\n () => (announcementsQuery.data?.announcements.items ?? []) as SimpleRow[],\n [announcementsQuery.data]\n );\n const announcementTotal = announcementsQuery.data?.announcements.total ?? 0;\n const campaigns = useMemo(\n () => (campaignsQuery.data?.communicationCampaigns.items ?? []) as SimpleRow[],\n [campaignsQuery.data]\n );\n const campaignTotal = campaignsQuery.data?.communicationCampaigns.total ?? 0;\n\n const onCreateAnnouncement = async () => {\n if (!announcementTitle.trim()) return;\n const failureMessage = t('eventfullymanaged.communication.errors.create', 'Could not create announcement');\n try {\n const response = await createAnnouncement({\n variables: { input: { title: announcementTitle, name: announcementTitle, status: 'draft', metadata: {} } },\n });\n if (!mutationSucceeded(response, response.data?.upsertAnnouncement?.id, failureMessage)) {\n return;\n }\n setAnnouncementTitle('');\n notify.success(t('eventfullymanaged.communication.created', 'Announcement created'));\n await announcementsQuery.refetch();\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n const onPublishAnnouncement = async (row: SimpleRow) => {\n const failureMessage = t('eventfullymanaged.communication.errors.publish', 'Could not publish announcement');\n try {\n const response = await publishAnnouncement({ variables: { id: row.id } });\n if (!mutationSucceeded(response, response.data?.publishAnnouncement?.id, failureMessage)) {\n return;\n }\n notify.success(t('eventfullymanaged.communication.published', 'Announcement published'));\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n const onCreateCampaign = async () => {\n if (!campaignTitle.trim()) return;\n const failureMessage = t('eventfullymanaged.communication.errors.createCampaign', 'Could not create campaign');\n try {\n const response = await createCampaign({\n variables: { input: { title: campaignTitle, name: campaignTitle, status: 'draft', metadata: {} } },\n });\n if (!mutationSucceeded(response, response.data?.upsertCommunicationCampaign?.id, failureMessage)) {\n return;\n }\n setCampaignTitle('');\n notify.success(t('eventfullymanaged.communication.campaignCreated', 'Campaign created'));\n await campaignsQuery.refetch();\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n const onSendCampaign = async (row: SimpleRow) => {\n const failureMessage = t('eventfullymanaged.communication.errors.send', 'Could not send campaign');\n try {\n const response = await sendCampaign({ variables: { id: row.id } });\n if (!mutationSucceeded(response, response.data?.sendCommunicationCampaign?.id, failureMessage)) {\n return;\n }\n notify.success(t('eventfullymanaged.communication.sent', 'Campaign delivery started'));\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <PagePurpose>\n {t(\n 'eventfullymanaged.communication.purpose',\n 'Keep attendees informed and engaged. Announcements are one-off broadcasts (a schedule change, a welcome message); campaigns are scheduled, multi-step outreach (reminder emails, follow-ups). Draft each one here, then publish an announcement or send a campaign — delivery runs server-side through the notification service.'\n )}\n </PagePurpose>\n\n <EmphasisPanel>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>{t('eventfullymanaged.communication.title', 'Communication')}</GradientText>\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t(\n 'eventfullymanaged.communication.description',\n 'Draft announcements and campaigns, then publish or send them via workspace APIs.'\n )}\n </p>\n <div className=\"mt-4 grid grid-cols-1 gap-4 lg:grid-cols-2\">\n <div className=\"space-y-2\">\n <p className=\"text-sm font-medium text-text-primary\">\n {t('eventfullymanaged.communication.announcements.heading', 'Announcements')}\n </p>\n <div className=\"flex flex-col gap-2 sm:flex-row\">\n <Input\n value={announcementTitle}\n onChange={(e) => setAnnouncementTitle(e.target.value)}\n placeholder={t('eventfullymanaged.communication.inputPlaceholder', 'Emergency schedule update')}\n aria-label={t('eventfullymanaged.communication.inputPlaceholder', 'Emergency schedule update')}\n className=\"flex-1\"\n />\n <Button type=\"button\" disabled={creatingAnnouncement} onClick={onCreateAnnouncement}>\n <Megaphone className=\"h-4 w-4\" />\n {creatingAnnouncement\n ? t('eventfullymanaged.communication.actions.creating', 'Creating...')\n : t('eventfullymanaged.communication.actions.createAnnouncement', 'Create Announcement')}\n </Button>\n </div>\n </div>\n <div className=\"space-y-2\">\n <p className=\"text-sm font-medium text-text-primary\">\n {t('eventfullymanaged.communication.campaigns.heading', 'Campaigns')}\n </p>\n <div className=\"flex flex-col gap-2 sm:flex-row\">\n <Input\n value={campaignTitle}\n onChange={(e) => setCampaignTitle(e.target.value)}\n placeholder={t('eventfullymanaged.communication.campaignPlaceholder', 'Week-before reminder')}\n aria-label={t('eventfullymanaged.communication.campaignPlaceholder', 'Week-before reminder')}\n className=\"flex-1\"\n />\n <Button type=\"button\" variant=\"outline\" disabled={creatingCampaign} onClick={onCreateCampaign}>\n <Send className=\"h-4 w-4\" />\n {creatingCampaign\n ? t('eventfullymanaged.communication.actions.creating', 'Creating...')\n : t('eventfullymanaged.communication.actions.createCampaign', 'New Campaign')}\n </Button>\n </div>\n </div>\n </div>\n </EmphasisPanel>\n\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {announcementsQuery.loading\n ? t('eventfullymanaged.communication.announcements.loading', 'Loading announcements...')\n : `${t('eventfullymanaged.communication.announcements.heading', 'Announcements')} (${announcementTotal})`}\n </h2>\n <div className=\"mt-4\">\n {announcements.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('eventfullymanaged.communication.announcements.empty', 'No announcements published yet.')}\n className=\"py-8\"\n />\n ) : (\n <ul className=\"space-y-2.5\">\n {announcements.map((row) => {\n const publishAction: ActionMenuItem[] = isDraft(row.status)\n ? [\n {\n key: 'publish',\n label: t('eventfullymanaged.communication.actions.publish', 'Publish'),\n icon: Upload,\n disabled: publishing,\n onSelect: () => void onPublishAnnouncement(row),\n },\n ]\n : [];\n return (\n <EntityRow\n key={row.id}\n title={rowLabel(row, t('eventfullymanaged.communication.announcements.itemPrefix', 'Announcement'))}\n status={row.status}\n actions={publishAction}\n ariaLabel={t('eventfullymanaged.communication.announcements.rowActions', 'Announcement actions')}\n />\n );\n })}\n </ul>\n )}\n <Pagination\n offset={announcementPagination.offset}\n limit={announcementPagination.limit}\n loadedCount={announcements.length}\n total={announcementTotal}\n onPrev={announcementPagination.prevPage}\n onNext={announcementPagination.nextPage}\n itemLabel={t('eventfullymanaged.communication.announcements.heading', 'Announcements').toLowerCase()}\n loading={announcementsQuery.loading}\n />\n </div>\n </GlassCard>\n\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {campaignsQuery.loading\n ? t('eventfullymanaged.communication.campaigns.loading', 'Loading campaigns...')\n : `${t('eventfullymanaged.communication.campaigns.heading', 'Campaigns')} (${campaignTotal})`}\n </h2>\n <div className=\"mt-4\">\n {campaigns.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('eventfullymanaged.communication.campaigns.empty', 'No communication campaigns created yet.')}\n className=\"py-8\"\n />\n ) : (\n <ul className=\"space-y-2.5\">\n {campaigns.map((row) => {\n const sendAction: ActionMenuItem[] = isDraft(row.status)\n ? [\n {\n key: 'send',\n label: t('eventfullymanaged.communication.actions.send', 'Send Campaign'),\n icon: Send,\n disabled: sending,\n onSelect: () => void onSendCampaign(row),\n },\n ]\n : [];\n return (\n <EntityRow\n key={row.id}\n title={rowLabel(row, t('eventfullymanaged.communication.campaigns.itemPrefix', 'Campaign'))}\n status={row.status}\n actions={sendAction}\n ariaLabel={t('eventfullymanaged.communication.campaigns.rowActions', 'Campaign actions')}\n />\n );\n })}\n </ul>\n )}\n <Pagination\n offset={campaignPagination.offset}\n limit={campaignPagination.limit}\n loadedCount={campaigns.length}\n total={campaignTotal}\n onPrev={campaignPagination.prevPage}\n onNext={campaignPagination.nextPage}\n itemLabel={t('eventfullymanaged.communication.campaigns.heading', 'Campaigns').toLowerCase()}\n loading={campaignsQuery.loading}\n />\n </div>\n </GlassCard>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CommunicationPage.js","names":[],"sources":["../../../../src/eventfullymanaged/pages/modules/CommunicationPage.tsx"],"sourcesContent":["import { Mail, Megaphone, Plus, Send, Upload } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n Badge,\n Button,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n Input,\n PagePurpose,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport { useMemo, useState } from 'react';\n\nimport {\n useAnnouncementsQuery,\n useCommunicationCampaignsQuery,\n usePublishAnnouncementMutation,\n useSendCommunicationCampaignMutation,\n useUpsertAnnouncementMutation,\n useUpsertCommunicationCampaignMutation,\n} from '../../api/eventApi';\nimport { Pagination, usePagination } from '../../components/Pagination';\nimport { describeError, mutationSucceeded } from '../../lib/mutationResult';\nimport { notify } from '../../lib/toast';\n\ntype SimpleRow = {\n id: string;\n name?: string | null;\n title?: string | null;\n status?: string | null;\n};\n\ntype ComposeKind = 'announcement' | 'campaign';\n\nfunction statusVariant(status: string): 'success' | 'warning' | 'secondary' | 'info' {\n const value = status.toLowerCase();\n if (['published', 'sent', 'active', 'completed'].includes(value)) return 'success';\n if (['cancelled', 'archived', 'failed', 'expired'].includes(value)) return 'warning';\n if (['draft', 'created', 'pending', 'scheduled'].includes(value)) return 'info';\n return 'secondary';\n}\n\nconst isDraft = (status?: string | null): boolean => {\n const value = (status ?? '').toLowerCase();\n return value === '' || value === 'draft' || value === 'created';\n};\n\nconst rowLabel = (row: SimpleRow, fallback: string): string => row.title ?? row.name ?? `${fallback} ${row.id}`;\n\nexport default function CommunicationPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string) => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n\n const announcementPagination = usePagination({ pageSize: 8 });\n const campaignPagination = usePagination({ pageSize: 8 });\n\n const announcementsQuery = useAnnouncementsQuery({\n limit: announcementPagination.limit,\n offset: announcementPagination.offset,\n });\n const campaignsQuery = useCommunicationCampaignsQuery({\n limit: campaignPagination.limit,\n offset: campaignPagination.offset,\n });\n\n const [createAnnouncement, { loading: creatingAnnouncement }] = useUpsertAnnouncementMutation();\n const [publishAnnouncement, { loading: publishing }] = usePublishAnnouncementMutation();\n const [createCampaign, { loading: creatingCampaign }] = useUpsertCommunicationCampaignMutation();\n const [sendCampaign, { loading: sending }] = useSendCommunicationCampaignMutation();\n\n const [kind, setKind] = useState<ComposeKind>('announcement');\n const [subject, setSubject] = useState('');\n const [audience, setAudience] = useState('');\n const [body, setBody] = useState('');\n\n const announcements = useMemo(\n () => (announcementsQuery.data?.announcements.items ?? []) as SimpleRow[],\n [announcementsQuery.data]\n );\n const announcementTotal = announcementsQuery.data?.announcements.total ?? 0;\n const campaigns = useMemo(\n () => (campaignsQuery.data?.communicationCampaigns.items ?? []) as SimpleRow[],\n [campaignsQuery.data]\n );\n const campaignTotal = campaignsQuery.data?.communicationCampaigns.total ?? 0;\n\n const composing = kind === 'announcement' ? creatingAnnouncement : creatingCampaign;\n const resetCompose = () => {\n setSubject('');\n setAudience('');\n setBody('');\n };\n\n const onCompose = async () => {\n if (!subject.trim()) {\n notify.error(t('eventfullymanaged.communication.subjectRequired', 'Subject required'), '');\n return;\n }\n const metadata: Record<string, unknown> = {};\n if (body.trim()) metadata.body = body.trim();\n if (audience.trim()) metadata.audience = audience.trim();\n\n if (kind === 'announcement') {\n const failureMessage = t('eventfullymanaged.communication.errors.create', 'Could not create announcement');\n try {\n const response = await createAnnouncement({\n variables: { input: { title: subject, name: subject, status: 'draft', metadata } },\n });\n if (!mutationSucceeded(response, response.data?.upsertAnnouncement?.id, failureMessage)) return;\n resetCompose();\n notify.success(t('eventfullymanaged.communication.created', 'Announcement created'));\n await announcementsQuery.refetch();\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n return;\n }\n\n const failureMessage = t('eventfullymanaged.communication.errors.createCampaign', 'Could not create campaign');\n try {\n const response = await createCampaign({\n variables: { input: { title: subject, name: subject, status: 'draft', metadata } },\n });\n if (!mutationSucceeded(response, response.data?.upsertCommunicationCampaign?.id, failureMessage)) return;\n resetCompose();\n notify.success(t('eventfullymanaged.communication.campaignCreated', 'Campaign created'));\n await campaignsQuery.refetch();\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n const onPublishAnnouncement = async (row: SimpleRow) => {\n const failureMessage = t('eventfullymanaged.communication.errors.publish', 'Could not publish announcement');\n try {\n const response = await publishAnnouncement({ variables: { id: row.id } });\n if (!mutationSucceeded(response, response.data?.publishAnnouncement?.id, failureMessage)) return;\n notify.success(t('eventfullymanaged.communication.published', 'Announcement published'));\n await announcementsQuery.refetch();\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n const onSendCampaign = async (row: SimpleRow) => {\n const failureMessage = t('eventfullymanaged.communication.errors.send', 'Could not send campaign');\n try {\n const response = await sendCampaign({ variables: { id: row.id } });\n if (!mutationSucceeded(response, response.data?.sendCommunicationCampaign?.id, failureMessage)) return;\n notify.success(t('eventfullymanaged.communication.sent', 'Campaign delivery started'));\n await campaignsQuery.refetch();\n } catch (error) {\n notify.error(failureMessage, describeError(error));\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <PagePurpose>\n {t(\n 'eventfullymanaged.communication.purpose',\n 'Keep attendees informed and engaged. Announcements are one-off broadcasts (a schedule change, a welcome message); campaigns are scheduled, multi-step outreach (reminder emails, follow-ups). Compose each one here, then publish an announcement or send a campaign — delivery runs server-side through the notification service.'\n )}\n </PagePurpose>\n\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-text-primary\">\n <GradientText>{t('eventfullymanaged.communication.title', 'Communications')}</GradientText>\n </h1>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {t('eventfullymanaged.communication.description', 'Draft, publish and send from one place.')}\n </p>\n </div>\n <div className=\"flex flex-col gap-2 sm:flex-row\">\n <Button\n type=\"button\"\n variant={kind === 'announcement' ? 'default' : 'outline'}\n onClick={() => setKind('announcement')}\n >\n <Plus className=\"h-4 w-4\" />\n {t('eventfullymanaged.communication.actions.newAnnouncement', 'New announcement')}\n </Button>\n <Button\n type=\"button\"\n variant={kind === 'campaign' ? 'default' : 'outline'}\n onClick={() => setKind('campaign')}\n >\n <Plus className=\"h-4 w-4\" />\n {t('eventfullymanaged.communication.actions.newCampaign', 'New campaign')}\n </Button>\n </div>\n </div>\n\n {/* Compose + live preview */}\n <GlassCard treatment=\"glass\" glow className=\"p-5\">\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-2\">\n {kind === 'announcement' ? (\n <Megaphone className=\"h-4 w-4 text-accent-primary\" />\n ) : (\n <Mail className=\"h-4 w-4 text-accent-primary\" />\n )}\n <h2 className=\"text-base font-semibold text-text-primary\">\n {kind === 'announcement'\n ? t('eventfullymanaged.communication.compose.announcement', 'Compose announcement')\n : t('eventfullymanaged.communication.compose.campaign', 'Compose campaign')}\n </h2>\n </div>\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.communication.fields.subject', 'Subject')}\n </span>\n <Input\n value={subject}\n onChange={(e) => setSubject(e.target.value)}\n placeholder={t(\n 'eventfullymanaged.communication.fields.subjectPlaceholder',\n 'Q4 Product Roadmap Update'\n )}\n aria-label={t('eventfullymanaged.communication.fields.subject', 'Subject')}\n />\n </label>\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.communication.fields.audience', 'Audience')}\n </span>\n <Input\n value={audience}\n onChange={(e) => setAudience(e.target.value)}\n placeholder={t('eventfullymanaged.communication.fields.audiencePlaceholder', 'All attendees')}\n aria-label={t('eventfullymanaged.communication.fields.audience', 'Audience')}\n />\n </label>\n <label className=\"block space-y-1 text-sm\">\n <span className=\"font-medium text-text-primary\">\n {t('eventfullymanaged.communication.fields.body', 'Message')}\n </span>\n <Textarea\n value={body}\n onChange={(e) => setBody(e.target.value)}\n rows={5}\n placeholder={t(\n 'eventfullymanaged.communication.fields.bodyPlaceholder',\n 'Hi there, here are the latest updates…'\n )}\n aria-label={t('eventfullymanaged.communication.fields.body', 'Message')}\n />\n </label>\n <div className=\"flex justify-end\">\n <Button type=\"button\" disabled={composing} onClick={onCompose}>\n {composing\n ? t('eventfullymanaged.communication.actions.saving', 'Saving…')\n : kind === 'announcement'\n ? t('eventfullymanaged.communication.actions.createAnnouncement', 'Create draft')\n : t('eventfullymanaged.communication.actions.createCampaign', 'Create draft')}\n </Button>\n </div>\n </div>\n\n {/* Live preview */}\n <div className=\"rounded-card border border-border-seam bg-bg-surface p-4\">\n <div className=\"flex items-center justify-between border-b border-border-seam pb-2\">\n <span className=\"flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-text-muted\">\n <Mail className=\"h-3.5 w-3.5\" />\n {t('eventfullymanaged.communication.preview.label', 'Preview')}\n </span>\n <Badge variant=\"info\" className=\"uppercase\">\n {t('eventfullymanaged.communication.preview.draft', 'Draft')}\n </Badge>\n </div>\n <div className=\"mt-3 space-y-2\">\n <p className=\"text-base font-semibold text-text-primary\">\n {subject.trim() || t('eventfullymanaged.communication.preview.noSubject', 'Your subject line')}\n </p>\n {audience.trim() ? (\n <p className=\"text-xs text-text-secondary\">\n {t('eventfullymanaged.communication.preview.to', 'To')}: {audience.trim()}\n </p>\n ) : null}\n <p className=\"whitespace-pre-wrap text-sm text-text-secondary\">\n {body.trim() ||\n t('eventfullymanaged.communication.preview.noBody', 'Start typing to see your message preview here.')}\n </p>\n </div>\n </div>\n </div>\n </GlassCard>\n\n {/* Two-pane lists */}\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-2\">\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {t('eventfullymanaged.communication.announcements.heading', 'Announcements')}\n </h2>\n {announcementTotal > 0 ? <span className=\"text-sm text-text-muted\">{announcementTotal}</span> : null}\n </div>\n <div className=\"mt-4\">\n {announcementsQuery.loading && announcements.length === 0 ? (\n <p className=\"py-8 text-center text-sm text-text-secondary\">\n {t('eventfullymanaged.communication.announcements.loading', 'Loading announcements…')}\n </p>\n ) : announcements.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('eventfullymanaged.communication.announcements.empty', 'No announcements yet.')}\n className=\"py-8\"\n />\n ) : (\n <ul className=\"space-y-2.5\">\n {announcements.map((row) => (\n <li\n key={row.id}\n className=\"flex items-center justify-between gap-3 rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1\"\n >\n <p className=\"min-w-0 truncate font-medium text-text-primary\">\n {rowLabel(row, t('eventfullymanaged.communication.announcements.itemPrefix', 'Announcement'))}\n </p>\n <div className=\"flex shrink-0 items-center gap-2\">\n {row.status ? (\n <Badge variant={statusVariant(row.status)} className=\"uppercase\">\n {row.status}\n </Badge>\n ) : null}\n {isDraft(row.status) ? (\n <Button\n type=\"button\"\n size=\"sm\"\n disabled={publishing}\n onClick={() => void onPublishAnnouncement(row)}\n >\n <Upload className=\"h-3.5 w-3.5\" />\n {t('eventfullymanaged.communication.actions.publish', 'Publish')}\n </Button>\n ) : null}\n </div>\n </li>\n ))}\n </ul>\n )}\n <Pagination\n offset={announcementPagination.offset}\n limit={announcementPagination.limit}\n loadedCount={announcements.length}\n total={announcementTotal}\n onPrev={announcementPagination.prevPage}\n onNext={announcementPagination.nextPage}\n itemLabel={t('eventfullymanaged.communication.announcements.heading', 'Announcements').toLowerCase()}\n loading={announcementsQuery.loading}\n />\n </div>\n </GlassCard>\n\n <GlassCard treatment=\"plain\" className=\"border-border-seam p-5\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {t('eventfullymanaged.communication.campaigns.heading', 'Campaigns')}\n </h2>\n {campaignTotal > 0 ? <span className=\"text-sm text-text-muted\">{campaignTotal}</span> : null}\n </div>\n <div className=\"mt-4\">\n {campaignsQuery.loading && campaigns.length === 0 ? (\n <p className=\"py-8 text-center text-sm text-text-secondary\">\n {t('eventfullymanaged.communication.campaigns.loading', 'Loading campaigns…')}\n </p>\n ) : campaigns.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title={t('eventfullymanaged.communication.campaigns.empty', 'No campaigns yet.')}\n className=\"py-8\"\n />\n ) : (\n <ul className=\"space-y-2.5\">\n {campaigns.map((row) => (\n <li\n key={row.id}\n className=\"flex items-center justify-between gap-3 rounded-card border border-border-seam bg-bg-surface p-3 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1\"\n >\n <p className=\"min-w-0 truncate font-medium text-text-primary\">\n {rowLabel(row, t('eventfullymanaged.communication.campaigns.itemPrefix', 'Campaign'))}\n </p>\n <div className=\"flex shrink-0 items-center gap-2\">\n {row.status ? (\n <Badge variant={statusVariant(row.status)} className=\"uppercase\">\n {row.status}\n </Badge>\n ) : null}\n {isDraft(row.status) ? (\n <Button type=\"button\" size=\"sm\" disabled={sending} onClick={() => void onSendCampaign(row)}>\n <Send className=\"h-3.5 w-3.5\" />\n {t('eventfullymanaged.communication.actions.send', 'Send campaign')}\n </Button>\n ) : null}\n </div>\n </li>\n ))}\n </ul>\n )}\n <Pagination\n offset={campaignPagination.offset}\n limit={campaignPagination.limit}\n loadedCount={campaigns.length}\n total={campaignTotal}\n onPrev={campaignPagination.prevPage}\n onNext={campaignPagination.nextPage}\n itemLabel={t('eventfullymanaged.communication.campaigns.heading', 'Campaigns').toLowerCase()}\n loading={campaignsQuery.loading}\n />\n </div>\n </GlassCard>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,14 +1,29 @@
1
1
  import { useEventfullyManaged as e } from "../../context/EventfullyManagedContext.js";
2
- import { useEventsQuery as t } from "../../api/eventApi.js";
3
- import { ActionMenu as n } from "../../components/ActionMenu.js";
4
- import { Pagination as r, usePagination as i } from "../../components/Pagination.js";
5
- import { useMemo as a, useState as o } from "react";
6
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
- import { CalendarClock as l, CalendarPlus as u, Search as d, Ticket as f, Users as p } from "lucide-react";
8
- import { useI18n as m } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
9
- import { Badge as h, Button as g, EmphasisPanel as _, GlassCard as v, GradientText as y, IllustratedEmptyState as b, Input as x, NextSteps as S, PagePurpose as C } from "@burdenoff/fe-libs/ui";
2
+ import { gql as t } from "../../../node_modules/graphql-tag/lib/index.js";
3
+ import { useQuery as n } from "../../../node_modules/@apollo/client/react/hooks/useQuery.js";
4
+ import { useEventsQuery as r, useSponsorsQuery as i, useVenuesQuery as a } from "../../api/eventApi.js";
5
+ import { formatDateTime as o } from "../events/eventFormUtils.js";
6
+ import { ActionMenu as s } from "../../components/ActionMenu.js";
7
+ import { Pagination as c, usePagination as l } from "../../components/Pagination.js";
8
+ import { useMemo as u, useState as d } from "react";
9
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
10
+ import { Award as m, CalendarClock as h, CalendarDays as g, CalendarPlus as _, MapPin as v, Search as ee, Ticket as y, UserCheck as b, Users as x } from "lucide-react";
11
+ import { useI18n as S } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
+ import { Badge as C, Button as w, EmphasisPanel as T, GlassCard as E, GradientText as D, IllustratedEmptyState as O, Input as k, NextSteps as te, PagePurpose as ne, Skeleton as A, Tabs as re, TabsList as ie, TabsTrigger as j } from "@burdenoff/fe-libs/ui";
10
13
  //#region src/eventfullymanaged/pages/modules/EventsPage.tsx
11
- function w(e) {
14
+ var M = t`
15
+ query EventfullymanagedEventsRegistrations($limit: Int) {
16
+ registrations: eventfullyManagedRegistrations(limit: $limit, offset: 0) {
17
+ total
18
+ items {
19
+ id
20
+ eventId
21
+ checkedInAt
22
+ }
23
+ }
24
+ }
25
+ `;
26
+ function N(e) {
12
27
  let t = e.toLowerCase();
13
28
  return [
14
29
  "active",
@@ -30,126 +45,326 @@ function w(e) {
30
45
  "scheduled"
31
46
  ].includes(t) ? "info" : "secondary";
32
47
  }
33
- function T() {
34
- let { t: T } = m(), E = (e, t) => {
35
- let n = T(e);
36
- return n === e ? t : n;
37
- }, { navigate: D } = e(), [O, k] = o(""), A = i({ resetKey: O }), { data: j, loading: M } = t({
38
- search: O,
39
- limit: A.limit,
40
- offset: A.offset
41
- }), N = j?.events?.total ?? 0, P = a(() => j?.events?.items ?? [], [j]);
42
- return /* @__PURE__ */ c("div", {
48
+ function P(e, t) {
49
+ let n = e ? o(e) : "", r = t ? o(t) : "";
50
+ return n && r ? `${n} — ${r}` : n || r || "No schedule set";
51
+ }
52
+ function F(e, t) {
53
+ let n = Date.now(), r = e ? new Date(e).getTime() : NaN, i = t ? new Date(t).getTime() : NaN, a = !Number.isNaN(r), o = !Number.isNaN(i);
54
+ return !a && !o ? null : a && n < r ? "upcoming" : o && n > i ? "past" : a ? "live" : "upcoming";
55
+ }
56
+ function I({ icon: e, label: t, value: n, loading: r }) {
57
+ return /* @__PURE__ */ f(E, {
58
+ treatment: "plain",
59
+ className: "border-border-seam p-4",
60
+ children: /* @__PURE__ */ p("div", {
61
+ className: "flex items-center gap-3",
62
+ children: [/* @__PURE__ */ f("span", {
63
+ className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-button bg-bg-sunken text-text-secondary",
64
+ children: /* @__PURE__ */ f(e, { className: "h-4 w-4" })
65
+ }), /* @__PURE__ */ p("div", {
66
+ className: "min-w-0",
67
+ children: [r ? /* @__PURE__ */ f(A, { className: "h-6 w-12" }) : /* @__PURE__ */ f("p", {
68
+ className: "truncate text-xl font-bold tabular-nums text-text-primary",
69
+ children: n
70
+ }), /* @__PURE__ */ f("p", {
71
+ className: "truncate text-xs text-text-muted",
72
+ children: t
73
+ })]
74
+ })]
75
+ })
76
+ });
77
+ }
78
+ function L({ icon: e, label: t, value: n }) {
79
+ return /* @__PURE__ */ p("div", {
80
+ className: "flex items-center gap-1.5",
81
+ children: [
82
+ /* @__PURE__ */ f(e, { className: "h-3.5 w-3.5 text-text-muted" }),
83
+ /* @__PURE__ */ f("span", {
84
+ className: "tabular-nums font-medium text-text-primary",
85
+ children: n
86
+ }),
87
+ /* @__PURE__ */ f("span", {
88
+ className: "text-text-muted",
89
+ children: t
90
+ })
91
+ ]
92
+ });
93
+ }
94
+ function R() {
95
+ let { t } = S(), o = (e, n) => {
96
+ let r = t(e);
97
+ return r === e ? n : r;
98
+ }, { navigate: R } = e(), [z, B] = d(""), [V, H] = d("all"), U = l({ resetKey: z }), { data: W, loading: G } = r({
99
+ search: z,
100
+ limit: U.limit,
101
+ offset: U.offset
102
+ }), { data: K, loading: q } = a({
103
+ limit: 100,
104
+ offset: 0
105
+ }), { data: J, loading: ae } = i({
106
+ limit: 1,
107
+ offset: 0
108
+ }), { data: Y, loading: oe } = n(M, { variables: { limit: 500 } }), X = W?.events?.total ?? 0, Z = u(() => W?.events?.items ?? [], [W]), se = Y?.registrations?.total ?? 0, Q = K?.venues?.total ?? 0, ce = J?.sponsors?.total ?? 0, $ = u(() => V === "all" ? Z : Z.filter((e) => F(e.startAt, e.endAt) === V), [Z, V]), le = u(() => {
109
+ let e = /* @__PURE__ */ new Map();
110
+ for (let t of K?.venues?.items ?? []) e.set(t.id, t.name);
111
+ return e;
112
+ }, [K]), ue = u(() => {
113
+ let e = /* @__PURE__ */ new Map();
114
+ for (let t of Y?.registrations?.items ?? []) {
115
+ let n = e.get(t.eventId) ?? {
116
+ registrations: 0,
117
+ checkedIn: 0
118
+ };
119
+ n.registrations += 1, t.checkedInAt && (n.checkedIn += 1), e.set(t.eventId, n);
120
+ }
121
+ return e;
122
+ }, [Y]);
123
+ return /* @__PURE__ */ p("div", {
43
124
  className: "space-y-6 p-6",
44
125
  children: [
45
- /* @__PURE__ */ s(C, { children: E("eventfullymanaged.events.purpose", "Events are the heart of the platform — each one is a happening you sell tickets for, register attendees to, and run on the day. Create an event, open it to reveal its agenda, speakers and ticket types, then publish it when it is ready.") }),
46
- /* @__PURE__ */ s(_, { children: /* @__PURE__ */ c("div", {
126
+ /* @__PURE__ */ f(ne, { children: o("eventfullymanaged.events.purpose", "Events are the heart of the platform — each one is a happening you sell tickets for, register attendees to, and run on the day. Create an event, open it to reveal its agenda, speakers and ticket types, then publish it when it is ready.") }),
127
+ /* @__PURE__ */ f(T, { children: /* @__PURE__ */ p("div", {
47
128
  className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
48
- children: [/* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("h1", {
129
+ children: [/* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h1", {
49
130
  className: "text-2xl font-bold text-text-primary",
50
- children: /* @__PURE__ */ s(y, { children: E("eventfullymanaged.events.title", "Events") })
51
- }), /* @__PURE__ */ s("p", {
131
+ children: /* @__PURE__ */ f(D, { children: o("eventfullymanaged.events.title", "Events") })
132
+ }), /* @__PURE__ */ f("p", {
52
133
  className: "mt-1 text-sm text-text-secondary",
53
- children: E("eventfullymanaged.events.description", "Create and manage live events from the workspace graph.")
54
- })] }), /* @__PURE__ */ c(g, {
134
+ children: o("eventfullymanaged.events.description", "Create and manage live events from the workspace graph.")
135
+ })] }), /* @__PURE__ */ p(w, {
55
136
  type: "button",
56
- onClick: () => D("/events/create"),
57
- children: [/* @__PURE__ */ s(u, { className: "h-4 w-4" }), E("eventfullymanaged.events.actions.create", "Create Event")]
137
+ onClick: () => R("/events/create"),
138
+ children: [/* @__PURE__ */ f(_, { className: "h-4 w-4" }), o("eventfullymanaged.events.actions.create", "Create Event")]
58
139
  })]
59
140
  }) }),
60
- /* @__PURE__ */ c("div", {
61
- className: "relative",
62
- children: [/* @__PURE__ */ s(d, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ s(x, {
63
- type: "text",
64
- value: O,
65
- onChange: (e) => k(e.target.value),
66
- placeholder: E("eventfullymanaged.events.searchPlaceholder", "Search events"),
67
- "aria-label": E("eventfullymanaged.events.searchPlaceholder", "Search events"),
68
- className: "pl-10"
141
+ /* @__PURE__ */ p("div", {
142
+ className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
143
+ children: [
144
+ /* @__PURE__ */ f(I, {
145
+ icon: g,
146
+ label: o("eventfullymanaged.events.portfolio.events", "Events"),
147
+ value: X.toLocaleString(),
148
+ loading: G && X === 0
149
+ }),
150
+ /* @__PURE__ */ f(I, {
151
+ icon: x,
152
+ label: o("eventfullymanaged.events.portfolio.registrations", "Registrations"),
153
+ value: se.toLocaleString(),
154
+ loading: oe && !Y
155
+ }),
156
+ /* @__PURE__ */ f(I, {
157
+ icon: v,
158
+ label: o("eventfullymanaged.events.portfolio.venues", "Venues"),
159
+ value: Q.toLocaleString(),
160
+ loading: q && !K
161
+ }),
162
+ /* @__PURE__ */ f(I, {
163
+ icon: m,
164
+ label: o("eventfullymanaged.events.portfolio.sponsors", "Sponsors"),
165
+ value: ce.toLocaleString(),
166
+ loading: ae && !J
167
+ })
168
+ ]
169
+ }),
170
+ /* @__PURE__ */ p("div", {
171
+ className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",
172
+ children: [/* @__PURE__ */ p("div", {
173
+ className: "relative flex-1",
174
+ children: [/* @__PURE__ */ f(ee, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-text-muted" }), /* @__PURE__ */ f(k, {
175
+ type: "text",
176
+ value: z,
177
+ onChange: (e) => B(e.target.value),
178
+ placeholder: o("eventfullymanaged.events.searchPlaceholder", "Search events"),
179
+ "aria-label": o("eventfullymanaged.events.searchPlaceholder", "Search events"),
180
+ className: "pl-10"
181
+ })]
182
+ }), /* @__PURE__ */ f(re, {
183
+ value: V,
184
+ onValueChange: (e) => H(e),
185
+ className: "w-full sm:w-auto",
186
+ children: /* @__PURE__ */ p(ie, {
187
+ className: "w-full overflow-x-auto sm:w-auto",
188
+ children: [
189
+ /* @__PURE__ */ f(j, {
190
+ value: "all",
191
+ children: o("eventfullymanaged.events.filters.all", "All")
192
+ }),
193
+ /* @__PURE__ */ f(j, {
194
+ value: "upcoming",
195
+ children: o("eventfullymanaged.events.filters.upcoming", "Upcoming")
196
+ }),
197
+ /* @__PURE__ */ f(j, {
198
+ value: "live",
199
+ children: o("eventfullymanaged.events.filters.live", "Live")
200
+ }),
201
+ /* @__PURE__ */ f(j, {
202
+ value: "past",
203
+ children: o("eventfullymanaged.events.filters.past", "Past")
204
+ })
205
+ ]
206
+ })
69
207
  })]
70
208
  }),
71
- M ? /* @__PURE__ */ s(v, {
72
- treatment: "plain",
73
- className: "border-border-seam p-8 text-center text-sm text-text-secondary",
74
- children: E("eventfullymanaged.events.list.loading", "Loading events...")
75
- }) : P.length === 0 ? /* @__PURE__ */ s(v, {
209
+ G ? /* @__PURE__ */ p("div", {
210
+ className: "space-y-3",
211
+ children: [
212
+ /* @__PURE__ */ f(A, { className: "h-28 w-full rounded-card" }),
213
+ /* @__PURE__ */ f(A, { className: "h-28 w-full rounded-card" }),
214
+ /* @__PURE__ */ f(A, { className: "h-28 w-full rounded-card" })
215
+ ]
216
+ }) : Z.length === 0 ? /* @__PURE__ */ f(E, {
76
217
  treatment: "plain",
77
218
  className: "border-border-seam",
78
- children: /* @__PURE__ */ s(b, {
79
- illustration: O ? "empty-search" : "empty-data",
80
- title: O ? E("eventfullymanaged.events.list.emptySearch", "No events match your search.") : E("eventfullymanaged.events.list.empty", "No events yet."),
81
- description: O ? E("eventfullymanaged.events.list.emptySearchHint", "Try a different name.") : E("eventfullymanaged.events.list.emptyHint", "Create your first event to get started."),
82
- action: O ? void 0 : /* @__PURE__ */ c(g, {
219
+ children: /* @__PURE__ */ f(O, {
220
+ illustration: z ? "empty-search" : "empty-data",
221
+ title: z ? o("eventfullymanaged.events.list.emptySearch", "No events match your search.") : o("eventfullymanaged.events.list.empty", "No events yet."),
222
+ description: z ? o("eventfullymanaged.events.list.emptySearchHint", "Try a different name.") : o("eventfullymanaged.events.list.emptyHint", "Create your first event to get started."),
223
+ action: z ? void 0 : /* @__PURE__ */ p(w, {
83
224
  type: "button",
84
- onClick: () => D("/events/create"),
85
- children: [/* @__PURE__ */ s(u, { className: "h-4 w-4" }), E("eventfullymanaged.events.actions.create", "Create Event")]
225
+ onClick: () => R("/events/create"),
226
+ children: [/* @__PURE__ */ f(_, { className: "h-4 w-4" }), o("eventfullymanaged.events.actions.create", "Create Event")]
86
227
  })
87
228
  })
88
- }) : /* @__PURE__ */ c("div", {
229
+ }) : $.length === 0 ? /* @__PURE__ */ p("div", {
89
230
  className: "space-y-3",
90
- children: [P.map((e) => /* @__PURE__ */ s(v, {
231
+ children: [/* @__PURE__ */ f(E, {
91
232
  treatment: "plain",
92
- className: "cursor-pointer border-border-seam p-4 transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1",
93
- onClick: () => D(`/events/${e.id}`),
94
- children: /* @__PURE__ */ c("div", {
95
- className: "flex items-center justify-between gap-3",
96
- children: [/* @__PURE__ */ c("div", {
97
- className: "min-w-0",
98
- children: [/* @__PURE__ */ s("p", {
99
- className: "truncate text-lg font-semibold text-text-primary",
100
- children: e.name
101
- }), /* @__PURE__ */ c("p", {
102
- className: "mt-0.5 flex items-center gap-2 truncate text-sm text-text-secondary",
103
- children: [/* @__PURE__ */ s(l, { className: "h-4 w-4 shrink-0" }), [e.type, e.startAt ? new Date(e.startAt).toLocaleString() : void 0].filter(Boolean).join(" • ") || "No schedule set"]
104
- })]
105
- }), /* @__PURE__ */ c("div", {
106
- className: "flex shrink-0 items-center gap-2",
107
- children: [e.status ? /* @__PURE__ */ s(h, {
108
- variant: w(e.status),
109
- className: "uppercase",
110
- children: e.status
111
- }) : null, /* @__PURE__ */ s(n, {
112
- ariaLabel: `Event actions for ${e.name}`,
113
- onView: () => D(`/events/${e.id}`),
114
- onEdit: () => D(`/events/${e.id}/edit`)
233
+ className: "border-border-seam",
234
+ children: /* @__PURE__ */ f("p", {
235
+ className: "px-2 py-8 text-center text-sm text-text-secondary",
236
+ children: o("eventfullymanaged.events.filters.empty", `No ${V} events on this page. Switch tabs or move to another page.`)
237
+ })
238
+ }), /* @__PURE__ */ f(c, {
239
+ offset: U.offset,
240
+ limit: U.limit,
241
+ loadedCount: Z.length,
242
+ total: X,
243
+ onPrev: U.prevPage,
244
+ onNext: U.nextPage,
245
+ itemLabel: "events",
246
+ loading: G
247
+ })]
248
+ }) : /* @__PURE__ */ p("div", {
249
+ className: "space-y-3",
250
+ children: [$.map((e) => {
251
+ let t = e.metadata ?? {}, n = typeof t.venueId == "string" ? t.venueId : "", r = n ? le.get(n) : void 0, i = ue.get(e.id), a = i?.registrations ?? 0, c = a > 0 ? Math.round((i?.checkedIn ?? 0) / a * 100) : 0;
252
+ return /* @__PURE__ */ p(E, {
253
+ treatment: "plain",
254
+ role: "button",
255
+ tabIndex: 0,
256
+ "aria-label": e.name,
257
+ className: "group relative cursor-pointer overflow-hidden border-border-seam p-0 outline-none transition-[box-shadow,border-color] duration-200 hover:border-border-strong hover:shadow-elevation-1 focus-visible:ring-1 focus-visible:ring-[var(--color-focus-ring)]",
258
+ onClick: () => R(`/events/${e.id}`),
259
+ onKeyDown: (t) => {
260
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), R(`/events/${e.id}`));
261
+ },
262
+ children: [/* @__PURE__ */ f("span", {
263
+ "aria-hidden": "true",
264
+ className: "absolute inset-y-0 left-0 w-1.5 bg-gradient-to-b from-[var(--color-chart-1)] to-[var(--color-chart-2)]"
265
+ }), /* @__PURE__ */ p("div", {
266
+ className: "flex flex-col gap-3 py-4 pl-5 pr-4 sm:flex-row sm:items-center sm:justify-between",
267
+ children: [/* @__PURE__ */ p("div", {
268
+ className: "min-w-0 space-y-2",
269
+ children: [
270
+ /* @__PURE__ */ p("div", {
271
+ className: "flex flex-wrap items-center gap-2",
272
+ children: [
273
+ /* @__PURE__ */ f("p", {
274
+ className: "truncate text-lg font-semibold text-text-primary",
275
+ children: e.name
276
+ }),
277
+ e.status ? /* @__PURE__ */ f(C, {
278
+ variant: N(e.status),
279
+ className: "uppercase",
280
+ children: e.status
281
+ }) : null,
282
+ e.type ? /* @__PURE__ */ f(C, {
283
+ variant: "secondary",
284
+ className: "capitalize",
285
+ children: e.type.toLowerCase().replace(/_/g, " ")
286
+ }) : null
287
+ ]
288
+ }),
289
+ /* @__PURE__ */ p("div", {
290
+ className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-text-secondary",
291
+ children: [/* @__PURE__ */ p("span", {
292
+ className: "flex items-center gap-1.5",
293
+ children: [/* @__PURE__ */ f(h, { className: "h-4 w-4 shrink-0 text-text-muted" }), P(e.startAt, e.endAt)]
294
+ }), /* @__PURE__ */ p("span", {
295
+ className: "flex items-center gap-1.5",
296
+ children: [/* @__PURE__ */ f(v, { className: "h-4 w-4 shrink-0 text-text-muted" }), r ?? o("eventfullymanaged.events.card.noVenue", "No venue")]
297
+ })]
298
+ }),
299
+ /* @__PURE__ */ p("div", {
300
+ className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-xs",
301
+ children: [
302
+ /* @__PURE__ */ f(L, {
303
+ icon: b,
304
+ label: o("eventfullymanaged.events.card.registered", "registered"),
305
+ value: a.toLocaleString()
306
+ }),
307
+ /* @__PURE__ */ f(L, {
308
+ icon: b,
309
+ label: o("eventfullymanaged.events.card.checkedIn", "checked in"),
310
+ value: `${c}%`
311
+ }),
312
+ /* @__PURE__ */ f(L, {
313
+ icon: x,
314
+ label: o("eventfullymanaged.events.card.capacity", "capacity"),
315
+ value: e.capacity == null ? "—" : e.capacity.toLocaleString()
316
+ })
317
+ ]
318
+ })
319
+ ]
320
+ }), /* @__PURE__ */ f("div", {
321
+ className: "flex shrink-0 items-center gap-2 self-start sm:self-center",
322
+ onClick: (e) => e.stopPropagation(),
323
+ onKeyDown: (e) => e.stopPropagation(),
324
+ role: "presentation",
325
+ children: /* @__PURE__ */ f(s, {
326
+ ariaLabel: `Event actions for ${e.name}`,
327
+ onView: () => R(`/events/${e.id}`),
328
+ onEdit: () => R(`/events/${e.id}/edit`)
329
+ })
115
330
  })]
116
331
  })]
117
- })
118
- }, e.id)), /* @__PURE__ */ s(r, {
119
- offset: A.offset,
120
- limit: A.limit,
121
- loadedCount: P.length,
122
- total: N,
123
- onPrev: A.prevPage,
124
- onNext: A.nextPage,
332
+ }, e.id);
333
+ }), /* @__PURE__ */ f(c, {
334
+ offset: U.offset,
335
+ limit: U.limit,
336
+ loadedCount: Z.length,
337
+ total: X,
338
+ onPrev: U.prevPage,
339
+ onNext: U.nextPage,
125
340
  itemLabel: "events",
126
- loading: M
341
+ loading: G
127
342
  })]
128
343
  }),
129
- /* @__PURE__ */ s(S, {
344
+ /* @__PURE__ */ f(te, {
130
345
  storageKey: "eventfullymanaged-events",
131
- title: E("eventfullymanaged.events.nextSteps.title", "Finish setting up your event"),
346
+ title: o("eventfullymanaged.events.nextSteps.title", "Finish setting up your event"),
132
347
  steps: [
133
348
  {
134
349
  id: "configure-registration",
135
- label: E("eventfullymanaged.events.nextSteps.registration", "Configure registration & tickets"),
136
- description: E("eventfullymanaged.events.nextSteps.registrationDesc", "Open an event and define ticket types so people can register."),
137
- icon: /* @__PURE__ */ s(f, { className: "h-4 w-4" }),
138
- onClick: () => D("/registration")
350
+ label: o("eventfullymanaged.events.nextSteps.registration", "Configure registration & tickets"),
351
+ description: o("eventfullymanaged.events.nextSteps.registrationDesc", "Open an event and define ticket types so people can register."),
352
+ icon: /* @__PURE__ */ f(y, { className: "h-4 w-4" }),
353
+ onClick: () => R("/registration")
139
354
  },
140
355
  {
141
356
  id: "plan-networking",
142
- label: E("eventfullymanaged.events.nextSteps.networking", "Plan networking & sessions"),
143
- description: E("eventfullymanaged.events.nextSteps.networkingDesc", "Set up attendee matchmaking and meeting schedules."),
144
- icon: /* @__PURE__ */ s(p, { className: "h-4 w-4" }),
145
- onClick: () => D("/networking")
357
+ label: o("eventfullymanaged.events.nextSteps.networking", "Plan networking & sessions"),
358
+ description: o("eventfullymanaged.events.nextSteps.networkingDesc", "Set up attendee matchmaking and meeting schedules."),
359
+ icon: /* @__PURE__ */ f(x, { className: "h-4 w-4" }),
360
+ onClick: () => R("/networking")
146
361
  },
147
362
  {
148
363
  id: "announce",
149
- label: E("eventfullymanaged.events.nextSteps.announce", "Announce to attendees"),
150
- description: E("eventfullymanaged.events.nextSteps.announceDesc", "Send announcements and run communication campaigns."),
151
- icon: /* @__PURE__ */ s(u, { className: "h-4 w-4" }),
152
- onClick: () => D("/communication")
364
+ label: o("eventfullymanaged.events.nextSteps.announce", "Announce to attendees"),
365
+ description: o("eventfullymanaged.events.nextSteps.announceDesc", "Send announcements and run communication campaigns."),
366
+ icon: /* @__PURE__ */ f(_, { className: "h-4 w-4" }),
367
+ onClick: () => R("/communication")
153
368
  }
154
369
  ]
155
370
  })
@@ -157,6 +372,6 @@ function T() {
157
372
  });
158
373
  }
159
374
  //#endregion
160
- export { T as default };
375
+ export { R as default };
161
376
 
162
377
  //# sourceMappingURL=EventsPage.js.map