fontastic 1.3.2 → 1.4.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 (72) hide show
  1. package/.github/workflows/claude-code-review.yml +1 -1
  2. package/.github/workflows/claude.yml +1 -1
  3. package/.github/workflows/macos.yml +5 -5
  4. package/.github/workflows/release-please.yml +1 -1
  5. package/.github/workflows/release.yml +2 -2
  6. package/.github/workflows/ubuntu.yml +7 -7
  7. package/.github/workflows/windows.yml +5 -5
  8. package/README.md +4 -4
  9. package/angular.json +8 -3
  10. package/app/core/FontFinder.js +17 -12
  11. package/app/core/FontFinder.ts +18 -12
  12. package/app/core/FontManager.js +13 -14
  13. package/app/core/FontManager.ts +12 -13
  14. package/app/core/MessageHandler.js +0 -1
  15. package/app/core/MessageHandler.ts +0 -4
  16. package/app/database/entity/Store.schema.js +1 -0
  17. package/app/database/entity/Store.schema.ts +1 -0
  18. package/app/database/repository/Collection.repository.js +0 -11
  19. package/app/database/repository/Collection.repository.ts +0 -22
  20. package/app/database/repository/Store.repository.js +50 -69
  21. package/app/database/repository/Store.repository.ts +47 -86
  22. package/app/enums/ChannelType.js +0 -1
  23. package/app/enums/ChannelType.ts +0 -1
  24. package/app/main.js +3 -2
  25. package/app/main.ts +4 -3
  26. package/app/package-lock.json +144 -1104
  27. package/app/package.json +4 -6
  28. package/app/preload.js +51 -0
  29. package/app/preload.ts +59 -0
  30. package/app/types/Bridge.js +3 -0
  31. package/app/types/Bridge.ts +19 -0
  32. package/app/types/index.js +1 -0
  33. package/app/types/index.ts +1 -0
  34. package/knip.json +18 -0
  35. package/package.json +44 -53
  36. package/src/app/app.component.spec.ts +3 -3
  37. package/src/app/app.component.ts +2 -15
  38. package/src/app/core/services/database/database.service.ts +8 -15
  39. package/src/app/core/services/electron/electron.service.ts +5 -46
  40. package/src/app/core/services/font-loader/font-loader.service.ts +60 -0
  41. package/src/app/core/services/index.ts +1 -0
  42. package/src/app/core/services/message/message.service.ts +19 -27
  43. package/src/app/core/services/presentation/presentation.service.ts +9 -2
  44. package/src/app/home/home.component.spec.ts +3 -3
  45. package/src/app/home/home.component.ts +4 -8
  46. package/src/app/layout/footer/footer.component.ts +6 -6
  47. package/src/app/shared/components/index.ts +0 -1
  48. package/src/app/shared/components/page-not-found/page-not-found.component.ts +2 -8
  49. package/src/app/shared/components/preview/preview.component.html +1 -0
  50. package/src/app/shared/components/preview/preview.component.ts +3 -31
  51. package/src/app/shared/components/rule-builder/rule-builder.component.html +4 -4
  52. package/src/app/shared/components/rule-builder/rule-builder.component.ts +13 -13
  53. package/src/app/shared/components/waterfall/waterfall.component.ts +1 -1
  54. package/src/app/shared/directives/index.ts +1 -1
  55. package/src/app/shared/directives/lazy-font/lazy-font.directive.ts +23 -0
  56. package/src/app/shared/shared.module.ts +3 -3
  57. package/src/main.ts +2 -2
  58. package/tsconfig.serve.json +4 -16
  59. package/app/helpers/command.js +0 -28
  60. package/app/helpers/command.ts +0 -20
  61. package/app/helpers/random.js +0 -16
  62. package/app/helpers/random.ts +0 -12
  63. package/src/app/shared/components/prompt-dialog/prompt-dialog.component.html +0 -36
  64. package/src/app/shared/components/prompt-dialog/prompt-dialog.component.ts +0 -40
  65. package/src/app/shared/directives/webview/webview.directive.spec.ts +0 -8
  66. package/src/app/shared/directives/webview/webview.directive.ts +0 -9
  67. package/src/styles/themes/dashboard.scss +0 -293
  68. package/src/styles/themes/euphoria.scss +0 -284
  69. package/src/styles/themes/mellow.scss +0 -281
  70. package/src/styles/themes/midnight.scss +0 -284
  71. package/src/styles/themes/passion.scss +0 -281
  72. package/src/styles/themes/swiss.scss +0 -284
@@ -1,293 +0,0 @@
1
- body[data-theme='dashboard'] {
2
- @apply text-dashboard bg-dashboard;
3
- }
4
-
5
- [data-theme='dashboard'] {
6
- .hover-scrollbox-x,
7
- .hover-scrollbox-y {
8
- --scrollbar-color: #00a1be79;
9
- --scrollbar-hover-color: #00a1beb9;
10
- --scrollbar-space: 0.2rem;
11
- --scrollbar-height: calc(0.5rem + var(--scrollbar-space));
12
- --scrollbar-width: calc(0.5rem + var(--scrollbar-space));
13
- }
14
-
15
- a {
16
- @apply text-dashboard;
17
- &:hover,
18
- &:active {
19
- @apply text-dashboard;
20
- }
21
- }
22
-
23
- .active {
24
- @apply text-[#637785];
25
- }
26
-
27
- .favorite {
28
- @apply text-red-600;
29
- }
30
-
31
- .disabled,
32
- .disabled i {
33
- @apply text-[#637785];
34
- }
35
-
36
- .enabled {
37
- @apply text-dashboard;
38
- }
39
-
40
- .selected {
41
- @apply bg-[#1a2631];
42
- }
43
-
44
- .material-icons {
45
- @apply text-dashboard;
46
- }
47
-
48
- .material-icons-rounded {
49
- .material-icons {
50
- &:hover {
51
- @apply text-dashboard bg-[#1a2631];
52
- }
53
- }
54
- }
55
-
56
- /* ==========================================================================
57
- Inputs
58
- ========================================================================== */
59
-
60
- input,
61
- select {
62
- @apply text-gray-700;
63
- &:focus {
64
- @apply text-gray-700;
65
- }
66
- }
67
-
68
- input:not([type='range']):not([type='color']):not(.form-control-hidden),
69
- select:not([type='range']):not(.form-control-hidden) {
70
- @apply border border-solid border-dashboard;
71
- }
72
-
73
- input[type='color'] {
74
- @apply border-none;
75
- }
76
-
77
- .radio label,
78
- .checkbox label {
79
- @apply border-2 border-solid border-white;
80
- }
81
-
82
- .radio :checked ~ label::before,
83
- .checkbox :checked ~ label::before {
84
- @apply bg-white;
85
- }
86
-
87
- .radio :checked ~ span,
88
- .checkbox :checked ~ span {
89
- @apply text-white;
90
- }
91
-
92
- /* ==========================================================================
93
- Range Slider
94
- ========================================================================== */
95
-
96
- input[type='range'] {
97
- @apply bg-dashboard;
98
- }
99
-
100
- input[type='range']::-webkit-slider-runnable-track {
101
- @apply bg-[#2d3e50];
102
- }
103
-
104
- input[type='range']::-webkit-slider-thumb {
105
- @apply bg-[#2d3e50] border-[#00a0be];
106
- }
107
-
108
- /* ==========================================================================
109
- App Button
110
- ========================================================================== */
111
-
112
- .app-btn {
113
- @apply bg-[#1a2631];
114
- &:hover {
115
- @apply bg-[#2b3b4b];
116
- }
117
- }
118
-
119
- /* ==========================================================================
120
- Toolbar
121
- ========================================================================== */
122
-
123
- .input-preview.preview-text button {
124
- span.material-icons {
125
- color: #fff;
126
- }
127
- background-color: #2d3e50;
128
- }
129
-
130
- .input-preview.quick-text button span.material-icons,
131
- .input-preview.latest-news button span.material-icons,
132
- .input-preview.preview-casing button span.material-icons,
133
- .input-preview.preview-reset button span.material-icons {
134
- color: #495d74;
135
- }
136
-
137
- .paginator {
138
- a {
139
- @apply bg-[#1a2631];
140
- i.material-icons {
141
- color: #fff;
142
- }
143
- }
144
- }
145
-
146
- .border-top {
147
- @apply border-t border-solid border-dashboard;
148
- }
149
-
150
- .border-right {
151
- @apply border-r border-solid border-dashboard;
152
- }
153
-
154
- .border-bottom {
155
- @apply border-b border-solid border-dashboard;
156
- }
157
-
158
- .border-left {
159
- @apply border-l border-solid border-dashboard;
160
- }
161
-
162
- .border-top-dashed {
163
- @apply border-t border-dashed border-dashboard;
164
- }
165
-
166
- .border-right-dashed {
167
- @apply border-r border-dashed border-dashboard;
168
- }
169
-
170
- .border-bottom-dashed {
171
- @apply border-b border-dashed border-dashboard;
172
- }
173
-
174
- .border-left-dashed {
175
- @apply border-left border-dashed border-dashboard;
176
- }
177
-
178
- details {
179
- > summary {
180
- @apply text-white;
181
- }
182
- > details {
183
- &::after {
184
- background-color: #00a0be;
185
- }
186
- &::before {
187
- background-color: #00a0be;
188
- }
189
- }
190
- ul {
191
- li {
192
- &::after {
193
- background-color: #00a0be;
194
- }
195
- &::before {
196
- background-color: #00a0be;
197
- }
198
- span {
199
- color: #fff;
200
- }
201
- span:last-child {
202
- color: #00a0be;
203
- }
204
- }
205
- }
206
- }
207
-
208
- .table {
209
- @apply text-white;
210
- thead > tr {
211
- @apply bg-[#1a2631];
212
- }
213
- &.striped > tbody > tr:nth-child(odd) {
214
- @apply bg-[#172230ce];
215
- }
216
- .material-icons {
217
- @apply text-white;
218
- }
219
- [class^='icon-'] {
220
- @apply text-white;
221
- }
222
- }
223
-
224
- .form-control {
225
- @apply text-white bg-dashboard border border-solid border-dashboard;
226
- .input-group-checkbox {
227
- @apply bg-dashboard;
228
- }
229
- }
230
-
231
- fieldset {
232
- @apply border border-solid border-dashboard;
233
- legend {
234
- @apply text-dashboard;
235
- }
236
- dt {
237
- label {
238
- @apply text-white;
239
- }
240
- }
241
- dd {
242
- @apply border-l border-solid border-[#91a8bebd];
243
- }
244
- dl:hover dt,
245
- dl:hover dd {
246
- @apply border-[#0e161f];
247
- }
248
- dl:hover dt label {
249
- @apply text-dashboard;
250
- }
251
- dl dd label:hover {
252
- @apply text-dashboard;
253
- }
254
- }
255
-
256
- .glyph-list {
257
- &__wrapper-item {
258
- @apply bg-[#14202b] border-2 border-[#0e161f];
259
- &:hover {
260
- @apply bg-[#91a8bebd];
261
- }
262
- }
263
- }
264
-
265
- /* ==========================================================================
266
- Typescale
267
- ========================================================================== */
268
-
269
- .typescale {
270
- &__label {
271
- @apply bg-[#1a2631];
272
- }
273
- &__label-text {
274
- @apply text-white;
275
- }
276
- &__wrapper {
277
- @apply bg-[#14202b];
278
- &.active {
279
- @apply bg-[#1a2631];
280
- }
281
- }
282
- }
283
-
284
- /* ==========================================================================
285
- Modal
286
- ========================================================================== */
287
-
288
- .modal {
289
- &__content {
290
- @apply bg-dashboard;
291
- }
292
- }
293
- }
@@ -1,284 +0,0 @@
1
- body[data-theme='euphoria'] {
2
- background-color: var(--background-color);
3
- color: var(--font-color);
4
- }
5
-
6
- [data-theme='euphoria'] {
7
- .hover-scrollbox-x,
8
- .hover-scrollbox-y {
9
- --scrollbar-color: #deb431;
10
- --scrollbar-hover-color: #deb431;
11
- --scrollbar-space: 0.1rem;
12
- --scrollbar-height: calc(0.3rem + var(--scrollbar-space));
13
- --scrollbar-width: calc(0.3rem + var(--scrollbar-space));
14
- }
15
-
16
- a {
17
- color: var(--font-color);
18
- &:hover,
19
- &:active {
20
- color: var(--font-color);
21
- }
22
- }
23
-
24
- .active {
25
- color: #c10156 !important;
26
- }
27
-
28
- .favorite {
29
- color: #c10156 !important;
30
- }
31
-
32
- .disabled,
33
- .disabled i {
34
- color: #c10156;
35
- }
36
-
37
- .enabled {
38
- color: var(--font-color);
39
- }
40
-
41
- .selected {
42
- background-color: var(--border-color);
43
- }
44
-
45
- .material-icons {
46
- color: #deb431;
47
- }
48
-
49
- .material-icons-rounded {
50
- .material-icons {
51
- &:hover {
52
- @apply text-[#943577] bg-[#3a1f32];
53
- }
54
- }
55
- }
56
-
57
- /* ==========================================================================
58
- App Button
59
- ========================================================================== */
60
-
61
- .app-btn {
62
- @apply bg-[#3a1f32];
63
- span {
64
- @apply text-[#deb431];
65
- }
66
- &:hover {
67
- @apply bg-[#3a1f32b4];
68
- }
69
- }
70
-
71
- input:not(.form-control-hidden):not([type='range']),
72
- select:not(.form-control-hidden) {
73
- border: 1px solid #3c1f31 !important;
74
- }
75
-
76
- .radio label,
77
- .checkbox label {
78
- border: 2px solid var(--font-color);
79
- }
80
-
81
- .radio :checked ~ label::before,
82
- .checkbox :checked ~ label::before {
83
- background-color: var(--font-color);
84
- }
85
-
86
- .radio :checked ~ span,
87
- .checkbox :checked ~ span {
88
- color: var(--font-color);
89
- }
90
-
91
- // Toolbar text.
92
- .input-preview.preview-text button {
93
- background-color: var(--border-color) !important;
94
- }
95
-
96
- // Toolbar switch text.
97
- .input-preview.quick-text button span.material-icons,
98
- .input-preview.latest-news button span.material-icons,
99
- .input-preview.preview-casing button span.material-icons,
100
- .input-preview.preview-reset button span.material-icons {
101
- color: var(--font-color) !important;
102
- }
103
-
104
- .input-preview.preview-size {
105
- input {
106
- color: red !important;
107
- }
108
- }
109
-
110
- input[type='range'] {
111
- @apply bg-euphoria;
112
- }
113
-
114
- input[type='range']::-webkit-slider-runnable-track {
115
- background: var(--font-color);
116
- }
117
-
118
- input[type='range']::-webkit-slider-thumb {
119
- background: var(--font-color) !important;
120
- border: 3px solid var(--border-color) !important;
121
- box-shadow:
122
- 0 4px 6px -1px rgba(0, 0, 0, 0.1),
123
- 0 2px 4px -1px rgba(0, 0, 0, 0.06);
124
- }
125
-
126
- .paginator {
127
- a {
128
- background-color: #3c1f31;
129
- i.material-icons {
130
- color: #fff;
131
- }
132
- }
133
- }
134
-
135
- .border-top {
136
- border-top: 1px solid var(--border-color) !important;
137
- }
138
-
139
- .border-right {
140
- border-right: 1px solid var(--border-color) !important;
141
- }
142
-
143
- .border-bottom {
144
- border-bottom: 1px solid var(--border-color) !important;
145
- }
146
-
147
- .border-left {
148
- border-left: 1px solid var(--border-color) !important;
149
- }
150
-
151
- .border-top-dashed {
152
- border-top: 1px dashed var(--border-color) !important;
153
- }
154
-
155
- .border-right-dashed {
156
- border-right: 1px dashed var(--border-color) !important;
157
- }
158
-
159
- .border-bottom-dashed {
160
- border-bottom: 1px dashed var(--border-color) !important;
161
- }
162
-
163
- .border-left-dashed {
164
- border-left: 1px dashed var(--border-color) !important;
165
- }
166
-
167
- details {
168
- > summary {
169
- color: #deb431;
170
- }
171
- > details {
172
- &::after {
173
- background-color: #c80054;
174
- }
175
- &::before {
176
- background-color: #c80054;
177
- }
178
- }
179
- ul {
180
- li {
181
- &::after {
182
- background-color: #c80054;
183
- }
184
- &::before {
185
- background-color: #c80054;
186
- }
187
- span {
188
- color: #deb431;
189
- }
190
- span:last-child {
191
- color: #c80054;
192
- }
193
- }
194
- }
195
- }
196
-
197
- .table {
198
- color: var(--font-color);
199
- thead > tr {
200
- background-color: var(--border-color);
201
- }
202
- &.striped > tbody > tr:nth-child(odd) {
203
- @apply bg-euphoria;
204
- }
205
- .material-icons {
206
- color: var(--font-color);
207
- }
208
- [class^='icon-'] {
209
- color: var(--font-color);
210
- }
211
- }
212
-
213
- .form-control {
214
- color: var(--font-color);
215
- background-color: var(--background-color);
216
- border: 1px solid var(--border-color);
217
- .input-group-checkbox {
218
- background-color: var(--border-color);
219
- }
220
- }
221
-
222
- fieldset {
223
- border: 1px solid var(--border-color);
224
- legend {
225
- color: var(--font-color);
226
- }
227
- dt {
228
- label {
229
- color: var(--font-color);
230
- }
231
- }
232
- dd {
233
- border-left: 1px solid var(--font-color);
234
- }
235
- dl:hover dt,
236
- dl:hover dd {
237
- border-color: #c10156;
238
- }
239
- dl:hover dt label {
240
- color: var(--font-color);
241
- }
242
- dl dd label:hover {
243
- color: var(--font-color);
244
- }
245
- }
246
-
247
- .glyph-list {
248
- &__wrapper-item {
249
- @apply bg-[#23121c] border-2 border-[#25141e];
250
- &:hover {
251
- @apply bg-[#221723];
252
- }
253
- }
254
- }
255
-
256
- /* ==========================================================================
257
- Typescale
258
- ========================================================================== */
259
-
260
- .typescale {
261
- &__label {
262
- @apply bg-[#301624];
263
- }
264
- &__label-text {
265
- @apply text-[#deb431];
266
- }
267
- &__wrapper {
268
- @apply bg-[#23121c];
269
- &.active {
270
- @apply bg-[#301624];
271
- }
272
- }
273
- }
274
-
275
- /* ==========================================================================
276
- Modal
277
- ========================================================================== */
278
-
279
- .modal {
280
- &__content {
281
- @apply bg-euphoria;
282
- }
283
- }
284
- }