wagtail-cjkcms 25.5.2__py2.py3-none-any.whl → 25.8.2__py2.py3-none-any.whl

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 (26) hide show
  1. cjkcms/__init__.py +1 -1
  2. cjkcms/blocks/__init__.py +6 -0
  3. cjkcms/blocks/base_blocks.py +22 -0
  4. cjkcms/blocks/content/multistep.py +92 -0
  5. cjkcms/blocks/content/steps.py +83 -0
  6. cjkcms/blocks/content_blocks.py +48 -0
  7. cjkcms/media/images/test.original.png +0 -0
  8. cjkcms/media/original_images/test.png +0 -0
  9. cjkcms/project_template/basic/requirements.txt +1 -1
  10. cjkcms/project_template/webpack/requirements.txt +1 -4
  11. cjkcms/static/cjkcms/css/cjkcms-front.css +1 -1
  12. cjkcms/templates/cjkcms/blocks/base_block.html +2 -1
  13. cjkcms/templates/cjkcms/blocks/column_block.html +6 -1
  14. cjkcms/templates/cjkcms/blocks/grid_block.html +9 -3
  15. cjkcms/templates/cjkcms/blocks/hero_block.html +7 -2
  16. cjkcms/templates/cjkcms/blocks/icon_text_block.html +38 -0
  17. cjkcms/templates/cjkcms/blocks/multi_step_instructions.html +14 -0
  18. cjkcms/templates/cjkcms/blocks/steps_block.html +130 -0
  19. cjkcms/templates/cjkcms/snippets/multistep/alternating_cards.html +28 -0
  20. cjkcms/templates/cjkcms/snippets/multistep/vertical_pills.html +57 -0
  21. {wagtail_cjkcms-25.5.2.dist-info → wagtail_cjkcms-25.8.2.dist-info}/METADATA +1 -1
  22. {wagtail_cjkcms-25.5.2.dist-info → wagtail_cjkcms-25.8.2.dist-info}/RECORD +26 -17
  23. {wagtail_cjkcms-25.5.2.dist-info → wagtail_cjkcms-25.8.2.dist-info}/WHEEL +1 -1
  24. {wagtail_cjkcms-25.5.2.dist-info → wagtail_cjkcms-25.8.2.dist-info}/entry_points.txt +0 -0
  25. {wagtail_cjkcms-25.5.2.dist-info → wagtail_cjkcms-25.8.2.dist-info}/licenses/LICENSE +0 -0
  26. {wagtail_cjkcms-25.5.2.dist-info → wagtail_cjkcms-25.8.2.dist-info}/top_level.txt +0 -0
cjkcms/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- VERSION = (25, 5, 2, "")
1
+ VERSION = (25, 8, 2, "")
2
2
 
3
3
  __version_info__ = VERSION
4
4
  __version__ = ".".join(map(str, VERSION[:3])) + (f"-{VERSION[3]}" if VERSION[3] else "")
cjkcms/blocks/__init__.py CHANGED
@@ -32,9 +32,12 @@ from .content_blocks import ( # noqa
32
32
  PriceListBlock,
33
33
  ReusableContentBlock,
34
34
  HighlightBlock,
35
+ IconWithTextBlock,
35
36
  )
36
37
  from .content.events import PublicEventBlock, EventCalendarBlock
37
38
  from .content.countdown import CountdownBlock
39
+ from .content.multistep import MultiStepInstructionsBlock
40
+ from .content.steps import StepsBlock
38
41
  from .layout_blocks import CardGridBlock, GridBlock, HeroBlock
39
42
  from cjkcms.settings import cms_settings
40
43
 
@@ -78,7 +81,10 @@ CONTENT_STREAMBLOCKS = HTML_STREAMBLOCKS + [
78
81
  ("reusable_content", ReusableContentBlock()),
79
82
  ("event_calendar", EventCalendarBlock()),
80
83
  ("highlight", HighlightBlock()),
84
+ ("icon_with_text", IconWithTextBlock()),
85
+ ("steps", StepsBlock()),
81
86
  ("countdown", CountdownBlock()),
87
+ ("multistep_instructions", MultiStepInstructionsBlock()),
82
88
  ]
83
89
 
84
90
  NAVIGATION_STREAMBLOCKS = [
@@ -188,11 +188,33 @@ class CjkcmsAdvSettings(blocks.StructBlock):
188
188
  # placeholder, real value get set in __init__()
189
189
  custom_template = blocks.Block()
190
190
 
191
+ force_theme = blocks.ChoiceBlock(
192
+ choices=[
193
+ (None, _("None")),
194
+ ("light", _("Light")),
195
+ ("dark", _("Dark")),
196
+ ],
197
+ default=None,
198
+ required=False,
199
+ label=_("Force Theme"),
200
+ help_text=_(
201
+ "Override the theme for this block, also adding bg-body and text-body classes."
202
+ ),
203
+ )
204
+
191
205
  custom_css_class = blocks.CharBlock(
192
206
  required=False,
193
207
  max_length=255,
194
208
  label=_("Custom CSS Class"),
195
209
  )
210
+
211
+ item_css_class = blocks.CharBlock(
212
+ required=False,
213
+ max_length=255,
214
+ label=_("Item CSS Class"),
215
+ help_text=_("Used for multi-item blocks, like galleries or lists."),
216
+ )
217
+
196
218
  custom_id = blocks.CharBlock(
197
219
  required=False,
198
220
  max_length=255,
@@ -0,0 +1,92 @@
1
+ from wagtail import blocks
2
+ from wagtail.blocks import StructBlock, StreamBlock
3
+ from cjkcms.blocks.html_blocks import ButtonBlock
4
+ from cjkcms.blocks.base_blocks import BaseBlock
5
+ from cjkcms.settings import cms_settings
6
+
7
+
8
+ class BootstrapColorChoiceBlock(blocks.ChoiceBlock):
9
+
10
+ class Meta:
11
+ label = "Color"
12
+
13
+
14
+ class InstructionBlock(StructBlock):
15
+ header = blocks.CharBlock(
16
+ label="Header",
17
+ required=False,
18
+ )
19
+
20
+ pill_label = blocks.CharBlock(
21
+ label="Pill button Label",
22
+ help_text="Used only in Vertical Pills layout",
23
+ )
24
+
25
+ content_1 = blocks.RichTextBlock(
26
+ icon="font",
27
+ features=cms_settings.CJKCMS_RICHTEXT_FEATURES["full"],
28
+ label="Content Section 1",
29
+ required=False,
30
+ )
31
+
32
+ content_2 = blocks.RichTextBlock(
33
+ icon="font",
34
+ features=cms_settings.CJKCMS_RICHTEXT_FEATURES["full"],
35
+ label="Content Section 2",
36
+ required=False,
37
+ )
38
+
39
+ buttons = StreamBlock(
40
+ [("button", ButtonBlock())],
41
+ label="Step Buttons",
42
+ required=False,
43
+ block_counts={"button": {"min_num": 0, "max_num": 3}},
44
+ )
45
+
46
+ class Meta:
47
+ icon = "plus"
48
+ label = "Step"
49
+ label_format = "{header} (Step)"
50
+
51
+
52
+ class MultiStepInstructionsBlock(BaseBlock):
53
+ header = blocks.CharBlock(label="Headline", required=False)
54
+
55
+ layout = blocks.ChoiceBlock(
56
+ label="Layout",
57
+ choices=[
58
+ ("vertical_pills", "Vertical Pills"),
59
+ ("alternating_cards", "Alternating Cards"),
60
+ ],
61
+ default="alternating_cards",
62
+ )
63
+
64
+ alignment = blocks.ChoiceBlock(
65
+ label="Header & Buttons Alignment",
66
+ choices=[
67
+ ("left", "Left"),
68
+ ("right", "Right"),
69
+ ("center", "Center"),
70
+ ],
71
+ default="center",
72
+ )
73
+
74
+ # gutter size for content spacing, dropdown choices for intengers 0-5
75
+ content_gutter = blocks.ChoiceBlock(
76
+ label="Content Gutter Size",
77
+ choices=[(str(i), str(i)) for i in range(6)],
78
+ default="3",
79
+ help_text="Horizontal gutter size for content spacing, 0-5",
80
+ )
81
+
82
+ steps = StreamBlock(
83
+ [("step", InstructionBlock())],
84
+ label="Steps",
85
+ block_counts={"step": {"min_num": 1, "max_num": 10, "required": True}},
86
+ )
87
+
88
+ class Meta:
89
+ icon = "group"
90
+ label = "Multi Step Instructions"
91
+ label_format = "{header} (Multi Step Instructions)"
92
+ template = "cjkcms/blocks/multi_step_instructions.html"
@@ -0,0 +1,83 @@
1
+ from django.utils.translation import gettext_lazy as _
2
+ from wagtail import blocks
3
+
4
+ from cjkcms.blocks.base_blocks import BaseBlock
5
+
6
+
7
+ class StepItemBlock(blocks.StructBlock):
8
+ """A single step: icon and title (caption)."""
9
+
10
+ icon = blocks.CharBlock(required=True, label=_("Icon"))
11
+ title = blocks.CharBlock(required=True, max_length=255, label=_("Title"))
12
+ is_active = blocks.BooleanBlock(
13
+ required=False,
14
+ default=False,
15
+ label=_("Active"),
16
+ help_text=_("If active, the step will be highlighted."),
17
+ )
18
+
19
+ class Meta:
20
+ icon = "minus"
21
+ label = _("Step Item")
22
+ label_format = _("Step: {title}")
23
+
24
+
25
+ class StepsColorSettingsBlock(blocks.StructBlock):
26
+ """
27
+ Color settings for the steps block.
28
+ """
29
+
30
+ icon_color = blocks.CharBlock(
31
+ required=False,
32
+ max_length=255,
33
+ label=_("Icon color"),
34
+ )
35
+ icon_border_color = blocks.CharBlock(
36
+ required=False,
37
+ max_length=255,
38
+ label=_("Icon border color"),
39
+ )
40
+ icon_background_color = blocks.CharBlock(
41
+ required=False,
42
+ max_length=255,
43
+ label=_("Icon background color"),
44
+ )
45
+
46
+ active_icon_color = blocks.CharBlock(
47
+ required=False,
48
+ max_length=255,
49
+ label=_("Active icon color"),
50
+ )
51
+ active_icon_border_color = blocks.CharBlock(
52
+ required=False,
53
+ max_length=255,
54
+ label=_("Active icon border color"),
55
+ )
56
+ active_icon_background_color = blocks.CharBlock(
57
+ required=False,
58
+ max_length=255,
59
+ label=_("Active icon background color"),
60
+ )
61
+
62
+ line_color = blocks.CharBlock(
63
+ required=False,
64
+ max_length=255,
65
+ label=_("Connector line color"),
66
+ )
67
+
68
+
69
+ class StepsBlock(BaseBlock):
70
+ """Horizontal steps with connecting line."""
71
+
72
+ items = blocks.ListBlock(StepItemBlock(), label=_("Steps"))
73
+ color_settings = StepsColorSettingsBlock(
74
+ required=False,
75
+ label=_("Color settings"),
76
+ help_text=_("Hex/RGBA/CSS color. Leave blank to use default styles."),
77
+ )
78
+
79
+ class Meta:
80
+ icon = "list-ol"
81
+ label = _("Steps")
82
+ label_format = _("Steps: {items}")
83
+ template = "cjkcms/blocks/steps_block.html"
@@ -396,3 +396,51 @@ class HighlightBlock(BaseBlock):
396
396
  label = _("Highlight")
397
397
  label_format = _("Highlight")
398
398
  template = "cjkcms/blocks/highlight_block.html"
399
+
400
+
401
+ class IconWithTextBlock(BaseBlock):
402
+ """Configurable block for an icon with optional statistic value, title and text.
403
+
404
+ Two layouts are supported:
405
+ - "stat": stacked, suitable for statistics (icon, big number, label/text)
406
+ - "media": icon on the left, content on the right (title, text)
407
+ """
408
+
409
+ icon = blocks.CharBlock(
410
+ required=True,
411
+ label=_("Icon"),
412
+ )
413
+ title = blocks.CharBlock(
414
+ required=False,
415
+ max_length=255,
416
+ label=_("Title"),
417
+ )
418
+ text = blocks.CharBlock(
419
+ required=False,
420
+ max_length=255,
421
+ label=_("Text"),
422
+ )
423
+ icon_color = blocks.CharBlock(
424
+ required=False,
425
+ max_length=255,
426
+ label=_("Icon color"),
427
+ help_text=_("Hex/RGBA/CSS color. Leave blank to use default styles."),
428
+ )
429
+ icon_background_color = blocks.CharBlock(
430
+ required=False,
431
+ max_length=255,
432
+ label=_("Icon background color"),
433
+ help_text=_("Hex/RGBA/CSS color. Leave blank to use default styles."),
434
+ )
435
+ layout = blocks.ChoiceBlock(
436
+ choices=[("horizontal", _("Horizontal")), ("vertical", _("Vertical"))],
437
+ default="horizontal",
438
+ required=False,
439
+ label=_("Layout"),
440
+ )
441
+
442
+ class Meta:
443
+ icon = "info-circle"
444
+ label = _("Icon with Text")
445
+ label_format = _("Icon with Text: {title}")
446
+ template = "cjkcms/blocks/icon_text_block.html"
Binary file
Binary file
@@ -1,4 +1,4 @@
1
1
  wagtail-cjkcms=={{cjkcms_version.0}}.{{cjkcms_version.1}}.*
2
2
 
3
3
  # To use with PostgreSQL, uncomment the line below:
4
- #psycopg2
4
+ #psycopg
@@ -2,7 +2,4 @@ wagtail-cjkcms=={{cjkcms_version.0}}.{{cjkcms_version.1}}.*
2
2
  python-webpack-boilerplate
3
3
 
4
4
  # To use with PostgreSQL, uncomment the line below:
5
- #psycopg2
6
- #
7
- #or for psycopg3:
8
- #psycopg[binary]
5
+ #psycopg
@@ -338,4 +338,4 @@ License: https://github.com/coderedcorp/coderedcms/blob/dev/LICENSE
338
338
  height: 0;
339
339
  width: 0;
340
340
  display: block;
341
- }
341
+ }
@@ -1,6 +1,7 @@
1
1
  <div class="{{self.settings.custom_css_class}}"
2
2
  {% if self.settings.custom_id %}
3
3
  id="{{self.settings.custom_id}}"
4
- {% endif %} >
4
+ {% endif %}
5
+ >
5
6
  {% block block_render %}{% endblock %}
6
7
  </div>
@@ -1,7 +1,12 @@
1
1
  {% load wagtailcore_tags %}
2
2
 
3
3
  <div {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %}
4
- class="col{% if self.settings.column_breakpoint %}-{{ self.settings.column_breakpoint }}{% endif %}{% if self.column_size %}-{{ self.column_size }}{% endif %} {{self.settings.custom_css_class}}">
4
+ {% if self.settings.force_theme %}
5
+ data-bs-theme="{{ self.settings.force_theme }}" data-mdb-theme="{{ self.settings.force_theme }}"
6
+ {% endif %}
7
+ class="col{% if self.settings.column_breakpoint %}-{{ self.settings.column_breakpoint }}{% endif %}{% if self.column_size %}-{{ self.column_size }}{% endif %}
8
+ {{self.settings.custom_css_class}}
9
+ {% if self.settings.force_theme %} bg-body text-body{% endif %}">
5
10
  {% for block in self.content %}
6
11
  {% include_block block %}
7
12
  {% endfor %}
@@ -1,10 +1,16 @@
1
1
  {% load wagtailcore_tags %}
2
2
 
3
3
  <div class="container{% if self.fluid %}-fluid{% endif %}"
4
- {% if self.settings.custom_id %} id="{{self.settings.custom_id}}"{% endif %} >
5
-
4
+ {% if self.settings.custom_id %} id="{{self.settings.custom_id}}"{% endif %}
5
+ >
6
6
  {% block grid_content %}
7
- <div class="row {{self.settings.custom_css_class}}">
7
+ <div
8
+ {% if self.settings.force_theme %}
9
+ data-bs-theme="{{ self.settings.force_theme }}" data-mdb-theme="{{ self.settings.force_theme }}"
10
+ {% endif %}
11
+
12
+ class="row {{self.settings.custom_css_class}}
13
+ {% if self.settings.force_theme %} bg-body text-body{% endif %}">
8
14
  {% for column in self.content %}
9
15
  {% include_block column %}
10
16
  {% endfor %}
@@ -5,10 +5,15 @@
5
5
  {% endif %}
6
6
 
7
7
  {% image self.background_image max-2000x2000 as background_image %}
8
- <div class="hero-bg {% if self.is_parallax %}parallax{% endif %} {% if self.tile_image %}tile{% endif %} {{self.settings.custom_css_class}}"
8
+ <div class="hero-bg position-relative {% if self.is_parallax %}parallax{% endif %} {% if self.tile_image %}tile{% endif %} {{self.settings.custom_css_class}}"
9
9
  style="{% if self.background_color %}background-color:{{self.background_color}};{% endif %}{% if background_image %}background-image:url({{background_image.url}});{% endif %}"
10
10
  {% if self.settings.custom_id %}id="{{self.settings.custom_id}}"{% endif %}>
11
- <div class="hero-fg" style="{% if self.foreground_color %}color:{{self.foreground_color}};{% endif %}">
11
+
12
+ {% if self.background_color and background_image %}
13
+ <div class="position-absolute top-0 start-0 w-100 h-100" style="background-color: {{self.background_color}};" aria-hidden="true"></div>
14
+ {% endif %}
15
+
16
+ <div class="hero-fg position-relative" style="{% if self.foreground_color %}color:{{self.foreground_color}};{% endif %}">
12
17
  {% include_block self.content %}
13
18
  </div>
14
19
  </div>
@@ -0,0 +1,38 @@
1
+ {% load wagtailcore_tags %}
2
+
3
+ <style scoped>
4
+ {% if self.icon_background_color %}
5
+ .icon-text-{{block.id}} .icon-bg {
6
+ background: {{ self.icon_background_color }} !important;
7
+ }
8
+ {% endif %}
9
+ {% if self.icon_color %}
10
+ .icon-text-{{block.id}} .icon-color {
11
+ color: {{ self.icon_color }} !important;
12
+ }
13
+ {% endif %}
14
+ </style>
15
+
16
+ {% if self.layout == "horizontal" %}
17
+ <div class="icon-text-{{block.id}} d-flex align-items-start gap-3 {{ self.settings.custom_css_class }}"
18
+ {% if self.settings.custom_id %}id="{{ self.settings.custom_id }}"{% endif %}
19
+ >
20
+ <div class="rounded d-inline-flex align-items-center justify-content-center p-3 icon-bg" style="aspect-ratio: 1/1;">
21
+ {% if self.icon %}<i class="{{ self.icon }} fs-1 fa-fw icon-color"></i>{% endif %}
22
+ </div>
23
+ {% if self.title %}<h3 class="fw-semibold fs-2 mb-0">{{ self.title }}</h3>{% endif %}
24
+ {% if self.text %}<p class="fs-5 fw-lighter mb-0">{{ self.text }}</p>{% endif %}
25
+ </div>
26
+ {% else %}
27
+ <div class="icon-text-{{block.id}} text-center {{ self.settings.custom_css_class }}"
28
+ {% if self.settings.custom_id %}id="{{ self.settings.custom_id }}"{% endif %}
29
+ >
30
+ <div class="mx-auto mb-2 rounded d-inline-flex align-items-center justify-content-center p-3 bg-primary icon-bg" style="aspect-ratio: 1/1;">
31
+ {% if self.icon %}<i class="{{ self.icon }} fs-1 fa-fw text-white icon-color"></i>{% endif %}
32
+ </div>
33
+ {% if self.title %}<h3 class="fs-3 fw-bold lh-1 mb-0">{{ self.title }}</h3>{% endif %}
34
+ {% if self.text %}<p class="fs-6 fw-lighter mb-0">{{ self.text }}</p>{% endif %}
35
+ </div>
36
+ {% endif %}
37
+
38
+
@@ -0,0 +1,14 @@
1
+ {% load wagtailcore_tags wagtailimages_tags cjkcms_tags static %}
2
+ <div
3
+ {% if self.settings.force_theme %}
4
+ data-bs-theme="{{ self.settings.force_theme }}" data-mdb-theme="{{ self.settings.force_theme }}"
5
+ {% endif %}
6
+ class="multi_step_instructions {%if self.settings.custom_css_class%}{{self.settings.custom_css_class}}{% else %} p-2 m-2 {% endif %}
7
+ {% if self.settings.force_theme %} bg-body text-body{% endif %}">
8
+ {% if self.header %}
9
+ <h2 class="text-center py-2 fw-bolder">{{ self.header }}</h2>
10
+ {% endif %}
11
+ {% with "cjkcms/snippets/multistep/"|add:self.layout|add:".html" as layout_template %}
12
+ {% include layout_template %}
13
+ {% endwith %}
14
+ </div>
@@ -0,0 +1,130 @@
1
+ {% load wagtailcore_tags %}
2
+
3
+ <style>
4
+ .steps-container {
5
+ flex-direction: column;
6
+ width: fit-content;
7
+ }
8
+
9
+ .connecting-line {
10
+ width: 6px;
11
+ height: 50%;
12
+ background: {{ self.color_settings.line_color|default:'#F3F3F3' }};
13
+ }
14
+
15
+ .step-item {
16
+ display: flex;
17
+ }
18
+
19
+ .step-item-content {
20
+ display: flex;
21
+ flex-direction: column-reverse;
22
+ justify-content: center;
23
+ }
24
+
25
+ .connecting-line.before {
26
+ left: calc(50% - 3px);
27
+ top: 0;
28
+ }
29
+
30
+ @media (min-width: 768px) {
31
+ .steps-container {
32
+ flex-direction: row;
33
+ width: auto;
34
+ }
35
+
36
+ .connecting-line {
37
+ height: 6px;
38
+ top: calc(50% - 3px);
39
+ width: 50%;
40
+ }
41
+
42
+ .step-item {
43
+ flex-direction: column;
44
+ flex: 1;
45
+ }
46
+
47
+ .step-item-content {
48
+ text-align: center;
49
+ flex-direction: column;
50
+ }
51
+
52
+ .connecting-line.after {
53
+ left: 50%;
54
+ }
55
+
56
+ .connecting-line.before {
57
+ left: 0;
58
+ top: auto;
59
+ }
60
+ }
61
+
62
+ /* Icon Color Settings */
63
+ {% if self.color_settings.icon_background_color %}
64
+ .steps-container-{{block.id}} .icon-bg:not(.active) {
65
+ background: {{ self.color_settings.icon_background_color }} !important;
66
+ }
67
+ {% endif %}
68
+ {% if self.color_settings.icon_border_color %}
69
+ .steps-container-{{block.id}} .icon-border:not(.active) {
70
+ border: 2px solid {{ self.color_settings.icon_border_color }} !important;
71
+ }
72
+ {% endif %}
73
+ {% if self.color_settings.icon_color %}
74
+ .steps-container-{{block.id}} .icon-color:not(.active) {
75
+ color: {{ self.color_settings.icon_color }} !important;
76
+ }
77
+ {% endif %}
78
+ /* Active Icon Color Settings */
79
+ {% if self.color_settings.active_icon_background_color %}
80
+ .steps-container-{{block.id}} .icon-bg.active {
81
+ background: {{ self.color_settings.active_icon_background_color }} !important;
82
+ }
83
+ {% endif %}
84
+ {% if self.color_settings.active_icon_border_color %}
85
+ .steps-container-{{block.id}} .icon-border.active {
86
+ border: 2px solid {{ self.color_settings.active_icon_border_color }} !important;
87
+ }
88
+ {% endif %}
89
+ {% if self.color_settings.active_icon_color %}
90
+ .steps-container-{{block.id}} .icon-color.active {
91
+ color: {{ self.color_settings.active_icon_color }} !important;
92
+ }
93
+ {% endif %}
94
+ </style>
95
+
96
+ <section class="position-relative fw-lighter {{ self.settings.custom_css_class }}" {% if self.settings.custom_id %}id="{{ self.settings.custom_id }}"{% endif %}>
97
+
98
+ <div class="container">
99
+ <ol class="steps-container-{{block.id}} d-flex ms-3 ms-lg-0 list-unstyled">
100
+ {% for item in self.items %}
101
+ <li class="step-item">
102
+
103
+ <div class="d-flex align-items-center justify-content-center position-relative">
104
+ {% if not forloop.first %}
105
+ <div class="connecting-line before position-absolute" aria-hidden="true"></div>
106
+ {% endif %}
107
+ {% if not forloop.last %}
108
+ <div class="connecting-line after d-none d-md-block position-absolute" aria-hidden="true"></div>
109
+ {% endif %}
110
+ <div class="rounded d-inline-flex align-items-center justify-content-center p-3 position-relative
111
+ {% if item.is_active %}active bg-primary text-white{% else %}bg-white text-primary{% endif %} border border-2 border-primary icon-bg icon-border icon-color
112
+ {% if not forloop.first %}mt-5 mt-md-0{% endif %}"
113
+ style="aspect-ratio: 1/1;"
114
+ >
115
+ <i class="{{ item.icon }} fs-1 fa-fw" aria-label="{{ item.title }}" role="img"></i>
116
+ </div>
117
+ </div>
118
+
119
+ <div class="step-item-content ms-3 ms-md-0 {% if not forloop.first %}mt-5 mt-md-0{% endif %}">
120
+ <div class="mt-md-2">Step {{ forloop.counter }}</div>
121
+ <p class="fs-5 mb-0">{{ item.title }}</p>
122
+ </div>
123
+
124
+ </li>
125
+ {% endfor %}
126
+ </ol>
127
+ </div>
128
+ </section>
129
+
130
+
@@ -0,0 +1,28 @@
1
+ {% load wagtailcore_tags wagtailimages_tags static %}
2
+
3
+ {% for instruction in self.steps %}
4
+ <div class="row {%if self.settings.item_css_class%}{{self.settings.item_css_class}}{% else %}gx-4 gy-4 mb-4 border-bottom{% endif %}">
5
+ <div class="col-lg-6
6
+ {% if forloop.counter|divisibleby:2 %}order-last{% endif %}">
7
+ <h3 class="mb-2
8
+ {% if self.alignment == "center" %}text-center
9
+ {% elif self.alignment == "left" %}text-start
10
+ {% else %}text-end{% endif %}
11
+ ">{{ instruction.value.header }}</h3>
12
+ <div class="content-instructions">
13
+ {{ instruction.value.content_1|richtext }}
14
+ </div>
15
+ <div class="d-flex mb-2
16
+ {% if self.alignment == "center" %}justify-content-center
17
+ {% elif self.alignment == "left" %}justify-content-start
18
+ {% else %}justify-content-end{% endif %}">
19
+ {{ instruction.value.buttons }}
20
+ </div>
21
+ </div>
22
+ <div class="col-lg-6">
23
+ <div class="content-instructions">
24
+ {{ instruction.value.content_2|richtext }}
25
+ </div>
26
+ </div>
27
+ </div>
28
+ {% endfor %}
@@ -0,0 +1,57 @@
1
+ {% load wagtailcore_tags wagtailimages_tags static %}
2
+
3
+ <div class="row {%if self.settings.item_css_class%}{{self.settings.item_css_class}}{% else %}gx-4 gy-4{% endif %}">
4
+ <div class="col-3">
5
+ <!-- Tab navs -->
6
+ <div
7
+ class="nav flex-column nav-pills text-center"
8
+ id="v-pills-tab"
9
+ role="tablist"
10
+ aria-orientation="vertical"
11
+ >
12
+ {% for instruction in self.steps %}
13
+ <a
14
+ data-mdb-pill-init
15
+ class="nav-link {% if forloop.first %}active{% endif %}"
16
+ id="v-pills-{{ instruction.value.pill_label|slugify }}-tab"
17
+ href="#vp-{{ instruction.value.pill_label|slugify }}"
18
+ role="tab"
19
+ aria-controls="vp-{{ instruction.value.pill_label|slugify }}"
20
+ aria-selected="{% if forloop.first %}true{% else %}false{% endif %}"
21
+ >{{ instruction.value.pill_label }}</a>
22
+ {% endfor %}
23
+ </div>
24
+ <!-- Tab navs -->
25
+ </div>
26
+ <div class="col-9">
27
+ <!-- Tab content -->
28
+ <div class="tab-content" id="vp-content">
29
+ {% for instruction in self.steps %}
30
+ <div
31
+ class="tab-pane fade show {% if forloop.first %}active{% endif %}"
32
+ id="vp-{{ instruction.value.pill_label|slugify }}"
33
+ role="tabpanel"
34
+ aria-labelledby="vp-{{ instruction.value.pill_label|slugify }}-tab"
35
+ >
36
+ <h3 class="
37
+ {% if self.alignment == "center" %}text-center
38
+ {% elif self.alignment == "left" %}text-start
39
+ {% else %}text-end{% endif %}">{{ instruction.value.header }}</h3>
40
+ <div class="content-instructions">
41
+ {{ instruction.value.content_1|richtext }}
42
+ </div>
43
+ <div class="content-instructions">
44
+ {{ instruction.value.content_2|richtext }}
45
+ </div>
46
+ <div class="d-flex
47
+ {% if self.alignment == "center" %}justify-content-center
48
+ {% elif self.alignment == "left" %}justify-content-start
49
+ {% else %}justify-content-end{% endif %}">
50
+ {{ instruction.value.buttons }}
51
+ </div>
52
+ </div>
53
+ {% endfor %}
54
+ </div>
55
+ <!-- Tab content -->
56
+ </div>
57
+ </div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wagtail-cjkcms
3
- Version: 25.5.2
3
+ Version: 25.8.2
4
4
  Summary: Wagtail Content Management System, installable as a Django app into any Wagtail 4.1.x/5.x/6.x site.
5
5
  Author-email: Grzegorz Krol <gk@cjk.pl>
6
6
  License: BSD-3-Clause
@@ -1,4 +1,4 @@
1
- cjkcms/__init__.py,sha256=knOBdnhsjxaGyNBpMB0O0EzQ2A6UC33UyHClwHIpoQs,272
1
+ cjkcms/__init__.py,sha256=u54oQ-nRAX8bwmkmRHNN9Lhj9Kne3yNpyoKToEOZk2Y,272
2
2
  cjkcms/apps.py,sha256=VA5Z1YerImetvN8KsjPTMSn1fSo6O1JkBJdK5y5ubJY,173
3
3
  cjkcms/fields.py,sha256=dE0DuNIjX7jhA-5GjSmR2l66EDH2kq3vuxL9WyRALCY,3191
4
4
  cjkcms/forms.py,sha256=_uu_FR8odz40lD-Rmw0tlK7-xxxa8THHfV2-1ZJYsIM,361
@@ -13,15 +13,17 @@ cjkcms/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  cjkcms/api/mailchimp.py,sha256=pufnnu8n-c6kkWNKy-EsRLW5LLBn8_TmYrnRSQCPFdY,2832
14
14
  cjkcms/bin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  cjkcms/bin/cjkcms.py,sha256=i11hhB11COQhTk05y7mkeIkUYcFjhI8-QxLkN3tCxgg,5763
16
- cjkcms/blocks/__init__.py,sha256=kUr403BZfB7tHUfVAbH0LYT3mRRIbSUDISNmmu-N1OE,4170
17
- cjkcms/blocks/base_blocks.py,sha256=uKp6QO3iOPT4P0H0yOumvL7faPvLQK9Dj-D8iqlvqQ4,11616
18
- cjkcms/blocks/content_blocks.py,sha256=-bIh3BCNYx0N7iK3mpfnLOzIsSMItgpLeC9Cqg-_dTc,9759
16
+ cjkcms/blocks/__init__.py,sha256=OAQ9w3BS-USUHB0qZrUuh_rL4dc7qVigvimta4Uwj9k,4425
17
+ cjkcms/blocks/base_blocks.py,sha256=wyTWluLvHmdxn3cBJhEiFciVDE4I2PWVqqPRCyWf8v0,12198
18
+ cjkcms/blocks/content_blocks.py,sha256=p4JJOtwos7UNMWnZ3C85MOqFBXWeHhpMZi2f1vHhBTE,11180
19
19
  cjkcms/blocks/html_blocks.py,sha256=bDRDEresn3R87Uux7YztU2WhRnxGhJ429soOpmAd41c,9544
20
20
  cjkcms/blocks/layout_blocks.py,sha256=n2oVyL-ZQQaEA00HU6YraR59YF065o-OK7WuAahGuiw,3406
21
21
  cjkcms/blocks/searchable_html_block.py,sha256=i1rWv4vwwvZ9fxkASwPKl87-TqVHkXOFyohH3ve7pYk,171
22
22
  cjkcms/blocks/content/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  cjkcms/blocks/content/countdown.py,sha256=KWutgbPY_N49vrxqUPjbir-MgN0ro5u8WVXD8MyJUbI,3342
24
24
  cjkcms/blocks/content/events.py,sha256=H3uIl4Gxfsm8yjdfaEMRLcNs5-HkoMZUP1qkxPd5Z9Q,1967
25
+ cjkcms/blocks/content/multistep.py,sha256=B74l16ScImngFO-gLSCEdCcqBSOhkmccWRSlH2NnTxw,2509
26
+ cjkcms/blocks/content/steps.py,sha256=zTr0A-9Ndjud9b8hvYCNaeKV0UUJ9hPQLnG1a3JP0No,2234
25
27
  cjkcms/draftail/__init__.py,sha256=4-DXyDcnvAacmOzRW5IzmNb28kU71PJ18Q89vkxCv_8,240
26
28
  cjkcms/draftail/draftail_extensions.py,sha256=Grf3vkuqyygt7vn3Fp1ALXLxjgSsYZ4-rLH4R8eFIEU,3250
27
29
  cjkcms/finders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -32,6 +34,8 @@ cjkcms/management/commands/import-csv.py,sha256=5IR_GHVhuHdb0UX_TNLe4OuKhwRmKjU3
32
34
  cjkcms/management/commands/init-collections.py,sha256=bTDVz3RyXUoCUXv-d2P3JWjySw0INvO_14IfNmPEG9A,951
33
35
  cjkcms/management/commands/init-navbar.py,sha256=rO0O1MjzfvmnQoZllhY3g6KOHT3nFt5UR0WkIsb-4PA,3560
34
36
  cjkcms/management/commands/init-website.py,sha256=DJPREmnv3srarhNWbiowluKAuUoa-PXDlENQQgnWZPY,3820
37
+ cjkcms/media/images/test.original.png,sha256=nLMtadXZhXXbt6DTm5enrysKX7cfWiUudtbS2X7mSzI,1938
38
+ cjkcms/media/original_images/test.png,sha256=GvnFOJX4x2u1s4LjNld27VHvbaASC5OCHs4bAyLHq7Q,2307
35
39
  cjkcms/migrations/0001_initial.py,sha256=hiDQKRqmKk65tS8jyXRRfffWLzLMB7P0r3qEqu88jAM,2070677
36
40
  cjkcms/migrations/0002_alter_body_to_cjkcmsstreamfield.py,sha256=QYPXCirKSBBwB4JNcei_OhEx856Cq0_S-7ZXmEtcCAI,924
37
41
  cjkcms/migrations/0003_alter_footer_content_alter_navbar_menu_items.py,sha256=N5vRtKBIlQ99zbBKTFoVAVeMH_K192c2dVVYOvHD4Nc,727
@@ -69,7 +73,7 @@ cjkcms/project_template/basic/.gitattributes,sha256=TXzwnsENJoG4wiS2LEREDeZ0JI_v
69
73
  cjkcms/project_template/basic/.gitignore,sha256=EBotJhW2lEZ9u6nXwClkSq9rVawXsCh6h4u38g3lM_I,275
70
74
  cjkcms/project_template/basic/README.md,sha256=KqbqIp8hHb6nW7PuQjjKL6QIsibNu3vzVLeZ-FKuOhI,792
71
75
  cjkcms/project_template/basic/manage.py,sha256=a0-pofJxi3cyiildUPnerQr2NQUnJz3INLfdA5vAEBE,678
72
- cjkcms/project_template/basic/requirements.txt,sha256=ElqN__9IW5lZIZ0M9vKPohdcJShbrTG1oZbF_UjgJZE,123
76
+ cjkcms/project_template/basic/requirements.txt,sha256=_niVDLXUzrQWzHmzyjfZtkd5wdorW3dce-4-ymJBq6M,122
73
77
  cjkcms/project_template/basic/home/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
78
  cjkcms/project_template/basic/home/blocks/__init__.py,sha256=Qm1MDxNmnXaY1vVISlaZu0EaySahCfzq0hvmW7ilDig,429
75
79
  cjkcms/project_template/basic/home/blocks/blocks.py,sha256=YWE15PKj71bnKvqQqEqK51rTawM2lUkZ25o79b6AsyE,2135
@@ -103,7 +107,7 @@ cjkcms/project_template/webpack/.stylelintrc.json,sha256=WSqk-65m2QsWmxjlo5Rjw9c
103
107
  cjkcms/project_template/webpack/README.md,sha256=KqbqIp8hHb6nW7PuQjjKL6QIsibNu3vzVLeZ-FKuOhI,792
104
108
  cjkcms/project_template/webpack/manage.py,sha256=a0-pofJxi3cyiildUPnerQr2NQUnJz3INLfdA5vAEBE,678
105
109
  cjkcms/project_template/webpack/package.json,sha256=WInjGgudf_r75KZWUv37W2jAmUr1il7wd-cWI-zQZy8,1743
106
- cjkcms/project_template/webpack/requirements.txt,sha256=O9jhAHOlrnDgImNnL6ldvfYdJco6rf-yCybCaAPenBU,188
110
+ cjkcms/project_template/webpack/requirements.txt,sha256=4-28jApCIjnJ5gTgk2hBoTqlf_vQV1gNyQWHMqCLqRo,149
107
111
  cjkcms/project_template/webpack/frontend/.gitignore,sha256=ad2hWl5aU0Wx1zqzTr1_U-BYjmSkUmv19Ty0tc7JKeE,131
108
112
  cjkcms/project_template/webpack/frontend/README.md,sha256=oX1NBqOKh1gQ8SezR3_J7W1QLrnFqVmJNRNKw2vuueI,733
109
113
  cjkcms/project_template/webpack/frontend/src/application/app.js,sha256=TMAJXtLoi8Wl7OeJfRa7zAMls1bojCxEIlEBghbPE6Y,577
@@ -148,7 +152,7 @@ cjkcms/static/cjkcms/bi/fonts/bootstrap-icons.woff2,sha256=z-RbmB0bkbFzNho0z85fY
148
152
  cjkcms/static/cjkcms/css/cjkcms-admin.css,sha256=I_ca37IMgYbh75CrhRenPvu3TzMVFgmDO2246fGijkI,846
149
153
  cjkcms/static/cjkcms/css/cjkcms-custom-theme-disabled.css,sha256=n176w4XXEO7MdisDllr8_6pVmyRAEQM7QbAPvSVU5YU,2432
150
154
  cjkcms/static/cjkcms/css/cjkcms-editor.css,sha256=rqUeJtq7TNyNpBvSkTOKzpFMUZ-Vh3K075EcmAvG05Q,1104
151
- cjkcms/static/cjkcms/css/cjkcms-front.css,sha256=s_fkt-YKud6BuhKYtAW13EfSKKU3x_HcnVnMuHyhgzo,5316
155
+ cjkcms/static/cjkcms/css/cjkcms-front.css,sha256=qrEYwhu22fcWDNhbHRVOIgk74xf1Zm4mIfjAL2hDsxA,5317
152
156
  cjkcms/static/cjkcms/images/avatars/default.png,sha256=f8QXRtZ1j3s2CItnnL8XbbhgfW2yPHKnijwG3d5qdb0,535
153
157
  cjkcms/static/cjkcms/images/avatars/default.svg,sha256=kVYNxHtkb6nHbTCXyDG3qvS_-IgS9PknIf2I8KI9MrE,384
154
158
  cjkcms/static/cjkcms/images/icons/calendar-day.svg,sha256=S6Wk7QnGUEkSzabH8ob5Vqoum1MBRNuQ4imz-in9n6Y,581
@@ -184,7 +188,7 @@ cjkcms/templates/cjkcms/robots.txt,sha256=669-RWM9DZYUfyxUvl2Fxn6pcZ_7Efbb7HeZYo
184
188
  cjkcms/templates/cjkcms/blocks/accordion_block.html,sha256=X7nZBIGVKRyZNCn3_awlWIfjWebbie06sTc9jvoqd_A,1514
185
189
  cjkcms/templates/cjkcms/blocks/article_block_card.html,sha256=37Xb0XNGVSyWP8gXVGh742eZmW-3hFSmEAfCe5QOrvo,974
186
190
  cjkcms/templates/cjkcms/blocks/article_masonry_card.html,sha256=rW1fDJrERAw_1u391An7F8mvqmrvM2xLcXS9gAgfwuM,1132
187
- cjkcms/templates/cjkcms/blocks/base_block.html,sha256=i1iRaLNqVF5Cd_Tv56TbXrA8uBCChnRMRagN047Rx2I,188
191
+ cjkcms/templates/cjkcms/blocks/base_block.html,sha256=Yo0TJpY9YXZt_hSNS8Ognu4Fv_BCUDlZPbjm3rfLr54,193
188
192
  cjkcms/templates/cjkcms/blocks/base_link_block.html,sha256=3SBZGZ6_kn2NGWK8U2Uri_0Kqh8YCdjmGSSlMXF8TbQ,2336
189
193
  cjkcms/templates/cjkcms/blocks/button_block.html,sha256=skwQN6x0FWBYGEQbX1hIg1prgO0AarmzjzdsjmPyvdg,875
190
194
  cjkcms/templates/cjkcms/blocks/card_block.html,sha256=Z5wzPM7-X3QWx5B_CAO2e5ei9OyNwUD4m4h_HV2Bj5c,746
@@ -202,7 +206,7 @@ cjkcms/templates/cjkcms/blocks/cardgrid_deck.html,sha256=tP3-RrN8BXUkTWn9Y8HRwSf
202
206
  cjkcms/templates/cjkcms/blocks/cardgrid_group.html,sha256=CBF8Hv-RfhoC6FR9XyBkRAruI4H1US1l4_nwuNrHaM0,359
203
207
  cjkcms/templates/cjkcms/blocks/cardgrid_zero.html,sha256=ZJECwiQ3IarjwA5brEVO5KTa6P05BLlHqhb6yW9uIuw,358
204
208
  cjkcms/templates/cjkcms/blocks/carousel_block.html,sha256=XC04uEPWjQKmN7dHoQVv9NmFPkBxLhCpwTzvVGeXUwk,2698
205
- cjkcms/templates/cjkcms/blocks/column_block.html,sha256=7aiPizV-MrXS2LyV_fP1aCpNoC0nNAQphyVuAWbi2SI,406
209
+ cjkcms/templates/cjkcms/blocks/column_block.html,sha256=HK79jsbzF0lNgv2jHCNiYwccwA9KWIQgfcJQBlj9Whc,647
206
210
  cjkcms/templates/cjkcms/blocks/countdown.html,sha256=blU12tkfSUp1G3W7bEK0xBClVgj-baeCk9qGkWIpb9E,921
207
211
  cjkcms/templates/cjkcms/blocks/document_link_block.html,sha256=cEJERsbEF4sSLyyBRSHtiePwc-Q9S02dF0BZo_CThZ0,137
208
212
  cjkcms/templates/cjkcms/blocks/download_block.html,sha256=0uslQsNRhg0XYhLijfrToAFiMVQ_SsOBTxcKRYXScbc,920
@@ -210,16 +214,18 @@ cjkcms/templates/cjkcms/blocks/embed_video_block.html,sha256=qHstCQwbgTykxWUqfH8
210
214
  cjkcms/templates/cjkcms/blocks/event_calendar_block.html,sha256=_tz3Kjx5fqePTYTov565mom47TwGtfhEk1SgHJRQe2Q,308
211
215
  cjkcms/templates/cjkcms/blocks/external_link_block.html,sha256=EIqU-_BY0GPUOlIFviTl4wR_dcSyIlHJZz7hIZSNees,95
212
216
  cjkcms/templates/cjkcms/blocks/film_strip_block.html,sha256=3WOGq2A40uO_p9FBppMlzGXKugNuUI5Vu0xowhf3I5g,1484
213
- cjkcms/templates/cjkcms/blocks/grid_block.html,sha256=zNN2Zm0agxKGsuW8O4ZSEvvZD65ICJXncbCef2BBecM,424
217
+ cjkcms/templates/cjkcms/blocks/grid_block.html,sha256=umVOxoAW67zB3gBZu4Ko0RXNsK9WfnZgzV2NRvJDc5g,661
214
218
  cjkcms/templates/cjkcms/blocks/h1_block.html,sha256=1THQrcNJFICX63kgfOmbFBlg3bnGTVq6wBPRToFkx-Y,200
215
219
  cjkcms/templates/cjkcms/blocks/h2_block.html,sha256=F2pyouvyTmHIvxx63fsCHTsOfGZSjrkDDd48bX559kg,200
216
220
  cjkcms/templates/cjkcms/blocks/h3_block.html,sha256=9ywHXmVmKnSzyewDAN8_NN49YNNAH2TihGoBECT-IkA,200
217
- cjkcms/templates/cjkcms/blocks/hero_block.html,sha256=AvMdorfA_c5oHLQ6sEsfbZTUlUUC-LLi_QD4LX3VwgU,790
221
+ cjkcms/templates/cjkcms/blocks/hero_block.html,sha256=TJXffaO9kO7EnuLloSZc4u7H4x3yGAhywm9hTCg_AJw,1044
218
222
  cjkcms/templates/cjkcms/blocks/highlight_block.html,sha256=_5yXnG1TUnOl7hq88V59dFMj5TMH1M5BHbxBUhUs6yc,786
223
+ cjkcms/templates/cjkcms/blocks/icon_text_block.html,sha256=45GBKjhR8vVb-Sue1TDVqTnvgMN44hY29q0q69x-l0w,1624
219
224
  cjkcms/templates/cjkcms/blocks/image_block.html,sha256=A_jRCQDL0GT3NQzxhaGGalnvdnnh3Ly3vSed4AAN7x4,275
220
225
  cjkcms/templates/cjkcms/blocks/image_gallery_block.html,sha256=gFAlNq07qY-6tzHi7gMPol6xBkx6mAvLXZcuNkb9q6w,1400
221
226
  cjkcms/templates/cjkcms/blocks/image_link_block.html,sha256=1SnNXhvgorW3oIPOWuLeU9gUp4nGS2vBuPZKf6eM9TI,627
222
227
  cjkcms/templates/cjkcms/blocks/modal_block.html,sha256=xlXP0drI0QinbH0-yLpEuIR8H2kz9rY9LmwQTIduqd8,1020
228
+ cjkcms/templates/cjkcms/blocks/multi_step_instructions.html,sha256=MFuimHswG_U8ufylFrEzXl5gCRVnlu_DZIw-SfTfMQU,723
223
229
  cjkcms/templates/cjkcms/blocks/page_link_block.html,sha256=rRLrzIp7eTYNjNzkZelxorD6zEhtBWDG6p4jTBVIDK4,164
224
230
  cjkcms/templates/cjkcms/blocks/pagelist_article_card_columns.html,sha256=48yrs_GgqHfJSfACewqZjdq1AE_RuSZXDvMUTrmsFn0,787
225
231
  cjkcms/templates/cjkcms/blocks/pagelist_article_card_deck.html,sha256=BZwOOsSrkwEqV-8Nf0yP6rmsufBylalJ8kqSzG4-V9Q,637
@@ -238,6 +244,7 @@ cjkcms/templates/cjkcms/blocks/quote_block_leftbar.html,sha256=SAIrsh9WkC74sm9ot
238
244
  cjkcms/templates/cjkcms/blocks/quote_block_start_end_quote.html,sha256=hgnKMomSiiNlanYUQ0qk-HiT56xV5Nm6n-kQ6VpcHh8,998
239
245
  cjkcms/templates/cjkcms/blocks/reusable_content_block.html,sha256=liERiN4fXbzO2af1sAz8a9kLrnqa_97i4DQxlVdMZsY,216
240
246
  cjkcms/templates/cjkcms/blocks/rich_text_block.html,sha256=pfJ0ZjPeMtuvGSQKdCIbvzLVklUNDBj4qLBfN0hRafs,91
247
+ cjkcms/templates/cjkcms/blocks/steps_block.html,sha256=Zeost7ghELYGfkHX-M7oFTs2cu-Wko05fGwgTNf40D8,3910
241
248
  cjkcms/templates/cjkcms/blocks/table_block.html,sha256=Rh-X9FLhj6DJrKlspxl9L9m8tHVbBQfmtaWhRLiUyyw,1095
242
249
  cjkcms/templates/cjkcms/cookieconsent/languages.html,sha256=4bRgPTMyp4TXTfdUYuFF8J9V4O-KmBl834BfHS_nz7Y,3672
243
250
  cjkcms/templates/cjkcms/formfields/date.html,sha256=c4XsbCfGEuF6LA-7lqGM_afcgX4vYjnDVj4MucmGvnw,267
@@ -305,6 +312,8 @@ cjkcms/templates/cjkcms/snippets/tracking_g3.html,sha256=9OWUZKpHyomU02ubrf1rZpC
305
312
  cjkcms/templates/cjkcms/snippets/tracking_g4.html,sha256=auZnwOOyEpI48JUSlsJMfB3eMwEJV-85hZaJ7xtOSwI,832
306
313
  cjkcms/templates/cjkcms/snippets/tracking_matomo.html,sha256=kreCmOVi5U855Ly-NqxVT_ysbnj29Vb3n1k3PiUnVL8,694
307
314
  cjkcms/templates/cjkcms/snippets/tracking_matomo_noscript.html,sha256=ZLRTIvAWB74KeWBnJMw6SXhZa-y0DHfavoNiBrVXs-I,223
315
+ cjkcms/templates/cjkcms/snippets/multistep/alternating_cards.html,sha256=3uhMjT-ZSP3tt_4tI5MgQ9OOqinCqbFnDX2lcKl6Y5s,1306
316
+ cjkcms/templates/cjkcms/snippets/multistep/vertical_pills.html,sha256=Z4etgfB5oSnd0mvIuIyy3r8_H87kk6pAgdf3nNW88NM,2617
308
317
  cjkcms/templates/cjkcms/widgets/checkbox_classifiers.html,sha256=B1DnwyTsjjf9f3SDTo6A3vOsR4iJOCAfUlc0X_lL4ug,1282
309
318
  cjkcms/templates/wagtailadmin/block_forms/base_block_settings_struct.html,sha256=sTMq7WSrxLkTY1bn8BFzRyRg3Dm3YjnYzVmLZfpuiug,839
310
319
  cjkcms/templates/wagtailadmin/block_forms/struct.html,sha256=cGGZY8luf9B29jhEqldzF5BnFTI0scM27bSHNFf-Fx8,550
@@ -342,9 +351,9 @@ cjkcms/tests/testapp/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
342
351
  cjkcms/utils/__init__.py,sha256=uLr0n5jD1dmdICgpv7WjgAtuyrs50ERyRLVUmoSV1cA,110
343
352
  cjkcms/utils/richtext.py,sha256=dgNVQIAXevXzaVhCtGc7XW4PDwTFiGEL7q-YGgpcEjo,573
344
353
  cjkcms/utils/visibility.py,sha256=sbxIM5g903AydRdBbwwahB8tpoyQrHjmERn9Yg_aJ4g,1433
345
- wagtail_cjkcms-25.5.2.dist-info/licenses/LICENSE,sha256=KHsCh1fKOZzvcKe1a9h3FlDjTjK_UurO3wHK55TnHHo,1538
346
- wagtail_cjkcms-25.5.2.dist-info/METADATA,sha256=97kYqGA2R9TkQPPBVM5zi9Mqblbkw7LoAW8hHmXH4Ws,3148
347
- wagtail_cjkcms-25.5.2.dist-info/WHEEL,sha256=_z0Kb-VmhLeNt2nZ-PsoQBjD25rP0tBwgAyRYD7oTKI,109
348
- wagtail_cjkcms-25.5.2.dist-info/entry_points.txt,sha256=FzoiFENdZ1uebNztyz6GlswkumQspd5VjWbR9MUIH_8,50
349
- wagtail_cjkcms-25.5.2.dist-info/top_level.txt,sha256=8wJGOGo1pG5nO5akfcMzA7i3ndj5868I8w35vTT0JJM,7
350
- wagtail_cjkcms-25.5.2.dist-info/RECORD,,
354
+ wagtail_cjkcms-25.8.2.dist-info/licenses/LICENSE,sha256=KHsCh1fKOZzvcKe1a9h3FlDjTjK_UurO3wHK55TnHHo,1538
355
+ wagtail_cjkcms-25.8.2.dist-info/METADATA,sha256=O33a0MkkKXp2rBZNECvGCnFNACTgDYMj_ExaG0bMwPU,3148
356
+ wagtail_cjkcms-25.8.2.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
357
+ wagtail_cjkcms-25.8.2.dist-info/entry_points.txt,sha256=FzoiFENdZ1uebNztyz6GlswkumQspd5VjWbR9MUIH_8,50
358
+ wagtail_cjkcms-25.8.2.dist-info/top_level.txt,sha256=8wJGOGo1pG5nO5akfcMzA7i3ndj5868I8w35vTT0JJM,7
359
+ wagtail_cjkcms-25.8.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any