@xiwebdesign/xicms-core 5.2.0 → 5.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 (92) hide show
  1. package/dist/XiCMSProvider.d.ts +11 -2
  2. package/dist/XiCMSProvider.js +10 -5
  3. package/dist/XiCMSProvider.js.map +1 -1
  4. package/dist/admin/blockEditors/GenericEditor.js +18 -8
  5. package/dist/admin/blockEditors/GenericEditor.js.map +1 -1
  6. package/dist/admin/blockEditors/index.js +2 -2
  7. package/dist/admin/blockEditors/index.js.map +1 -1
  8. package/dist/admin/customBlocks/CustomBlocksPanel.js +12 -2
  9. package/dist/admin/customBlocks/CustomBlocksPanel.js.map +1 -1
  10. package/dist/admin/lib/pagesClient.js +4 -1
  11. package/dist/admin/lib/pagesClient.js.map +1 -1
  12. package/dist/admin/lib/upload.js +14 -7
  13. package/dist/admin/lib/upload.js.map +1 -1
  14. package/dist/admin/media/MediaManager.js +60 -28
  15. package/dist/admin/media/MediaManager.js.map +1 -1
  16. package/dist/admin/media/MediaPicker.js +25 -15
  17. package/dist/admin/media/MediaPicker.js.map +1 -1
  18. package/dist/admin/pages/PageEditor.d.ts +2 -1
  19. package/dist/admin/pages/PageEditor.js +16 -2
  20. package/dist/admin/pages/PageEditor.js.map +1 -1
  21. package/dist/admin/pages/PagesPanel.js +9 -5
  22. package/dist/admin/pages/PagesPanel.js.map +1 -1
  23. package/dist/admin/visual/VisualEditor.js +11 -2
  24. package/dist/admin/visual/VisualEditor.js.map +1 -1
  25. package/dist/agentFiles/files.d.ts +15 -3
  26. package/dist/agentFiles/files.js +57 -0
  27. package/dist/agentFiles/files.js.map +1 -1
  28. package/dist/auth/AuthProvider.js +3 -3
  29. package/dist/auth/AuthProvider.js.map +1 -1
  30. package/dist/blocks/builtins/Booking.js +1 -1
  31. package/dist/blocks/builtins/Booking.js.map +1 -1
  32. package/dist/blocks/builtins/Columns.js +1 -1
  33. package/dist/blocks/builtins/Columns.js.map +1 -1
  34. package/dist/blocks/builtins/Embed.js +2 -0
  35. package/dist/blocks/builtins/Embed.js.map +1 -1
  36. package/dist/blocks/builtins/Gallery.js +2 -2
  37. package/dist/blocks/builtins/Gallery.js.map +1 -1
  38. package/dist/blocks/builtins/Hero.js +46 -7
  39. package/dist/blocks/builtins/Hero.js.map +1 -1
  40. package/dist/blocks/builtins/ImageBlock.js +14 -3
  41. package/dist/blocks/builtins/ImageBlock.js.map +1 -1
  42. package/dist/blocks/builtins/Jobs.d.ts +2 -2
  43. package/dist/blocks/builtins/Jobs.js +1 -1
  44. package/dist/blocks/builtins/Jobs.js.map +1 -1
  45. package/dist/blocks/builtins/Newsletter.js +18 -5
  46. package/dist/blocks/builtins/Newsletter.js.map +1 -1
  47. package/dist/blocks/builtins/Pricing.js +3 -1
  48. package/dist/blocks/builtins/Pricing.js.map +1 -1
  49. package/dist/blocks/builtins/Sections.js +4 -4
  50. package/dist/blocks/builtins/Sections.js.map +1 -1
  51. package/dist/blocks/builtins/Slider.js +9 -4
  52. package/dist/blocks/builtins/Slider.js.map +1 -1
  53. package/dist/blocks/builtins/SymbolRef.js.map +1 -1
  54. package/dist/blocks/builtins/Video.js +1 -1
  55. package/dist/blocks/builtins/Video.js.map +1 -1
  56. package/dist/blocks/builtins/Widgets.js +2 -1
  57. package/dist/blocks/builtins/Widgets.js.map +1 -1
  58. package/dist/components/PageView.js +4 -3
  59. package/dist/components/PageView.js.map +1 -1
  60. package/dist/demo/index.d.ts +7 -0
  61. package/dist/demo/index.js +23 -0
  62. package/dist/demo/index.js.map +1 -0
  63. package/dist/index.d.ts +2 -4
  64. package/dist/index.js +0 -20
  65. package/dist/index.js.map +1 -1
  66. package/dist/modules/registry.d.ts +3 -4
  67. package/dist/modules/registry.js +2 -3
  68. package/dist/modules/registry.js.map +1 -1
  69. package/dist/schema/blocks.d.ts +27 -90
  70. package/dist/schema/blocks.js +4 -6
  71. package/dist/schema/blocks.js.map +1 -1
  72. package/dist/schema/settings.d.ts +1 -34
  73. package/dist/schema/settings.js +2 -8
  74. package/dist/schema/settings.js.map +1 -1
  75. package/dist/schema/siteConfig.d.ts +3 -71
  76. package/dist/schema/siteConfig.js +3 -8
  77. package/dist/schema/siteConfig.js.map +1 -1
  78. package/dist/schema/symbols.d.ts +2 -2
  79. package/dist/schema/symbols.js.map +1 -1
  80. package/dist/server/index.d.ts +1 -1
  81. package/dist/server/index.js +2 -0
  82. package/dist/server/index.js.map +1 -1
  83. package/dist/server/pages.d.ts +23 -3
  84. package/dist/server/pages.js +37 -3
  85. package/dist/server/pages.js.map +1 -1
  86. package/dist/server/seo.js +5 -3
  87. package/dist/server/seo.js.map +1 -1
  88. package/dist/settings/useSiteSettings.d.ts +15 -3
  89. package/dist/settings/useSiteSettings.js +26 -5
  90. package/dist/settings/useSiteSettings.js.map +1 -1
  91. package/dist/styles.css +64 -9
  92. package/package.json +6 -2
package/dist/styles.css CHANGED
@@ -370,6 +370,13 @@
370
370
  .xicms-ve__inserter {
371
371
  flex-wrap: wrap;
372
372
  }
373
+ /* Touch-raakdoelen: de blok-toolbarknoppen (✏️ ↑ ↓ ⎘ 🗑) waren op een telefoon te klein om
374
+ betrouwbaar te raken (WCAG raakdoel ≥ 44px op mobiel). */
375
+ .xicms-ve-block__toolbar button {
376
+ min-width: 40px;
377
+ min-height: 40px;
378
+ font-size: 1rem;
379
+ }
373
380
  .xicms-ve__inserter-select {
374
381
  width: 100%;
375
382
  }
@@ -814,6 +821,46 @@
814
821
  background: linear-gradient(to top, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.18) 45%, transparent 75%);
815
822
  pointer-events: none;
816
823
  }
824
+ /* Astryx-LINK-knoppen: expliciete labelkleur. Het label erft anders de linkkleur van de site — een
825
+ globale `a { color: … }` in globals.css (veelvoorkomend) maakt het label dan onleesbaar
826
+ (bv. indigo op accent-groen). Primary hoort on-accent; secondary/ghost horen accent. */
827
+ .xicms-root a.astryx-button[data-variant="primary"],
828
+ .xicms-root a.astryx-button[data-variant="destructive"] {
829
+ color: var(--color-on-accent, #ffffff);
830
+ }
831
+ .xicms-root a.astryx-button[data-variant="secondary"],
832
+ .xicms-root a.astryx-button[data-variant="ghost"] {
833
+ color: var(--color-accent, inherit);
834
+ }
835
+ /* Astryx-knoppen op een foto/video-hero: ghost/secondary zijn daar standaard onleesbaar
836
+ (accentkleurige tekst zonder vlak). Wit met subtiele rand — zelfde look als de oude outline. */
837
+ .xicms-hero[data-media="cover"] .xicms-hero__buttons .astryx-button[data-variant="ghost"],
838
+ .xicms-hero[data-media="cover"] .xicms-hero__buttons .astryx-button[data-variant="secondary"] {
839
+ color: #fff;
840
+ border: 1px solid rgba(255, 255, 255, 0.75);
841
+ background: rgba(255, 255, 255, 0.08);
842
+ }
843
+ .xicms-hero[data-media="cover"] .xicms-hero__buttons .astryx-button[data-variant="ghost"]:hover,
844
+ .xicms-hero[data-media="cover"] .xicms-hero__buttons .astryx-button[data-variant="secondary"]:hover {
845
+ background: rgba(255, 255, 255, 0.18);
846
+ }
847
+ /* Pauze-/afspeelknop voor de achtergrondvideo (WCAG 2.2.2: bewegende content moet stopbaar zijn). */
848
+ .xicms-hero__videotoggle {
849
+ position: absolute;
850
+ right: 14px;
851
+ bottom: 14px;
852
+ z-index: 2;
853
+ width: 40px;
854
+ height: 40px;
855
+ border: 0;
856
+ border-radius: 999px;
857
+ background: rgba(15, 23, 42, 0.65);
858
+ color: #fff;
859
+ font-size: 0.95rem;
860
+ cursor: pointer;
861
+ }
862
+ .xicms-hero__videotoggle:hover { background: rgba(15, 23, 42, 0.85); }
863
+ .xicms-hero__videotoggle:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
817
864
  .xicms-hero__eyebrow {
818
865
  display: inline-block;
819
866
  text-transform: uppercase;
@@ -1034,6 +1081,13 @@
1034
1081
  grid-template-columns: 1fr !important;
1035
1082
  }
1036
1083
  }
1084
+ /* Tablet: 3-4 kolommen squishen tussen 641-959px — terug naar 2 (mobiel heeft al 1). */
1085
+ @media (min-width: 641px) and (max-width: 959px) {
1086
+ .xicms-columns[data-cols="3"],
1087
+ .xicms-columns[data-cols="4"] {
1088
+ grid-template-columns: repeat(2, 1fr) !important;
1089
+ }
1090
+ }
1037
1091
  .xicms-newslist {
1038
1092
  margin: 1.5rem 0;
1039
1093
  }
@@ -2288,17 +2342,10 @@
2288
2342
  }
2289
2343
 
2290
2344
  /* ════════════════════ Diensten / kaarten ════════════════════ */
2345
+ /* NB: het grid zelf komt van Astryx Grid (Cards.tsx) — de oude .xicms-cards__grid-regels waren
2346
+ dode code (niets emitte die class meer) en zijn verwijderd. */
2291
2347
  .xicms-cards__heading { margin: 0 0 0.25rem; }
2292
2348
  .xicms-cards__intro { margin: 0 0 1.25rem; opacity: 0.8; }
2293
- .xicms-cards__grid { display: grid; gap: 1rem; }
2294
- @media (min-width: 640px) {
2295
- .xicms-cards__grid[data-cols="2"] { grid-template-columns: repeat(2, 1fr); }
2296
- .xicms-cards__grid[data-cols="3"] { grid-template-columns: repeat(3, 1fr); }
2297
- .xicms-cards__grid[data-cols="4"] { grid-template-columns: repeat(2, 1fr); }
2298
- }
2299
- @media (min-width: 960px) {
2300
- .xicms-cards__grid[data-cols="4"] { grid-template-columns: repeat(4, 1fr); }
2301
- }
2302
2349
  .xicms-cards__card {
2303
2350
  display: block;
2304
2351
  padding: 1.25rem;
@@ -2379,6 +2426,14 @@
2379
2426
 
2380
2427
  /* ════════════════════ Carrousel / slider ════════════════════ */
2381
2428
  .xicms-slider { position: relative; }
2429
+ /* Lege staat in de editor (verse slider zonder slides was onzichtbaar). */
2430
+ .xicms-slider--empty {
2431
+ padding: 2.5rem 1rem;
2432
+ text-align: center;
2433
+ border: 2px dashed var(--xicms-border, rgba(0, 0, 0, 0.15));
2434
+ border-radius: var(--xicms-radius, 12px);
2435
+ opacity: 0.75;
2436
+ }
2382
2437
  .xicms-slider__viewport { position: relative; overflow: hidden; border-radius: var(--xicms-radius, 12px); }
2383
2438
  .xicms-slider__track { display: flex; transition: transform 0.4s ease; }
2384
2439
  @media (prefers-reduced-motion: reduce) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiwebdesign/xicms-core",
3
- "version": "5.2.0",
3
+ "version": "5.4.0",
4
4
  "description": "XiCMS engine: gestructureerde content, pagina's, draft/publish, admin (TipTap+Radix), SEO en beveiliging voor klantsites.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -42,7 +42,11 @@
42
42
  },
43
43
  "./layers.css": "./dist/layers.css",
44
44
  "./styles.css": "./dist/styles.css",
45
- "./admin.css": "./dist/admin.css"
45
+ "./admin.css": "./dist/admin.css",
46
+ "./demo": {
47
+ "types": "./dist/demo/index.d.ts",
48
+ "import": "./dist/demo/index.js"
49
+ }
46
50
  },
47
51
  "files": [
48
52
  "dist"