@logora/debate 0.3.90 → 0.3.92

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 (88) hide show
  1. package/dist/assets/components/argument/argument/Argument.module-QZdPjj_i.css +1 -0
  2. package/dist/assets/components/consultation/consultation_box/ConsultationBox.module-DjNiVt-p.css +1 -0
  3. package/dist/assets/components/follow/follow_button/FollowButton.module-C9YXM8AM.css +1 -0
  4. package/dist/assets/components/input/text_editor/{TextEditor.module-DePSfOvG.css → TextEditor.module-CxuSL3l3.css} +1 -1
  5. package/dist/assets/components/list/paginated_list/action_bar/ActionBar.module-DvwCbS9k.css +1 -0
  6. package/dist/assets/components/navigation/tabs/Tabs.module-CFizOU1d.css +1 -0
  7. package/dist/assets/components/proposal/proposal_box/ProposalBox.module-Dm8XDnr1.css +1 -0
  8. package/dist/assets/components/section/section_box/SectionBox.module-qQs4B6bf.css +1 -0
  9. package/dist/assets/components/source/context_source_list/ContextSourceList.module-DUPbI-wb.css +1 -0
  10. package/dist/assets/components/source/source_list_item/SourceListItem.module-fm_uHuY4.css +1 -0
  11. package/dist/assets/components/summary/summary/Summary.module-2bnx3egy.css +1 -0
  12. package/dist/assets/components/summary/summary_box/SummaryBox.module-Dr9PevSJ.css +1 -0
  13. package/dist/assets/components/vote/vote_box/VoteBox.module-D5sSSHpi.css +1 -0
  14. package/dist/components/argument/argument/Argument.js +111 -106
  15. package/dist/components/argument/argument/Argument.module.scss.js +31 -31
  16. package/dist/components/auth/providers/FormAuth.js +8 -7
  17. package/dist/components/auth/use_auth/base64.js +4 -0
  18. package/dist/components/consultation/consultation_box/ConsultationBox.js +80 -111
  19. package/dist/components/consultation/consultation_box/ConsultationBox.module.scss.js +31 -29
  20. package/dist/components/dialog/dropdown/Dropdown.js +35 -28
  21. package/dist/components/follow/follow_button/FollowButton.js +17 -16
  22. package/dist/components/follow/follow_button/FollowButton.module.scss.js +6 -4
  23. package/dist/components/icons/bild_icons/index.js +58 -56
  24. package/dist/components/icons/clarin_icons/Alarm.js +6 -0
  25. package/dist/components/icons/clarin_icons/Announcement.js +6 -0
  26. package/dist/components/icons/clarin_icons/Chat.js +6 -0
  27. package/dist/components/icons/clarin_icons/CheckCircle.js +9 -0
  28. package/dist/components/icons/clarin_icons/Clock.js +6 -0
  29. package/dist/components/icons/clarin_icons/Follow.js +6 -0
  30. package/dist/components/icons/clarin_icons/MobileClose.js +9 -0
  31. package/dist/components/icons/clarin_icons/Question.js +6 -0
  32. package/dist/components/icons/clarin_icons/Search.js +6 -0
  33. package/dist/components/icons/clarin_icons/Send.js +10 -0
  34. package/dist/components/icons/clarin_icons/Share.js +6 -0
  35. package/dist/components/icons/clarin_icons/Upvote.js +9 -0
  36. package/dist/components/icons/clarin_icons/User.js +9 -0
  37. package/dist/components/icons/clarin_icons/index.js +106 -0
  38. package/dist/components/icons/hero_icons/index.js +20 -18
  39. package/dist/components/icons/krone_icons/index.js +48 -46
  40. package/dist/components/icons/regular_icons/Follow.js +6 -0
  41. package/dist/components/icons/regular_icons/index.js +20 -18
  42. package/dist/components/icons/spiegel_icons/Downvote.js +6 -0
  43. package/dist/components/icons/spiegel_icons/Upvote.js +6 -0
  44. package/dist/components/icons/spiegel_icons/index.js +54 -52
  45. package/dist/components/icons/stern_icons/index.js +102 -70
  46. package/dist/components/input/argument_input/ArgumentInput.js +201 -197
  47. package/dist/components/input/select/Select.js +19 -19
  48. package/dist/components/input/text_editor/TextEditor.js +143 -129
  49. package/dist/components/input/text_editor/TextEditor.module.scss.js +5 -5
  50. package/dist/components/input/text_editor/plugins/FocusPlugin.js +12 -8
  51. package/dist/components/input/text_editor/plugins/SetContentPlugin.js +13 -13
  52. package/dist/components/input/text_editor/plugins/SetRichContentPlugin.js +10 -10
  53. package/dist/components/input/text_editor/plugins/ToolbarPlugin.js +70 -72
  54. package/dist/components/list/paginated_list/PaginatedList.js +152 -144
  55. package/dist/components/list/paginated_list/action_bar/ActionBar.js +72 -61
  56. package/dist/components/list/paginated_list/action_bar/ActionBar.module.scss.js +18 -16
  57. package/dist/components/navigation/tabs/Tabs.js +85 -24
  58. package/dist/components/navigation/tabs/Tabs.module.scss.js +20 -10
  59. package/dist/components/notification/notification_menu/NotificationMenu.js +23 -22
  60. package/dist/components/proposal/proposal_box/ProposalBox.js +70 -59
  61. package/dist/components/proposal/proposal_box/ProposalBox.module.scss.js +14 -10
  62. package/dist/components/section/section_box/SectionBox.js +10 -10
  63. package/dist/components/section/section_box/SectionBox.module.scss.js +9 -9
  64. package/dist/components/source/context_source_box/ContextSourceBox.js +7 -7
  65. package/dist/components/source/context_source_list/ContextSourceList.js +10 -13
  66. package/dist/components/source/context_source_list/ContextSourceList.module.scss.js +14 -12
  67. package/dist/components/source/source_list_item/SourceListItem.js +42 -28
  68. package/dist/components/source/source_list_item/SourceListItem.module.scss.js +8 -6
  69. package/dist/components/source/source_modal/SourceModal.js +15 -15
  70. package/dist/components/summary/summary/Summary.js +41 -63
  71. package/dist/components/summary/summary/Summary.module.scss.js +10 -6
  72. package/dist/components/summary/summary_box/SummaryBox.module.scss.js +9 -9
  73. package/dist/components/vote/vote_box/VoteBox.js +122 -143
  74. package/dist/components/vote/vote_box/VoteBox.module.scss.js +50 -48
  75. package/dist/index.js +323 -319
  76. package/package.json +1 -1
  77. package/dist/assets/components/argument/argument/Argument.module-gLfNRLks.css +0 -1
  78. package/dist/assets/components/consultation/consultation_box/ConsultationBox.module-BnTr5IaF.css +0 -1
  79. package/dist/assets/components/follow/follow_button/FollowButton.module-Da-cPgwT.css +0 -1
  80. package/dist/assets/components/list/paginated_list/action_bar/ActionBar.module-pxwFC_Y2.css +0 -1
  81. package/dist/assets/components/navigation/tabs/Tabs.module-CtDi0tAd.css +0 -1
  82. package/dist/assets/components/proposal/proposal_box/ProposalBox.module-T4ms_LQ7.css +0 -1
  83. package/dist/assets/components/section/section_box/SectionBox.module-DUeUtdWr.css +0 -1
  84. package/dist/assets/components/source/context_source_list/ContextSourceList.module-D6X_0dB7.css +0 -1
  85. package/dist/assets/components/source/source_list_item/SourceListItem.module-mTxHhXPV.css +0 -1
  86. package/dist/assets/components/summary/summary/Summary.module-DjfmUlkW.css +0 -1
  87. package/dist/assets/components/summary/summary_box/SummaryBox.module-DQVkA8l7.css +0 -1
  88. package/dist/assets/components/vote/vote_box/VoteBox.module-CDrqb2SZ.css +0 -1
@@ -1,30 +1,91 @@
1
- import { jsx as m } from "react/jsx-runtime";
2
- import l, { useId as p, useRef as y } from "react";
3
- import b from "./Tabs.module.scss.js";
4
- const $ = ({ value: f, onChange: s, children: n, label: u }) => {
5
- const a = p(), c = y([]), o = l.Children.count(n), i = (r, t) => {
6
- let e;
7
- if (r.key === "ArrowRight") e = (t + 1) % o;
8
- else if (r.key === "ArrowLeft") e = (t - 1 + o) % o;
9
- else if (r.key === "Home") e = 0;
10
- else if (r.key === "End") e = o - 1;
1
+ import { jsxs as A, jsx as s } from "react/jsx-runtime";
2
+ import h, { useId as C, useRef as v, useState as y, useCallback as T, useEffect as N } from "react";
3
+ import n from "./Tabs.module.scss.js";
4
+ import { Icon as I } from "../../icons/icon/Icon.js";
5
+ const O = ({ value: d, onChange: c, children: u, label: $ }) => {
6
+ const m = C(), w = v([]), a = v(null), i = h.Children.count(u), [p, R] = y(!1), [g, S] = y(!1), o = T(() => {
7
+ const e = a.current;
8
+ e && (R(e.scrollLeft > 1), S(e.scrollLeft + e.clientWidth < e.scrollWidth - 1));
9
+ }, []);
10
+ N(() => {
11
+ o();
12
+ const e = a.current;
13
+ if (!e) return;
14
+ const t = new ResizeObserver(o);
15
+ return t.observe(e), () => t.disconnect();
16
+ }, [u, o]);
17
+ const k = (e, t) => {
18
+ t.stopPropagation();
19
+ const r = a.current;
20
+ if (!r) return;
21
+ const b = Array.from(r.children), f = d;
22
+ if (e === "left") {
23
+ if (f <= 0) return;
24
+ const l = f - 1;
25
+ b[l]?.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" }), c(t, l);
26
+ } else {
27
+ if (f >= b.length - 1) return;
28
+ const l = f + 1;
29
+ b[l]?.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" }), c(t, l);
30
+ }
31
+ setTimeout(o, 300);
32
+ }, L = (e, t) => {
33
+ let r;
34
+ if (e.key === "ArrowRight") r = (t + 1) % i;
35
+ else if (e.key === "ArrowLeft") r = (t - 1 + i) % i;
36
+ else if (e.key === "Home") r = 0;
37
+ else if (e.key === "End") r = i - 1;
11
38
  else return;
12
- r.preventDefault(), s(r, e), c.current[e]?.focus();
39
+ e.preventDefault(), c(e, r), w.current[r]?.focus();
13
40
  };
14
- return /* @__PURE__ */ m("ul", { role: "tablist", "aria-label": u, className: b.navTabs, children: l.Children.map(
15
- n,
16
- (r, t) => l.cloneElement(r, {
17
- active: f === t,
18
- id: `${a}-tab-${t}`,
19
- panelId: `${a}-panel-${t}`,
20
- onClick: (e) => s(e, t),
21
- onKeyDown: (e) => i(e, t),
22
- ref: (e) => {
23
- c.current[t] = e;
41
+ return /* @__PURE__ */ A("div", { className: n.tabsWrapper, children: [
42
+ /* @__PURE__ */ s(
43
+ "button",
44
+ {
45
+ type: "button",
46
+ className: `${n.arrow} ${n.arrowLeft} ${p ? "" : n.arrowHidden}`,
47
+ onClick: (e) => k("left", e),
48
+ "aria-label": "Onglet précédent",
49
+ tabIndex: p ? 0 : -1,
50
+ children: /* @__PURE__ */ s(I, { name: "lightArrow", height: 24, width: 24 })
24
51
  }
25
- })
26
- ) });
52
+ ),
53
+ /* @__PURE__ */ s(
54
+ "ul",
55
+ {
56
+ ref: a,
57
+ role: "tablist",
58
+ "aria-label": $,
59
+ className: n.navTabs,
60
+ onScroll: o,
61
+ children: h.Children.map(
62
+ u,
63
+ (e, t) => h.cloneElement(e, {
64
+ active: d === t,
65
+ id: `${m}-tab-${t}`,
66
+ panelId: `${m}-panel-${t}`,
67
+ onClick: (r) => c(r, t),
68
+ onKeyDown: (r) => L(r, t),
69
+ ref: (r) => {
70
+ w.current[t] = r;
71
+ }
72
+ })
73
+ )
74
+ }
75
+ ),
76
+ /* @__PURE__ */ s(
77
+ "button",
78
+ {
79
+ type: "button",
80
+ className: `${n.arrow} ${n.arrowRight} ${g ? "" : n.arrowHidden}`,
81
+ onClick: (e) => k("right", e),
82
+ "aria-label": "Onglet suivant",
83
+ tabIndex: g ? 0 : -1,
84
+ children: /* @__PURE__ */ s(I, { name: "lightArrow", height: 24, width: 24 })
85
+ }
86
+ )
87
+ ] });
27
88
  };
28
89
  export {
29
- $ as Tabs
90
+ O as Tabs
30
91
  };
@@ -1,13 +1,23 @@
1
- import '../../../assets/components/navigation/tabs/Tabs.module-CtDi0tAd.css';const a = "_navTabs_1q9zp_3", n = "_navItem_1q9zp_28", t = "_navLink_1q9zp_32", v = "_active_1q9zp_62", _ = {
2
- navTabs: a,
3
- navItem: n,
4
- navLink: t,
5
- active: v
1
+ import '../../../assets/components/navigation/tabs/Tabs.module-CFizOU1d.css';const a = "_tabsWrapper_s0wnb_3", n = "_navTabs_s0wnb_11", r = "_arrow_s0wnb_38", s = "_arrowLeft_s0wnb_62", t = "_arrowRight_s0wnb_71", _ = "_arrowHidden_s0wnb_80", o = "_navItem_s0wnb_85", w = "_navLink_s0wnb_89", e = "_active_s0wnb_119", b = {
2
+ tabsWrapper: a,
3
+ navTabs: n,
4
+ arrow: r,
5
+ arrowLeft: s,
6
+ arrowRight: t,
7
+ arrowHidden: _,
8
+ navItem: o,
9
+ navLink: w,
10
+ active: e
6
11
  };
7
12
  export {
8
- v as active,
9
- _ as default,
10
- n as navItem,
11
- t as navLink,
12
- a as navTabs
13
+ e as active,
14
+ r as arrow,
15
+ _ as arrowHidden,
16
+ s as arrowLeft,
17
+ t as arrowRight,
18
+ b as default,
19
+ o as navItem,
20
+ w as navLink,
21
+ n as navTabs,
22
+ a as tabsWrapper
13
23
  };
@@ -1,19 +1,20 @@
1
- import { jsxs as a, Fragment as l, jsx as t } from "react/jsx-runtime";
2
- import { useState as d } from "react";
1
+ import { jsxs as a, Fragment as c, jsx as t } from "react/jsx-runtime";
2
+ import { useState as l } from "react";
3
3
  import { useIntl as m } from "react-intl";
4
- import i from "./NotificationMenu.module.scss.js";
4
+ import e from "./NotificationMenu.module.scss.js";
5
5
  import { useDataProvider as f } from "../../data/data_provider/useDataProvider.js";
6
- import { PaginatedList as u } from "../../list/paginated_list/PaginatedList.js";
7
- import { NotificationItem as p } from "../notification_item/NotificationItem.js";
8
- import { UserContentSkeleton as h } from "../../skeleton/user_content_skeleton/UserContentSkeleton.js";
9
- const C = ({ notificationDefinitions: o = {} }) => {
10
- const e = m(), n = f(), [r, s] = d(!1), c = () => {
11
- s(!0), n.create("notifications/read/all", {}).then(() => {
6
+ import { StandardErrorBoundary as u } from "../../error/standard_error_boundary/StandardErrorBoundary.js";
7
+ import { PaginatedList as p } from "../../list/paginated_list/PaginatedList.js";
8
+ import { NotificationItem as h } from "../notification_item/NotificationItem.js";
9
+ import { UserContentSkeleton as g } from "../../skeleton/user_content_skeleton/UserContentSkeleton.js";
10
+ const P = ({ notificationDefinitions: o = {} }) => {
11
+ const i = m(), r = f(), [n, s] = l(!1), d = () => {
12
+ s(!0), r.create("notifications/read/all", {}).then(() => {
12
13
  });
13
14
  };
14
- return /* @__PURE__ */ a(l, { children: [
15
- /* @__PURE__ */ a("div", { className: i.notificationMenuHeader, children: [
16
- /* @__PURE__ */ t("div", { className: i.notificationMenuHeaderText, children: e.formatMessage({
15
+ return /* @__PURE__ */ a(c, { children: [
16
+ /* @__PURE__ */ a("div", { className: e.notificationMenuHeader, children: [
17
+ /* @__PURE__ */ t("div", { className: e.notificationMenuHeaderText, children: i.formatMessage({
17
18
  id: "header.notifications",
18
19
  defaultMessage: "Alerts"
19
20
  }) }),
@@ -22,21 +23,21 @@ const C = ({ notificationDefinitions: o = {} }) => {
22
23
  {
23
24
  id: "read_all_notifications",
24
25
  "data-tid": "action_read_all_notifications",
25
- className: i.readNotificationsButton,
26
+ className: e.readNotificationsButton,
26
27
  tabIndex: "0",
27
- onClick: c,
28
- children: e.formatMessage({
28
+ onClick: d,
29
+ children: i.formatMessage({
29
30
  id: "notifications.read_all",
30
31
  defaultMessage: "Mark all as read"
31
32
  })
32
33
  }
33
34
  )
34
35
  ] }),
35
- /* @__PURE__ */ t("div", { className: i.notificationList, children: /* @__PURE__ */ t(
36
- u,
36
+ /* @__PURE__ */ t("div", { className: e.notificationList, children: /* @__PURE__ */ t(u, { hideMessage: !0, children: /* @__PURE__ */ t(
37
+ p,
37
38
  {
38
39
  currentListId: "notificationList",
39
- loadingComponent: /* @__PURE__ */ t(h, { numberLines: 0 }),
40
+ loadingComponent: /* @__PURE__ */ t(g, { numberLines: 0 }),
40
41
  resourcePropName: "notification",
41
42
  resource: "notifications",
42
43
  sort: "-created_at",
@@ -45,16 +46,16 @@ const C = ({ notificationDefinitions: o = {} }) => {
45
46
  display: "column",
46
47
  gap: "0px",
47
48
  children: /* @__PURE__ */ t(
48
- p,
49
+ h,
49
50
  {
50
51
  notificationDefinitions: o,
51
- isRead: r
52
+ isRead: n
52
53
  }
53
54
  )
54
55
  }
55
- ) })
56
+ ) }) })
56
57
  ] });
57
58
  };
58
59
  export {
59
- C as NotificationMenu
60
+ P as NotificationMenu
60
61
  };
@@ -1,57 +1,58 @@
1
- import { jsx as t, jsxs as f, Fragment as y } from "react/jsx-runtime";
2
- import u from "classnames";
3
- import { useState as g, useEffect as I } from "react";
4
- import { useIntl as N } from "react-intl";
1
+ import { jsx as t, jsxs as g, Fragment as I } from "react/jsx-runtime";
2
+ import { useState as p, useEffect as N } from "react";
3
+ import C from "classnames";
4
+ import { useIntl as y } from "react-intl";
5
5
  import o from "./ProposalBox.module.scss.js";
6
- import { useConfig as S } from "../../data/config_provider/useConfig.js";
6
+ import { useConfig as L } from "../../data/config_provider/useConfig.js";
7
7
  import { useAuth as B } from "../../auth/use_auth/useAuth.js";
8
- import { useTranslatedContent as p } from "../../translation/translated_content/useTranslatedContent.js";
8
+ import { useTranslatedContent as _ } from "../../translation/translated_content/useTranslatedContent.js";
9
9
  import { lexicalToHtml as H } from "../../input/text_editor/lexicalToHtml.js";
10
- import { HashScroll as L } from "../../tools/hash_scroll/HashScroll.js";
11
- import { ContentHeader as U } from "../../user_content/content_header/ContentHeader.js";
12
- import { ReadMore as D } from "../../text/read_more/ReadMore.js";
13
- import { TranslationButton as P } from "../../translation/translation_button/TranslationButton.js";
14
- import { ContentFooter as R } from "../../user_content/content_footer/ContentFooter.js";
15
- import { UpDownVoteBox as $ } from "../../vote/up_down_vote_box/UpDownVoteBox.js";
16
- const Z = ({
10
+ import { HashScroll as U } from "../../tools/hash_scroll/HashScroll.js";
11
+ import { ContentHeader as D } from "../../user_content/content_header/ContentHeader.js";
12
+ import { ReadMore as P } from "../../text/read_more/ReadMore.js";
13
+ import { TranslationButton as R } from "../../translation/translation_button/TranslationButton.js";
14
+ import { SourceListItem as $ } from "../../source/source_list_item/SourceListItem.js";
15
+ import { ContentFooter as F } from "../../user_content/content_footer/ContentFooter.js";
16
+ import { UpDownVoteBox as j } from "../../vote/up_down_vote_box/UpDownVoteBox.js";
17
+ const te = ({
17
18
  proposal: e,
18
- disabled: i = !1,
19
- fixedContentHeight: C,
20
- contentMaxHeight: F = 156,
21
- enableEdition: T = !0,
22
- hideFooter: _ = !1
19
+ disabled: d = !1,
20
+ fixedContentHeight: c,
21
+ fitContent: T = !1,
22
+ enableEdition: v = !0,
23
+ hideFooter: x = !1
23
24
  }) => {
24
- const [d, x] = g(null), [v, M] = g(!1), a = N(), r = S(), { currentUser: l } = B(), c = l?.moderation_status === "banned", m = `proposal_${e.id}`, s = p(
25
+ const [m, M] = p(null), [w, b] = p(!1), r = y(), n = L(), { currentUser: h } = B(), f = h?.moderation_status === "banned", u = `proposal_${e.id}`, i = _(
25
26
  e.title,
26
27
  e.language,
27
28
  "title",
28
29
  e.translation_entries
29
- ), n = p(
30
+ ), a = _(
30
31
  e.content,
31
32
  e.language,
32
33
  "content",
33
34
  e.translation_entries
34
35
  );
35
- I(() => {
36
+ N(() => {
36
37
  if (e.rich_content) {
37
- const h = JSON.parse(e.rich_content);
38
- if (h.hasOwnProperty("root")) {
39
- const b = H(h);
40
- x(b);
38
+ const s = JSON.parse(e.rich_content);
39
+ if (s.hasOwnProperty("root")) {
40
+ const l = H(s);
41
+ M(l);
41
42
  }
42
43
  }
43
44
  }, [e.rich_content]);
44
- const w = () => {
45
- s.toggleContent(), n.toggleContent();
45
+ const S = () => {
46
+ i.toggleContent(), a.toggleContent();
46
47
  };
47
- return /* @__PURE__ */ t(L, { elementId: m, onScroll: () => M(!0), children: /* @__PURE__ */ f(
48
+ return /* @__PURE__ */ t(U, { elementId: u, onScroll: () => b(!0), children: /* @__PURE__ */ g(
48
49
  "div",
49
50
  {
50
- className: u(o.proposalBoxContainer, { [o.flash]: v }),
51
- id: m,
51
+ className: C(o.proposalBoxContainer, { [o.flash]: w }),
52
+ id: u,
52
53
  children: [
53
54
  /* @__PURE__ */ t(
54
- U,
55
+ D,
55
56
  {
56
57
  author: e.author,
57
58
  tag: e.tag?.display_name,
@@ -62,39 +63,40 @@ const Z = ({
62
63
  /* @__PURE__ */ t(
63
64
  "div",
64
65
  {
65
- className: u(o.proposalBoxContent, {
66
- [o.fixedHeight]: C
66
+ className: C(o.proposalBoxContent, {
67
+ [o.fixedHeight]: c,
68
+ [o.withMinHeight]: !T && !c
67
69
  }),
68
70
  children: /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(
69
- D,
71
+ P,
70
72
  {
71
- content: /* @__PURE__ */ f(y, { children: [
72
- e.is_edited && /* @__PURE__ */ t("div", { className: o.edited, children: a.formatMessage({
73
+ content: /* @__PURE__ */ g(I, { children: [
74
+ e.is_edited && /* @__PURE__ */ t("div", { className: o.edited, children: r.formatMessage({
73
75
  id: "proposal.updated",
74
76
  defaultMessage: "Updated proposal"
75
77
  }) }),
76
- /* @__PURE__ */ t("div", { className: o.proposalTitle, children: s.translatedContent }),
77
- d && !n.isTranslated ? /* @__PURE__ */ t(
78
+ /* @__PURE__ */ t("div", { className: o.proposalTitle, children: i.translatedContent }),
79
+ m && !a.isTranslated ? /* @__PURE__ */ t(
78
80
  "div",
79
81
  {
80
82
  className: o.proposalContent,
81
- dangerouslySetInnerHTML: { __html: d }
83
+ dangerouslySetInnerHTML: { __html: m }
82
84
  }
83
- ) : /* @__PURE__ */ t("div", { className: o.proposalContent, children: n.translatedContent }),
84
- (n.isTranslated || s.isTranslated) && /* @__PURE__ */ t(
85
- P,
85
+ ) : /* @__PURE__ */ t("div", { className: o.proposalContent, children: a.translatedContent }),
86
+ (a.isTranslated || i.isTranslated) && /* @__PURE__ */ t(
87
+ R,
86
88
  {
87
89
  language: e.language,
88
- callback: () => w()
90
+ callback: () => S()
89
91
  }
90
92
  )
91
93
  ] }),
92
94
  lineCount: 7,
93
- readMoreText: a.formatMessage({
95
+ readMoreText: r.formatMessage({
94
96
  id: "action.read_more",
95
97
  defaultMessage: "Read more"
96
98
  }),
97
- readLessText: a.formatMessage({
99
+ readLessText: r.formatMessage({
98
100
  id: "action.read_less",
99
101
  defaultMessage: "Read less"
100
102
  })
@@ -102,32 +104,41 @@ const Z = ({
102
104
  ) })
103
105
  }
104
106
  ),
105
- !_ && /* @__PURE__ */ t(
106
- R,
107
+ e.sources?.length > 0 && /* @__PURE__ */ t("div", { className: o.proposalSourcesList, children: e.sources.map((s, l) => /* @__PURE__ */ t(
108
+ $,
109
+ {
110
+ publisher: s.publisher,
111
+ url: s.source_url,
112
+ title: s.title,
113
+ index: l
114
+ },
115
+ s.id
116
+ )) }),
117
+ !x && /* @__PURE__ */ t(
118
+ F,
107
119
  {
108
120
  resource: e,
109
- disabled: i || c,
121
+ disabled: d || f,
110
122
  reportType: "Proposal",
111
123
  deleteType: "proposals",
112
124
  deleteListId: "proposalsList",
113
- shareModal: !0,
114
- shareModalTitle: a.formatMessage({ id: "share.proposal" }),
125
+ shareModalTitle: r.formatMessage({ id: "share.proposal" }),
115
126
  shareUrl: `https://app.logora.fr/share/p/${e.id}`,
116
- shareTitle: a.formatMessage({ id: "share.proposal.title" }),
117
- shareText: a.formatMessage({ id: "share.proposal.text" }),
118
- shareCode: `<iframe src="https://cdn.logora.com/embed.html?shortname=${r.shortname}&id=${e.id}&resource=proposal" frameborder="0" width="100%" height="335px" scrolling="no"></iframe>`,
119
- showShareCode: r?.actions?.hideCodeShare !== !0,
127
+ shareTitle: r.formatMessage({ id: "share.proposal.title" }),
128
+ shareText: r.formatMessage({ id: "share.proposal.text" }),
129
+ shareCode: `<iframe src="https://cdn.logora.com/embed.html?shortname=${n.shortname}&id=${e.id}&resource=proposal" frameborder="0" width="100%" height="335px" scrolling="no"></iframe>`,
130
+ showShareCode: n?.actions?.hideCodeShare !== !0,
120
131
  showActions: !e.author.consultation_id,
121
- enableEdition: T,
132
+ enableEdition: v,
122
133
  children: /* @__PURE__ */ t(
123
- $,
134
+ j,
124
135
  {
125
136
  voteableType: "Proposal",
126
137
  voteableId: e.id,
127
138
  totalUpvote: e.total_upvotes,
128
139
  totalDownvote: e.total_downvotes,
129
- disabled: i || l?.id === e?.author?.id || c,
130
- hideDownvotes: r?.actions?.hideDownvotes
140
+ disabled: d || h?.id === e?.author?.id || f,
141
+ hideDownvotes: n?.actions?.hideDownvotes
131
142
  }
132
143
  )
133
144
  }
@@ -137,5 +148,5 @@ const Z = ({
137
148
  ) });
138
149
  };
139
150
  export {
140
- Z as ProposalBox
151
+ te as ProposalBox
141
152
  };
@@ -1,19 +1,23 @@
1
- import '../../../assets/components/proposal/proposal_box/ProposalBox.module-T4ms_LQ7.css';const o = "_proposalBoxContainer_awwcm_3", t = "_flash_awwcm_17", a = "_edited_awwcm_25", e = "_proposalBoxContent_awwcm_32", n = "_proposalTitle_awwcm_44", s = "_proposalContent_awwcm_52", p = "_fixedHeight_awwcm_56", _ = {
1
+ import '../../../assets/components/proposal/proposal_box/ProposalBox.module-Dm8XDnr1.css';const o = "_proposalBoxContainer_5x1d0_3", t = "_flash_5x1d0_17", s = "_edited_5x1d0_25", e = "_proposalBoxContent_5x1d0_32", n = "_withMinHeight_5x1d0_40", p = "_proposalTitle_5x1d0_44", i = "_proposalContent_5x1d0_52", _ = "_proposalSourcesList_5x1d0_56", a = "_fixedHeight_5x1d0_68", l = {
2
2
  proposalBoxContainer: o,
3
3
  flash: t,
4
- edited: a,
4
+ edited: s,
5
5
  proposalBoxContent: e,
6
- proposalTitle: n,
7
- proposalContent: s,
8
- fixedHeight: p
6
+ withMinHeight: n,
7
+ proposalTitle: p,
8
+ proposalContent: i,
9
+ proposalSourcesList: _,
10
+ fixedHeight: a
9
11
  };
10
12
  export {
11
- _ as default,
12
- a as edited,
13
- p as fixedHeight,
13
+ l as default,
14
+ s as edited,
15
+ a as fixedHeight,
14
16
  t as flash,
15
17
  o as proposalBoxContainer,
16
18
  e as proposalBoxContent,
17
- s as proposalContent,
18
- n as proposalTitle
19
+ i as proposalContent,
20
+ _ as proposalSourcesList,
21
+ p as proposalTitle,
22
+ n as withMinHeight
19
23
  };
@@ -6,20 +6,20 @@ import { useResponsive as N } from "../../hooks/use_responsive/useResponsive.js"
6
6
  import { Icon as g } from "../../icons/icon/Icon.js";
7
7
  const I = ({
8
8
  isCollapsible: t = !1,
9
- isCollapsedByDefault: a = !1,
10
- title: m,
9
+ isCollapsedByDefault: n = !1,
10
+ title: a,
11
11
  subtitle: r = "",
12
- className: n,
13
- titleClassName: d,
14
- children: l
12
+ className: m,
13
+ titleClassName: l,
14
+ children: d
15
15
  }) => {
16
- const [c, h] = x(a), { isMobile: f } = N(), p = () => {
16
+ const [c, h] = x(n), { isMobile: f } = N(), p = () => {
17
17
  t && h((v) => !v);
18
18
  };
19
19
  return /* @__PURE__ */ s(
20
20
  "div",
21
21
  {
22
- className: o(e.sectionBoxContainer, {
22
+ className: o(e.sectionBoxContainer, m, {
23
23
  [e.isMobile]: f
24
24
  }),
25
25
  children: [
@@ -30,8 +30,8 @@ const I = ({
30
30
  onClick: t ? p : null,
31
31
  children: [
32
32
  /* @__PURE__ */ s("div", { className: e.titleContainer, children: [
33
- /* @__PURE__ */ i("div", { className: o(d, e.title), children: m }),
34
- r && /* @__PURE__ */ i("div", { className: o(n, e.subtitle), children: r })
33
+ /* @__PURE__ */ i("div", { className: o(l, e.title), children: a }),
34
+ r && /* @__PURE__ */ i("div", { className: o(e.subtitle), children: r })
35
35
  ] }),
36
36
  t && /* @__PURE__ */ i(
37
37
  g,
@@ -47,7 +47,7 @@ const I = ({
47
47
  ]
48
48
  }
49
49
  ),
50
- (!c || !t) && /* @__PURE__ */ i("div", { className: o(e.body, n), children: l })
50
+ (!c || !t) && /* @__PURE__ */ i("div", { className: o(e.body), children: d })
51
51
  ]
52
52
  }
53
53
  );
@@ -1,25 +1,25 @@
1
- import '../../../assets/components/section/section_box/SectionBox.module-DUeUtdWr.css';const t = "_sectionBoxContainer_m9zal_3", o = "_isMobile_m9zal_15", e = "_header_m9zal_19", i = "_collapsible_m9zal_26", l = "_iconLightArrow_m9zal_30", n = "_iconRotated_m9zal_34", _ = "_titleContainer_m9zal_38", a = "_title_m9zal_38", s = "_subtitle_m9zal_52", c = "_body_m9zal_57", r = {
1
+ import '../../../assets/components/section/section_box/SectionBox.module-qQs4B6bf.css';const t = "_sectionBoxContainer_tcujo_3", o = "_isMobile_tcujo_15", e = "_header_tcujo_19", i = "_collapsible_tcujo_26", c = "_iconLightArrow_tcujo_30", n = "_iconRotated_tcujo_36", _ = "_titleContainer_tcujo_40", s = "_title_tcujo_40", l = "_subtitle_tcujo_54", a = "_body_tcujo_59", r = {
2
2
  sectionBoxContainer: t,
3
3
  isMobile: o,
4
4
  header: e,
5
5
  collapsible: i,
6
- iconLightArrow: l,
6
+ iconLightArrow: c,
7
7
  iconRotated: n,
8
8
  titleContainer: _,
9
- title: a,
10
- subtitle: s,
11
- body: c
9
+ title: s,
10
+ subtitle: l,
11
+ body: a
12
12
  };
13
13
  export {
14
- c as body,
14
+ a as body,
15
15
  i as collapsible,
16
16
  r as default,
17
17
  e as header,
18
- l as iconLightArrow,
18
+ c as iconLightArrow,
19
19
  n as iconRotated,
20
20
  o as isMobile,
21
21
  t as sectionBoxContainer,
22
- s as subtitle,
23
- a as title,
22
+ l as subtitle,
23
+ s as title,
24
24
  _ as titleContainer
25
25
  };
@@ -2,13 +2,13 @@ import { jsxs as a, Fragment as n, jsx as s } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import { useIntl as l, FormattedDate as m } from "react-intl";
4
4
  import e from "./ContextSourceBox.module.scss.js";
5
- const g = ({ title: t, imageUrl: c, date: i, author: r }) => {
5
+ const x = ({ title: r, imageUrl: c, date: i, author: t }) => {
6
6
  const o = l();
7
7
  return /* @__PURE__ */ a("div", { className: e.container, children: [
8
8
  /* @__PURE__ */ a("div", { className: e.content, children: [
9
9
  /* @__PURE__ */ a("div", { className: e.infos, children: [
10
- r && /* @__PURE__ */ a(n, { children: [
11
- /* @__PURE__ */ s("span", { className: e.sourceAuthor, children: r }),
10
+ t && /* @__PURE__ */ a(n, { children: [
11
+ /* @__PURE__ */ s("span", { className: e.sourceAuthor, children: t }),
12
12
  /* @__PURE__ */ s("span", { className: e.separator, children: "·" })
13
13
  ] }),
14
14
  /* @__PURE__ */ s("span", { className: e.sourcePublishedDate, children: /* @__PURE__ */ s(
@@ -21,21 +21,21 @@ const g = ({ title: t, imageUrl: c, date: i, author: r }) => {
21
21
  }
22
22
  ) })
23
23
  ] }),
24
- /* @__PURE__ */ s("div", { className: e.sourceTitle, children: t })
24
+ /* @__PURE__ */ s("div", { className: e.sourceTitle, children: r })
25
25
  ] }),
26
26
  /* @__PURE__ */ s(
27
27
  "img",
28
28
  {
29
29
  src: c,
30
30
  alt: o.formatMessage({
31
- id: "source.context_source_box.alt",
32
- defaultMessage: "Debate source image"
31
+ id: "source.context_source_box.alt"
33
32
  }),
33
+ "data-testid": "context-source-image",
34
34
  className: e.image
35
35
  }
36
36
  )
37
37
  ] });
38
38
  };
39
39
  export {
40
- g as ContextSourceBox
40
+ x as ContextSourceBox
41
41
  };