zerocodejs 1.0.1-beta.0 → 1.0.1-beta.10

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 (68) hide show
  1. package/README.ja.md +164 -0
  2. package/README.md +98 -93
  3. package/dist/components/ZeroCodeEditor.vue.d.ts.map +1 -1
  4. package/dist/core/composables/useZeroCodeRenderer.d.ts.map +1 -1
  5. package/dist/core/utils/edit-panel-fields.d.ts +17 -0
  6. package/dist/core/utils/edit-panel-fields.d.ts.map +1 -0
  7. package/dist/core/utils/template-processor.d.ts +6 -1
  8. package/dist/core/utils/template-processor.d.ts.map +1 -1
  9. package/dist/features/editor/components/EditPanel.vue.d.ts +1 -0
  10. package/dist/features/editor/components/EditPanel.vue.d.ts.map +1 -1
  11. package/dist/features/editor/composables/useEditMode.d.ts +4 -16
  12. package/dist/features/editor/composables/useEditMode.d.ts.map +1 -1
  13. package/dist/features/parts-manager/components/PartsManagerPanel.vue.d.ts.map +1 -1
  14. package/dist/features/parts-manager/composables/usePartsManager.d.ts +1 -0
  15. package/dist/features/parts-manager/composables/usePartsManager.d.ts.map +1 -1
  16. package/dist/features/preview/PreviewArea.vue.d.ts.map +1 -1
  17. package/dist/i18n/index.d.ts +18 -0
  18. package/dist/i18n/index.d.ts.map +1 -1
  19. package/dist/i18n/locales/en.d.ts +9 -0
  20. package/dist/i18n/locales/en.d.ts.map +1 -1
  21. package/dist/i18n/locales/ja.d.ts +9 -0
  22. package/dist/i18n/locales/ja.d.ts.map +1 -1
  23. package/dist/zerocode.es.js +13733 -14317
  24. package/dist/zerocode.umd.js +57 -62
  25. package/dist/zerocodejs.css +1 -1
  26. package/package.json +6 -5
  27. package/dist/__tests__/fixtures/sample-data.d.ts +0 -23
  28. package/dist/__tests__/fixtures/sample-data.d.ts.map +0 -1
  29. package/dist/__tests__/fixtures/sample-templates.d.ts +0 -25
  30. package/dist/__tests__/fixtures/sample-templates.d.ts.map +0 -1
  31. package/dist/core/utils/component-initializer.test.d.ts +0 -2
  32. package/dist/core/utils/component-initializer.test.d.ts.map +0 -1
  33. package/dist/core/utils/field-extractor.test.d.ts +0 -2
  34. package/dist/core/utils/field-extractor.test.d.ts.map +0 -1
  35. package/dist/core/utils/image-utils.test.d.ts +0 -2
  36. package/dist/core/utils/image-utils.test.d.ts.map +0 -1
  37. package/dist/core/utils/path-utils.test.d.ts +0 -2
  38. package/dist/core/utils/path-utils.test.d.ts.map +0 -1
  39. package/dist/core/utils/storage.test.d.ts +0 -2
  40. package/dist/core/utils/storage.test.d.ts.map +0 -1
  41. package/dist/core/utils/template-processor.test.d.ts +0 -2
  42. package/dist/core/utils/template-processor.test.d.ts.map +0 -1
  43. package/dist/core/utils/template-utils.test.d.ts +0 -2
  44. package/dist/core/utils/template-utils.test.d.ts.map +0 -1
  45. package/dist/core/utils/validation.test.d.ts +0 -2
  46. package/dist/core/utils/validation.test.d.ts.map +0 -1
  47. package/dist/css/common.css +0 -677
  48. package/dist/css/docs.css +0 -396
  49. package/dist/css/index.css +0 -1039
  50. package/dist/css/page.css +0 -290
  51. package/dist/css/sample.css +0 -26
  52. package/dist/css/site-common.css +0 -218
  53. package/dist/footer.html +0 -10
  54. package/dist/header.html +0 -10
  55. package/dist/images/customer-avatar.jpg +0 -0
  56. package/dist/images/default-avatar.jpg +0 -0
  57. package/dist/images/default.jpg +0 -0
  58. package/dist/images/hero-bg.jpg +0 -0
  59. package/dist/images/kv_image.jpg +0 -0
  60. package/dist/images/page-specific-hero.jpg +0 -0
  61. package/dist/images/sample-1.jpg +0 -0
  62. package/dist/images/sample-2.jpg +0 -0
  63. package/dist/images/sample-3.jpg +0 -0
  64. package/dist/images/zcode_top_01.png +0 -0
  65. package/dist/js/accordion.js +0 -24
  66. package/dist/js/common.js +0 -1093
  67. package/dist/zerocode.es.js.map +0 -1
  68. package/dist/zerocode.umd.js.map +0 -1
@@ -1,677 +0,0 @@
1
- /**
2
- * ZeroCode.js - 共通CSS
3
- * リセットCSS + 共通スタイル
4
- */
5
-
6
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap');
7
-
8
- /* ========================================
9
- CSS Reset
10
- ======================================== */
11
- *,
12
- *::before,
13
- *::after {
14
- box-sizing: border-box;
15
- margin: 0;
16
- padding: 0;
17
- }
18
-
19
- html {
20
- -webkit-text-size-adjust: 100%;
21
- -moz-text-size-adjust: 100%;
22
- text-size-adjust: 100%;
23
- }
24
-
25
- body {
26
- margin: 0;
27
- padding: 0;
28
- font-family:
29
- 'Inter',
30
- 'Noto Sans JP',
31
- -apple-system,
32
- BlinkMacSystemFont,
33
- 'Segoe UI',
34
- Roboto,
35
- 'Hiragino Sans',
36
- 'Hiragino Kaku Gothic ProN',
37
- 'Yu Gothic',
38
- 'Meiryo',
39
- sans-serif;
40
- line-height: 1.5;
41
- -webkit-font-smoothing: antialiased;
42
- -moz-osx-font-smoothing: grayscale;
43
- container-type: inline-size;
44
- container-name: viewport;
45
- }
46
-
47
- h1,
48
- h2,
49
- h3,
50
- h4,
51
- h5,
52
- h6 {
53
- font-size: inherit;
54
- font-weight: inherit;
55
- }
56
-
57
- ul,
58
- ol {
59
- list-style: none;
60
- }
61
-
62
- a {
63
- text-decoration: none;
64
- color: inherit;
65
- }
66
-
67
- button {
68
- font-family: inherit;
69
- font-size: inherit;
70
- border: none;
71
- background: none;
72
- cursor: pointer;
73
- }
74
-
75
- img,
76
- picture,
77
- video,
78
- canvas,
79
- svg {
80
- display: block;
81
- max-width: 100%;
82
- }
83
-
84
- input,
85
- textarea,
86
- select {
87
- font-family: inherit;
88
- font-size: inherit;
89
- }
90
-
91
- /* ========================================
92
- 共通レイアウト(BEM / l-*)
93
- ======================================== */
94
-
95
- .l-header,
96
- .l-footer {
97
- padding: 20px;
98
- border-radius: 0;
99
- color: white;
100
- text-align: center;
101
- }
102
-
103
- .l-header h1,
104
- .l-footer h1 {
105
- margin: 0 0 10px 0;
106
- font-size: 24px;
107
- font-weight: 700;
108
- }
109
-
110
- .l-header p,
111
- .l-footer p {
112
- margin: 0;
113
- opacity: 0.9;
114
- font-size: 14px;
115
- }
116
- /* CMS用ヘッダーとフッター */
117
- .l-header--cms,
118
- .l-footer--cms {
119
- background: #3498db;
120
- }
121
-
122
- /* Dev(エンジニア用) */
123
- .l-header--dev,
124
- .l-footer--dev {
125
- background: #e67e22;
126
- }
127
-
128
- /* Light DOM */
129
- .l-header--light-dom,
130
- .l-footer--light-dom {
131
- background: #16a085;
132
- }
133
-
134
- /* Preview(表示専用) */
135
- .l-header--preview,
136
- .l-footer--preview {
137
- background: #9b59b6;
138
- }
139
-
140
- /* Pub(公開用) */
141
- .l-header--pub,
142
- .l-footer--pub {
143
- background: #27ae60;
144
- }
145
-
146
- /* SSR(SSR比較) */
147
- .l-header--ssr,
148
- .l-footer--ssr {
149
- background: #2ecc71;
150
- }
151
-
152
- .l-container {
153
- max-width: 1200px;
154
- margin: 0 auto;
155
- padding: 40px 20px;
156
- container-type: inline-size;
157
- container-name: page;
158
- }
159
-
160
- /* ========================================
161
- 共通パーツ(BEM / c-*)
162
- ======================================== */
163
-
164
- :root {
165
- --c-color-black: #0b1220;
166
- --c-color-white: #fff;
167
- --c-color-red: #2563eb;
168
- --c-color-gray: #64748b;
169
- --c-color-gray-2: rgba(15, 23, 42, 0.14);
170
- --c-color-bg-soft: rgba(15, 23, 42, 0.03);
171
- --c-radius: 12px;
172
- --c-shadow: 0 10px 30px rgba(2, 6, 23, 0.08);
173
- --c-transition: 160ms ease;
174
- }
175
-
176
- .c-heading {
177
- margin-top: 40px;
178
- margin-bottom: 22px;
179
- }
180
-
181
- .c-heading__title {
182
- overflow: hidden;
183
- position: relative;
184
- color: var(--c-color-black);
185
- font-weight: 700;
186
- letter-spacing: -0.01em;
187
- }
188
-
189
- .c-heading--h1 .c-heading__title {
190
- font-size: 36px;
191
- line-height: 1.25;
192
- padding-bottom: 14px;
193
- }
194
-
195
- .c-heading--h1 .c-heading__title::before {
196
- content: '';
197
- position: absolute;
198
- bottom: 2px;
199
- left: 0;
200
- width: 96px;
201
- height: 2px;
202
- background-color: rgba(11, 18, 32, 0.7);
203
- }
204
-
205
- .c-heading--h1 .c-heading__title::after {
206
- content: '';
207
- position: absolute;
208
- bottom: 0;
209
- left: 0;
210
- width: 28px;
211
- height: 3px;
212
- background-color: var(--c-color-red);
213
- }
214
-
215
- .c-heading--h2 .c-heading__title {
216
- font-size: 28px;
217
- line-height: 1.3;
218
- padding-bottom: 12px;
219
- }
220
-
221
- .c-heading--h2 .c-heading__title::after {
222
- content: '';
223
- position: absolute;
224
- bottom: 0;
225
- left: 0;
226
- width: 52px;
227
- height: 2px;
228
- background-color: var(--c-color-red);
229
- }
230
-
231
- .c-heading--h3 .c-heading__title {
232
- font-size: 20px;
233
- line-height: 1.35;
234
- }
235
-
236
- .c-heading--h4 .c-heading__title {
237
- font-size: 18px;
238
- line-height: 1.4;
239
- }
240
-
241
- .c-heading--h5 .c-heading__title {
242
- font-size: 16px;
243
- line-height: 1.45;
244
- }
245
-
246
- .c-heading--h6 .c-heading__title {
247
- font-size: 14px;
248
- line-height: 1.5;
249
- }
250
-
251
- .c-text {
252
- margin-top: 24px;
253
- color: var(--c-color-gray);
254
- font-size: 16px;
255
- line-height: 1.8;
256
- }
257
-
258
- .c-text p + p {
259
- margin-top: 0.769em;
260
- }
261
-
262
- .c-box {
263
- margin-top: 24px;
264
- border: 1px solid var(--c-color-gray-2);
265
- background-color: var(--c-color-white);
266
- border-radius: var(--c-radius);
267
- box-shadow: var(--c-shadow);
268
- }
269
-
270
- .c-box__inner {
271
- padding: 24px;
272
- }
273
-
274
- .c-box__heading {
275
- font-weight: 700;
276
- font-size: 16px;
277
- line-height: 1.5;
278
- margin-bottom: 14px;
279
- color: var(--c-color-black);
280
- }
281
-
282
- .c-box__body {
283
- font-size: 16px;
284
- line-height: 1.8;
285
- color: var(--c-color-gray);
286
- }
287
-
288
- .c-box--tone-neutral {
289
- border-color: var(--c-color-gray-2);
290
- background-color: var(--c-color-white);
291
- }
292
-
293
- .c-box--tone-primary {
294
- border-color: rgba(37, 99, 235, 0.35);
295
- background-color: rgba(37, 99, 235, 0.06);
296
- }
297
-
298
- .c-box--tone-accent {
299
- border-color: rgba(15, 23, 42, 0.12);
300
- background-color: rgba(15, 23, 42, 0.03);
301
- }
302
-
303
- .c-media {
304
- margin-top: 24px;
305
- display: flex;
306
- gap: 24px;
307
- align-items: center;
308
- border: 1px solid var(--c-color-gray-2);
309
- background-color: var(--c-color-white);
310
- padding: 24px;
311
- border-radius: var(--c-radius);
312
- box-shadow: var(--c-shadow);
313
- }
314
-
315
- .c-media--dir-reverse {
316
- flex-direction: row-reverse;
317
- }
318
-
319
- .c-media--valign-top {
320
- align-items: flex-start;
321
- }
322
-
323
- .c-media--valign-center {
324
- align-items: center;
325
- }
326
-
327
- .c-media--valign-bottom {
328
- align-items: flex-end;
329
- }
330
-
331
- .c-media__image {
332
- flex: 0 0 auto;
333
- width: 42%;
334
- max-width: 520px;
335
- }
336
-
337
- .c-media__img {
338
- width: 100%;
339
- height: auto;
340
- border: 1px solid var(--c-color-gray-2);
341
- background: var(--c-color-white);
342
- border-radius: calc(var(--c-radius) - 4px);
343
- }
344
-
345
- .c-media__content {
346
- flex: 1 1 auto;
347
- min-width: 0;
348
- }
349
-
350
- .c-media__heading {
351
- font-weight: 700;
352
- font-size: 18px;
353
- line-height: 1.5;
354
- margin-bottom: 12px;
355
- color: var(--c-color-black);
356
- }
357
-
358
- .c-media__text {
359
- font-size: 16px;
360
- line-height: 1.8;
361
- color: var(--c-color-gray);
362
- }
363
-
364
- .c-media__actions {
365
- margin-top: 20px;
366
- }
367
-
368
- .c-image {
369
- margin-top: 50px;
370
- margin-bottom: 50px;
371
- display: block;
372
- }
373
-
374
- .c-image__media {
375
- overflow: hidden;
376
- border: 1px solid var(--c-color-gray-2);
377
- background: var(--c-color-white);
378
- border-radius: var(--c-radius);
379
- }
380
-
381
- .c-image__img {
382
- width: 100%;
383
- height: auto;
384
- }
385
-
386
- .c-image__caption {
387
- margin-top: 10px;
388
- color: var(--c-color-gray);
389
- font-size: 13px;
390
- line-height: 1.692;
391
- }
392
-
393
- .c-image--align-left {
394
- text-align: left;
395
- }
396
-
397
- .c-image--align-center {
398
- text-align: center;
399
- }
400
-
401
- .c-image--align-right {
402
- text-align: right;
403
- }
404
-
405
- .c-table {
406
- margin-top: 24px;
407
- border: 1px solid var(--c-color-gray-2);
408
- background: var(--c-color-white);
409
- border-radius: var(--c-radius);
410
- overflow: hidden;
411
- box-shadow: var(--c-shadow);
412
- }
413
-
414
- .c-table__caption {
415
- padding: 14px 16px;
416
- color: var(--c-color-gray);
417
- font-size: 14px;
418
- line-height: 1.5;
419
- border-bottom: 1px solid var(--c-color-gray-2);
420
- }
421
-
422
- .c-table__row {
423
- display: grid;
424
- grid-auto-flow: column;
425
- grid-auto-columns: 1fr;
426
- }
427
-
428
- .c-table__cell {
429
- padding: 15px;
430
- color: var(--c-color-black);
431
- font-size: 14px;
432
- line-height: 1.5;
433
- border-bottom: 1px solid var(--c-color-gray-2);
434
- border-right: 1px solid var(--c-color-gray-2);
435
- min-width: 0;
436
- background: var(--c-color-white);
437
- }
438
-
439
- .c-table__row > .c-table__cell:last-child {
440
- border-right: none;
441
- }
442
-
443
- .c-table__cell--head {
444
- font-weight: 700;
445
- color: var(--c-color-white);
446
- background: var(--c-color-black);
447
- }
448
-
449
- .c-table__cell--align-left {
450
- text-align: left;
451
- }
452
-
453
- .c-table__cell--align-center {
454
- text-align: center;
455
- }
456
-
457
- .c-table__cell--align-right {
458
- text-align: right;
459
- }
460
-
461
- .c-table--style-striped .c-table__body .c-table__row:nth-child(even) .c-table__cell {
462
- background: var(--c-color-bg-soft);
463
- }
464
-
465
- .c-table--style-bordered .c-table__cell {
466
- border-color: rgba(15, 23, 42, 0.2);
467
- }
468
-
469
- .c-actions {
470
- display: block;
471
- }
472
-
473
- .c-actions--align-left {
474
- text-align: left;
475
- }
476
-
477
- .c-actions--align-center {
478
- text-align: center;
479
- }
480
-
481
- .c-actions--align-right {
482
- text-align: right;
483
- }
484
-
485
- .c-button {
486
- display: inline-flex;
487
- align-items: center;
488
- justify-content: center;
489
- gap: 8px;
490
- width: auto;
491
- min-height: 44px;
492
- padding: 10px 14px;
493
- border-radius: 10px;
494
- font-weight: 700;
495
- font-size: 14px;
496
- line-height: 1.5;
497
- background-color: var(--c-color-white);
498
- border: 1px solid var(--c-color-gray-2);
499
- transition: var(--c-transition);
500
- color: var(--c-color-black);
501
- }
502
-
503
- .c-button--style-primary {
504
- background-color: var(--c-color-red);
505
- border-color: var(--c-color-red);
506
- color: var(--c-color-white);
507
- }
508
-
509
- .c-button--style-primary:hover {
510
- background-color: #1d4ed8;
511
- border-color: #1d4ed8;
512
- }
513
-
514
- .c-button--style-secondary {
515
- border-color: rgba(37, 99, 235, 0.35);
516
- color: var(--c-color-red);
517
- background-color: rgba(37, 99, 235, 0.06);
518
- }
519
-
520
- .c-button--style-secondary:hover {
521
- background-color: rgba(37, 99, 235, 0.1);
522
- }
523
-
524
- .c-button--style-text {
525
- border-color: transparent;
526
- background-color: transparent;
527
- width: auto;
528
- min-height: auto;
529
- padding: 0;
530
- text-decoration: underline;
531
- color: var(--c-color-red);
532
- }
533
-
534
- .c-link {
535
- position: relative;
536
- font-weight: 700;
537
- color: var(--c-color-red);
538
- text-decoration: underline;
539
- text-underline-offset: 3px;
540
- transition: var(--c-transition);
541
- }
542
-
543
- .c-link:hover {
544
- color: #1d4ed8;
545
- }
546
-
547
- @container viewport (max-width: 640px) {
548
- .l-container {
549
- padding: 28px 16px;
550
- }
551
-
552
- .c-heading {
553
- margin-top: 40px;
554
- margin-bottom: 30px;
555
- }
556
-
557
- .c-heading--h1 .c-heading__title {
558
- font-size: 28px;
559
- padding-bottom: 12px;
560
- }
561
-
562
- .c-heading--h2 .c-heading__title {
563
- font-size: 22px;
564
- padding-bottom: 12px;
565
- }
566
-
567
- .c-heading--h3 .c-heading__title {
568
- font-size: 18px;
569
- }
570
-
571
- .c-heading--h4 .c-heading__title {
572
- font-size: 16px;
573
- }
574
-
575
- .c-heading--h5 .c-heading__title {
576
- font-size: 14px;
577
- }
578
-
579
- .c-heading--h6 .c-heading__title {
580
- font-size: 13px;
581
- }
582
-
583
- .c-media {
584
- flex-direction: column;
585
- align-items: stretch;
586
- }
587
-
588
- .c-media__image {
589
- width: 100%;
590
- max-width: none;
591
- }
592
-
593
- .c-box__inner {
594
- padding: 20px;
595
- }
596
-
597
- .c-image {
598
- margin-top: 30px;
599
- margin-bottom: 30px;
600
- }
601
- }
602
-
603
- /* リセットボタン(保存ボタンの横に配置) */
604
- .reset-controls-fixed {
605
- position: fixed;
606
- bottom: 20px;
607
- left: 160px; /* 保存ボタンの右側に配置(保存ボタンの幅 + gapを考慮) */
608
- display: flex;
609
- align-items: center;
610
- gap: 8px;
611
- padding: 12px 20px;
612
- background: rgba(255, 255, 255, 0.8);
613
- border-radius: 8px;
614
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
615
- z-index: 1000;
616
- backdrop-filter: blur(6px);
617
- }
618
-
619
- .reset-btn {
620
- display: flex;
621
- align-items: center;
622
- gap: 6px;
623
- padding: 8px 16px;
624
- background-color: #dc3545;
625
- color: white;
626
- border: none;
627
- border-radius: 6px;
628
- cursor: pointer;
629
- font-size: 14px;
630
- font-weight: 500;
631
- transition: background-color 0.2s;
632
- white-space: nowrap;
633
- }
634
-
635
- .reset-btn:hover {
636
- background-color: #c82333;
637
- }
638
-
639
- .reset-btn:active {
640
- background-color: #bd2130;
641
- }
642
-
643
- .reset-btn svg {
644
- flex-shrink: 0;
645
- }
646
-
647
- /* モバイル対応 */
648
- @media (max-width: 768px) {
649
- .reset-controls-fixed {
650
- bottom: 20px;
651
- left: 72px; /* 保存ボタン(48px)の右側に配置、gap: 8px */
652
- padding: 0;
653
- background: transparent;
654
- box-shadow: none;
655
- }
656
-
657
- .reset-btn {
658
- width: 48px;
659
- height: 48px;
660
- padding: 0;
661
- border-radius: 50%;
662
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
663
- display: flex;
664
- align-items: center;
665
- justify-content: center;
666
- gap: 0;
667
- }
668
-
669
- .reset-btn span {
670
- display: none;
671
- }
672
-
673
- .reset-btn svg {
674
- width: 20px;
675
- height: 20px;
676
- }
677
- }