@logora/debate 0.3.90 → 0.3.91

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 (67) 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/proposal/proposal_box/ProposalBox.module-Dm8XDnr1.css +1 -0
  7. package/dist/assets/components/section/section_box/SectionBox.module-qQs4B6bf.css +1 -0
  8. package/dist/assets/components/source/context_source_list/ContextSourceList.module-DUPbI-wb.css +1 -0
  9. package/dist/assets/components/source/source_list_item/SourceListItem.module-fm_uHuY4.css +1 -0
  10. package/dist/assets/components/summary/summary/Summary.module-2bnx3egy.css +1 -0
  11. package/dist/assets/components/summary/summary_box/SummaryBox.module-Dr9PevSJ.css +1 -0
  12. package/dist/assets/components/vote/vote_box/VoteBox.module-D5sSSHpi.css +1 -0
  13. package/dist/components/argument/argument/Argument.js +111 -106
  14. package/dist/components/argument/argument/Argument.module.scss.js +31 -31
  15. package/dist/components/consultation/consultation_box/ConsultationBox.js +80 -111
  16. package/dist/components/consultation/consultation_box/ConsultationBox.module.scss.js +31 -29
  17. package/dist/components/dialog/dropdown/Dropdown.js +35 -28
  18. package/dist/components/follow/follow_button/FollowButton.js +17 -16
  19. package/dist/components/follow/follow_button/FollowButton.module.scss.js +6 -4
  20. package/dist/components/icons/bild_icons/index.js +58 -56
  21. package/dist/components/icons/hero_icons/index.js +20 -18
  22. package/dist/components/icons/krone_icons/index.js +48 -46
  23. package/dist/components/icons/regular_icons/Follow.js +6 -0
  24. package/dist/components/icons/regular_icons/index.js +20 -18
  25. package/dist/components/icons/spiegel_icons/Downvote.js +6 -0
  26. package/dist/components/icons/spiegel_icons/Upvote.js +6 -0
  27. package/dist/components/icons/spiegel_icons/index.js +54 -52
  28. package/dist/components/icons/stern_icons/index.js +102 -70
  29. package/dist/components/input/argument_input/ArgumentInput.js +201 -197
  30. package/dist/components/input/select/Select.js +19 -19
  31. package/dist/components/input/text_editor/TextEditor.js +143 -129
  32. package/dist/components/input/text_editor/TextEditor.module.scss.js +5 -5
  33. package/dist/components/input/text_editor/plugins/FocusPlugin.js +12 -8
  34. package/dist/components/input/text_editor/plugins/SetContentPlugin.js +13 -13
  35. package/dist/components/input/text_editor/plugins/SetRichContentPlugin.js +10 -10
  36. package/dist/components/input/text_editor/plugins/ToolbarPlugin.js +70 -72
  37. package/dist/components/list/paginated_list/PaginatedList.js +152 -144
  38. package/dist/components/list/paginated_list/action_bar/ActionBar.js +72 -61
  39. package/dist/components/list/paginated_list/action_bar/ActionBar.module.scss.js +18 -16
  40. package/dist/components/notification/notification_menu/NotificationMenu.js +23 -22
  41. package/dist/components/proposal/proposal_box/ProposalBox.js +70 -59
  42. package/dist/components/proposal/proposal_box/ProposalBox.module.scss.js +14 -10
  43. package/dist/components/section/section_box/SectionBox.js +10 -10
  44. package/dist/components/section/section_box/SectionBox.module.scss.js +9 -9
  45. package/dist/components/source/context_source_box/ContextSourceBox.js +7 -7
  46. package/dist/components/source/context_source_list/ContextSourceList.js +10 -13
  47. package/dist/components/source/context_source_list/ContextSourceList.module.scss.js +14 -12
  48. package/dist/components/source/source_list_item/SourceListItem.js +42 -28
  49. package/dist/components/source/source_list_item/SourceListItem.module.scss.js +8 -6
  50. package/dist/components/source/source_modal/SourceModal.js +15 -15
  51. package/dist/components/summary/summary/Summary.js +41 -63
  52. package/dist/components/summary/summary/Summary.module.scss.js +10 -6
  53. package/dist/components/summary/summary_box/SummaryBox.module.scss.js +9 -9
  54. package/dist/components/vote/vote_box/VoteBox.js +122 -143
  55. package/dist/components/vote/vote_box/VoteBox.module.scss.js +50 -48
  56. package/package.json +1 -1
  57. package/dist/assets/components/argument/argument/Argument.module-gLfNRLks.css +0 -1
  58. package/dist/assets/components/consultation/consultation_box/ConsultationBox.module-BnTr5IaF.css +0 -1
  59. package/dist/assets/components/follow/follow_button/FollowButton.module-Da-cPgwT.css +0 -1
  60. package/dist/assets/components/list/paginated_list/action_bar/ActionBar.module-pxwFC_Y2.css +0 -1
  61. package/dist/assets/components/proposal/proposal_box/ProposalBox.module-T4ms_LQ7.css +0 -1
  62. package/dist/assets/components/section/section_box/SectionBox.module-DUeUtdWr.css +0 -1
  63. package/dist/assets/components/source/context_source_list/ContextSourceList.module-D6X_0dB7.css +0 -1
  64. package/dist/assets/components/source/source_list_item/SourceListItem.module-mTxHhXPV.css +0 -1
  65. package/dist/assets/components/summary/summary/Summary.module-DjfmUlkW.css +0 -1
  66. package/dist/assets/components/summary/summary_box/SummaryBox.module-DQVkA8l7.css +0 -1
  67. 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,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
  };
@@ -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
  };