@sc-360-v2/storefront-cms-library 0.5.50 → 0.5.52

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 (58) hide show
  1. package/dist/add-order.scss +62 -13
  2. package/dist/brand-basic-elements.scss +109 -46
  3. package/dist/brand.scss +6 -0
  4. package/dist/breadcrumbs.scss +157 -51
  5. package/dist/builder.js +1 -1
  6. package/dist/bundle copy.scss +2805 -0
  7. package/dist/bundle.scss +74 -48
  8. package/dist/bundleDetails.scss +1360 -275
  9. package/dist/button copy.scss +271 -0
  10. package/dist/cart-details.scss +214 -0
  11. package/dist/cart.scss +124 -41
  12. package/dist/category-groups-product-image.scss +72 -21
  13. package/dist/category.scss +25 -4
  14. package/dist/container.scss +20 -17
  15. package/dist/embed-temp.scss +2 -2
  16. package/dist/hotspot.scss +153 -77
  17. package/dist/icon-library.scss +78 -74
  18. package/dist/image-temp.scss +2 -1
  19. package/dist/language-selector.scss +215 -55
  20. package/dist/light-box-v2.scss +4 -3
  21. package/dist/line.scss +54 -36
  22. package/dist/login.scss +225 -69
  23. package/dist/map.scss +354 -147
  24. package/dist/marchandiserSets.scss +34 -0
  25. package/dist/menu-v2.scss +51 -3
  26. package/dist/modal.scss +251 -28
  27. package/dist/product-actions.scss +53 -0
  28. package/dist/product-basic-elements.scss +44 -244
  29. package/dist/product-image-allocation.scss +51 -15
  30. package/dist/product-image-bundles.scss +72 -15
  31. package/dist/product-image.scss +178 -19
  32. package/dist/productDetails.scss +33 -0
  33. package/dist/quick-links.scss +23 -2
  34. package/dist/repeater copy.scss +635 -0
  35. package/dist/repeater-embla-controls.scss +9 -1
  36. package/dist/repeater-grid-toggle.scss +121 -7
  37. package/dist/repeater-item.scss +5 -1
  38. package/dist/repeater.scss +69 -102
  39. package/dist/review-cart.scss +7 -1
  40. package/dist/scroll.scss +52 -11
  41. package/dist/search.scss +46 -6
  42. package/dist/skeleton.scss +24 -35
  43. package/dist/styles.css +1 -1
  44. package/dist/tab-container.scss +14 -12
  45. package/dist/tab-v2.scss +834 -583
  46. package/dist/text-temp-v2.scss +18 -1
  47. package/dist/types/builder/tools/element-edit/breadcrumbs.d.ts +26 -5
  48. package/dist/types/builder/tools/element-edit/cart.d.ts +7 -0
  49. package/dist/types/builder/tools/element-edit/map.d.ts +0 -1
  50. package/dist/types/builder/tools/element-edit/product-image.d.ts +1 -0
  51. package/dist/types/builder/tools/element-edit/quickLinks.d.ts +6 -0
  52. package/dist/types/builder/tools/element-edit/repeater.d.ts +1 -1
  53. package/dist/types/builder/tools/element-edit/search.d.ts +4 -61
  54. package/dist/types/builder/tools/element-edit/tabsV2.d.ts +164 -1
  55. package/dist/types/builder/tools/element-edit/video.d.ts +32 -0
  56. package/dist/upload-media.scss +14 -2
  57. package/dist/video.scss +548 -476
  58. package/package.json +1 -1
@@ -115,6 +115,48 @@
115
115
  display: flex;
116
116
  gap: var(--_ctm-mob-lt-gp-bn-is, var(--_ctm-tab-lt-gp-bn-is, var(--_ctm-lt-gp-bn-is)));
117
117
 
118
+ // "Show Border" switches — widget style (default/hover), widget dropdown and
119
+ // item style (default/hover/selected). Each state is gated on its own switch.
120
+ // border-style is reset alongside the width: a state whose width variables are
121
+ // unset resolves border-width to the initial `medium`, so zeroing the width
122
+ // alone still leaves a border painted in whatever border-style is in effect.
123
+ &[data-widget-border="false"] {
124
+ .est__dropdown__main .est__dropdown .dropdown__button__wrapper {
125
+ border-width: 0;
126
+ border-style: none;
127
+ }
128
+ }
129
+ &[data-widget-hover-border="false"] {
130
+ .est__dropdown__main .est__dropdown .dropdown__button__wrapper:hover {
131
+ border-width: 0;
132
+ border-style: none;
133
+ }
134
+ }
135
+ &[data-dropdown-border="false"] {
136
+ .est__dropdown__main .est__dropdown .list {
137
+ border-width: 0;
138
+ border-style: none;
139
+ }
140
+ }
141
+ &[data-item-border="false"] {
142
+ .option:not(:hover):not([data-selected="true"]) {
143
+ border-width: 0;
144
+ border-style: none;
145
+ }
146
+ }
147
+ &[data-item-hover-border="false"] {
148
+ .option:hover:not([data-selected="true"]) {
149
+ border-width: 0;
150
+ border-style: none;
151
+ }
152
+ }
153
+ &[data-item-selected-border="false"] {
154
+ .option[data-selected="true"] {
155
+ border-width: 0;
156
+ border-style: none;
157
+ }
158
+ }
159
+
118
160
  .option:hover {
119
161
  --_sf-hr-bd-cr: var(
120
162
  --_ctm-mob-dn-im-se-hr-se-bd-cr,
@@ -194,6 +236,18 @@
194
236
  --_ctm-mob-dn-im-se-hr-se-ue,
195
237
  var(--_ctm-tab-dn-im-se-hr-se-ue, var(--_ctm-dn-im-se-hr-se-ue))
196
238
  );
239
+ --_sf-hr-tt-tm: var(
240
+ --_ctm-mob-dn-im-se-hr-se-tt-tm,
241
+ var(--_ctm-tab-dn-im-se-hr-se-tt-tm, var(--_ctm-dn-im-se-hr-se-tt-tm))
242
+ );
243
+ --_sf-hr-wd-wp: var(
244
+ --_ctm-mob-dn-im-se-hr-se-wd-wp,
245
+ var(--_ctm-tab-dn-im-se-hr-se-wd-wp, var(--_ctm-dn-im-se-hr-se-wd-wp))
246
+ );
247
+ --_sf-hr-wd-bk: var(
248
+ --_ctm-mob-dn-im-se-hr-se-wd-bk,
249
+ var(--_ctm-tab-dn-im-se-hr-se-wd-bk, var(--_ctm-dn-im-se-hr-se-wd-bk))
250
+ );
197
251
  --_sf-hr-pg: var(
198
252
  --_ctm-mob-dn-im-se-hr-se-pg,
199
253
  var(--_ctm-tab-dn-im-se-hr-se-pg, var(--_ctm-dn-im-se-hr-se-pg))
@@ -217,6 +271,13 @@
217
271
  --_ctm-mob-dn-im-se-sd-se-br-wh,
218
272
  var(--_ctm-tab-dn-im-se-sd-se-br-wh, var(--_ctm-dn-im-se-sd-se-br-wh))
219
273
  );
274
+ // Was missing entirely, so `border-radius: var(--_sf-sd-br-rs, <default state>)`
275
+ // always fell through to the default state and Selected > Border Radius did
276
+ // nothing. Every sibling state variable had one; this is the odd one out.
277
+ --_sf-sd-br-rs: var(
278
+ --_ctm-mob-dn-im-se-sd-se-br-rs,
279
+ var(--_ctm-tab-dn-im-se-sd-se-br-rs, var(--_ctm-dn-im-se-sd-se-br-rs))
280
+ );
220
281
  // new
221
282
  --_sf-sd-sw-ae: var(
222
283
  --_ctm-mob-dn-im-se-sd-se-sw-ae,
@@ -274,29 +335,24 @@
274
335
  --_ctm-mob-dn-im-se-sd-se-ue,
275
336
  var(--_ctm-tab-dn-im-se-sd-se-ue, var(--_ctm-dn-im-se-sd-se-ue))
276
337
  );
338
+ --_sf-sd-tt-tm: var(
339
+ --_ctm-mob-dn-im-se-sd-se-tt-tm,
340
+ var(--_ctm-tab-dn-im-se-sd-se-tt-tm, var(--_ctm-dn-im-se-sd-se-tt-tm))
341
+ );
342
+ --_sf-sd-wd-wp: var(
343
+ --_ctm-mob-dn-im-se-sd-se-wd-wp,
344
+ var(--_ctm-tab-dn-im-se-sd-se-wd-wp, var(--_ctm-dn-im-se-sd-se-wd-wp))
345
+ );
346
+ --_sf-sd-wd-bk: var(
347
+ --_ctm-mob-dn-im-se-sd-se-wd-bk,
348
+ var(--_ctm-tab-dn-im-se-sd-se-wd-bk, var(--_ctm-dn-im-se-sd-se-wd-bk))
349
+ );
277
350
  --_sf-sd-pg: var(
278
351
  --_ctm-mob-dn-im-se-sd-se-pg,
279
352
  var(--_ctm-tab-dn-im-se-sd-se-pg, var(--_ctm-dn-im-se-sd-se-pg))
280
353
  );
281
354
  }
282
355
 
283
- &[data-flag-style="Rounded"] {
284
- .language__flag {
285
- border-radius: 5px;
286
- svg {
287
- border-radius: 5px;
288
- }
289
- }
290
- }
291
- &[data-flag-style="Circle"] {
292
- .language__flag {
293
- border-radius: 50%;
294
- svg {
295
- border-radius: 50%;
296
- }
297
- }
298
- }
299
-
300
356
  .option {
301
357
  width: 100%;
302
358
  display: flex;
@@ -306,6 +362,9 @@
306
362
 
307
363
  position: relative;
308
364
  box-sizing: border-box;
365
+ // Without this a flex item refuses to shrink below its content width, so a
366
+ // larger font size pushed the label straight out of the widget.
367
+ min-width: 0;
309
368
 
310
369
  padding: var(--_sf-hr-pg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-pg));
311
370
  gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
@@ -322,6 +381,10 @@
322
381
  var(--_sf-hr-sw-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-sw-cr));
323
382
  //
324
383
  &[data-selected="true"] {
384
+ // `.option` only ever declared padding from the hover variable, so
385
+ // `--_sf-sd-pg` was set by the selected-state block but never read and
386
+ // Selected > Padding did nothing.
387
+ padding: var(--_sf-sd-pg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-pg));
325
388
  border-color: var(--_sf-sd-br-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-br-cr));
326
389
 
327
390
  background-color: var(--_sf-sd-bd-cr, prepareMediaVariable(--_ctm-dn-im-se-dt-se-bd-cr));
@@ -345,7 +408,17 @@
345
408
  letter-spacing: var(--_sf-sd-lr-sg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-lr-sg));
346
409
  line-height: var(--_sf-sd-le-ht, prepareMediaVariable(--_ctm-dn-im-se-dt-se-le-ht-dc));
347
410
  text-decoration: var(--_sf-sd-ue, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ue));
348
- @include restrictToLinesShow(1);
411
+ text-transform: var(--_sf-sd-tt-tm, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-tm));
412
+ word-wrap: var(
413
+ --_sf-sd-wd-wp,
414
+ prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-wp, normal)
415
+ );
416
+ word-break: var(
417
+ --_sf-sd-wd-bk,
418
+ prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-bk, normal)
419
+ );
420
+ -webkit-line-clamp: var(--_sf-it-clamp-sd, var(--_sf-it-clamp, 1));
421
+ white-space: var(--_sf-it-ws-sd, var(--_sf-it-ws, nowrap));
349
422
  }
350
423
  }
351
424
  }
@@ -357,7 +430,55 @@
357
430
  &[data-flex-direction="row"] {
358
431
  overflow-x: auto;
359
432
  }
360
- &[data-show-divider="true"] {
433
+ // Matched when *either* state wants a divider, so the rules below exist and each
434
+ // state can then decide visibility for itself — gating on the default state alone
435
+ // meant a divider switched on only for hover could never appear.
436
+ &:is([data-show-divider="true"], [data-show-divider-hover="true"]) {
437
+ // Divider weight/colour resolve through these two, so the hover block below
438
+ // only has to re-point them. Previously the declarations read the default
439
+ // state's variables directly and the Widget Style > Hover > Divider controls
440
+ // wrote to `--_ctm-dn-wt-se-hr-se-dr-*`, which nothing ever read.
441
+ --_sf-dr-wt: var(
442
+ --_ctm-mob-dn-wt-se-dt-se-dr-wt,
443
+ var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
444
+ );
445
+ --_sf-dr-cr: var(
446
+ --_ctm-mob-dn-wt-se-dt-se-dr-cr,
447
+ var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
448
+ );
449
+
450
+ // Divider lives under Widget Style, so its hover state is the *widget* being
451
+ // hovered, not an individual option. Scoping this to `.option:hover` only
452
+ // repainted the hovered option's own divider, which read as "not working".
453
+ &:hover {
454
+ --_sf-dr-wt: var(
455
+ --_ctm-mob-dn-wt-se-hr-se-dr-wt,
456
+ var(
457
+ --_ctm-tab-dn-wt-se-hr-se-dr-wt,
458
+ var(
459
+ --_ctm-dn-wt-se-hr-se-dr-wt,
460
+ var(
461
+ --_ctm-mob-dn-wt-se-dt-se-dr-wt,
462
+ var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
463
+ )
464
+ )
465
+ )
466
+ );
467
+ --_sf-dr-cr: var(
468
+ --_ctm-mob-dn-wt-se-hr-se-dr-cr,
469
+ var(
470
+ --_ctm-tab-dn-wt-se-hr-se-dr-cr,
471
+ var(
472
+ --_ctm-dn-wt-se-hr-se-dr-cr,
473
+ var(
474
+ --_ctm-mob-dn-wt-se-dt-se-dr-cr,
475
+ var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
476
+ )
477
+ )
478
+ )
479
+ );
480
+ }
481
+
361
482
  &[data-flex-direction="row"] {
362
483
  .option:not(:last-child)::before {
363
484
  content: "";
@@ -374,14 +495,8 @@
374
495
  2
375
496
  )
376
497
  ); /* Half of your gap, assuming divider is centered in the gap */
377
- width: var(
378
- --_ctm-mob-dn-wt-se-dr-wt,
379
- var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
380
- ); /* Divider thickness */
381
- background-color: var(
382
- --_ctm-mob-dn-wt-se-dt-se-dr-cr,
383
- var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
384
- ); /* Divider color */
498
+ width: var(--_sf-dr-wt); /* Divider thickness */
499
+ background-color: var(--_sf-dr-cr); /* Divider color */
385
500
  }
386
501
  }
387
502
  &[data-flex-direction="column"] {
@@ -400,16 +515,23 @@
400
515
  2
401
516
  )
402
517
  );
403
- height: var(
404
- --_ctm-mob-dn-wt-se-dt-se-dr-wt,
405
- var(--_ctm-tab-dn-wt-se-dt-se-dr-wt, var(--_ctm-dn-wt-se-dt-se-dr-wt))
406
- );
407
- background-color: var(
408
- --_ctm-mob-dn-wt-se-dt-se-dr-cr,
409
- var(--_ctm-tab-dn-wt-se-dt-se-dr-cr, var(--_ctm-dn-wt-se-dt-se-dr-cr))
410
- );
518
+ height: var(--_sf-dr-wt);
519
+ background-color: var(--_sf-dr-cr);
411
520
  }
412
521
  }
522
+
523
+ // Each state's own Show Divider switch. Declared last so they win over the
524
+ // `::before` rules above, and split by state so turning the divider off for
525
+ // hover only affects the hovered widget.
526
+ &[data-show-divider="false"] .option::before {
527
+ display: none;
528
+ }
529
+ &[data-show-divider-hover="false"]:hover .option::before {
530
+ display: none;
531
+ }
532
+ &[data-show-divider-hover="true"]:hover .option:not(:last-child)::before {
533
+ display: block;
534
+ }
413
535
  }
414
536
 
415
537
  .option_select {
@@ -419,8 +541,12 @@
419
541
  justify-content: var(--_ctm-mob-lt-at, var(--_ctm-tab-lt-at, var(--_ctm-lt-at)));
420
542
 
421
543
  position: relative;
544
+ min-width: 0;
422
545
 
423
- // padding: var(--_ctm-mob-lt-im-pg, var(--_ctm-tab-lt-im-pg, var(--_ctm-lt-im-pg)));
546
+ // Widget Placeholder Text > padding. It used to sit on `.value__selected__new`
547
+ // only, which is the *empty* state — as soon as an option was selected the
548
+ // markup switched to this branch and the padding appeared to do nothing.
549
+ padding: prepareMediaVariable(--_ctm-dn-wt-pr-tt-pg);
424
550
  gap: var(--_ctm-mob-lt-im-sg, var(--_ctm-tab-lt-im-sg, var(--_ctm-lt-im-sg)));
425
551
  .language__name {
426
552
  width: 100%;
@@ -433,16 +559,9 @@
433
559
  text-align: prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-an);
434
560
  letter-spacing: prepareMediaVariable(--_ctm-dn-wt-pr-tt-lr-sg);
435
561
  line-height: prepareMediaVariable(--_ctm-dn-wt-pr-tt-le-ht);
436
- @include restrictToLinesShow(1);
437
- }
438
- }
439
- .language__flag {
440
- width: var(--_ctm-mob-lt-fg-se, var(--_ctm-tab-lt-fg-se, var(--_ctm-lt-fg-se)));
441
- height: var(--_ctm-mob-lt-fg-se, var(--_ctm-tab-lt-fg-se, var(--_ctm-lt-fg-se)));
442
- object-fit: cover;
443
- > svg {
444
- width: 100%;
445
- height: 100%;
562
+ text-transform: prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-tm);
563
+ word-wrap: prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-wp, normal);
564
+ word-break: prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-bk, normal);
446
565
  }
447
566
  }
448
567
 
@@ -456,8 +575,34 @@
456
575
  letter-spacing: var(--_sf-hr-lr-sg, prepareMediaVariable(--_ctm-dn-im-se-dt-se-lr-sg));
457
576
  line-height: var(--_sf-hr-le-ht, prepareMediaVariable(--_ctm-dn-im-se-dt-se-le-ht));
458
577
  text-decoration: var(--_sf-hr-ue, prepareMediaVariable(--_ctm-dn-im-se-dt-se-ue));
459
- white-space: nowrap;
460
- @include restrictToLinesShow(1);
578
+ text-transform: var(--_sf-hr-tt-tm, prepareMediaVariable(--_ctm-dn-im-se-dt-se-tt-tm));
579
+ word-wrap: var(--_sf-hr-wd-wp, prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-wp, normal));
580
+ word-break: var(--_sf-hr-wd-bk, prepareMediaVariable(--_ctm-dn-im-se-dt-se-wd-bk, normal));
581
+
582
+ // text-align only has room to act once the label owns the line box — as a
583
+ // content-sized flex item it hugged its text, so every alignment looked the
584
+ // same. `min-width: 0` keeps it shrinkable so a larger font size truncates
585
+ // instead of overflowing the widget.
586
+ flex: 1 1 auto;
587
+ min-width: 0;
588
+ max-width: 100%;
589
+
590
+ // Text Overflow is driven entirely by the two clamp custom properties the
591
+ // element sets per interaction state (see LanguageMenuElement/DropdownComponent):
592
+ // off resolves to 1 nowrap line, on to N wrapped lines. Keeping the box display
593
+ // constant means the hover and selected rules below only have to swap the pair,
594
+ // which a marker class could not express.
595
+ display: -webkit-box;
596
+ -webkit-box-orient: vertical;
597
+ overflow: hidden;
598
+ text-overflow: ellipsis;
599
+ -webkit-line-clamp: var(--_sf-it-clamp, 1);
600
+ white-space: var(--_sf-it-ws, nowrap);
601
+ }
602
+
603
+ .option:hover .language__name {
604
+ -webkit-line-clamp: var(--_sf-it-clamp-hr, var(--_sf-it-clamp, 1));
605
+ white-space: var(--_sf-it-ws-hr, var(--_sf-it-ws, nowrap));
461
606
  }
462
607
 
463
608
  //Dropdown
@@ -476,7 +621,16 @@
476
621
  letter-spacing: prepareMediaVariable(--_ctm-dn-wt-pr-tt-lr-sg);
477
622
  line-height: prepareMediaVariable(--_ctm-dn-wt-pr-tt-le-ht);
478
623
  padding: prepareMediaVariable(--_ctm-dn-wt-pr-tt-pg);
479
- @include restrictToLinesShow(1);
624
+ text-transform: prepareMediaVariable(--_ctm-dn-wt-pr-tt-tt-tm);
625
+ word-wrap: prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-wp, normal);
626
+ word-break: prepareMediaVariable(--_ctm-dn-wt-pr-tt-wd-bk, normal);
627
+ min-width: 0;
628
+ display: -webkit-box;
629
+ -webkit-box-orient: vertical;
630
+ overflow: hidden;
631
+ text-overflow: ellipsis;
632
+ -webkit-line-clamp: var(--_sf-it-clamp, 1);
633
+ white-space: var(--_sf-it-ws, nowrap);
480
634
  }
481
635
  .est__dropdown__main {
482
636
  position: relative;
@@ -597,13 +751,10 @@
597
751
  );
598
752
  }
599
753
  .option_select {
600
- // padding-block: unset;
601
- // display: -webkit-box;
602
- -webkit-line-clamp: 1;
603
- -webkit-box-orient: vertical;
754
+ // Truncation is handled by `.language__name` inside, which knows whether
755
+ // Text Overflow is on and how many lines to clamp to. A `white-space:
756
+ // nowrap` here inherited down and defeated the multi-line clamp.
604
757
  overflow: hidden;
605
- text-overflow: ellipsis;
606
- white-space: nowrap;
607
758
  }
608
759
  }
609
760
 
@@ -613,6 +764,15 @@
613
764
  width: 100%;
614
765
  position: relative;
615
766
  gap: 8px;
767
+ // Keeps the label shrinkable so a larger font size truncates instead of
768
+ // pushing the toggle icon out of the widget.
769
+ min-width: 0;
770
+
771
+ & > .option_select,
772
+ & > .value__selected__new {
773
+ flex: 1 1 auto;
774
+ min-width: 0;
775
+ }
616
776
  }
617
777
 
618
778
  .est__dropdown__icon {
@@ -22,9 +22,9 @@ $activeElementSelector: "[data-has-clicked='true']";
22
22
  0.00625 * (var(--_cms-scaling-factor) - var(--_cms-scrollbar-width))
23
23
  );
24
24
 
25
- &:has(#{$activeElementSelector}) {
26
- // border: 1px solid var(--_accent-color-2-500);
27
- }
25
+ // &:has(#{$activeElementSelector}) {
26
+ // // border: 1px solid var(--_accent-color-2-500);
27
+ // }
28
28
 
29
29
  & > div {
30
30
  &#{$mnwr} {
@@ -54,6 +54,7 @@ $activeElementSelector: "[data-has-clicked='true']";
54
54
  );
55
55
  max-width: 100%;
56
56
  max-height: 9999px;
57
+ padding: prepareMediaVariable(--_ctm-lig-lt-pg);
57
58
  &[data-background-type="color"] {
58
59
  background-color: prepareMediaVariable(--_ctm-lig-dn-bd-cr);
59
60
  }
package/dist/line.scss CHANGED
@@ -101,11 +101,13 @@
101
101
  border-width: prepareMediaVariable(--_ctm-lt-le-ts);
102
102
  border-color: prepareMediaVariable(--_ctm-dn-le-cr-bd-cr);
103
103
  }
104
+
104
105
  &[data-line-style="dashed"] .line__core {
105
106
  border-top-style: dashed;
106
107
  border-width: prepareMediaVariable(--_ctm-lt-le-ts);
107
108
  border-color: prepareMediaVariable(--_ctm-dn-le-cr-bd-cr);
108
109
  }
110
+
109
111
  &[data-line-style="double"] .line__core {
110
112
  border-top-style: double;
111
113
  border-width: prepareMediaVariable(--_ctm-lt-le-ts);
@@ -143,6 +145,7 @@
143
145
  &[data-line-style="hidden"] .line__core {
144
146
  border-top-style: hidden;
145
147
  }
148
+
146
149
  &[data-show-line-end-points="true"] {
147
150
  .line__container::before,
148
151
  .line__container::after {
@@ -162,34 +165,34 @@
162
165
  height: prepareMediaVariable(--_ctm-lt-le-ed-ps-ts);
163
166
  background-color: prepareMediaVariable(--_ctm-dn-le-ed-ps-cr-bd-cr);
164
167
  // border-color: var(--_ctm-dn-le-ed-ps-bd-cr);
165
- border-color: var(
166
- --_ctm-mob-dn-le-ed-ps-br-cr,
167
- var(--_ctm-tab-dn-le-ed-ps-br-cr, var(--_ctm-dn-le-ed-ps-br-cr))
168
- );
169
-
170
- border-style: var(
171
- --_ctm-mob-dn-le-ed-ps-br-se,
172
- var(--_ctm-tab-dn-le-ed-ps-br-se, var(--_ctm-dn-le-ed-ps-br-se))
173
- );
174
- border-width: var(
175
- --_ctm-mob-dn-le-ed-ps-br-wh,
176
- var(--_ctm-tab-dn-le-ed-ps-br-wh, var(--_ctm-dn-le-ed-ps-br-wh))
177
- );
168
+ // border-color: var(
169
+ // --_ctm-mob-dn-le-ed-ps-cr-br-cr,
170
+ // var(--_ctm-tab-dn-le-ed-ps-cr-br-cr, var(--_ctm-dn-le-ed-ps-cr-br-cr))
171
+ // );
172
+
173
+ // border-style: var(
174
+ // --_ctm-mob-dn-le-ed-ps-cr-br-se,
175
+ // var(--_ctm-tab-dn-le-ed-ps-cr-br-se, var(--_ctm-dn-le-ed-ps-cr-br-se))
176
+ // );
177
+ // border-width: var(
178
+ // --_ctm-mob-dn-le-ed-ps-cr-br-wh,
179
+ // var(--_ctm-tab-dn-le-ed-ps-cr-br-wh, var(--_ctm-dn-le-ed-ps-cr-br-wh))
180
+ // );
178
181
  box-shadow: var(
179
- --_ctm-mob-dn-le-ed-ps-sw-ae,
180
- var(--_ctm-tab-dn-le-ed-ps-sw-ae, var(--_ctm-dn-le-ed-ps-sw-ae))
182
+ --_ctm-mob-dn-le-ed-ps-cr-sw-ae,
183
+ var(--_ctm-tab-dn-le-ed-ps-cr-sw-ae, var(--_ctm-dn-le-ed-ps-cr-sw-ae))
181
184
  )
182
185
  var(
183
- --_ctm-mob-dn-le-ed-ps-sw-br,
184
- var(--_ctm-tab-dn-le-ed-ps-sw-br, var(--_ctm-dn-le-ed-ps-sw-br))
186
+ --_ctm-mob-dn-le-ed-ps-cr-sw-br,
187
+ var(--_ctm-tab-dn-le-ed-ps-cr-sw-br, var(--_ctm-dn-le-ed-ps-cr-sw-br))
185
188
  )
186
189
  var(
187
- --_ctm-mob-dn-le-ed-ps-sw-sd,
188
- var(--_ctm-tab-dn-le-ed-ps-sw-sd, var(--_ctm-dn-le-ed-ps-sw-sd))
190
+ --_ctm-mob-dn-le-ed-ps-cr-sw-sd,
191
+ var(--_ctm-tab-dn-le-ed-ps-cr-sw-sd, var(--_ctm-dn-le-ed-ps-cr-sw-sd))
189
192
  )
190
193
  var(
191
- --_ctm-mob-dn-le-ed-ps-sw-cr,
192
- var(--_ctm-tab-dn-le-ed-ps-sw-cr, var(--_ctm-dn-le-ed-ps-sw-cr))
194
+ --_ctm-mob-dn-le-ed-ps-cr-sw-cr,
195
+ var(--_ctm-tab-dn-le-ed-ps-cr-sw-cr, var(--_ctm-dn-le-ed-ps-cr-sw-cr))
193
196
  );
194
197
  }
195
198
 
@@ -199,19 +202,19 @@
199
202
  height: prepareMediaVariable(--_ctm-lt-le-ed-ps-ts);
200
203
  background-color: prepareMediaVariable(--_ctm-dn-le-ed-ps-cr-bd-cr);
201
204
  // border-color: var(--_ctm-dn-le-ed-ps-bd-cr);
202
- border-color: var(
203
- --_ctm-mob-dn-le-ed-ps-cr-br-cr,
204
- var(--_ctm-tab-dn-le-ed-ps-cr-br-cr, var(--_ctm-dn-le-ed-ps-cr-br-cr))
205
- );
206
-
207
- border-style: var(
208
- --_ctm-mob-dn-le-ed-ps-cr-br-se,
209
- var(--_ctm-tab-dn-le-ed-ps-cr-br-se, var(--_ctm-dn-le-ed-ps-cr-br-se))
210
- );
211
- border-width: var(
212
- --_ctm-mob-dn-le-ed-ps-cr-br-wh,
213
- var(--_ctm-tab-dn-le-ed-ps-cr-br-wh, var(--_ctm-dn-le-ed-ps-cr-br-wh))
214
- );
205
+ // border-color: var(
206
+ // --_ctm-mob-dn-le-ed-ps-cr-br-cr,
207
+ // var(--_ctm-tab-dn-le-ed-ps-cr-br-cr, var(--_ctm-dn-le-ed-ps-cr-br-cr))
208
+ // );
209
+
210
+ // border-style: var(
211
+ // --_ctm-mob-dn-le-ed-ps-cr-br-se,
212
+ // var(--_ctm-tab-dn-le-ed-ps-cr-br-se, var(--_ctm-dn-le-ed-ps-cr-br-se))
213
+ // );
214
+ // border-width: var(
215
+ // --_ctm-mob-dn-le-ed-ps-cr-br-wh,
216
+ // var(--_ctm-tab-dn-le-ed-ps-cr-br-wh, var(--_ctm-dn-le-ed-ps-cr-br-wh))
217
+ // );
215
218
  box-shadow: var(
216
219
  --_ctm-mob-dn-le-ed-ps-cr-sw-ae,
217
220
  var(--_ctm-tab-dn-le-ed-ps-cr-sw-ae, var(--_ctm-dn-le-ed-ps-cr-sw-ae))
@@ -261,11 +264,13 @@
261
264
  border-width: var(--_ctm-lt-le-ts);
262
265
  border-color: var(--_ctm-dn-le-cr-bd-cr);
263
266
  }
267
+
264
268
  &[data-line-style="dashed"] .line__core {
265
269
  border-left-style: dashed;
266
270
  border-width: var(--_ctm-lt-le-ts);
267
271
  border-color: var(--_ctm-dn-le-cr-bd-cr);
268
272
  }
273
+
269
274
  &[data-line-style="double"] .line__core {
270
275
  border-left-style: double;
271
276
  border-width: var(--_ctm-lt-le-ts);
@@ -310,11 +315,11 @@
310
315
  content: "";
311
316
  position: absolute;
312
317
  width: prepareMediaVariable(--_ctm-lt-le-ed-ps-ts);
313
- height: 8px;
318
+ height: prepareMediaVariable(--_ctm-lt-le-ed-ps-ts);
319
+ // height: 8px;
314
320
  background-color: prepareMediaVariable(--_ctm-dn-le-ed-ps-cr-bd-cr);
315
321
  left: 50%;
316
322
  transform: translateX(-50%);
317
- border-width: prepareMediaVariable(--_ctm-lt-le-ed-ps-ts);
318
323
  border-radius: 50%; // Default is circle
319
324
  }
320
325
 
@@ -334,4 +339,17 @@
334
339
  }
335
340
  }
336
341
  }
342
+
343
+ // ─── End Point Border ────────────────────
344
+ // Kept last so it wins over the per-direction end point rules above.
345
+ &[data-show-line-end-points="true"][data-show-line-end-points-border="true"] {
346
+ .line__container::before,
347
+ .line__container::after {
348
+ // keeps the end point at its configured size once a border is added
349
+ box-sizing: border-box;
350
+ border-color: prepareMediaVariable(--_ctm-dn-le-ed-ps-cr-br-cr);
351
+ border-style: prepareMediaVariable(--_ctm-dn-le-ed-ps-cr-br-se);
352
+ border-width: prepareMediaVariable(--_ctm-dn-le-ed-ps-cr-br-wh);
353
+ }
354
+ }
337
355
  }