@candy-kingdom/bonnie-cms 0.1.3

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 (119) hide show
  1. package/README.md +7 -0
  2. package/esm2022/candy-kingdom-bonnie-cms.mjs +5 -0
  3. package/esm2022/index.mjs +16 -0
  4. package/esm2022/lib/admin-controls/admin-controls.component.mjs +44 -0
  5. package/esm2022/lib/admin-controls/index.mjs +2 -0
  6. package/esm2022/lib/bone-editors/bone-editor-base.component.mjs +143 -0
  7. package/esm2022/lib/bone-editors/index.mjs +3 -0
  8. package/esm2022/lib/bone-editors/unknown-bone-editor/index.mjs +2 -0
  9. package/esm2022/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.mjs +18 -0
  10. package/esm2022/lib/bonnie-cms.module.mjs +105 -0
  11. package/esm2022/lib/core/DeviceType.mjs +8 -0
  12. package/esm2022/lib/core/DeviceVisibility.mjs +9 -0
  13. package/esm2022/lib/core/MediaType.mjs +2 -0
  14. package/esm2022/lib/core/TextEditorField.mjs +7 -0
  15. package/esm2022/lib/core/Utils.mjs +18 -0
  16. package/esm2022/lib/core/index.mjs +6 -0
  17. package/esm2022/lib/core-components/editable-group.mjs +84 -0
  18. package/esm2022/lib/core-components/editable.directive.mjs +173 -0
  19. package/esm2022/lib/core-components/form-base.component.mjs +34 -0
  20. package/esm2022/lib/core-components/index.mjs +5 -0
  21. package/esm2022/lib/core-components/link-popup/index.mjs +2 -0
  22. package/esm2022/lib/core-components/link-popup/link-popup.component.mjs +73 -0
  23. package/esm2022/lib/form-controls/form-controls.component.mjs +16 -0
  24. package/esm2022/lib/form-controls/index.mjs +2 -0
  25. package/esm2022/lib/generated/i-equatable.mjs +6 -0
  26. package/esm2022/lib/generated/i-setting.mjs +6 -0
  27. package/esm2022/lib/generated/index.mjs +14 -0
  28. package/esm2022/lib/generated/localized-text-setting-data.mjs +6 -0
  29. package/esm2022/lib/generated/setting-base.mjs +6 -0
  30. package/esm2022/lib/generated/setting-data.mjs +6 -0
  31. package/esm2022/lib/generated/setting-group.mjs +6 -0
  32. package/esm2022/lib/generated/setting.mjs +6 -0
  33. package/esm2022/lib/generated/text-setting-data.mjs +6 -0
  34. package/esm2022/lib/generated/text-setting-type.mjs +10 -0
  35. package/esm2022/lib/media-uploader/index.mjs +2 -0
  36. package/esm2022/lib/media-uploader/media-uploader.component.mjs +159 -0
  37. package/esm2022/lib/seo-form/index.mjs +2 -0
  38. package/esm2022/lib/seo-form/seo-form.component.mjs +42 -0
  39. package/esm2022/lib/skeleton-editor/BoneEditorMap.mjs +2 -0
  40. package/esm2022/lib/skeleton-editor/ContentPreset.mjs +9 -0
  41. package/esm2022/lib/skeleton-editor/IBoneEditor.mjs +2 -0
  42. package/esm2022/lib/skeleton-editor/IBoneTemplate.mjs +2 -0
  43. package/esm2022/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.mjs +119 -0
  44. package/esm2022/lib/skeleton-editor/index.mjs +9 -0
  45. package/esm2022/lib/skeleton-editor/skeleton-editor-anchor.directive.mjs +16 -0
  46. package/esm2022/lib/skeleton-editor/skeleton-editor.component.mjs +107 -0
  47. package/esm2022/lib/text-form/TextInputStyle.mjs +7 -0
  48. package/esm2022/lib/text-form/index.mjs +3 -0
  49. package/esm2022/lib/text-form/text-form.component.mjs +33 -0
  50. package/esm2022/lib/translation-form/index.mjs +2 -0
  51. package/esm2022/lib/translation-form/translation-form.component.mjs +32 -0
  52. package/esm2022/lib/translation-input/index.mjs +2 -0
  53. package/esm2022/lib/translation-input/translation-input.component.mjs +42 -0
  54. package/esm2022/lib/translation-textarea/index.mjs +2 -0
  55. package/esm2022/lib/translation-textarea/translation-textarea.component.mjs +66 -0
  56. package/esm2022/lib/unknown-form/index.mjs +2 -0
  57. package/esm2022/lib/unknown-form/unknown-form.component.mjs +23 -0
  58. package/fesm2022/candy-kingdom-bonnie-cms.mjs +1343 -0
  59. package/fesm2022/candy-kingdom-bonnie-cms.mjs.map +1 -0
  60. package/index.d.ts +15 -0
  61. package/lib/admin-controls/admin-controls.component.d.ts +14 -0
  62. package/lib/admin-controls/index.d.ts +1 -0
  63. package/lib/bone-editors/bone-editor-base.component.d.ts +44 -0
  64. package/lib/bone-editors/index.d.ts +2 -0
  65. package/lib/bone-editors/unknown-bone-editor/index.d.ts +1 -0
  66. package/lib/bone-editors/unknown-bone-editor/unknown-bone-editor.component.d.ts +11 -0
  67. package/lib/bonnie-cms.module.d.ts +26 -0
  68. package/lib/core/DeviceType.d.ts +6 -0
  69. package/lib/core/DeviceVisibility.d.ts +7 -0
  70. package/lib/core/MediaType.d.ts +2 -0
  71. package/lib/core/TextEditorField.d.ts +5 -0
  72. package/lib/core/Utils.d.ts +4 -0
  73. package/lib/core/index.d.ts +5 -0
  74. package/lib/core-components/editable-group.d.ts +24 -0
  75. package/lib/core-components/editable.directive.d.ts +43 -0
  76. package/lib/core-components/form-base.component.d.ts +15 -0
  77. package/lib/core-components/index.d.ts +4 -0
  78. package/lib/core-components/link-popup/index.d.ts +1 -0
  79. package/lib/core-components/link-popup/link-popup.component.d.ts +28 -0
  80. package/lib/form-controls/form-controls.component.d.ts +7 -0
  81. package/lib/form-controls/index.d.ts +1 -0
  82. package/lib/generated/i-equatable.d.ts +6 -0
  83. package/lib/generated/i-setting.d.ts +8 -0
  84. package/lib/generated/index.d.ts +13 -0
  85. package/lib/generated/localized-text-setting-data.d.ts +11 -0
  86. package/lib/generated/setting-base.d.ts +8 -0
  87. package/lib/generated/setting-data.d.ts +8 -0
  88. package/lib/generated/setting-group.d.ts +10 -0
  89. package/lib/generated/setting.d.ts +9 -0
  90. package/lib/generated/text-setting-data.d.ts +10 -0
  91. package/lib/generated/text-setting-type.d.ts +8 -0
  92. package/lib/media-uploader/index.d.ts +1 -0
  93. package/lib/media-uploader/media-uploader.component.d.ts +34 -0
  94. package/lib/seo-form/index.d.ts +1 -0
  95. package/lib/seo-form/seo-form.component.d.ts +18 -0
  96. package/lib/skeleton-editor/BoneEditorMap.d.ts +3 -0
  97. package/lib/skeleton-editor/ContentPreset.d.ts +11 -0
  98. package/lib/skeleton-editor/IBoneEditor.d.ts +26 -0
  99. package/lib/skeleton-editor/IBoneTemplate.d.ts +5 -0
  100. package/lib/skeleton-editor/bone-editor-container/bone-editor-container.component.d.ts +32 -0
  101. package/lib/skeleton-editor/index.d.ts +8 -0
  102. package/lib/skeleton-editor/skeleton-editor-anchor.directive.d.ts +8 -0
  103. package/lib/skeleton-editor/skeleton-editor.component.d.ts +31 -0
  104. package/lib/text-form/TextInputStyle.d.ts +5 -0
  105. package/lib/text-form/index.d.ts +2 -0
  106. package/lib/text-form/text-form.component.d.ts +13 -0
  107. package/lib/translation-form/index.d.ts +1 -0
  108. package/lib/translation-form/translation-form.component.d.ts +14 -0
  109. package/lib/translation-input/index.d.ts +1 -0
  110. package/lib/translation-input/translation-input.component.d.ts +17 -0
  111. package/lib/translation-textarea/index.d.ts +1 -0
  112. package/lib/translation-textarea/translation-textarea.component.d.ts +26 -0
  113. package/lib/unknown-form/index.d.ts +1 -0
  114. package/lib/unknown-form/unknown-form.component.d.ts +9 -0
  115. package/package.json +25 -0
  116. package/styles/@candy-kingdom/bonnie/variables.scss +0 -0
  117. package/styles/admin-styles.scss +139 -0
  118. package/styles/admin-variables.scss +445 -0
  119. package/styles/variables.scss +415 -0
@@ -0,0 +1,445 @@
1
+ @use 'sass:math';
2
+ @import './variables.scss';
3
+
4
+ $adminAccentColor: #CCFF00;
5
+ $adminNegativeAccentColor: black;
6
+ $adminWarningColor: #FF355E;
7
+ $adminFont: 'IBM Plex Mono',
8
+ monospace;
9
+
10
+ $adminDesktopViewPortCoeff: 0.75;
11
+ $adminTabletViewPortCoeff: 0.55;
12
+ $adminMobileViewPortCoeff: 0.35;
13
+
14
+ $barWidth: 120px;
15
+
16
+ ////////////////////////
17
+ // FONTS
18
+
19
+ // todo: remove
20
+ @mixin adminBigTextDesktop {
21
+ letter-spacing: -0.01em;
22
+ font-size: $atom * 12 * $adminDesktopViewPortCoeff;
23
+ line-height: $big-text-line-height * $adminDesktopViewPortCoeff;
24
+ color: var(--text-color);
25
+ }
26
+
27
+ @mixin adminBigTextTablet {
28
+ font-size: $tabletAtom * 12 * $adminTabletViewPortCoeff;
29
+ line-height: $big-text-line-height-tablet * $adminTabletViewPortCoeff;
30
+ color: var(--text-color);
31
+ }
32
+
33
+ @mixin adminBigTextMobile {
34
+ font-size: math.div($mobileAtom * 12, 2) * $adminMobileViewPortCoeff;
35
+ line-height: $big-text-line-height-mobile * $adminMobileViewPortCoeff;
36
+ color: var(--text-color);
37
+ }
38
+
39
+ @mixin adminSmallTextDesktop {
40
+ font-size: $atom * 4 * $adminDesktopViewPortCoeff;
41
+ line-height: $small-text-line-height * $adminDesktopViewPortCoeff;
42
+ color: var(--text-color);
43
+ }
44
+
45
+ @mixin adminSmallTextTablet {
46
+ font-size: $tabletAtom * 4 * $adminTabletViewPortCoeff;
47
+ line-height: $small-text-line-height-tablet * $adminTabletViewPortCoeff;
48
+ color: var(--text-color);
49
+ }
50
+
51
+ @mixin adminSmallTextMobile {
52
+ font-size: $mobileAtom * 4 * $adminMobileViewPortCoeff;
53
+ line-height: $small-text-line-height-mobile * $adminMobileViewPortCoeff;
54
+ color: var(--text-color);
55
+ }
56
+
57
+
58
+
59
+ //////////////////////////
60
+
61
+ @mixin adminDesktopGrid {
62
+ display: grid;
63
+ grid-template-columns: repeat(12, 1fr);
64
+ grid-column-gap: $desktopHGap * $adminDesktopViewPortCoeff;
65
+ padding-left: $desktopHGap * $adminDesktopViewPortCoeff;
66
+ padding-right: $desktopHGap * $adminDesktopViewPortCoeff;
67
+ }
68
+
69
+ @mixin adminTabletGrid {
70
+ display: grid;
71
+ grid-template-columns: repeat(12, 1fr);
72
+ grid-column-gap: $tabletHGap * $adminTabletViewPortCoeff;
73
+ padding-left: $tabletHGap * $adminTabletViewPortCoeff;
74
+ padding-right: $tabletHGap * $adminTabletViewPortCoeff;
75
+ }
76
+
77
+ @mixin adminTabletFlex {
78
+ display: flex;
79
+ flex-direction: column;
80
+ padding-right: $tabletHGap * $adminTabletViewPortCoeff;
81
+ padding-left: $tabletHGap * $adminTabletViewPortCoeff;
82
+ }
83
+
84
+ @mixin admin-mobile-flex {
85
+ display: flex;
86
+ flex-direction: column;
87
+ padding-right: $mobileAtom * $adminMobileViewPortCoeff;
88
+ padding-left: $mobileAtom * $adminMobileViewPortCoeff;
89
+ }
90
+
91
+ @mixin editingStyles() {
92
+ background: repeating-linear-gradient(-45deg,
93
+ $adminAccentColor,
94
+ $adminAccentColor 10px,
95
+ $adminNegativeAccentColor 10px,
96
+ $adminNegativeAccentColor 20px) fixed bottom;
97
+ }
98
+
99
+ @mixin editingStyles2() {
100
+ background: repeating-linear-gradient(-45deg,
101
+ transparentize($adminAccentColor, 0),
102
+ transparentize($adminAccentColor, 0) 10px,
103
+ transparentize($adminNegativeAccentColor, 1) 10px,
104
+ transparentize($adminNegativeAccentColor, 1) 20px) fixed bottom;
105
+ }
106
+
107
+ @mixin edit-media-overlay {
108
+ &:hover::after {
109
+ display: flex;
110
+ justify-content: center;
111
+ align-items: center;
112
+ content: '';
113
+ position: absolute;
114
+ color: silver;
115
+ top: 0;
116
+ left: 0;
117
+ right: 0;
118
+ bottom: 0;
119
+ font-weight: bold;
120
+ font-size: 50pt;
121
+ pointer-events: none;
122
+ background-color: transparentize($adminAccentColor, 0.3);
123
+ }
124
+ }
125
+
126
+ @mixin admin-textarea {
127
+ display: block;
128
+ width: 100%;
129
+ line-height: 140%;
130
+ padding: 2px 0;
131
+ margin: 0;
132
+ box-sizing: content-box;
133
+ border: none;
134
+ resize: none;
135
+
136
+ &:focus {
137
+ outline: none;
138
+ }
139
+
140
+ &[readonly] {
141
+ cursor: pointer;
142
+
143
+ &::selection {
144
+ user-select: none;
145
+ }
146
+
147
+ &:hover {
148
+ @include editingStyles2;
149
+ color: $adminNegativeAccentColor;
150
+ }
151
+ }
152
+ }
153
+
154
+ @mixin empty-media-placeholder($text) {
155
+ background-color: black;
156
+
157
+ &::before {
158
+ content: $text;
159
+ position: absolute;
160
+ top: 0;
161
+ left: 0;
162
+ right: 0;
163
+ bottom: 0;
164
+ color: white;
165
+ display: flex;
166
+ align-items: center;
167
+ justify-content: center;
168
+ pointer-events: none;
169
+ }
170
+ }
171
+
172
+ $highlightColor: #333;
173
+
174
+ @mixin admin-controls {
175
+ a.btn {
176
+ display: block;
177
+ //border: 1px solid white;
178
+ padding: 3pt;
179
+ text-align: center;
180
+ user-select: none;
181
+
182
+ &:hover {
183
+ border-color: $highlightColor;
184
+ background-color: $highlightColor;
185
+ }
186
+ }
187
+
188
+ select {
189
+ color: white;
190
+ border-color: white;
191
+ background-color: black;
192
+ padding: 3pt;
193
+
194
+ option {
195
+ color: white;
196
+ }
197
+ }
198
+
199
+ input[type="checkbox"] {
200
+ display: inline-block;
201
+ margin-right: 6pt;
202
+ }
203
+
204
+ textarea {
205
+ resize: none;
206
+ }
207
+
208
+ input[type="text"],
209
+ textarea {
210
+ width: 100%;
211
+ display: block;
212
+ background-color: black;
213
+ color: white;
214
+ border: 1px solid white;
215
+ padding: 6pt;
216
+ resize: none;
217
+ box-sizing: border-box;
218
+ }
219
+
220
+ input,
221
+ textarea,
222
+ select {
223
+ &:focus {
224
+ outline: none;
225
+ background-color: $highlightColor;
226
+ border-color: $highlightColor;
227
+ }
228
+ }
229
+ }
230
+
231
+ @mixin super-form {
232
+ @include admin-controls;
233
+
234
+ .form-field {}
235
+
236
+ .form-field+.form-field {
237
+ margin-top: 20pt;
238
+ }
239
+
240
+ .form-section+.form-section {
241
+ margin-top: 60pt;
242
+ }
243
+
244
+ label {
245
+ display: block;
246
+ user-select: none;
247
+
248
+ .inner {
249
+ display: inline-block;
250
+ padding-bottom: 4pt;
251
+ }
252
+ }
253
+ }
254
+
255
+
256
+ @mixin admin-button {
257
+ display: block;
258
+ color: white;
259
+ background-color: transparent;
260
+ box-shadow: none;
261
+ border: none;
262
+ outline: none;
263
+ text-decoration: none;
264
+ cursor: pointer;
265
+
266
+ padding: 3pt 10pt;
267
+ text-align: center;
268
+ user-select: none;
269
+
270
+
271
+ &:hover {
272
+ border-color: $highlightColor;
273
+ background-color: #333;
274
+ }
275
+
276
+ &:disabled {
277
+ color: gray;
278
+ }
279
+ }
280
+
281
+ @mixin cancel-button {
282
+
283
+ &:hover:enabled,
284
+ &:focus:enabled {
285
+ //color: white;
286
+ //background-color: yellow;
287
+ }
288
+ }
289
+
290
+ @mixin save-button {
291
+
292
+ &:hover:enabled,
293
+ &:focus:enabled {
294
+ //color: white;
295
+ //background-color: yellow;
296
+ }
297
+ }
298
+
299
+ @mixin delete-button {
300
+ padding: 3pt 10pt;
301
+
302
+ &:hover,
303
+ &:focus {
304
+ //color: white;
305
+ background-color: red;
306
+ }
307
+ }
308
+
309
+ @mixin editor {
310
+ display: block;
311
+ background-color: var(--bg-color);
312
+ color: var(--text-color);
313
+ }
314
+
315
+ @mixin admin-form-layout {
316
+ display: flex;
317
+ flex-direction: column;
318
+ align-items: center;
319
+ justify-content: center;
320
+ position: relative;
321
+
322
+ padding-bottom: 40px;
323
+
324
+ form {
325
+ font-family: $adminFont;
326
+ font-size: 14px;
327
+ }
328
+
329
+ input,
330
+ select,
331
+ textarea {
332
+ font-family: $adminFont;
333
+ font-size: 14px;
334
+ }
335
+
336
+ textarea {
337
+ resize: none;
338
+ }
339
+
340
+ .controls {
341
+ position: absolute;
342
+ bottom: 15px;
343
+
344
+ display: flex;
345
+ justify-content: center;
346
+ align-items: center;
347
+ }
348
+
349
+ button+button {
350
+ margin-left: 4px;
351
+ }
352
+ }
353
+
354
+ @mixin admin-form-title {
355
+ font-family: $adminFont;
356
+ font-size: 14px;
357
+ }
358
+
359
+ @mixin admin-form {
360
+ display: block;
361
+ }
362
+
363
+ @mixin bone-input {
364
+ display: block;
365
+ border: none;
366
+ background-color:rgba(gray, 0.1);
367
+ color: var(--text-color);
368
+
369
+ &:hover {
370
+ background-color: lightgray;
371
+ cursor: pointer;
372
+ }
373
+
374
+ &:focus {
375
+ outline: none;
376
+ color: black;
377
+ background-color: $adminAccentColor;
378
+ }
379
+ }
380
+
381
+ @mixin adminInput {
382
+ display: block;
383
+ width: 100%;
384
+ padding: 6px;
385
+ color: silver;
386
+ border: 1px solid silver;
387
+ background-color: transparent;
388
+ box-sizing: border-box;
389
+
390
+ &:hover {
391
+ border-color: transparent;
392
+ background-color: #333;
393
+ cursor: pointer;
394
+ }
395
+
396
+ &:focus {
397
+ outline: none;
398
+ color: white;
399
+ border-color: transparent;
400
+ background-color: #555;
401
+ }
402
+ }
403
+
404
+ @mixin form-select-basic {
405
+ width: 100%;
406
+ margin-bottom: 0.5em;
407
+ padding: 6px;
408
+
409
+ font-size: inherit;
410
+ box-sizing: border-box;
411
+ background-color: transparent;
412
+ border: 1px solid silver;
413
+ outline: none;
414
+ color: silver;
415
+
416
+ &:hover,
417
+ &:focus {
418
+ color: $adminAccentColor;
419
+ }
420
+
421
+ option {
422
+ background-color: #444;
423
+
424
+ &:checked {
425
+ color: $adminAccentColor;
426
+ }
427
+
428
+ &:not(checked) {
429
+ color: silver;
430
+ }
431
+ }
432
+ }
433
+
434
+ @mixin adminInputContainer {
435
+ padding: 6px 12px;
436
+ border: 1px solid silver;
437
+
438
+ &:hover {
439
+ background-color: #333;
440
+ }
441
+
442
+ &:focus-within {
443
+ background-color: #555;
444
+ }
445
+ }