@raketa-cloud/admin 0.0.15 → 0.0.17
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.
- package/package.json +1 -1
- package/src/Adapter.js +4 -4
- package/src/HonoAdapter.js +13 -19
- package/src/cloud/Articles.js +9 -5
- package/src/cloud/EventChanges.js +15 -0
- package/src/cloud/EventRevisions.js +149 -0
- package/src/cloud/Events.js +139 -0
- package/src/cloud/Pages.js +9 -5
- package/src/cloud/documents/common.js +10 -0
- package/src/cloud/documents/eventsDocuments.js +254 -0
- package/src/handlers/article_revisions/ArticleRevisionsHandler.js +4 -4
- package/src/handlers/article_revisions/CodeHandler.js +2 -2
- package/src/handlers/article_revisions/GeneralHandler.js +2 -2
- package/src/handlers/article_revisions/LocksHandler.js +2 -2
- package/src/handlers/article_revisions/MetaHandler.js +2 -2
- package/src/handlers/article_revisions/PublishesHandler.js +2 -2
- package/src/handlers/article_revisions/RevertsHandler.js +2 -2
- package/src/handlers/article_revisions/TagHandler.js +2 -2
- package/src/handlers/article_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/article_revisions/VisualHandler.js +2 -2
- package/src/handlers/articles/ArticlesHandler.js +20 -16
- package/src/handlers/articles/ClonesHandler.js +5 -3
- package/src/handlers/articles/DeletesHandler.js +5 -5
- package/src/handlers/articles/TranslationsHandler.js +25 -22
- package/src/handlers/articles/URLsHandler.js +6 -6
- package/src/handlers/event_revisions/CodeHandler.js +86 -0
- package/src/handlers/event_revisions/EventRevisionsHandler.js +47 -0
- package/src/handlers/event_revisions/GeneralHandler.js +94 -0
- package/src/handlers/event_revisions/LocksHandler.js +51 -0
- package/src/handlers/event_revisions/MetaHandler.js +86 -0
- package/src/handlers/event_revisions/PublishesHandler.js +84 -0
- package/src/handlers/event_revisions/RevertsHandler.js +26 -0
- package/src/handlers/event_revisions/TagHandler.js +85 -0
- package/src/handlers/event_revisions/UnlocksHandler.js +22 -0
- package/src/handlers/event_revisions/VisualHandler.js +80 -0
- package/src/handlers/event_revisions/WidgetHandler.js +41 -0
- package/src/handlers/events/ClonesHandler.js +19 -0
- package/src/handlers/events/DeletesHandler.js +68 -0
- package/src/handlers/events/EventsHandler.js +125 -0
- package/src/handlers/events/TranslationsHandler.js +107 -0
- package/src/handlers/events/URLsHandler.js +71 -0
- package/src/handlers/page_revisions/CodeHandler.js +2 -2
- package/src/handlers/page_revisions/GeneralHandler.js +2 -2
- package/src/handlers/page_revisions/LocksHandler.js +2 -2
- package/src/handlers/page_revisions/MetaHandler.js +2 -2
- package/src/handlers/page_revisions/PageRevisionsHandler.js +4 -4
- package/src/handlers/page_revisions/PublishesHandler.js +2 -2
- package/src/handlers/page_revisions/RevertsHandler.js +2 -2
- package/src/handlers/page_revisions/TagHandler.js +2 -2
- package/src/handlers/page_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/page_revisions/VisualHandler.js +2 -2
- package/src/handlers/pages/ClonesHandler.js +5 -3
- package/src/handlers/pages/DeletesHandler.js +5 -5
- package/src/handlers/pages/PagesHandler.js +21 -16
- package/src/handlers/pages/TranslationsHandler.js +24 -22
- package/src/handlers/pages/URLsHandler.js +6 -6
- package/src/index.js +24 -2
- package/src/routeArticlesModule.js +142 -0
- package/src/routeCollection.js +2 -2
- package/src/routeEventsModule.js +142 -0
- package/src/routeMember.js +2 -2
- package/src/routeNestedCollection.js +8 -2
- package/src/routeNestedMember.js +8 -2
- package/src/routePagesModule.js +155 -0
- package/src/routeStandard.js +6 -4
- package/src/setupCloud.js +12 -0
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +84 -0
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +59 -0
- package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +56 -0
- package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +148 -0
- package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +65 -0
- package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +159 -0
- package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +57 -0
- package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +152 -0
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +142 -0
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +47 -0
- package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +89 -0
- package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +69 -0
- package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +152 -0
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +55 -0
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +140 -0
- package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +46 -0
- package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +103 -0
- package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +11 -5
- package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +5 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +9 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +9 -3
- package/src/tests/handlers/articles/{ConesHandler.test → ClonesHandler.test}/create.test.js +8 -2
- package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +12 -3
- package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/articles/URLsHandler.test/create.test.js +18 -6
- package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +56 -0
- package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +152 -0
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +84 -0
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +59 -0
- package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +69 -0
- package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +167 -0
- package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +57 -0
- package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +156 -0
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +142 -0
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +47 -0
- package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +89 -0
- package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +69 -0
- package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +156 -0
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +55 -0
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +144 -0
- package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +46 -0
- package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +103 -0
- package/src/tests/handlers/events/ClonesHandler.test/create.test.js +60 -0
- package/src/tests/handlers/events/DeletesHandler.test/create.test.js +119 -0
- package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +60 -0
- package/src/tests/handlers/events/EventsHandler.test/create.test.js +158 -0
- package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +44 -0
- package/src/tests/handlers/events/EventsHandler.test/index.test.js +52 -0
- package/src/tests/handlers/events/EventsHandler.test/show.test.js +111 -0
- package/src/tests/handlers/events/URLsHandler.test/create.test.js +167 -0
- package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +57 -0
- package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +8 -2
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +8 -2
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +12 -3
- package/src/tests/handlers/pages/ConesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +12 -3
- package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/pages/PagesHandler.test/create.test.js +11 -5
- package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +1 -1
- package/src/tests/handlers/pages/PagesHandler.test/index.test.js +5 -2
- package/src/tests/handlers/pages/PagesHandler.test/show.test.js +9 -3
- package/src/tests/handlers/pages/URLsHandler.test/create.test.js +16 -4
- package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/routeCollection.test.js +118 -105
- package/src/tests/routeMember.test.js +60 -54
- package/src/tests/routeNestedCollection.test.js +132 -126
- package/src/tests/routeNestedMember.test.js +60 -54
- package/src/views/articles/_form.ejs +17 -17
- package/src/views/articles/show.ejs +9 -9
- package/src/views/articles/translations/_form.ejs +3 -3
- package/src/views/articles/translations/create_form.ejs +7 -9
- package/src/views/event_revisions/_nav.ejs +40 -0
- package/src/views/event_revisions/codes/edit_form.ejs +39 -0
- package/src/views/event_revisions/general/edit_form.ejs +72 -0
- package/src/views/event_revisions/locks/create_form.ejs +35 -0
- package/src/views/event_revisions/meta/edit_form.ejs +41 -0
- package/src/views/event_revisions/publishes/_form.ejs +57 -0
- package/src/views/event_revisions/publishes/create_form.ejs +10 -0
- package/src/views/event_revisions/tags/edit_form.ejs +64 -0
- package/src/views/event_revisions/visuals/edit_form.ejs +42 -0
- package/src/views/events/_form.ejs +88 -0
- package/src/views/events/create_form.ejs +9 -0
- package/src/views/events/deletes/create_form.ejs +55 -0
- package/src/views/events/edit_form.ejs +3 -0
- package/src/views/events/index.ejs +161 -0
- package/src/views/events/show.ejs +281 -0
- package/src/views/events/translations/_form.ejs +79 -0
- package/src/views/events/translations/create_form.ejs +10 -0
- package/src/views/events/urls/create_form.ejs +31 -0
- package/src/views/pages/_form.ejs +16 -16
- package/src/views/pages/create_form.ejs +1 -1
- package/src/views/pages/show.ejs +9 -9
- package/src/views/pages/translations/_form.ejs +3 -3
- package/src/views/pages/translations/create_form.ejs +7 -9
- package/test/factory.js +42 -3
- package/src/routeArticles.js +0 -65
- package/src/routePages.js +0 -55
|
@@ -32,64 +32,67 @@ describe("routeNestedCollection", () => {
|
|
|
32
32
|
test("Valid handler mapping is passed to router", () => {
|
|
33
33
|
routeNestedCollection(honoAdapter, "orders", "line_items", OrdersHandler);
|
|
34
34
|
|
|
35
|
-
expect(adapterSpy).toHaveBeenCalledWith(
|
|
35
|
+
expect(adapterSpy).toHaveBeenCalledWith(
|
|
36
36
|
[
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
[
|
|
38
|
+
"GET",
|
|
39
|
+
"/orders/:parent_id/line_items",
|
|
40
|
+
"line_items",
|
|
41
|
+
"orders/line_items",
|
|
42
|
+
"index",
|
|
43
|
+
OrdersHandler.index,
|
|
44
|
+
],
|
|
45
|
+
[
|
|
46
|
+
"GET",
|
|
47
|
+
"/orders/:parent_id/line_items/new",
|
|
48
|
+
"line_items",
|
|
49
|
+
"orders/line_items",
|
|
50
|
+
"create_form",
|
|
51
|
+
OrdersHandler.create_form,
|
|
52
|
+
],
|
|
53
|
+
[
|
|
54
|
+
"GET",
|
|
55
|
+
"/line_items/:id",
|
|
56
|
+
"line_items",
|
|
57
|
+
"orders/line_items",
|
|
58
|
+
"show",
|
|
59
|
+
OrdersHandler.show,
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
"GET",
|
|
63
|
+
"/line_items/:id/edit",
|
|
64
|
+
"line_items",
|
|
65
|
+
"orders/line_items",
|
|
66
|
+
"edit_form",
|
|
67
|
+
OrdersHandler.edit_form,
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
"POST",
|
|
71
|
+
"/orders/:parent_id/line_items",
|
|
72
|
+
"line_items",
|
|
73
|
+
"orders/line_items",
|
|
74
|
+
"create_form",
|
|
75
|
+
OrdersHandler.create,
|
|
76
|
+
],
|
|
77
|
+
[
|
|
78
|
+
"PUT",
|
|
79
|
+
"/line_items/:id",
|
|
80
|
+
"line_items",
|
|
81
|
+
"orders/line_items",
|
|
82
|
+
"update",
|
|
83
|
+
OrdersHandler.update,
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
"DELETE",
|
|
87
|
+
"/line_items/:id",
|
|
88
|
+
"line_items",
|
|
89
|
+
"orders/line_items",
|
|
90
|
+
"destroy",
|
|
91
|
+
OrdersHandler.destroy,
|
|
92
|
+
],
|
|
43
93
|
],
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"/orders/:parent_id/line_items/new",
|
|
47
|
-
"line_items",
|
|
48
|
-
"orders/line_items",
|
|
49
|
-
"create_form",
|
|
50
|
-
OrdersHandler.create_form,
|
|
51
|
-
],
|
|
52
|
-
[
|
|
53
|
-
"GET",
|
|
54
|
-
"/line_items/:id",
|
|
55
|
-
"line_items",
|
|
56
|
-
"orders/line_items",
|
|
57
|
-
"show",
|
|
58
|
-
OrdersHandler.show,
|
|
59
|
-
],
|
|
60
|
-
[
|
|
61
|
-
"GET",
|
|
62
|
-
"/line_items/:id/edit",
|
|
63
|
-
"line_items",
|
|
64
|
-
"orders/line_items",
|
|
65
|
-
"edit_form",
|
|
66
|
-
OrdersHandler.edit_form,
|
|
67
|
-
],
|
|
68
|
-
[
|
|
69
|
-
"POST",
|
|
70
|
-
"/orders/:parent_id/line_items",
|
|
71
|
-
"line_items",
|
|
72
|
-
"orders/line_items",
|
|
73
|
-
"create_form",
|
|
74
|
-
OrdersHandler.create,
|
|
75
|
-
],
|
|
76
|
-
[
|
|
77
|
-
"PUT",
|
|
78
|
-
"/line_items/:id",
|
|
79
|
-
"line_items",
|
|
80
|
-
"orders/line_items",
|
|
81
|
-
"update",
|
|
82
|
-
OrdersHandler.update,
|
|
83
|
-
],
|
|
84
|
-
[
|
|
85
|
-
"DELETE",
|
|
86
|
-
"/line_items/:id",
|
|
87
|
-
"line_items",
|
|
88
|
-
"orders/line_items",
|
|
89
|
-
"destroy",
|
|
90
|
-
OrdersHandler.destroy,
|
|
91
|
-
],
|
|
92
|
-
]);
|
|
94
|
+
{}
|
|
95
|
+
);
|
|
93
96
|
});
|
|
94
97
|
|
|
95
98
|
test("Valid handler mapping is passed to router with filters", () => {
|
|
@@ -100,77 +103,80 @@ describe("routeNestedCollection", () => {
|
|
|
100
103
|
OrdersHandlerWithFilters
|
|
101
104
|
);
|
|
102
105
|
|
|
103
|
-
expect(adapterSpy).toHaveBeenCalledWith(
|
|
106
|
+
expect(adapterSpy).toHaveBeenCalledWith(
|
|
104
107
|
[
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
[
|
|
109
|
+
"GET",
|
|
110
|
+
"/orders/:parent_id/line_items",
|
|
111
|
+
"line_items",
|
|
112
|
+
"orders/line_items",
|
|
113
|
+
"index",
|
|
114
|
+
OrdersHandlerWithFilters.index,
|
|
115
|
+
OrdersHandlerWithFilters.before_filter,
|
|
116
|
+
OrdersHandlerWithFilters.after_filter,
|
|
117
|
+
],
|
|
118
|
+
[
|
|
119
|
+
"GET",
|
|
120
|
+
"/orders/:parent_id/line_items/new",
|
|
121
|
+
"line_items",
|
|
122
|
+
"orders/line_items",
|
|
123
|
+
"create_form",
|
|
124
|
+
OrdersHandlerWithFilters.create_form,
|
|
125
|
+
OrdersHandlerWithFilters.before_filter,
|
|
126
|
+
OrdersHandlerWithFilters.after_filter,
|
|
127
|
+
],
|
|
128
|
+
[
|
|
129
|
+
"GET",
|
|
130
|
+
"/line_items/:id",
|
|
131
|
+
"line_items",
|
|
132
|
+
"orders/line_items",
|
|
133
|
+
"show",
|
|
134
|
+
OrdersHandlerWithFilters.show,
|
|
135
|
+
OrdersHandlerWithFilters.before_filter,
|
|
136
|
+
OrdersHandlerWithFilters.after_filter,
|
|
137
|
+
],
|
|
138
|
+
[
|
|
139
|
+
"GET",
|
|
140
|
+
"/line_items/:id/edit",
|
|
141
|
+
"line_items",
|
|
142
|
+
"orders/line_items",
|
|
143
|
+
"edit_form",
|
|
144
|
+
OrdersHandlerWithFilters.edit_form,
|
|
145
|
+
OrdersHandlerWithFilters.before_filter,
|
|
146
|
+
OrdersHandlerWithFilters.after_filter,
|
|
147
|
+
],
|
|
148
|
+
[
|
|
149
|
+
"POST",
|
|
150
|
+
"/orders/:parent_id/line_items",
|
|
151
|
+
"line_items",
|
|
152
|
+
"orders/line_items",
|
|
153
|
+
"create_form",
|
|
154
|
+
OrdersHandlerWithFilters.create,
|
|
155
|
+
OrdersHandlerWithFilters.before_filter,
|
|
156
|
+
OrdersHandlerWithFilters.after_filter,
|
|
157
|
+
],
|
|
158
|
+
[
|
|
159
|
+
"PUT",
|
|
160
|
+
"/line_items/:id",
|
|
161
|
+
"line_items",
|
|
162
|
+
"orders/line_items",
|
|
163
|
+
"update",
|
|
164
|
+
OrdersHandlerWithFilters.update,
|
|
165
|
+
OrdersHandlerWithFilters.before_filter,
|
|
166
|
+
OrdersHandlerWithFilters.after_filter,
|
|
167
|
+
],
|
|
168
|
+
[
|
|
169
|
+
"DELETE",
|
|
170
|
+
"/line_items/:id",
|
|
171
|
+
"line_items",
|
|
172
|
+
"orders/line_items",
|
|
173
|
+
"destroy",
|
|
174
|
+
OrdersHandlerWithFilters.destroy,
|
|
175
|
+
OrdersHandlerWithFilters.before_filter,
|
|
176
|
+
OrdersHandlerWithFilters.after_filter,
|
|
177
|
+
],
|
|
113
178
|
],
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"/orders/:parent_id/line_items/new",
|
|
117
|
-
"line_items",
|
|
118
|
-
"orders/line_items",
|
|
119
|
-
"create_form",
|
|
120
|
-
OrdersHandlerWithFilters.create_form,
|
|
121
|
-
OrdersHandlerWithFilters.before_filter,
|
|
122
|
-
OrdersHandlerWithFilters.after_filter,
|
|
123
|
-
],
|
|
124
|
-
[
|
|
125
|
-
"GET",
|
|
126
|
-
"/line_items/:id",
|
|
127
|
-
"line_items",
|
|
128
|
-
"orders/line_items",
|
|
129
|
-
"show",
|
|
130
|
-
OrdersHandlerWithFilters.show,
|
|
131
|
-
OrdersHandlerWithFilters.before_filter,
|
|
132
|
-
OrdersHandlerWithFilters.after_filter,
|
|
133
|
-
],
|
|
134
|
-
[
|
|
135
|
-
"GET",
|
|
136
|
-
"/line_items/:id/edit",
|
|
137
|
-
"line_items",
|
|
138
|
-
"orders/line_items",
|
|
139
|
-
"edit_form",
|
|
140
|
-
OrdersHandlerWithFilters.edit_form,
|
|
141
|
-
OrdersHandlerWithFilters.before_filter,
|
|
142
|
-
OrdersHandlerWithFilters.after_filter,
|
|
143
|
-
],
|
|
144
|
-
[
|
|
145
|
-
"POST",
|
|
146
|
-
"/orders/:parent_id/line_items",
|
|
147
|
-
"line_items",
|
|
148
|
-
"orders/line_items",
|
|
149
|
-
"create_form",
|
|
150
|
-
OrdersHandlerWithFilters.create,
|
|
151
|
-
OrdersHandlerWithFilters.before_filter,
|
|
152
|
-
OrdersHandlerWithFilters.after_filter,
|
|
153
|
-
],
|
|
154
|
-
[
|
|
155
|
-
"PUT",
|
|
156
|
-
"/line_items/:id",
|
|
157
|
-
"line_items",
|
|
158
|
-
"orders/line_items",
|
|
159
|
-
"update",
|
|
160
|
-
OrdersHandlerWithFilters.update,
|
|
161
|
-
OrdersHandlerWithFilters.before_filter,
|
|
162
|
-
OrdersHandlerWithFilters.after_filter,
|
|
163
|
-
],
|
|
164
|
-
[
|
|
165
|
-
"DELETE",
|
|
166
|
-
"/line_items/:id",
|
|
167
|
-
"line_items",
|
|
168
|
-
"orders/line_items",
|
|
169
|
-
"destroy",
|
|
170
|
-
OrdersHandlerWithFilters.destroy,
|
|
171
|
-
OrdersHandlerWithFilters.before_filter,
|
|
172
|
-
OrdersHandlerWithFilters.after_filter,
|
|
173
|
-
],
|
|
174
|
-
]);
|
|
179
|
+
{}
|
|
180
|
+
);
|
|
175
181
|
});
|
|
176
182
|
});
|
|
@@ -24,32 +24,35 @@ describe("routeNestedMember", () => {
|
|
|
24
24
|
test("Valid handler mapping is passed to router", () => {
|
|
25
25
|
routeNestedMember(honoAdapter, "artist", "bio", ArtistHandWithFilters);
|
|
26
26
|
|
|
27
|
-
expect(adapterSpy).toHaveBeenCalledWith(
|
|
27
|
+
expect(adapterSpy).toHaveBeenCalledWith(
|
|
28
28
|
[
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
[
|
|
30
|
+
"GET",
|
|
31
|
+
"/artist/:parent_id/bio",
|
|
32
|
+
"bio",
|
|
33
|
+
"artist/bio",
|
|
34
|
+
"show",
|
|
35
|
+
ArtistHandWithFilters.show,
|
|
36
|
+
],
|
|
37
|
+
[
|
|
38
|
+
"GET",
|
|
39
|
+
"/artist/:parent_id/bio/edit",
|
|
40
|
+
"bio",
|
|
41
|
+
"artist/bio",
|
|
42
|
+
"edit_form",
|
|
43
|
+
ArtistHandWithFilters.edit_form,
|
|
44
|
+
],
|
|
45
|
+
[
|
|
46
|
+
"POST",
|
|
47
|
+
"/artist/:parent_id/bio",
|
|
48
|
+
"bio",
|
|
49
|
+
"artist/bio",
|
|
50
|
+
"edit_form",
|
|
51
|
+
ArtistHandWithFilters.update,
|
|
52
|
+
],
|
|
35
53
|
],
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"/artist/:parent_id/bio/edit",
|
|
39
|
-
"bio",
|
|
40
|
-
"artist/bio",
|
|
41
|
-
"edit_form",
|
|
42
|
-
ArtistHandWithFilters.edit_form,
|
|
43
|
-
],
|
|
44
|
-
[
|
|
45
|
-
"POST",
|
|
46
|
-
"/artist/:parent_id/bio",
|
|
47
|
-
"bio",
|
|
48
|
-
"artist/bio",
|
|
49
|
-
"edit_form",
|
|
50
|
-
ArtistHandWithFilters.update,
|
|
51
|
-
],
|
|
52
|
-
]);
|
|
54
|
+
{}
|
|
55
|
+
);
|
|
53
56
|
});
|
|
54
57
|
|
|
55
58
|
test("Valid handler mapping is passed to router with filters", () => {
|
|
@@ -60,37 +63,40 @@ describe("routeNestedMember", () => {
|
|
|
60
63
|
ArtistHandWithFiltersWithFilters
|
|
61
64
|
);
|
|
62
65
|
|
|
63
|
-
expect(adapterSpy).toHaveBeenCalledWith(
|
|
66
|
+
expect(adapterSpy).toHaveBeenCalledWith(
|
|
64
67
|
[
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
[
|
|
69
|
+
"GET",
|
|
70
|
+
"/artist/:parent_id/bio",
|
|
71
|
+
"bio",
|
|
72
|
+
"artist/bio",
|
|
73
|
+
"show",
|
|
74
|
+
ArtistHandWithFiltersWithFilters.show,
|
|
75
|
+
ArtistHandWithFiltersWithFilters.before_filter,
|
|
76
|
+
ArtistHandWithFiltersWithFilters.after_filter,
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
"GET",
|
|
80
|
+
"/artist/:parent_id/bio/edit",
|
|
81
|
+
"bio",
|
|
82
|
+
"artist/bio",
|
|
83
|
+
"edit_form",
|
|
84
|
+
ArtistHandWithFiltersWithFilters.edit_form,
|
|
85
|
+
ArtistHandWithFiltersWithFilters.before_filter,
|
|
86
|
+
ArtistHandWithFiltersWithFilters.after_filter,
|
|
87
|
+
],
|
|
88
|
+
[
|
|
89
|
+
"POST",
|
|
90
|
+
"/artist/:parent_id/bio",
|
|
91
|
+
"bio",
|
|
92
|
+
"artist/bio",
|
|
93
|
+
"edit_form",
|
|
94
|
+
ArtistHandWithFiltersWithFilters.update,
|
|
95
|
+
ArtistHandWithFiltersWithFilters.before_filter,
|
|
96
|
+
ArtistHandWithFiltersWithFilters.after_filter,
|
|
97
|
+
],
|
|
73
98
|
],
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"/artist/:parent_id/bio/edit",
|
|
77
|
-
"bio",
|
|
78
|
-
"artist/bio",
|
|
79
|
-
"edit_form",
|
|
80
|
-
ArtistHandWithFiltersWithFilters.edit_form,
|
|
81
|
-
ArtistHandWithFiltersWithFilters.before_filter,
|
|
82
|
-
ArtistHandWithFiltersWithFilters.after_filter,
|
|
83
|
-
],
|
|
84
|
-
[
|
|
85
|
-
"POST",
|
|
86
|
-
"/artist/:parent_id/bio",
|
|
87
|
-
"bio",
|
|
88
|
-
"artist/bio",
|
|
89
|
-
"edit_form",
|
|
90
|
-
ArtistHandWithFiltersWithFilters.update,
|
|
91
|
-
ArtistHandWithFiltersWithFilters.before_filter,
|
|
92
|
-
ArtistHandWithFiltersWithFilters.after_filter,
|
|
93
|
-
],
|
|
94
|
-
]);
|
|
99
|
+
{}
|
|
100
|
+
);
|
|
95
101
|
});
|
|
96
102
|
});
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
<% form_for({
|
|
2
|
-
<form action="<%=
|
|
3
|
-
<%- f.field('
|
|
4
|
-
<%- f.field('
|
|
5
|
-
<%- f.field('
|
|
1
|
+
<% form_for({ resource }, errors, (f) => { %>
|
|
2
|
+
<form action="<%= resource?.id ? `/${_context.locale}/articles/${resource.id}` : `/${_context.locale}/articles` %>" method="post" class="form">
|
|
3
|
+
<%- f.field('resource.title', { required: true }) %>
|
|
4
|
+
<%- f.field('resource.slug', { label: "URL", required: true }) %>
|
|
5
|
+
<%- f.field('resource.publish_at', { required: true, type: 'datetime-local' }) %>
|
|
6
6
|
|
|
7
|
-
<%- f.field('
|
|
7
|
+
<%- f.field('resource.visibility', { as: 'select', required: true, options: visibilityOptions }) %>
|
|
8
8
|
|
|
9
|
-
<%- f.field('
|
|
10
|
-
<%- f.field('
|
|
9
|
+
<%- f.field('resource.username', { required: true }) %>
|
|
10
|
+
<%- f.field('resource.password', { required: true }) %>
|
|
11
11
|
|
|
12
|
-
<%- f.field('
|
|
12
|
+
<%- f.field('resource.layout', { as: 'select', required: true, options: [
|
|
13
13
|
["default", "Default"],
|
|
14
14
|
["landing", "Landing page"],
|
|
15
15
|
["headless", "Headless"],
|
|
16
16
|
] }) %>
|
|
17
17
|
|
|
18
|
-
<%- f.field('
|
|
19
|
-
<%- f.field('
|
|
18
|
+
<%- f.field('resource.meta_title', { required: true }) %>
|
|
19
|
+
<%- f.field('resource.meta_description', { as: "textarea", required: true }) %>
|
|
20
20
|
|
|
21
21
|
<raketa-image-picker
|
|
22
|
-
name="
|
|
23
|
-
value="<%= JSON.stringify(
|
|
22
|
+
name="resource[meta_image]"
|
|
23
|
+
value="<%= JSON.stringify(resource.meta_image) %>"
|
|
24
24
|
></raketa-image-picker>
|
|
25
25
|
|
|
26
|
-
<%- f.field('
|
|
26
|
+
<%- f.field('resource.tags', { as: 'checkbox_group', required: true, options: tags.map(tag => [tag.id, tag.name]) }) %>
|
|
27
27
|
|
|
28
28
|
<div class="form-actions">
|
|
29
29
|
<div class="btn-toolbar">
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
<a href="<%= `/${_context.locale}/articles` %>" class="btn-secondary">Back to list</a>
|
|
33
33
|
</div>
|
|
34
34
|
|
|
35
|
-
<% if (
|
|
36
|
-
<button hx-delete="<%= `/${_context.locale}/articles/${
|
|
35
|
+
<% if (resource?.id) {%>
|
|
36
|
+
<button hx-delete="<%= `/${_context.locale}/articles/${resource.id}` %>" hx-confirm="Are you sure?" class="btn-danger has-icon">
|
|
37
37
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
38
38
|
<path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
|
|
39
39
|
</svg>
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
|
|
79
79
|
onVisibilityChange({
|
|
80
80
|
target: {
|
|
81
|
-
value: '<%=
|
|
81
|
+
value: '<%= resource.visibility %>'
|
|
82
82
|
}
|
|
83
83
|
})
|
|
84
84
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<div class="page-wrapper">
|
|
2
2
|
<div class="page-title">
|
|
3
3
|
<div class="flex items-center gap-4">
|
|
4
|
-
<h1 class="heading-1"><%=
|
|
4
|
+
<h1 class="heading-1"><%= resource.title %></h1>
|
|
5
5
|
<div class="flex flex-wrap items-center gap-1">
|
|
6
6
|
<% Object.keys(_context.locales).forEach(key => { %>
|
|
7
7
|
<% const { name, _code, flag} = _context.locales[key] %>
|
|
8
8
|
<% if (key === _context.locale) { %>
|
|
9
9
|
<img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
|
|
10
|
-
<% } else if (
|
|
11
|
-
<a href="<%= `/${key}/articles/${
|
|
10
|
+
<% } else if (resource.translations[key]) { %>
|
|
11
|
+
<a href="<%= `/${key}/articles/${resource.translations[key].id}` %>">
|
|
12
12
|
<img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="size-6 rounded-full border dark:border-neutral-700" />
|
|
13
13
|
</a>
|
|
14
14
|
<% } else { %>
|
|
15
|
-
<a href="<%= `/${_context.locale}/articles/${
|
|
15
|
+
<a href="<%= `/${_context.locale}/articles/${resource.id}/translations/new?target_locale=${key}` %>">
|
|
16
16
|
<img title="<%= name %>" src="<%= flag %>" alt="<%= name %>" class="<%= [" transition-all ease-in-out duration-300 size-6 rounded-full border hover:opacity-100 dark:border-neutral-700", key === _context.locale ? "opacity-100" : "opacity-10"].join(" ") %>" />
|
|
17
17
|
</a>
|
|
18
18
|
<% } %>
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
23
|
<div class="actions-toolbar">
|
|
24
|
-
<form method="POST" action="<%= `/${_context.locale}/articles/${
|
|
24
|
+
<form method="POST" action="<%= `/${_context.locale}/articles/${resource.id}/article_revisions` %>" class="inline-block">
|
|
25
25
|
<button type="submit" class="btn-primary">
|
|
26
26
|
Start revision
|
|
27
27
|
</button>
|
|
28
28
|
</form>
|
|
29
29
|
|
|
30
|
-
<a href="<%= `/${_context.locale}/articles/${
|
|
30
|
+
<a href="<%= `/${_context.locale}/articles/${resource.id}/urls/new` %>" class="btn-text has-icon">
|
|
31
31
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
32
32
|
<path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />
|
|
33
33
|
</svg>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
Change URL
|
|
36
36
|
</a>
|
|
37
37
|
|
|
38
|
-
<form action="<%= `/${_context.locale}/articles/${
|
|
38
|
+
<form action="<%= `/${_context.locale}/articles/${resource.id}/clones` %>" method="post" class="inline-block">
|
|
39
39
|
<button type="submit" class="btn-text has-icon">
|
|
40
40
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
41
41
|
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75" />
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
</button>
|
|
46
46
|
</form>
|
|
47
47
|
|
|
48
|
-
<a href="<%= `/${_context.locale}/articles/${
|
|
48
|
+
<a href="<%= `/${_context.locale}/articles/${resource.id}/deletes/new` %>" class="btn-danger has-icon">
|
|
49
49
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
50
50
|
<path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
|
|
51
51
|
</svg>
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
<td>
|
|
252
252
|
<div class="actions-toolbar justify-end">
|
|
253
253
|
<% if (maxVersion !== change.version) { %>
|
|
254
|
-
<form method="POST" action="<%= `/${_context.locale}/articles/${
|
|
254
|
+
<form method="POST" action="<%= `/${_context.locale}/articles/${resource.id}/article_changes/reverts` %>" class="inline-block">
|
|
255
255
|
<input type="hidden" name="version" value=<%= change.version %>>
|
|
256
256
|
<button type="submit" class="btn-text has-icon">
|
|
257
257
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<% form_for({ translation }, errors, (f) => { %>
|
|
2
|
-
<form action="<%= `/${_context.locale}/articles/${
|
|
2
|
+
<form action="<%= `/${_context.locale}/articles/${resource.id}/translations` %>" method="post" class="form">
|
|
3
3
|
<input type="hidden" name="target_locale" value="<%= targetLocale %>" />
|
|
4
4
|
|
|
5
5
|
<%- f.field('translation.title', { required: true }) %>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<div class="btn-toolbar">
|
|
31
31
|
<%- f.submit('Save record', { class: 'btn-primary' }) %>
|
|
32
32
|
|
|
33
|
-
<a href="<%= `/${_context.locale}/articles/${
|
|
33
|
+
<a href="<%= `/${_context.locale}/articles/${resource.id}` %>" class="btn-secondary">Cancel</a>
|
|
34
34
|
</div>
|
|
35
35
|
</div>
|
|
36
36
|
</form>
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
onVisibilityChange({
|
|
71
71
|
target: {
|
|
72
|
-
value: '<%=
|
|
72
|
+
value: '<%= resource.visibility %>'
|
|
73
73
|
}
|
|
74
74
|
})
|
|
75
75
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
<div class="
|
|
2
|
-
<div class="
|
|
3
|
-
<
|
|
4
|
-
<h1 class="heading-1">Create page translation</h1>
|
|
5
|
-
</div>
|
|
1
|
+
<div class="page-wrapper">
|
|
2
|
+
<div class="page-title">
|
|
3
|
+
<h1 class="heading-1">Create article translation</h1>
|
|
6
4
|
</div>
|
|
7
|
-
</div>
|
|
8
5
|
|
|
9
|
-
<div class="grid gap-4 md:grid-cols-3">
|
|
10
|
-
|
|
11
|
-
</div>
|
|
6
|
+
<div class="grid gap-4 md:grid-cols-3">
|
|
7
|
+
<%- include('_form.ejs') %>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<%
|
|
2
|
+
const activeClass = "relative top-0.5 px-4 border-b-2 border-raketa-primary pb-4";
|
|
3
|
+
const inactiveClass = "relative top-0.5 px-4 border-b-2 border-transparent pb-4";
|
|
4
|
+
%>
|
|
5
|
+
|
|
6
|
+
<div class="flex w-full pb-4">
|
|
7
|
+
<div class="flex items-center justify-between mb-4">
|
|
8
|
+
<div class="flex items-center border-b-2">
|
|
9
|
+
<div class=" <%= active === 'general' ? activeClass : inactiveClass %>">
|
|
10
|
+
<a href="<%= `/${_context.locale}/event_revisions/${settings.id}/general/edit` %>" class="text-raketa-primary font-semibold">
|
|
11
|
+
General
|
|
12
|
+
</a>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="<%= active === 'visuals' ? activeClass : inactiveClass %>">
|
|
16
|
+
<a href="<%= `/${_context.locale}/event_revisions/${settings.id}/visuals/edit` %>" class="text-raketa-primary font-semibold">
|
|
17
|
+
Visuals
|
|
18
|
+
</a>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="<%= active === 'codes' ? activeClass : inactiveClass %>">
|
|
22
|
+
<a href="<%= `/${_context.locale}/event_revisions/${settings.id}/codes/edit` %>" class="text-raketa-primary font-semibold">
|
|
23
|
+
Code customizations
|
|
24
|
+
</a>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div class="<%= active === 'meta' ? activeClass : inactiveClass %>">
|
|
28
|
+
<a href="<%= `/${_context.locale}/event_revisions/${settings.id}/meta/edit` %>" class="text-raketa-primary font-semibold">
|
|
29
|
+
Open graph & meta tags
|
|
30
|
+
</a>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="<%= active === 'tags' ? activeClass : inactiveClass %>">
|
|
34
|
+
<a href="<%= `/${_context.locale}/event_revisions/${settings.id}/tags/edit` %>" class="text-raketa-primary font-semibold">
|
|
35
|
+
Content tags
|
|
36
|
+
</a>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<div class="page-wrapper">
|
|
2
|
+
<div class="page-title">
|
|
3
|
+
<h1 class="heading-1">Edit revision / Code customizations</h1>
|
|
4
|
+
</div>
|
|
5
|
+
|
|
6
|
+
<%- include('../_nav.ejs', { settings: code_settings, active: 'codes' }) %>
|
|
7
|
+
|
|
8
|
+
<div class="grid gap-4 md:grid-cols-3">
|
|
9
|
+
<div>
|
|
10
|
+
<% form_for({ code_settings }, errors, (f) => { %>
|
|
11
|
+
<form action="<%= `/${_context.locale}/event_revisions/${code_settings.id}/codes` %>" method="POST" class="form">
|
|
12
|
+
<%- f.field('code_settings.scripts', { as: 'textarea', }) %>
|
|
13
|
+
<%- f.field('code_settings.structured_data', { label: 'Structured data (JSON)', as: 'textarea', hint: 'Click here for a structured data verification tool' }) %>
|
|
14
|
+
|
|
15
|
+
<div class="form-actions">
|
|
16
|
+
<div class="btn-toolbar">
|
|
17
|
+
<%- f.submit('Save changes', { class: 'btn-primary' }) %>
|
|
18
|
+
<a href="<%= `/${_context.locale}/events/${code_settings.originalId}` %>" class="btn-secondary">Back</a>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</form>
|
|
22
|
+
<% }) %>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<div>
|
|
26
|
+
<div class="help">
|
|
27
|
+
<div class="mb-2 flex items-center gap-1">
|
|
28
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-4">
|
|
29
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" />
|
|
30
|
+
</svg>
|
|
31
|
+
|
|
32
|
+
<h3 class="heading-3">Contextual help</h3>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore nostrum fugit sint sunt distinctio ut cum, corrupti ad error, quo labore minima. Reprehenderit quasi maxime repudiandae voluptatum commodi saepe molestiae?</p>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|