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,281 +0,0 @@
1
- body[data-theme='mellow'] {
2
- @apply text-mellow bg-mellow;
3
- }
4
-
5
- [data-theme='mellow'] {
6
- .hover-scrollbox-x,
7
- .hover-scrollbox-y {
8
- --scrollbar-color: #252525;
9
- --scrollbar-hover-color: #252525d7;
10
- --scrollbar-space: 0.1rem;
11
- --scrollbar-height: calc(0.3rem + var(--scrollbar-space));
12
- --scrollbar-width: calc(0.3rem + var(--scrollbar-space));
13
- }
14
-
15
- a {
16
- color: var(--font-color);
17
- &:hover,
18
- &:active {
19
- color: var(--font-color);
20
- }
21
- }
22
-
23
- .active {
24
- color: #cc0000 !important;
25
- }
26
-
27
- .favorite {
28
- color: #cc0000 !important;
29
- }
30
-
31
- .disabled,
32
- .disabled i {
33
- color: var(--border-color);
34
- }
35
-
36
- .enabled {
37
- color: var(--font-color);
38
- }
39
-
40
- .selected {
41
- background-color: #ebd01a;
42
- }
43
-
44
- .material-icons {
45
- color: var(--font-color);
46
- }
47
-
48
- .material-icons-rounded {
49
- .material-icons {
50
- &:hover {
51
- @apply text-[#ebd01a] bg-[#111111];
52
- }
53
- }
54
- }
55
-
56
- /* ==========================================================================
57
- App Button
58
- ========================================================================== */
59
-
60
- .app-btn {
61
- @apply bg-[#252525];
62
- span {
63
- @apply text-[#ebd01a];
64
- }
65
- &:hover {
66
- @apply bg-[#472107];
67
- }
68
- }
69
-
70
- input:not(.form-control-hidden):not([type='range']),
71
- select:not(.form-control-hidden) {
72
- border: 1px solid var(--border-color) !important;
73
- }
74
-
75
- .radio label,
76
- .checkbox label {
77
- border: 2px solid var(--font-color);
78
- }
79
-
80
- .radio :checked ~ label::before,
81
- .checkbox :checked ~ label::before {
82
- background-color: var(--font-color);
83
- }
84
-
85
- .radio :checked ~ span,
86
- .checkbox :checked ~ span {
87
- color: var(--font-color);
88
- }
89
-
90
- // Toolbar text.
91
- .input-preview.preview-text button {
92
- background-color: var(--border-color) !important;
93
- }
94
-
95
- // Toolbar switch text.
96
- .input-preview.quick-text button span.material-icons,
97
- .input-preview.latest-news button span.material-icons,
98
- .input-preview.preview-casing button span.material-icons,
99
- .input-preview.preview-reset button span.material-icons {
100
- color: var(--font-color) !important;
101
- }
102
-
103
- .input-preview.preview-size {
104
- input {
105
- color: red !important;
106
- }
107
- }
108
-
109
- // input[type="range"] {
110
- // accent-color: #cc2ea4;
111
- // }
112
-
113
- input[type='range']::-webkit-slider-runnable-track {
114
- background: #000000;
115
- }
116
-
117
- input[type='range']::-webkit-slider-thumb {
118
- background: var(--font-color) !important;
119
- border: 3px solid var(--background-color) !important;
120
- box-shadow:
121
- 0 4px 6px -1px rgba(0, 0, 0, 0.1),
122
- 0 2px 4px -1px rgba(0, 0, 0, 0.06);
123
- }
124
-
125
- .paginator {
126
- a {
127
- background-color: #252525;
128
- i.material-icons {
129
- color: #dfc136;
130
- }
131
- }
132
- }
133
-
134
- .border-top {
135
- border-top: 1px solid var(--border-color) !important;
136
- }
137
-
138
- .border-right {
139
- border-right: 1px solid var(--border-color) !important;
140
- }
141
-
142
- .border-bottom {
143
- border-bottom: 1px solid var(--border-color) !important;
144
- }
145
-
146
- .border-left {
147
- border-left: 1px solid var(--border-color) !important;
148
- }
149
-
150
- .border-top-dashed {
151
- border-top: 1px dashed var(--border-color) !important;
152
- }
153
-
154
- .border-right-dashed {
155
- border-right: 1px dashed var(--border-color) !important;
156
- }
157
-
158
- .border-bottom-dashed {
159
- border-bottom: 1px dashed var(--border-color) !important;
160
- }
161
-
162
- .border-left-dashed {
163
- border-left: 1px dashed var(--border-color) !important;
164
- }
165
-
166
- details {
167
- > summary {
168
- color: #252525;
169
- }
170
- > details {
171
- &::after {
172
- background-color: #252525;
173
- }
174
- &::before {
175
- background-color: #252525;
176
- }
177
- }
178
- ul {
179
- li {
180
- &::after {
181
- background-color: #252525;
182
- }
183
- &::before {
184
- background-color: #252525;
185
- }
186
- span {
187
- color: #252525;
188
- }
189
- span:last-child {
190
- color: #ff2f2f;
191
- }
192
- }
193
- }
194
- }
195
-
196
- .table {
197
- color: var(--font-color);
198
- thead > tr {
199
- color: var(--background-color);
200
- background-color: var(--font-color);
201
- }
202
- &.striped > tbody > tr:nth-child(odd) {
203
- @apply bg-mellow;
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-[#ffdf00] border-2 border-[#252525];
250
- }
251
- }
252
-
253
- /* ==========================================================================
254
- Typescale
255
- ========================================================================== */
256
-
257
- .typescale {
258
- &__label {
259
- @apply bg-[#ddc000];
260
- }
261
- &__label-text {
262
- @apply text-[#252525];
263
- }
264
- &__wrapper {
265
- @apply bg-[#ffdf00];
266
- &.active {
267
- @apply bg-[#ddc000];
268
- }
269
- }
270
- }
271
-
272
- /* ==========================================================================
273
- Modal
274
- ========================================================================== */
275
-
276
- .modal {
277
- &__content {
278
- @apply bg-mellow;
279
- }
280
- }
281
- }
@@ -1,284 +0,0 @@
1
- body[data-theme='midnight'] {
2
- background-color: var(--background-color);
3
- color: var(--font-color);
4
- }
5
-
6
- [data-theme='midnight'] {
7
- .hover-scrollbox-x,
8
- .hover-scrollbox-y {
9
- --scrollbar-color: #fff;
10
- --scrollbar-hover-color: rgba(255, 255, 255, 0.507);
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: #777 !important;
26
- }
27
-
28
- .favorite {
29
- color: #c10156 !important;
30
- }
31
-
32
- .disabled,
33
- .disabled i {
34
- color: #777;
35
- }
36
-
37
- .enabled {
38
- color: var(--font-color);
39
- }
40
-
41
- .selected {
42
- background-color: #111111;
43
- }
44
-
45
- .material-icons {
46
- color: var(--font-color);
47
- }
48
-
49
- .material-icons-rounded {
50
- .material-icons {
51
- &:hover {
52
- @apply text-[#bdbdbd] bg-[#111111];
53
- }
54
- }
55
- }
56
-
57
- /* ==========================================================================
58
- App Button
59
- ========================================================================== */
60
-
61
- .app-btn {
62
- @apply bg-[#121212];
63
- span {
64
- @apply text-[#fff];
65
- }
66
- &:hover {
67
- @apply bg-[#1a1a1a];
68
- }
69
- }
70
-
71
- input:not(.form-control-hidden):not([type='range']),
72
- select:not(.form-control-hidden) {
73
- border: 1px solid #ffffff;
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: #1a1a1a !important;
94
- }
95
-
96
- // Toolbar switch text. latest-news
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
- background: #000;
112
- }
113
-
114
- input[type='range']::-webkit-slider-runnable-track {
115
- background: #474747;
116
- }
117
-
118
- input[type='range']::-webkit-slider-thumb {
119
- background: #fff;
120
- border: 3px solid #2e2e2e;
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: #0a0a0a;
129
- i.material-icons {
130
- @apply text-white;
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: #fff;
170
- }
171
- > details {
172
- &::after {
173
- background-color: #fff;
174
- }
175
- &::before {
176
- background-color: #fff;
177
- }
178
- }
179
- ul {
180
- li {
181
- &::after {
182
- background-color: #fff;
183
- }
184
- &::before {
185
- background-color: #fff;
186
- }
187
- span {
188
- color: #fff;
189
- }
190
- span:last-child {
191
- color: #8b8b8b;
192
- }
193
- }
194
- }
195
- }
196
-
197
- .table {
198
- color: var(--font-color);
199
- thead > tr {
200
- background-color: var(--background-color);
201
- }
202
- &.striped > tbody > tr:nth-child(odd) {
203
- @apply bg-midnight;
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: #fff;
215
- background-color: var(--background-color);
216
- border: 1px solid var(--border-color);
217
- .input-group-checkbox {
218
- background-color: #151515;
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-black border-2 border-[#0a0a0a];
250
- &:hover {
251
- @apply bg-[#111111];
252
- }
253
- }
254
- }
255
-
256
- /* ==========================================================================
257
- Typescale
258
- ========================================================================== */
259
-
260
- .typescale {
261
- &__label {
262
- @apply bg-[#0a0a0a];
263
- }
264
- &__label-text {
265
- @apply text-white;
266
- }
267
- &__wrapper {
268
- @apply bg-black;
269
- &.active {
270
- @apply bg-[#0a0a0a];
271
- }
272
- }
273
- }
274
-
275
- /* ==========================================================================
276
- Modal
277
- ========================================================================== */
278
-
279
- .modal {
280
- &__content {
281
- @apply bg-midnight;
282
- }
283
- }
284
- }