@logora/debate 0.3.80 → 0.3.81

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 (54) 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/input/text_editor/{TextEditor.module-DePSfOvG.css → TextEditor.module-CxuSL3l3.css} +1 -1
  4. package/dist/assets/components/proposal/proposal_box/ProposalBox.module-C9BaTFDH.css +1 -0
  5. package/dist/assets/components/section/section_box/SectionBox.module-qQs4B6bf.css +1 -0
  6. package/dist/assets/components/source/context_source_list/ContextSourceList.module-DUPbI-wb.css +1 -0
  7. package/dist/assets/components/source/source_list_item/SourceListItem.module-fm_uHuY4.css +1 -0
  8. package/dist/assets/components/summary/summary/Summary.module-2bnx3egy.css +1 -0
  9. package/dist/assets/components/summary/summary_box/SummaryBox.module-Dr9PevSJ.css +1 -0
  10. package/dist/assets/components/vote/vote_box/VoteBox.module-C9Q6gBw3.css +1 -0
  11. package/dist/components/argument/argument/Argument.js +111 -106
  12. package/dist/components/argument/argument/Argument.module.scss.js +31 -31
  13. package/dist/components/consultation/consultation_box/ConsultationBox.js +80 -111
  14. package/dist/components/consultation/consultation_box/ConsultationBox.module.scss.js +31 -29
  15. package/dist/components/dialog/dropdown/Dropdown.js +35 -28
  16. package/dist/components/icons/spiegel_icons/Downvote.js +6 -0
  17. package/dist/components/icons/spiegel_icons/Upvote.js +6 -0
  18. package/dist/components/icons/spiegel_icons/index.js +46 -46
  19. package/dist/components/icons/stern_icons/index.js +100 -70
  20. package/dist/components/input/argument_input/ArgumentInput.js +201 -197
  21. package/dist/components/input/select/Select.js +19 -19
  22. package/dist/components/input/text_editor/TextEditor.js +143 -129
  23. package/dist/components/input/text_editor/TextEditor.module.scss.js +5 -5
  24. package/dist/components/input/text_editor/plugins/FocusPlugin.js +12 -8
  25. package/dist/components/input/text_editor/plugins/SetContentPlugin.js +13 -13
  26. package/dist/components/input/text_editor/plugins/SetRichContentPlugin.js +10 -10
  27. package/dist/components/input/text_editor/plugins/ToolbarPlugin.js +70 -72
  28. package/dist/components/list/paginated_list/PaginatedList.js +112 -110
  29. package/dist/components/notification/notification_menu/NotificationMenu.js +23 -22
  30. package/dist/components/proposal/proposal_box/ProposalBox.js +58 -49
  31. package/dist/components/proposal/proposal_box/ProposalBox.module.scss.js +14 -12
  32. package/dist/components/section/section_box/SectionBox.js +10 -10
  33. package/dist/components/section/section_box/SectionBox.module.scss.js +9 -9
  34. package/dist/components/source/context_source_box/ContextSourceBox.js +7 -7
  35. package/dist/components/source/context_source_list/ContextSourceList.js +10 -13
  36. package/dist/components/source/context_source_list/ContextSourceList.module.scss.js +14 -12
  37. package/dist/components/source/source_list_item/SourceListItem.js +42 -28
  38. package/dist/components/source/source_list_item/SourceListItem.module.scss.js +8 -6
  39. package/dist/components/source/source_modal/SourceModal.js +15 -15
  40. package/dist/components/summary/summary/Summary.js +41 -63
  41. package/dist/components/summary/summary/Summary.module.scss.js +10 -6
  42. package/dist/components/summary/summary_box/SummaryBox.module.scss.js +9 -9
  43. package/dist/components/vote/vote_box/VoteBox.js +123 -145
  44. package/dist/components/vote/vote_box/VoteBox.module.scss.js +50 -50
  45. package/package.json +1 -1
  46. package/dist/assets/components/argument/argument/Argument.module-gLfNRLks.css +0 -1
  47. package/dist/assets/components/consultation/consultation_box/ConsultationBox.module-BnTr5IaF.css +0 -1
  48. package/dist/assets/components/proposal/proposal_box/ProposalBox.module-T4ms_LQ7.css +0 -1
  49. package/dist/assets/components/section/section_box/SectionBox.module-DUeUtdWr.css +0 -1
  50. package/dist/assets/components/source/context_source_list/ContextSourceList.module-D6X_0dB7.css +0 -1
  51. package/dist/assets/components/source/source_list_item/SourceListItem.module-mTxHhXPV.css +0 -1
  52. package/dist/assets/components/summary/summary/Summary.module-DjfmUlkW.css +0 -1
  53. package/dist/assets/components/summary/summary_box/SummaryBox.module-DQVkA8l7.css +0 -1
  54. package/dist/assets/components/vote/vote_box/VoteBox.module-CDrqb2SZ.css +0 -1
@@ -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,32 +1,32 @@
1
- import { jsx as t, jsxs as f, Fragment as y } from "react/jsx-runtime";
2
- import u from "classnames";
1
+ import { jsx as t, jsxs as u, Fragment as S } from "react/jsx-runtime";
3
2
  import { useState as g, useEffect as I } from "react";
3
+ import p from "classnames";
4
4
  import { useIntl as N } from "react-intl";
5
5
  import o from "./ProposalBox.module.scss.js";
6
- import { useConfig as S } from "../../data/config_provider/useConfig.js";
7
- import { useAuth as B } from "../../auth/use_auth/useAuth.js";
8
- import { useTranslatedContent as p } from "../../translation/translated_content/useTranslatedContent.js";
9
- import { lexicalToHtml as H } from "../../input/text_editor/lexicalToHtml.js";
10
- import { HashScroll as L } from "../../tools/hash_scroll/HashScroll.js";
6
+ import { useConfig as y } from "../../data/config_provider/useConfig.js";
7
+ import { useAuth as L } from "../../auth/use_auth/useAuth.js";
8
+ import { useTranslatedContent as C } from "../../translation/translated_content/useTranslatedContent.js";
9
+ import { lexicalToHtml as B } from "../../input/text_editor/lexicalToHtml.js";
10
+ import { HashScroll as H } from "../../tools/hash_scroll/HashScroll.js";
11
11
  import { ContentHeader as U } from "../../user_content/content_header/ContentHeader.js";
12
12
  import { ReadMore as D } from "../../text/read_more/ReadMore.js";
13
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 = ({
14
+ import { SourceListItem as R } from "../../source/source_list_item/SourceListItem.js";
15
+ import { ContentFooter as $ } from "../../user_content/content_footer/ContentFooter.js";
16
+ import { UpDownVoteBox as F } from "../../vote/up_down_vote_box/UpDownVoteBox.js";
17
+ const ee = ({
17
18
  proposal: e,
18
- disabled: i = !1,
19
- fixedContentHeight: C,
20
- contentMaxHeight: F = 156,
19
+ disabled: d = !1,
20
+ fixedContentHeight: _,
21
21
  enableEdition: T = !0,
22
- hideFooter: _ = !1
22
+ hideFooter: v = !1
23
23
  }) => {
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(
24
+ const [c, x] = g(null), [M, w] = g(!1), s = N(), n = y(), { currentUser: m } = L(), h = m?.moderation_status === "banned", f = `proposal_${e.id}`, i = C(
25
25
  e.title,
26
26
  e.language,
27
27
  "title",
28
28
  e.translation_entries
29
- ), n = p(
29
+ ), a = C(
30
30
  e.content,
31
31
  e.language,
32
32
  "content",
@@ -34,21 +34,21 @@ const Z = ({
34
34
  );
35
35
  I(() => {
36
36
  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);
37
+ const r = JSON.parse(e.rich_content);
38
+ if (r.hasOwnProperty("root")) {
39
+ const l = B(r);
40
+ x(l);
41
41
  }
42
42
  }
43
43
  }, [e.rich_content]);
44
- const w = () => {
45
- s.toggleContent(), n.toggleContent();
44
+ const b = () => {
45
+ i.toggleContent(), a.toggleContent();
46
46
  };
47
- return /* @__PURE__ */ t(L, { elementId: m, onScroll: () => M(!0), children: /* @__PURE__ */ f(
47
+ return /* @__PURE__ */ t(H, { elementId: f, onScroll: () => w(!0), children: /* @__PURE__ */ u(
48
48
  "div",
49
49
  {
50
- className: u(o.proposalBoxContainer, { [o.flash]: v }),
51
- id: m,
50
+ className: p(o.proposalBoxContainer, { [o.flash]: M }),
51
+ id: f,
52
52
  children: [
53
53
  /* @__PURE__ */ t(
54
54
  U,
@@ -62,39 +62,39 @@ const Z = ({
62
62
  /* @__PURE__ */ t(
63
63
  "div",
64
64
  {
65
- className: u(o.proposalBoxContent, {
66
- [o.fixedHeight]: C
65
+ className: p(o.proposalBoxContent, {
66
+ [o.fixedHeight]: _
67
67
  }),
68
68
  children: /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(
69
69
  D,
70
70
  {
71
- content: /* @__PURE__ */ f(y, { children: [
72
- e.is_edited && /* @__PURE__ */ t("div", { className: o.edited, children: a.formatMessage({
71
+ content: /* @__PURE__ */ u(S, { children: [
72
+ e.is_edited && /* @__PURE__ */ t("div", { className: o.edited, children: s.formatMessage({
73
73
  id: "proposal.updated",
74
74
  defaultMessage: "Updated proposal"
75
75
  }) }),
76
- /* @__PURE__ */ t("div", { className: o.proposalTitle, children: s.translatedContent }),
77
- d && !n.isTranslated ? /* @__PURE__ */ t(
76
+ /* @__PURE__ */ t("div", { className: o.proposalTitle, children: i.translatedContent }),
77
+ c && !a.isTranslated ? /* @__PURE__ */ t(
78
78
  "div",
79
79
  {
80
80
  className: o.proposalContent,
81
- dangerouslySetInnerHTML: { __html: d }
81
+ dangerouslySetInnerHTML: { __html: c }
82
82
  }
83
- ) : /* @__PURE__ */ t("div", { className: o.proposalContent, children: n.translatedContent }),
84
- (n.isTranslated || s.isTranslated) && /* @__PURE__ */ t(
83
+ ) : /* @__PURE__ */ t("div", { className: o.proposalContent, children: a.translatedContent }),
84
+ (a.isTranslated || i.isTranslated) && /* @__PURE__ */ t(
85
85
  P,
86
86
  {
87
87
  language: e.language,
88
- callback: () => w()
88
+ callback: () => b()
89
89
  }
90
90
  )
91
91
  ] }),
92
92
  lineCount: 7,
93
- readMoreText: a.formatMessage({
93
+ readMoreText: s.formatMessage({
94
94
  id: "action.read_more",
95
95
  defaultMessage: "Read more"
96
96
  }),
97
- readLessText: a.formatMessage({
97
+ readLessText: s.formatMessage({
98
98
  id: "action.read_less",
99
99
  defaultMessage: "Read less"
100
100
  })
@@ -102,32 +102,41 @@ const Z = ({
102
102
  ) })
103
103
  }
104
104
  ),
105
- !_ && /* @__PURE__ */ t(
105
+ e.sources?.length > 0 && /* @__PURE__ */ t("div", { className: o.proposalSourcesList, children: e.sources.map((r, l) => /* @__PURE__ */ t(
106
106
  R,
107
+ {
108
+ publisher: r.publisher,
109
+ url: r.source_url,
110
+ title: r.title,
111
+ index: l
112
+ },
113
+ r.id
114
+ )) }),
115
+ !v && /* @__PURE__ */ t(
116
+ $,
107
117
  {
108
118
  resource: e,
109
- disabled: i || c,
119
+ disabled: d || h,
110
120
  reportType: "Proposal",
111
121
  deleteType: "proposals",
112
122
  deleteListId: "proposalsList",
113
- shareModal: !0,
114
- shareModalTitle: a.formatMessage({ id: "share.proposal" }),
123
+ shareModalTitle: s.formatMessage({ id: "share.proposal" }),
115
124
  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,
125
+ shareTitle: s.formatMessage({ id: "share.proposal.title" }),
126
+ shareText: s.formatMessage({ id: "share.proposal.text" }),
127
+ 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>`,
128
+ showShareCode: n?.actions?.hideCodeShare !== !0,
120
129
  showActions: !e.author.consultation_id,
121
130
  enableEdition: T,
122
131
  children: /* @__PURE__ */ t(
123
- $,
132
+ F,
124
133
  {
125
134
  voteableType: "Proposal",
126
135
  voteableId: e.id,
127
136
  totalUpvote: e.total_upvotes,
128
137
  totalDownvote: e.total_downvotes,
129
- disabled: i || l?.id === e?.author?.id || c,
130
- hideDownvotes: r?.actions?.hideDownvotes
138
+ disabled: d || m?.id === e?.author?.id || h,
139
+ hideDownvotes: n?.actions?.hideDownvotes
131
140
  }
132
141
  )
133
142
  }
@@ -137,5 +146,5 @@ const Z = ({
137
146
  ) });
138
147
  };
139
148
  export {
140
- Z as ProposalBox
149
+ ee as ProposalBox
141
150
  };
@@ -1,19 +1,21 @@
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-C9BaTFDH.css';const o = "_proposalBoxContainer_5d6lc_3", t = "_flash_5d6lc_17", s = "_edited_5d6lc_25", l = "_proposalBoxContent_5d6lc_32", p = "_proposalTitle_5d6lc_44", e = "_proposalContent_5d6lc_52", n = "_proposalSourcesList_5d6lc_56", _ = "_fixedHeight_5d6lc_68", a = {
2
2
  proposalBoxContainer: o,
3
3
  flash: t,
4
- edited: a,
5
- proposalBoxContent: e,
6
- proposalTitle: n,
7
- proposalContent: s,
8
- fixedHeight: p
4
+ edited: s,
5
+ proposalBoxContent: l,
6
+ proposalTitle: p,
7
+ proposalContent: e,
8
+ proposalSourcesList: n,
9
+ fixedHeight: _
9
10
  };
10
11
  export {
11
- _ as default,
12
- a as edited,
13
- p as fixedHeight,
12
+ a as default,
13
+ s as edited,
14
+ _ as fixedHeight,
14
15
  t as flash,
15
16
  o as proposalBoxContainer,
16
- e as proposalBoxContent,
17
- s as proposalContent,
18
- n as proposalTitle
17
+ l as proposalBoxContent,
18
+ e as proposalContent,
19
+ n as proposalSourcesList,
20
+ p as proposalTitle
19
21
  };
@@ -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
  };
@@ -1,14 +1,13 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import m from "classnames";
3
3
  import "react";
4
- import { useIntl as p } from "react-intl";
5
4
  import e from "./ContextSourceList.module.scss.js";
6
- import { useResponsive as c } from "../../hooks/use_responsive/useResponsive.js";
7
- import { SectionBox as u } from "../../section/section_box/SectionBox.js";
5
+ import { useResponsive as p } from "../../hooks/use_responsive/useResponsive.js";
6
+ import { SectionBox as c } from "../../section/section_box/SectionBox.js";
8
7
  import { Link as d } from "../../action/link/Link.js";
9
- import { ContextSourceBox as f } from "../context_source_box/ContextSourceBox.js";
10
- const S = ({ sources: i = [] }) => {
11
- const r = p(), { isMobile: l, isTablet: s, isDesktop: n } = c(), a = (t) => /* @__PURE__ */ o(
8
+ import { ContextSourceBox as u } from "../context_source_box/ContextSourceBox.js";
9
+ const C = ({ sources: i = [], title: r = "" }) => {
10
+ const { isMobile: l, isTablet: s, isDesktop: n } = p(), a = (t) => /* @__PURE__ */ o(
12
11
  d,
13
12
  {
14
13
  className: e.listItem,
@@ -16,7 +15,7 @@ const S = ({ sources: i = [] }) => {
16
15
  target: "_blank",
17
16
  external: !0,
18
17
  children: /* @__PURE__ */ o(
19
- f,
18
+ u,
20
19
  {
21
20
  imageUrl: t.origin_image_url,
22
21
  author: t.publisher,
@@ -28,14 +27,12 @@ const S = ({ sources: i = [] }) => {
28
27
  t.id
29
28
  );
30
29
  return /* @__PURE__ */ o(
31
- u,
30
+ c,
32
31
  {
32
+ className: e.sectionBox,
33
33
  isCollapsible: !0,
34
34
  isCollapsedByDefault: !1,
35
- title: r.formatMessage({
36
- id: "source.context_source_list.title",
37
- defaultMessage: "Debate context"
38
- }),
35
+ title: r,
39
36
  children: /* @__PURE__ */ o(
40
37
  "div",
41
38
  {
@@ -51,5 +48,5 @@ const S = ({ sources: i = [] }) => {
51
48
  );
52
49
  };
53
50
  export {
54
- S as ContextSourceList
51
+ C as ContextSourceList
55
52
  };
@@ -1,15 +1,17 @@
1
- import '../../../assets/components/source/context_source_list/ContextSourceList.module-D6X_0dB7.css';const t = "_content_19ocx_10", n = "_contentMobile_19ocx_14", o = "_contentTablet_19ocx_17", e = "_contentDesktop_19ocx_20", c = "_listItem_19ocx_24", s = {
2
- content: t,
3
- contentMobile: n,
4
- contentTablet: o,
5
- contentDesktop: e,
6
- listItem: c
1
+ import '../../../assets/components/source/context_source_list/ContextSourceList.module-DUPbI-wb.css';const t = "_sectionBox_15pa0_3", n = "_content_15pa0_14", o = "_contentMobile_15pa0_18", e = "_contentTablet_15pa0_21", c = "_contentDesktop_15pa0_24", s = "_listItem_15pa0_28", _ = {
2
+ sectionBox: t,
3
+ content: n,
4
+ contentMobile: o,
5
+ contentTablet: e,
6
+ contentDesktop: c,
7
+ listItem: s
7
8
  };
8
9
  export {
9
- t as content,
10
- e as contentDesktop,
11
- n as contentMobile,
12
- o as contentTablet,
13
- s as default,
14
- c as listItem
10
+ n as content,
11
+ c as contentDesktop,
12
+ o as contentMobile,
13
+ e as contentTablet,
14
+ _ as default,
15
+ s as listItem,
16
+ t as sectionBox
15
17
  };
@@ -1,34 +1,48 @@
1
- import { jsxs as e, jsx as s } from "react/jsx-runtime";
1
+ import { jsxs as e, jsx as r } from "react/jsx-runtime";
2
2
  import "react";
3
3
  import t from "./SourceListItem.module.scss.js";
4
4
  import { Link as m } from "../../action/link/Link.js";
5
- import { Icon as l } from "../../icons/icon/Icon.js";
6
- const h = ({ index: o = 0, url: i, title: n, publisher: r }) => /* @__PURE__ */ e(
7
- m,
8
- {
9
- className: t.sourceListItem,
10
- to: i,
11
- external: !0,
12
- target: "_blank",
13
- rel: "nofollow noreferrer noopener",
14
- "data-tid": "link_view_source",
15
- children: [
16
- /* @__PURE__ */ s(l, { name: "link", width: 16, height: 16 }),
17
- /* @__PURE__ */ e("div", { className: t.sourceListItemLink, children: [
18
- /* @__PURE__ */ e("span", { children: [
19
- "[ ",
20
- o + 1,
21
- " ]"
22
- ] }),
23
- /* @__PURE__ */ e("span", { children: [
24
- r && `${r} `,
25
- " ",
26
- n
5
+ import { Icon as s } from "../../icons/icon/Icon.js";
6
+ const k = ({ index: a = 0, url: l, title: c, publisher: o, onRemove: i }) => /* @__PURE__ */ e("div", { className: t.sourceListItemContainer, children: [
7
+ /* @__PURE__ */ e(
8
+ m,
9
+ {
10
+ className: t.sourceListItem,
11
+ to: l,
12
+ external: !0,
13
+ target: "_blank",
14
+ rel: "nofollow noreferrer noopener",
15
+ "data-tid": "link_view_source",
16
+ children: [
17
+ /* @__PURE__ */ r(s, { name: "link", width: 16, height: 16 }),
18
+ /* @__PURE__ */ e("div", { className: t.sourceListItemLink, children: [
19
+ /* @__PURE__ */ e("span", { children: [
20
+ "[ ",
21
+ a + 1,
22
+ " ] "
23
+ ] }),
24
+ /* @__PURE__ */ e("span", { children: [
25
+ o && `${o} – `,
26
+ " ",
27
+ c
28
+ ] })
27
29
  ] })
28
- ] })
29
- ]
30
- }
31
- );
30
+ ]
31
+ }
32
+ ),
33
+ i && /* @__PURE__ */ r(
34
+ "button",
35
+ {
36
+ type: "button",
37
+ className: t.removeSourceButton,
38
+ onClick: (n) => {
39
+ n.preventDefault(), n.stopPropagation(), i();
40
+ },
41
+ "aria-label": "Remove source",
42
+ children: /* @__PURE__ */ r(s, { name: "close", width: 10, height: 10 })
43
+ }
44
+ )
45
+ ] });
32
46
  export {
33
- h as SourceListItem
47
+ k as SourceListItem
34
48
  };
@@ -1,9 +1,11 @@
1
- import '../../../assets/components/source/source_list_item/SourceListItem.module-mTxHhXPV.css';const s = "_sourceListItem_1498g_3", t = "_sourceListItemLink_1498g_26", e = {
2
- sourceListItem: s,
3
- sourceListItemLink: t
1
+ import '../../../assets/components/source/source_list_item/SourceListItem.module-fm_uHuY4.css';const t = "_sourceListItemContainer_as5dp_3", e = "_sourceListItem_as5dp_3", o = "_removeSourceButton_as5dp_33", s = {
2
+ sourceListItemContainer: t,
3
+ sourceListItem: e,
4
+ removeSourceButton: o
4
5
  };
5
6
  export {
6
- e as default,
7
- s as sourceListItem,
8
- t as sourceListItemLink
7
+ s as default,
8
+ o as removeSourceButton,
9
+ e as sourceListItem,
10
+ t as sourceListItemContainer
9
11
  };