@xiwebdesign/xicms-core 7.15.0 → 7.16.1

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.
package/dist/styles.css CHANGED
@@ -346,7 +346,7 @@
346
346
  productformulier vraagt — de pagina blijft de hoofdzaak. z-index boven de publiceerknop
347
347
  zou de knop verstoppen; erónder blijven (10001) en niet de volle breedte pakken is genoeg. */
348
348
  position: fixed;
349
- top: 2.6rem;
349
+ top: 0;
350
350
  right: 0;
351
351
  bottom: var(--xicms-bottombar, 0px);
352
352
  width: clamp(360px, 28vw, 480px);
@@ -415,7 +415,8 @@
415
415
  /* Zolang de onder-lade open is heeft de publiceerknop geen plek: hij lag er qua z-index
416
416
  ónder (onklikbaar) en erboven zou hij het formulier afdekken. De lade heeft zijn eigen
417
417
  ✓ Opgeslagen/✕ Sluiten; publiceren doe je daarna — de knop komt terug zodra de lade sluit. */
418
- :root:has(.xicms-ve__panel) .xicms-ve-publiceer {
418
+ :root:has(.xicms-ve__panel) .xicms-ve-publiceer,
419
+ :root:has(.xicms-ve__panel) .xicms-ve-verwerp {
419
420
  display: none;
420
421
  }
421
422
  /* Telefoon: de lade komt van onderen (een zijlade van 360px zou het hele scherm zijn). */
@@ -546,12 +547,25 @@
546
547
  .xicms-ve-pencil:hover,
547
548
  .xicms-ve-pencil:focus-visible {
548
549
  opacity: 1;
549
- background: var(--xicms-primary, #4f46e5);
550
+ /* Donker blijven, niet de merkkleur: `--xicms-primary` is van de klant en kan licht zijn
551
+ (goud, lime) — dan werd dit wit-op-licht en "verdween" de knop precies bij het aanwijzen.
552
+ Gereedschap houdt zijn eigen kleuren (zie het EditBar-commentaar). */
553
+ background: rgba(15, 23, 42, 0.92);
550
554
  }
551
555
  .xicms-ve-pencil:focus-visible {
552
- outline: 2px solid var(--xicms-primary, #4f46e5);
556
+ outline: 2px solid #a5b4fc;
553
557
  outline-offset: 1px;
554
558
  }
559
+ /* Het potlood van het veld dat je NU bewerkt wordt een groen vinkje: "het is goed, klaar met dit
560
+ blok". Dezelfde plek als het potlood waarmee je begon, dus de afronding zit waar je hand al is. */
561
+ .xicms-ve-pencil.is-klaar {
562
+ opacity: 1;
563
+ background: rgba(22, 163, 74, 0.9);
564
+ }
565
+ .xicms-ve-pencil.is-klaar:hover,
566
+ .xicms-ve-pencil.is-klaar:focus-visible {
567
+ background: rgba(21, 128, 61, 1);
568
+ }
555
569
  /* Zwevende opmaak-toolbar boven een gefocust inline rich-text-veld (B/I/U/link/koppen/lijst). */
556
570
  .xicms-ve-fmtbar {
557
571
  position: fixed;
@@ -609,7 +623,8 @@
609
623
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
610
624
  transition: background 0.12s, transform 0.12s;
611
625
  }
612
- .xicms-ve-img__btn:hover { background: var(--color-accent, #4f46e5); transform: translateY(-1px); }
626
+ /* Donker blijven op hover — een lichte merkkleur (`--color-accent`) maakte dit wit-op-licht. */
627
+ .xicms-ve-img__btn:hover { background: rgba(17, 24, 39, 1); border-color: rgba(255, 255, 255, 0.5); transform: translateY(-1px); }
613
628
  /* Vullende variant (hero-achtergrond): knop absoluut t.o.v. het blok-element. */
614
629
  .xicms-ve-img__btn--fill {
615
630
  position: absolute;
@@ -754,35 +769,38 @@
754
769
 
755
770
  /* Zwevende werkbalk voor editors */
756
771
  /*
757
- * De beheerbalk staat BOVENAAN, en in beide toestanden op precies dezelfde plek.
772
+ * De beheerbalk ZWEEFT bovenaan, gecentreerd — en in beide toestanden op precies dezelfde plek.
758
773
  *
759
- * Hij zweefde als pilletje onderaan, terwijl de editor zijn eigen balk bovenaan meebracht. Het
760
- * overschakelen tussen "live site" en "bewerken" verplaatste de knoppen daarmee van onder naar
761
- * boven — je moest je houvast opnieuw zoeken op het moment dat je van modus wisselde, en dat is
762
- * precies het moment waarop je het niet kunt missen. Nu is het één balk die blijft staan en
763
- * waarin alleen een andere knop oplicht.
774
+ * Geschiedenis in twee stappen. Hij zweefde ooit als pilletje onderaan, terwijl de editor zijn
775
+ * eigen balk bovenaan meebracht: overschakelen verplaatste je houvast. 7.8 loste dat op met één
776
+ * vaste balk van rand tot rand — maar die las als een deel van de site in plaats van als
777
+ * gereedschap dat erover heen ligt. 7.16 combineert beide lessen: wéér een zwevend pilletje
778
+ * (duidelijk gereedschap, de site blijft zichtbaar), maar bovenaan gecentreerd en in beide
779
+ * modi identiek gepositioneerd, zodat het houvast van 7.8 blijft.
764
780
  *
765
- * Onderaan was ook niet meer vrij: daar staat sinds 7.8 de publiceerknop, en die hoort bij je werk
766
- * op de pagina — niet naast de navigatie.
781
+ * Onderaan blijft van de publiceerknop (sinds 7.8): die hoort bij je werk, niet bij de navigatie.
767
782
  */
768
783
  .xicms-editbar,
769
784
  .xicms-ve__bar {
770
785
  position: fixed;
771
- top: 0;
772
- left: 0;
773
- right: 0;
786
+ top: 10px;
787
+ left: 50%;
788
+ transform: translateX(-50%);
789
+ max-width: calc(100vw - 16px);
774
790
  z-index: 10001;
775
791
  display: flex;
776
792
  align-items: center;
777
793
  gap: 0.3rem;
778
794
  padding: 0.4rem 0.9rem;
795
+ border-radius: 999px;
779
796
  /* Eigen kleuren, los van de site eronder: een donkere staaf leest op een witte én op een
780
797
  donkere pagina, en blijft op élke klantsite hetzelfde stukje gereedschap. */
781
798
  background: rgba(15, 23, 42, 0.95);
782
799
  -webkit-backdrop-filter: saturate(1.4) blur(10px);
783
800
  backdrop-filter: saturate(1.4) blur(10px);
784
801
  color: #fff;
785
- border-bottom: 1px solid rgba(255, 255, 255, 0.12);
802
+ border: 1px solid rgba(255, 255, 255, 0.12);
803
+ box-shadow: 0 12px 32px rgba(2, 6, 23, 0.35);
786
804
  font-size: 0.8rem;
787
805
  line-height: 1;
788
806
  }
@@ -807,10 +825,11 @@
807
825
  display: none;
808
826
  }
809
827
 
810
- :root:has(.xicms-editbar),
811
- :root:has(.xicms-ve__bar) {
812
- padding-top: 2.6rem;
813
- }
828
+ /* GEEN pagina-offset meer: het pilletje ZWEEFT over de site heen, de pagina schuift er gewoon
829
+ onderdoor. De vorige vaste balk duwde alles omlaag (padding op :root + sticky-header-correctie
830
+ in barOffset.ts) — dat hoorde bij een balk van rand tot rand, niet bij zwevend gereedschap.
831
+ Bewuste afweging: gecentreerd bovenin kan het pilletje een stukje site-header overlappen; dat
832
+ is de prijs van een site die er verder exact zo bijstaat als voor de bezoeker. */
814
833
  /* Smalle schermen: de balk hield alles en werd twee regels hoog — en de pagina-offset (2.6rem,
815
834
  vast) rekent op één regel, dus de site schoof onder de balk. Het pad en de statustekst zijn op
816
835
  een telefoon ballast; de vier moduskoppen en het gereedschap zijn de balk. */
@@ -822,6 +841,12 @@
822
841
  }
823
842
  .xicms-editbar,
824
843
  .xicms-ve__bar {
844
+ /* Op een telefoon is centreren met transform vragen om een pilletje dat half buiten beeld
845
+ hangt zodra de inhoud breder is dan het scherm: volle breedte minus marge, zonder anker. */
846
+ left: 8px;
847
+ right: 8px;
848
+ transform: none;
849
+ max-width: none;
825
850
  gap: 0.15rem;
826
851
  padding: 0.4rem 0.5rem;
827
852
  overflow-x: auto;
@@ -2642,6 +2667,15 @@
2642
2667
  .xicms-countdown__value { display: block; font-size: 1.8rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
2643
2668
  .xicms-countdown__label { display: block; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.6; margin-top: 0.25rem; }
2644
2669
  .xicms-countdown__expired { font-size: 1.4rem; font-weight: 700; }
2670
+ /* Editor-preview zonder einddatum: gestippeld kader zodat het blok zichtbaar en aanklikbaar blijft. */
2671
+ .xicms-countdown__placeholder {
2672
+ margin: 0;
2673
+ padding: 1rem 1.5rem;
2674
+ border: 2px dashed var(--xicms-muted, rgba(0, 0, 0, 0.2));
2675
+ border-radius: 0.5rem;
2676
+ display: inline-block;
2677
+ opacity: 0.7;
2678
+ }
2645
2679
  .xicms-widget--countdown .xicms-countdown__digits { gap: 0.4rem; }
2646
2680
  .xicms-widget--countdown .xicms-countdown__value { font-size: 1.3rem; }
2647
2681
  .xicms-widget--countdown .xicms-countdown__unit { min-width: 2.6rem; }
@@ -3187,6 +3221,12 @@
3187
3221
  .xicms-ve-blokknoppen.is-open .xicms-ve-blokknoppen__meer-in {
3188
3222
  display: flex;
3189
3223
  gap: 2px;
3224
+ /* VÓÓR potlood en tandwiel. Het cluster hangt met `right` aan de rechterkant van het blok, dus
3225
+ de doos groeit bij het uitklappen naar LINKS. Stonden de extra knoppen achteraan (DOM-volgorde),
3226
+ dan schoof het potlood precies hun breedte naar links — weg onder de cursor die erheen op weg
3227
+ was, en één misklik verwijderd van "dupliceren". Met de uitklapgroep vooraan blijven potlood en
3228
+ tandwiel op hun plek staan. DOM-volgorde blijft potlood-eerst (tab-volgorde, screenreaders). */
3229
+ order: -1;
3190
3230
  }
3191
3231
  .xicms-ve-blokknop:disabled {
3192
3232
  opacity: 0.35;
@@ -3243,7 +3283,8 @@
3243
3283
  /* Eénmalige starthint van de bewerkmodus: vast onder de balk, midden, weg te klikken. */
3244
3284
  .xicms-ve-starthint {
3245
3285
  position: fixed;
3246
- top: calc(2.6rem + 10px);
3286
+ /* Vlak onder het zwevende pilletje (10px top + ±34px hoogte + 6px lucht). */
3287
+ top: 50px;
3247
3288
  left: 50%;
3248
3289
  transform: translateX(-50%);
3249
3290
  z-index: 10006;
@@ -3336,6 +3377,39 @@
3336
3377
  font-size: 0.72rem;
3337
3378
  opacity: 0.8;
3338
3379
  }
3380
+ /* Verwerpen: het kleine broertje bóven Publiceren. Bestond niet — er was wel een ↺ per blok en
3381
+ undo, maar geen "gooi álles weg en terug naar live". Bewust klein en donker naast de grote
3382
+ blauwe: verwerpen is de uitzondering, publiceren het doel. Zelfde meeschuif-/verberggedrag
3383
+ als de publiceerknop (zie de :has-regels daar). */
3384
+ .xicms-ve-verwerp {
3385
+ position: fixed;
3386
+ right: 20px;
3387
+ bottom: calc(94px + var(--xicms-bottombar, 0px));
3388
+ z-index: 10006;
3389
+ padding: 0.45rem 0.9rem;
3390
+ border: 1px solid rgba(255, 255, 255, 0.14);
3391
+ border-radius: 999px;
3392
+ background: rgba(15, 23, 42, 0.75);
3393
+ color: rgba(255, 255, 255, 0.85);
3394
+ font: inherit;
3395
+ font-size: 0.78rem;
3396
+ cursor: pointer;
3397
+ box-shadow: 0 10px 30px rgba(2, 6, 23, 0.3);
3398
+ transition: background 0.15s ease, right 0.2s ease;
3399
+ }
3400
+ .xicms-ve-verwerp:hover {
3401
+ background: rgba(185, 28, 28, 0.9);
3402
+ color: #fff;
3403
+ }
3404
+ .xicms-ve-verwerp:focus-visible {
3405
+ outline: 2px solid #a5b4fc;
3406
+ outline-offset: 2px;
3407
+ }
3408
+ @media (min-width: 721px) {
3409
+ :root:has(.xicms-ve__panel) .xicms-ve-verwerp {
3410
+ right: calc(clamp(360px, 28vw, 480px) + 20px);
3411
+ }
3412
+ }
3339
3413
 
3340
3414
  /* Melding in de editorbalk (nog geen werkversie). Hoort bij het gereedschap, niet bij de pagina. */
3341
3415
  .xicms-ve__balkmelding {
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- const CORE_VERSION = true ? "7.15.0" : "0.0.0-dev";
1
+ const CORE_VERSION = true ? "7.16.1" : "0.0.0-dev";
2
2
  const CORE_PACKAGE = "@xiwebdesign/xicms-core";
3
3
  function isNieuwer(beschikbaar, huidig) {
4
4
  const delen = (v) => v.split("-")[0].split(".").map((n) => Number.parseInt(n, 10) || 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiwebdesign/xicms-core",
3
- "version": "7.15.0",
3
+ "version": "7.16.1",
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": {