@xiwebdesign/xicms-core 5.5.3 → 5.6.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.
Files changed (66) hide show
  1. package/dist/admin/shop/ConnectionsTab.js +1 -1
  2. package/dist/admin/shop/ConnectionsTab.js.map +1 -1
  3. package/dist/admin/shop/DiscountsTab.d.ts +4 -0
  4. package/dist/admin/shop/DiscountsTab.js +168 -0
  5. package/dist/admin/shop/DiscountsTab.js.map +1 -0
  6. package/dist/admin/shop/EmailsTab.d.ts +8 -0
  7. package/dist/admin/shop/EmailsTab.js +88 -0
  8. package/dist/admin/shop/EmailsTab.js.map +1 -0
  9. package/dist/admin/shop/OrdersTab.js +271 -139
  10. package/dist/admin/shop/OrdersTab.js.map +1 -1
  11. package/dist/admin/shop/ProductsTab.js +152 -28
  12. package/dist/admin/shop/ProductsTab.js.map +1 -1
  13. package/dist/admin/shop/ShopPanel.d.ts +4 -1
  14. package/dist/admin/shop/ShopPanel.js +9 -0
  15. package/dist/admin/shop/ShopPanel.js.map +1 -1
  16. package/dist/admin/shop/ShopSettingsTab.d.ts +3 -0
  17. package/dist/admin/shop/ShopSettingsTab.js +86 -0
  18. package/dist/admin/shop/ShopSettingsTab.js.map +1 -0
  19. package/dist/admin.css +1 -1
  20. package/dist/blocks/context.d.ts +6 -0
  21. package/dist/blocks/context.js +15 -1
  22. package/dist/blocks/context.js.map +1 -1
  23. package/dist/modules/shop/blocks/Cart.js +22 -14
  24. package/dist/modules/shop/blocks/Cart.js.map +1 -1
  25. package/dist/modules/shop/blocks/Checkout.js +75 -23
  26. package/dist/modules/shop/blocks/Checkout.js.map +1 -1
  27. package/dist/modules/shop/blocks/Donation.js +8 -7
  28. package/dist/modules/shop/blocks/Donation.js.map +1 -1
  29. package/dist/modules/shop/blocks/ProductDetail.js +296 -109
  30. package/dist/modules/shop/blocks/ProductDetail.js.map +1 -1
  31. package/dist/modules/shop/blocks/ProductGrid.d.ts +9 -0
  32. package/dist/modules/shop/blocks/ProductGrid.js +144 -65
  33. package/dist/modules/shop/blocks/ProductGrid.js.map +1 -1
  34. package/dist/modules/shop/blocks/ShopCategories.js +7 -2
  35. package/dist/modules/shop/blocks/ShopCategories.js.map +1 -1
  36. package/dist/modules/shop/cartStore.d.ts +13 -2
  37. package/dist/modules/shop/cartStore.js +10 -5
  38. package/dist/modules/shop/cartStore.js.map +1 -1
  39. package/dist/modules/shop/lib.d.ts +18 -5
  40. package/dist/modules/shop/lib.js +23 -0
  41. package/dist/modules/shop/lib.js.map +1 -1
  42. package/dist/modules/shop/module.js +6 -1
  43. package/dist/modules/shop/module.js.map +1 -1
  44. package/dist/modules/shop/settings.d.ts +18 -0
  45. package/dist/modules/shop/settings.js +8 -1
  46. package/dist/modules/shop/settings.js.map +1 -1
  47. package/dist/modules/shop/strings.d.ts +65 -0
  48. package/dist/modules/shop/strings.js +136 -0
  49. package/dist/modules/shop/strings.js.map +1 -0
  50. package/dist/modules/shop/types.d.ts +18 -0
  51. package/dist/modules/shop/types.js +1 -0
  52. package/dist/modules/shop/types.js.map +1 -0
  53. package/dist/render/PublishedPage.d.ts +6 -1
  54. package/dist/render/PublishedPage.js +4 -3
  55. package/dist/render/PublishedPage.js.map +1 -1
  56. package/dist/schema/shop.d.ts +413 -2
  57. package/dist/schema/shop.js +95 -6
  58. package/dist/schema/shop.js.map +1 -1
  59. package/dist/server/index.d.ts +1 -0
  60. package/dist/server/index.js +14 -0
  61. package/dist/server/index.js.map +1 -1
  62. package/dist/server/shop.d.ts +46 -0
  63. package/dist/server/shop.js +181 -0
  64. package/dist/server/shop.js.map +1 -0
  65. package/dist/styles.css +147 -0
  66. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -2699,3 +2699,150 @@
2699
2699
  background: color-mix(in srgb, var(--xicms-primary, #4f46e5) 12%, transparent);
2700
2700
  color: var(--xicms-primary, #4f46e5);
2701
2701
  }
2702
+
2703
+ /* ── Shop (5.6) ─────────────────────────────────────────────────────────── */
2704
+
2705
+ /* Uitgelijnde productkaart: flex-kolom over de volle hoogte. De grid-cellen zijn even
2706
+ hoog (align-items: stretch is de default), de kaart vult de cel, en de knop-rij wordt
2707
+ met margin-top:auto naar onderen gedrukt. Zo staan prijs, kleurstipjes en knop over
2708
+ álle kaarten op dezelfde lijn — ook als een productnaam één of twee regels beslaat. */
2709
+ .xicms-shop-card {
2710
+ display: flex;
2711
+ flex-direction: column;
2712
+ height: 100%;
2713
+ overflow: hidden;
2714
+ }
2715
+ .xicms-shop-card__link {
2716
+ display: flex;
2717
+ flex-direction: column;
2718
+ flex: 1 1 auto;
2719
+ text-decoration: none;
2720
+ color: inherit;
2721
+ }
2722
+ .xicms-shop-card__media {
2723
+ position: relative;
2724
+ }
2725
+ .xicms-shop-card__img,
2726
+ .xicms-shop-card__placeholder {
2727
+ display: block;
2728
+ width: 100%;
2729
+ aspect-ratio: 1 / 1;
2730
+ object-fit: cover;
2731
+ border-radius: inherit;
2732
+ background: var(--xicms-muted, #f1f1f1);
2733
+ }
2734
+ .xicms-shop-card__body {
2735
+ display: flex;
2736
+ flex-direction: column;
2737
+ gap: 0.25rem;
2738
+ padding: 0.8rem 1rem 0.25rem;
2739
+ flex: 1 1 auto;
2740
+ }
2741
+ /* Productnaam: reserveer altijd twee regels zodat één- en twee-regelige namen op dezelfde
2742
+ basislijn staan; langer dan twee regels wordt met een ellipsis afgekapt. */
2743
+ .xicms-shop-card__name {
2744
+ font-weight: 700;
2745
+ line-height: 1.25;
2746
+ min-height: 2.5em;
2747
+ display: -webkit-box;
2748
+ -webkit-line-clamp: 2;
2749
+ line-clamp: 2;
2750
+ -webkit-box-orient: vertical;
2751
+ overflow: hidden;
2752
+ }
2753
+ .xicms-shop-card__priceline {
2754
+ font-size: 0.92em;
2755
+ }
2756
+ /* Swatch-rij duwt (leeg of gevuld) de rest omlaag en houdt een vaste hoogte. */
2757
+ .xicms-shop-card__swatchrow {
2758
+ display: inline-flex;
2759
+ gap: 5px;
2760
+ min-height: 14px;
2761
+ margin-top: auto;
2762
+ padding-top: 0.3rem;
2763
+ }
2764
+ .xicms-shop-card__actions {
2765
+ padding: 0.5rem 1rem 1rem;
2766
+ }
2767
+ /* Kaartknoppen: passen binnen de kaart, ook bij smalle kolommen. */
2768
+ .xicms-shop-card__actions .xicms-btn,
2769
+ .xicms-shop-card__added {
2770
+ display: block;
2771
+ width: 100%;
2772
+ padding: 0.45rem 0.6rem;
2773
+ font-size: 0.85rem;
2774
+ text-align: center;
2775
+ }
2776
+ .xicms-shop-card__added {
2777
+ color: var(--xicms-primary, #4f46e5);
2778
+ text-decoration: none;
2779
+ }
2780
+
2781
+ /* Mobiel: nooit meer dan 2 kolommen (inline grid-template wint anders van media queries). */
2782
+ @media (max-width: 520px) {
2783
+ .xicms-shop-grid__items {
2784
+ grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
2785
+ gap: 0.8rem !important;
2786
+ }
2787
+ .xicms-shop-card__actions .xicms-btn {
2788
+ font-size: 0.8rem;
2789
+ padding: 0.4rem 0.5rem;
2790
+ }
2791
+ .xicms-shop-card__name {
2792
+ font-size: 0.92rem;
2793
+ }
2794
+ }
2795
+
2796
+ /* Uitverkocht-badge op de kaartfoto. */
2797
+ .xicms-shop-card__soldout {
2798
+ position: absolute;
2799
+ top: 10px;
2800
+ left: 10px;
2801
+ padding: 0.2rem 0.6rem;
2802
+ border-radius: 999px;
2803
+ background: rgba(30, 30, 30, 0.72);
2804
+ color: #fff;
2805
+ font-size: 0.72rem;
2806
+ font-weight: 700;
2807
+ letter-spacing: 0.02em;
2808
+ }
2809
+
2810
+ /* Filterchips + sorteerkeuze boven het grid. */
2811
+ .xicms-shop-filters {
2812
+ display: grid;
2813
+ gap: 0.5rem;
2814
+ margin-top: 1rem;
2815
+ }
2816
+ .xicms-shop-filters__row {
2817
+ display: flex;
2818
+ flex-wrap: wrap;
2819
+ gap: 0.4rem;
2820
+ }
2821
+ .xicms-shop-filterchip {
2822
+ display: inline-flex;
2823
+ align-items: center;
2824
+ padding: 0.28rem 0.75rem;
2825
+ border-radius: 999px;
2826
+ border: 1px solid var(--xicms-border-strong, rgba(0, 0, 0, 0.18));
2827
+ background: transparent;
2828
+ color: inherit;
2829
+ font: inherit;
2830
+ font-size: 0.85rem;
2831
+ cursor: pointer;
2832
+ }
2833
+ .xicms-shop-filterchip--active {
2834
+ background: var(--xicms-primary, #4f46e5);
2835
+ border-color: var(--xicms-primary, #4f46e5);
2836
+ color: var(--xicms-on-primary, #fff);
2837
+ }
2838
+ .xicms-shop-filters__sort {
2839
+ display: inline-flex;
2840
+ align-items: center;
2841
+ gap: 0.5rem;
2842
+ font-size: 0.85rem;
2843
+ justify-self: start;
2844
+ }
2845
+ .xicms-shop-filters__sort select {
2846
+ padding: 0.3rem 0.5rem;
2847
+ border-radius: var(--xicms-radius-sm, 8px);
2848
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiwebdesign/xicms-core",
3
- "version": "5.5.3",
3
+ "version": "5.6.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": {