@candy-kingdom/bonnie-cms 0.23.0 → 0.25.0

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