@designcrowd/library.brand-page 6.0.18 → 6.0.19-ast-btns

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 (75) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-CIrk6Brm.js → CreatedOnBrandCrowd-de-de-BrIpxgMF.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-CvXk0moH.js → CreatedOnBrandCrowd-en-us-DQDv2DBf.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BhtZbjjU.js → CreatedOnBrandCrowd-es-es-BadaUjK1.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-B6TD57O-.js → CreatedOnBrandCrowd-fr-ca-DbrUAAGP.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-B6TD57O-.js → CreatedOnBrandCrowd-fr-fr-DbrUAAGP.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-Bto0xOtS.js → CreatedOnBrandCrowd-pt-br-Cy41WPcW.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-Bto0xOtS.js → CreatedOnBrandCrowd-pt-pt-Cy41WPcW.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-2h2W3y5z.js → CreatedOnDcom-de-de-D6UvcWQ5.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-D6Jgk6yv.js → CreatedOnDcom-en-us-DKUOQjj3.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-sBCqYQIm.js → CreatedOnDcom-es-es-CftpM7Vk.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-C8hg5hTU.js → CreatedOnDcom-fr-ca-DcCQzJDA.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-_DP1Umyh.js → CreatedOnDcom-fr-fr-Bodcymjw.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-BdwYAy5p.js → CreatedOnDcom-pt-br-B1OmeM4X.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-Bm1NHVaH.js → CreatedOnDcom-pt-pt-CGx-k757.js} +1 -1
  15. package/lib/src/brand-page/components/button/decorative-button-styles.d.ts +5 -0
  16. package/lib/src/brand-page/components/button/decorative-button-styles.js +13 -0
  17. package/lib/src/brand-page/components/button/paper-button-mask.d.ts +1 -0
  18. package/lib/src/brand-page/components/button/paper-button-mask.js +8 -0
  19. package/lib/src/brand-page/components/collapsible/Collapsible.mixin.d.ts +11 -0
  20. package/lib/src/brand-page/components/collapsible/Collapsible.mixin.js +10 -0
  21. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +1 -0
  22. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +7 -0
  23. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +5 -0
  24. package/lib/src/brand-page/components/payment/Payment.mixin.js +5 -0
  25. package/lib/src/brand-page/models/index.d.ts +1 -0
  26. package/lib/src/brand-page/models/payment.model.d.ts +2 -0
  27. package/lib/src/brand-page/utils/migration/migration-19.d.ts +2 -0
  28. package/lib/src/brand-page/utils/migration/migration-19.js +48 -0
  29. package/lib/src/brand-page/utils/migration.util.js +9 -0
  30. package/lib/src/brand-page/utils/view-model.util.js +1 -0
  31. package/lib/src/brand-page-maker/constants/config-settings-constant.js +32 -1
  32. package/lib/src/brand-page-maker/default-getters/contact-form-background-color.default-getter.d.ts +8 -0
  33. package/lib/src/brand-page-maker/default-getters/contact-form-background-color.default-getter.js +16 -0
  34. package/lib/src/brand-page-maker/default-getters/index.d.ts +1 -0
  35. package/lib/src/brand-page-maker/default-getters/index.js +1 -0
  36. package/lib/src/brand-page-maker/models/button-styles-config.js +15 -3
  37. package/lib/src/brand-page-maker/models/content-settings.js +3 -0
  38. package/lib/src/css/library.brand-page-brandCrowd.min.css +72 -69
  39. package/lib/src/css/library.brand-page-brandPage.min.css +72 -69
  40. package/lib/src/css/library.brand-page-designCom.min.css +72 -69
  41. package/lib/src/css/library.brand-page-preview.min.css +72 -69
  42. package/lib/src/index.mjs +1 -1
  43. package/lib/src/{lib-CPTMajMv.js → lib-ce4Vsuiu.js} +30228 -30028
  44. package/lib/src/metadata-builder/builders/section-rules/banner-section.rules.js +6 -0
  45. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +1 -1
  46. package/package.json +1 -1
  47. package/src/brand-page/components/button/ButtonStyleWrapper.vue +92 -41
  48. package/src/brand-page/components/button/ButtonStyleWrapper.vue.test.ts +164 -0
  49. package/src/brand-page/components/button/decorative-button-styles.ts +16 -0
  50. package/src/brand-page/components/button/paper-button-mask.ts +8 -0
  51. package/src/brand-page/components/collapsible/Collapsible.mixin.ts +11 -0
  52. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +10 -0
  53. package/src/brand-page/components/contact-form/ContactForm.vue +88 -39
  54. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +6 -0
  55. package/src/brand-page/components/mailing-list/MailingList.vue +18 -10
  56. package/src/brand-page/components/payment/Payment.mixin.ts +6 -0
  57. package/src/brand-page/components/payment/Payment.vue +43 -24
  58. package/src/brand-page/components/payment/RequestPaymentStripe.vue +26 -22
  59. package/src/brand-page/components/shop/Shop.vue +15 -6
  60. package/src/brand-page/models/index.ts +1 -0
  61. package/src/brand-page/models/payment.model.ts +2 -0
  62. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -3
  63. package/src/brand-page/utils/migration/migration-19.test.ts +120 -0
  64. package/src/brand-page/utils/migration/migration-19.ts +67 -0
  65. package/src/brand-page/utils/migration.util.ts +10 -0
  66. package/src/brand-page/utils/view-model.util.ts +1 -0
  67. package/src/brand-page-maker/constants/config-settings-constant.ts +32 -0
  68. package/src/brand-page-maker/default-getters/contact-form-background-color.default-getter.ts +23 -0
  69. package/src/brand-page-maker/default-getters/index.ts +1 -0
  70. package/src/brand-page-maker/models/button-styles-config.ts +15 -3
  71. package/src/brand-page-maker/models/content-settings.ts +3 -0
  72. package/src/metadata-builder/builders/section-rules/banner-section.rules.ts +6 -0
  73. package/src/metadata-builder/parsers/section-tool-arguments.ts +7 -1
  74. package/src/metadata-builder/sanitizers/__tests__/section-args-validator.test.ts +13 -0
  75. package/src/shared/style-settings/components/StyleSettings.vue +1 -0
@@ -1521,6 +1521,9 @@ a.maker-anchor {
1521
1521
  .tw-min-w-8 {
1522
1522
  min-width: 2rem;
1523
1523
  }
1524
+ .tw-min-w-\[120px\] {
1525
+ min-width: 120px;
1526
+ }
1524
1527
  .tw-min-w-\[310px\] {
1525
1528
  min-width: 310px;
1526
1529
  }
@@ -1863,16 +1866,6 @@ a.maker-anchor {
1863
1866
  -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1864
1867
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1865
1868
  }
1866
- .tw-translate-y-\[-10\%\] {
1867
- --tw-translate-y: -10%;
1868
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1869
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1870
- }
1871
- .tw-translate-y-\[-4\%\] {
1872
- --tw-translate-y: -4%;
1873
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1874
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1875
- }
1876
1869
  .tw-translate-y-px {
1877
1870
  --tw-translate-y: 1px;
1878
1871
  -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -3448,9 +3441,6 @@ a.maker-anchor {
3448
3441
  .tw-leading-tight {
3449
3442
  line-height: 1.25;
3450
3443
  }
3451
- .tw-text-\[var\(--icon-color\)\] {
3452
- color: var(--icon-color);
3453
- }
3454
3444
  .tw-text-black {
3455
3445
  --tw-text-opacity: 1;
3456
3446
  color: rgb(0 0 0 / var(--tw-text-opacity));
@@ -6273,39 +6263,56 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6273
6263
  max-height: 45vh;
6274
6264
  }
6275
6265
 
6276
- .bp-button-paper-top[data-v-604db8c6] {
6277
- --tw-translate-y: -10%;
6278
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
6279
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
6280
- color: var(--icon-color);
6266
+ /* Decorative styles on submit buttons render flush at the bottom. Zero the host
6267
+ button's own margins: its decoration is positioned relative to the WRAPPER, so a
6268
+ margin on the button itself shifts it out of alignment with the decoration. The
6269
+ top gap is instead applied to the wrapper (tw-mt-4 above) so the whole decorated
6270
+ unit moves together and stays flush at the container's bottom edge (BP-5800). */
6271
+ .bp-style-wrapper--no-margin[data-v-c2533ae5] button {
6272
+ margin-top: 0;
6273
+ margin-bottom: 0;
6281
6274
  }
6282
- .bp-button-paper-bottom[data-v-604db8c6] {
6283
- --tw-translate-y: -4%;
6284
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
6285
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
6286
- color: var(--icon-color);
6275
+
6276
+ /* The brushstroke ends are transformed over the button's left/right edges, so
6277
+ they must not capture clicks (BP-5882). */
6278
+ .bp-icon-brush-left[data-v-c2533ae5],
6279
+ .bp-icon-brush-right[data-v-c2533ae5] {
6280
+ pointer-events: none;
6287
6281
  }
6288
- .bp-button-paper-top[data-v-604db8c6] svg,
6289
- .bp-button-paper-bottom[data-v-604db8c6] svg {
6290
- width: 100%;
6291
- height: auto;
6282
+
6283
+ /* Torn-paper: clip the button itself to a torn silhouette via a CSS alpha mask
6284
+ (the button keeps its own fill). The mask stretches to the button box, so the
6285
+ torn shape always matches the button — it can't overhang neighbours, stretch
6286
+ past the button, or block clicks the way the old absolute overlay did
6287
+ (BP-5882/BP-5883). */
6288
+ .bp-button-paper[data-v-c2533ae5] button,
6289
+ .bp-button-paper[data-v-c2533ae5] a {
6290
+ -webkit-mask: var(--paper-mask) no-repeat center / 100% 100%;
6291
+ mask: var(--paper-mask) no-repeat center / 100% 100%;
6292
+ -webkit-mask-mode: alpha;
6293
+ mask-mode: alpha;
6292
6294
  }
6293
- .bp-icon-brush-left[data-v-604db8c6] svg {
6295
+ .bp-icon-brush-left[data-v-c2533ae5] svg {
6294
6296
  -webkit-transform: translateX(-99%);
6295
6297
  transform: translateX(-99%);
6296
6298
  width: auto;
6297
6299
  }
6298
- .bp-icon-brush-right[data-v-604db8c6] svg {
6300
+ .bp-icon-brush-right[data-v-c2533ae5] svg {
6299
6301
  width: auto;
6300
6302
  }
6301
- .bp-button-arrow[data-v-604db8c6],
6302
- .device-wrapper--mobile .bp-button-arrow[data-v-604db8c6] {
6303
- clip-path: polygon(5% 100%, 0% 50%, 5% 0%, 95% 0%, 100% 50%, 95% 100%);
6304
- }
6305
- @media (min-width: 767px) {
6306
- .bp-button-arrow[data-v-604db8c6] {
6307
- clip-path: polygon(3% 100%, 0% 50%, 3% 0%, 97% 0%, 100% 50%, 97% 100%);
6308
- }
6303
+ .bp-button-arrow[data-v-c2533ae5],
6304
+ .device-wrapper--mobile .bp-button-arrow[data-v-c2533ae5] {
6305
+ /* Fixed-px arrowhead (not %) so the chevron is equally sharp at any button
6306
+ width — a %-based point collapses on narrow buttons (e.g. the 120px contact
6307
+ form submit) and only reads as an arrow on wide ones. */
6308
+ clip-path: polygon(
6309
+ 12px 100%,
6310
+ 0 50%,
6311
+ 12px 0,
6312
+ calc(100% - 12px) 0,
6313
+ 100% 50%,
6314
+ calc(100% - 12px) 100%
6315
+ );
6309
6316
  }
6310
6317
 
6311
6318
  .empty-para[data-v-c90cc6bc] p:empty::after {
@@ -6419,7 +6426,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6419
6426
  text-decoration: underline;
6420
6427
  }
6421
6428
 
6422
- .form-error[data-v-49b27af8] {
6429
+ .form-error[data-v-ef964594] {
6423
6430
  font-size: 0.875rem;
6424
6431
  line-height: 1.25rem;
6425
6432
  color: #f21b3f
@@ -6674,14 +6681,10 @@ select[data-v-14e7c7c7] {
6674
6681
  background-position: right 12px center;
6675
6682
  }
6676
6683
 
6677
- .form-error[data-v-7731d899] {
6684
+ .form-error[data-v-0cc4cbbd] {
6678
6685
  font-size: 0.75rem;
6679
6686
  line-height: 1rem;
6680
- color: #f21b3f;
6681
- }
6682
- .pay-button-disabled[data-v-7731d899] {
6683
- opacity: 0.5 !important;
6684
- pointer-events: none;
6687
+ color: #f21b3f
6685
6688
  }
6686
6689
 
6687
6690
  /* TODO: review CSS setup, scoped CSS will not work in slot */
@@ -6777,53 +6780,53 @@ select[data-v-14e7c7c7] {
6777
6780
  width: 100%;
6778
6781
  }
6779
6782
 
6780
- .form-error[data-v-d0a8cdec] {
6783
+ .form-error[data-v-a6dab4ce] {
6781
6784
  font-size: 0.875rem;
6782
6785
  line-height: 1.25rem;
6783
6786
  color: #f21b3f;
6784
6787
  }
6785
- .contact-container[data-v-d0a8cdec] {
6788
+ .contact-container[data-v-a6dab4ce] {
6786
6789
  max-width: var(--brandsite-max-width);
6787
6790
  margin: 0 auto;
6788
6791
  }
6789
- .c-text-padding[data-v-d0a8cdec] {
6792
+ .c-text-padding[data-v-a6dab4ce] {
6790
6793
  padding-left: 1rem;
6791
6794
  padding-right: 1rem;
6792
6795
  }
6793
- .device-wrapper--mobile .c-divided-container[data-v-d0a8cdec] {
6796
+ .device-wrapper--mobile .c-divided-container[data-v-a6dab4ce] {
6794
6797
  -webkit-box-orient: vertical;
6795
6798
  -webkit-box-direction: normal;
6796
6799
  -ms-flex-direction: column;
6797
6800
  flex-direction: column;
6798
6801
  }
6799
- .device-wrapper--mobile .c-divided-container-reverse[data-v-d0a8cdec] {
6802
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-a6dab4ce] {
6800
6803
  -webkit-box-orient: vertical;
6801
6804
  -webkit-box-direction: reverse;
6802
6805
  -ms-flex-direction: column-reverse;
6803
6806
  flex-direction: column-reverse;
6804
6807
  }
6805
6808
  @media (max-width: 767px) {
6806
- .c-button-full[data-v-d0a8cdec] {
6809
+ .c-button-full[data-v-a6dab4ce] {
6807
6810
  width: 100%;
6808
6811
  }
6809
- .c-col-span-2[data-v-d0a8cdec] {
6812
+ .c-col-span-2[data-v-a6dab4ce] {
6810
6813
  grid-column: span 2 / span 2;
6811
6814
  }
6812
- .c-mobile-padding[data-v-d0a8cdec] {
6815
+ .c-mobile-padding[data-v-a6dab4ce] {
6813
6816
  padding: 1rem;
6814
6817
  }
6815
- .c-text-padding[data-v-d0a8cdec] {
6818
+ .c-text-padding[data-v-a6dab4ce] {
6816
6819
  grid-column: span 2 / span 2;
6817
6820
  padding-left: 0px;
6818
6821
  padding-right: 0px;
6819
6822
  }
6820
- .c-divided-container[data-v-d0a8cdec] {
6823
+ .c-divided-container[data-v-a6dab4ce] {
6821
6824
  -webkit-box-orient: vertical;
6822
6825
  -webkit-box-direction: normal;
6823
6826
  -ms-flex-direction: column;
6824
6827
  flex-direction: column;
6825
6828
  }
6826
- .c-divided-container-reverse[data-v-d0a8cdec] {
6829
+ .c-divided-container-reverse[data-v-a6dab4ce] {
6827
6830
  -webkit-box-orient: vertical;
6828
6831
  -webkit-box-direction: reverse;
6829
6832
  -ms-flex-direction: column-reverse;
@@ -6831,16 +6834,16 @@ select[data-v-14e7c7c7] {
6831
6834
  }
6832
6835
  }
6833
6836
  @media (min-width: 767px) {
6834
- .c-aspect-square[data-v-d0a8cdec] {
6837
+ .c-aspect-square[data-v-a6dab4ce] {
6835
6838
  aspect-ratio: 1 / 1;
6836
6839
  }
6837
- .c-divided-container[data-v-d0a8cdec] {
6840
+ .c-divided-container[data-v-a6dab4ce] {
6838
6841
  -webkit-box-orient: horizontal;
6839
6842
  -webkit-box-direction: normal;
6840
6843
  -ms-flex-direction: row;
6841
6844
  flex-direction: row;
6842
6845
  }
6843
- .c-divided-container-reverse[data-v-d0a8cdec] {
6846
+ .c-divided-container-reverse[data-v-a6dab4ce] {
6844
6847
  -webkit-box-orient: horizontal;
6845
6848
  -webkit-box-direction: reverse;
6846
6849
  -ms-flex-direction: row-reverse;
@@ -7472,44 +7475,44 @@ select[data-v-14e7c7c7] {
7472
7475
  color: #f21b3f;
7473
7476
  }
7474
7477
 
7475
- .inner-container[data-v-24954146] {
7478
+ .inner-container[data-v-c359b5e7] {
7476
7479
  max-width: var(--brandsite-max-width);
7477
7480
  margin: 0 auto;
7478
7481
  }
7479
- .outer-container[data-v-24954146] {
7482
+ .outer-container[data-v-c359b5e7] {
7480
7483
  padding-left: var(--page-padding);
7481
7484
  padding-right: var(--page-padding);
7482
7485
  }
7483
- .modal-cart[data-v-24954146] .cart-image {
7486
+ .modal-cart[data-v-c359b5e7] .cart-image {
7484
7487
  width: 3rem;
7485
7488
  }
7486
- .modal-cart[data-v-24954146] .cart-option {
7489
+ .modal-cart[data-v-c359b5e7] .cart-option {
7487
7490
  width: 100%;
7488
7491
  }
7489
- .success-bar-container[data-v-24954146] .tw-bg-success-500 {
7492
+ .success-bar-container[data-v-c359b5e7] .tw-bg-success-500 {
7490
7493
  --tw-bg-opacity: 1;
7491
7494
  background-color: rgb(36 168 16 / var(--tw-bg-opacity));
7492
7495
  }
7493
7496
  @media (min-width: 640px) {
7494
- .modal-product-detail[data-v-24954146] .modal {
7497
+ .modal-product-detail[data-v-c359b5e7] .modal {
7495
7498
  min-width: 100vh;
7496
7499
  }
7497
- .modal-cart[data-v-24954146] .modal {
7500
+ .modal-cart[data-v-c359b5e7] .modal {
7498
7501
  min-width: 90vh;
7499
7502
  max-height: 90vh;
7500
7503
  }
7501
- .modal-cart[data-v-24954146] .cart-image {
7504
+ .modal-cart[data-v-c359b5e7] .cart-image {
7502
7505
  width: 8rem;
7503
7506
  }
7504
- .modal-cart[data-v-24954146] .cart-option {
7507
+ .modal-cart[data-v-c359b5e7] .cart-option {
7505
7508
  width: 75%;
7506
7509
  }
7507
- .success-bar[data-v-24954146] {
7510
+ .success-bar[data-v-c359b5e7] {
7508
7511
  width: 50%;
7509
7512
  }
7510
7513
  }
7511
7514
  @media (max-width: 640px) {
7512
- .success-bar[data-v-24954146] {
7515
+ .success-bar[data-v-c359b5e7] {
7513
7516
  width: 91.666667%;
7514
7517
  }
7515
7518
  }
@@ -1130,6 +1130,9 @@ a:not(.tw-lowercase) {
1130
1130
  .tw-min-w-8 {
1131
1131
  min-width: 2rem
1132
1132
  }
1133
+ .tw-min-w-\[120px\] {
1134
+ min-width: 120px
1135
+ }
1133
1136
  .tw-min-w-\[310px\] {
1134
1137
  min-width: 310px
1135
1138
  }
@@ -1472,16 +1475,6 @@ a:not(.tw-lowercase) {
1472
1475
  -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1473
1476
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
1474
1477
  }
1475
- .tw-translate-y-\[-10\%\] {
1476
- --tw-translate-y: -10%;
1477
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1478
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
1479
- }
1480
- .tw-translate-y-\[-4\%\] {
1481
- --tw-translate-y: -4%;
1482
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1483
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
1484
- }
1485
1478
  .tw-translate-y-px {
1486
1479
  --tw-translate-y: 1px;
1487
1480
  -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -3055,9 +3048,6 @@ a:not(.tw-lowercase) {
3055
3048
  .tw-leading-tight {
3056
3049
  line-height: 1.25
3057
3050
  }
3058
- .tw-text-\[var\(--icon-color\)\] {
3059
- color: var(--icon-color)
3060
- }
3061
3051
  .tw-text-black {
3062
3052
  --tw-text-opacity: 1;
3063
3053
  color: rgb(0 0 0 / var(--tw-text-opacity))
@@ -5692,39 +5682,56 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5692
5682
  max-height: 45vh;
5693
5683
  }
5694
5684
 
5695
- .bp-button-paper-top[data-v-604db8c6] {
5696
- --tw-translate-y: -10%;
5697
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5698
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5699
- color: var(--icon-color);
5685
+ /* Decorative styles on submit buttons render flush at the bottom. Zero the host
5686
+ button's own margins: its decoration is positioned relative to the WRAPPER, so a
5687
+ margin on the button itself shifts it out of alignment with the decoration. The
5688
+ top gap is instead applied to the wrapper (tw-mt-4 above) so the whole decorated
5689
+ unit moves together and stays flush at the container's bottom edge (BP-5800). */
5690
+ .bp-style-wrapper--no-margin[data-v-c2533ae5] button {
5691
+ margin-top: 0;
5692
+ margin-bottom: 0;
5700
5693
  }
5701
- .bp-button-paper-bottom[data-v-604db8c6] {
5702
- --tw-translate-y: -4%;
5703
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5704
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5705
- color: var(--icon-color);
5694
+
5695
+ /* The brushstroke ends are transformed over the button's left/right edges, so
5696
+ they must not capture clicks (BP-5882). */
5697
+ .bp-icon-brush-left[data-v-c2533ae5],
5698
+ .bp-icon-brush-right[data-v-c2533ae5] {
5699
+ pointer-events: none;
5706
5700
  }
5707
- .bp-button-paper-top[data-v-604db8c6] svg,
5708
- .bp-button-paper-bottom[data-v-604db8c6] svg {
5709
- width: 100%;
5710
- height: auto;
5701
+
5702
+ /* Torn-paper: clip the button itself to a torn silhouette via a CSS alpha mask
5703
+ (the button keeps its own fill). The mask stretches to the button box, so the
5704
+ torn shape always matches the button — it can't overhang neighbours, stretch
5705
+ past the button, or block clicks the way the old absolute overlay did
5706
+ (BP-5882/BP-5883). */
5707
+ .bp-button-paper[data-v-c2533ae5] button,
5708
+ .bp-button-paper[data-v-c2533ae5] a {
5709
+ -webkit-mask: var(--paper-mask) no-repeat center / 100% 100%;
5710
+ mask: var(--paper-mask) no-repeat center / 100% 100%;
5711
+ -webkit-mask-mode: alpha;
5712
+ mask-mode: alpha;
5711
5713
  }
5712
- .bp-icon-brush-left[data-v-604db8c6] svg {
5714
+ .bp-icon-brush-left[data-v-c2533ae5] svg {
5713
5715
  -webkit-transform: translateX(-99%);
5714
5716
  transform: translateX(-99%);
5715
5717
  width: auto;
5716
5718
  }
5717
- .bp-icon-brush-right[data-v-604db8c6] svg {
5719
+ .bp-icon-brush-right[data-v-c2533ae5] svg {
5718
5720
  width: auto;
5719
5721
  }
5720
- .bp-button-arrow[data-v-604db8c6],
5721
- .device-wrapper--mobile .bp-button-arrow[data-v-604db8c6] {
5722
- clip-path: polygon(5% 100%, 0% 50%, 5% 0%, 95% 0%, 100% 50%, 95% 100%);
5723
- }
5724
- @media (min-width: 767px) {
5725
- .bp-button-arrow[data-v-604db8c6] {
5726
- clip-path: polygon(3% 100%, 0% 50%, 3% 0%, 97% 0%, 100% 50%, 97% 100%);
5727
- }
5722
+ .bp-button-arrow[data-v-c2533ae5],
5723
+ .device-wrapper--mobile .bp-button-arrow[data-v-c2533ae5] {
5724
+ /* Fixed-px arrowhead (not %) so the chevron is equally sharp at any button
5725
+ width — a %-based point collapses on narrow buttons (e.g. the 120px contact
5726
+ form submit) and only reads as an arrow on wide ones. */
5727
+ clip-path: polygon(
5728
+ 12px 100%,
5729
+ 0 50%,
5730
+ 12px 0,
5731
+ calc(100% - 12px) 0,
5732
+ 100% 50%,
5733
+ calc(100% - 12px) 100%
5734
+ );
5728
5735
  }
5729
5736
 
5730
5737
  .empty-para[data-v-c90cc6bc] p:empty::after {
@@ -5838,7 +5845,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5838
5845
  text-decoration: underline;
5839
5846
  }
5840
5847
 
5841
- .form-error[data-v-49b27af8] {
5848
+ .form-error[data-v-ef964594] {
5842
5849
  font-size: 0.875rem;
5843
5850
  line-height: 1.25rem;
5844
5851
  color: #f21b3f
@@ -6093,14 +6100,10 @@ select[data-v-14e7c7c7] {
6093
6100
  background-position: right 12px center;
6094
6101
  }
6095
6102
 
6096
- .form-error[data-v-7731d899] {
6103
+ .form-error[data-v-0cc4cbbd] {
6097
6104
  font-size: 0.75rem;
6098
6105
  line-height: 1rem;
6099
- color: #f21b3f;
6100
- }
6101
- .pay-button-disabled[data-v-7731d899] {
6102
- opacity: 0.5 !important;
6103
- pointer-events: none;
6106
+ color: #f21b3f
6104
6107
  }
6105
6108
 
6106
6109
  /* TODO: review CSS setup, scoped CSS will not work in slot */
@@ -6196,53 +6199,53 @@ select[data-v-14e7c7c7] {
6196
6199
  width: 100%;
6197
6200
  }
6198
6201
 
6199
- .form-error[data-v-d0a8cdec] {
6202
+ .form-error[data-v-a6dab4ce] {
6200
6203
  font-size: 0.875rem;
6201
6204
  line-height: 1.25rem;
6202
6205
  color: #f21b3f;
6203
6206
  }
6204
- .contact-container[data-v-d0a8cdec] {
6207
+ .contact-container[data-v-a6dab4ce] {
6205
6208
  max-width: var(--brandsite-max-width);
6206
6209
  margin: 0 auto;
6207
6210
  }
6208
- .c-text-padding[data-v-d0a8cdec] {
6211
+ .c-text-padding[data-v-a6dab4ce] {
6209
6212
  padding-left: 1rem;
6210
6213
  padding-right: 1rem;
6211
6214
  }
6212
- .device-wrapper--mobile .c-divided-container[data-v-d0a8cdec] {
6215
+ .device-wrapper--mobile .c-divided-container[data-v-a6dab4ce] {
6213
6216
  -webkit-box-orient: vertical;
6214
6217
  -webkit-box-direction: normal;
6215
6218
  -ms-flex-direction: column;
6216
6219
  flex-direction: column;
6217
6220
  }
6218
- .device-wrapper--mobile .c-divided-container-reverse[data-v-d0a8cdec] {
6221
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-a6dab4ce] {
6219
6222
  -webkit-box-orient: vertical;
6220
6223
  -webkit-box-direction: reverse;
6221
6224
  -ms-flex-direction: column-reverse;
6222
6225
  flex-direction: column-reverse;
6223
6226
  }
6224
6227
  @media (max-width: 767px) {
6225
- .c-button-full[data-v-d0a8cdec] {
6228
+ .c-button-full[data-v-a6dab4ce] {
6226
6229
  width: 100%;
6227
6230
  }
6228
- .c-col-span-2[data-v-d0a8cdec] {
6231
+ .c-col-span-2[data-v-a6dab4ce] {
6229
6232
  grid-column: span 2 / span 2;
6230
6233
  }
6231
- .c-mobile-padding[data-v-d0a8cdec] {
6234
+ .c-mobile-padding[data-v-a6dab4ce] {
6232
6235
  padding: 1rem;
6233
6236
  }
6234
- .c-text-padding[data-v-d0a8cdec] {
6237
+ .c-text-padding[data-v-a6dab4ce] {
6235
6238
  grid-column: span 2 / span 2;
6236
6239
  padding-left: 0px;
6237
6240
  padding-right: 0px;
6238
6241
  }
6239
- .c-divided-container[data-v-d0a8cdec] {
6242
+ .c-divided-container[data-v-a6dab4ce] {
6240
6243
  -webkit-box-orient: vertical;
6241
6244
  -webkit-box-direction: normal;
6242
6245
  -ms-flex-direction: column;
6243
6246
  flex-direction: column;
6244
6247
  }
6245
- .c-divided-container-reverse[data-v-d0a8cdec] {
6248
+ .c-divided-container-reverse[data-v-a6dab4ce] {
6246
6249
  -webkit-box-orient: vertical;
6247
6250
  -webkit-box-direction: reverse;
6248
6251
  -ms-flex-direction: column-reverse;
@@ -6250,16 +6253,16 @@ select[data-v-14e7c7c7] {
6250
6253
  }
6251
6254
  }
6252
6255
  @media (min-width: 767px) {
6253
- .c-aspect-square[data-v-d0a8cdec] {
6256
+ .c-aspect-square[data-v-a6dab4ce] {
6254
6257
  aspect-ratio: 1 / 1;
6255
6258
  }
6256
- .c-divided-container[data-v-d0a8cdec] {
6259
+ .c-divided-container[data-v-a6dab4ce] {
6257
6260
  -webkit-box-orient: horizontal;
6258
6261
  -webkit-box-direction: normal;
6259
6262
  -ms-flex-direction: row;
6260
6263
  flex-direction: row;
6261
6264
  }
6262
- .c-divided-container-reverse[data-v-d0a8cdec] {
6265
+ .c-divided-container-reverse[data-v-a6dab4ce] {
6263
6266
  -webkit-box-orient: horizontal;
6264
6267
  -webkit-box-direction: reverse;
6265
6268
  -ms-flex-direction: row-reverse;
@@ -6891,44 +6894,44 @@ select[data-v-14e7c7c7] {
6891
6894
  color: #f21b3f;
6892
6895
  }
6893
6896
 
6894
- .inner-container[data-v-24954146] {
6897
+ .inner-container[data-v-c359b5e7] {
6895
6898
  max-width: var(--brandsite-max-width);
6896
6899
  margin: 0 auto;
6897
6900
  }
6898
- .outer-container[data-v-24954146] {
6901
+ .outer-container[data-v-c359b5e7] {
6899
6902
  padding-left: var(--page-padding);
6900
6903
  padding-right: var(--page-padding);
6901
6904
  }
6902
- .modal-cart[data-v-24954146] .cart-image {
6905
+ .modal-cart[data-v-c359b5e7] .cart-image {
6903
6906
  width: 3rem;
6904
6907
  }
6905
- .modal-cart[data-v-24954146] .cart-option {
6908
+ .modal-cart[data-v-c359b5e7] .cart-option {
6906
6909
  width: 100%;
6907
6910
  }
6908
- .success-bar-container[data-v-24954146] .tw-bg-success-500 {
6911
+ .success-bar-container[data-v-c359b5e7] .tw-bg-success-500 {
6909
6912
  --tw-bg-opacity: 1;
6910
6913
  background-color: rgb(36 168 16 / var(--tw-bg-opacity));
6911
6914
  }
6912
6915
  @media (min-width: 640px) {
6913
- .modal-product-detail[data-v-24954146] .modal {
6916
+ .modal-product-detail[data-v-c359b5e7] .modal {
6914
6917
  min-width: 100vh;
6915
6918
  }
6916
- .modal-cart[data-v-24954146] .modal {
6919
+ .modal-cart[data-v-c359b5e7] .modal {
6917
6920
  min-width: 90vh;
6918
6921
  max-height: 90vh;
6919
6922
  }
6920
- .modal-cart[data-v-24954146] .cart-image {
6923
+ .modal-cart[data-v-c359b5e7] .cart-image {
6921
6924
  width: 8rem;
6922
6925
  }
6923
- .modal-cart[data-v-24954146] .cart-option {
6926
+ .modal-cart[data-v-c359b5e7] .cart-option {
6924
6927
  width: 75%;
6925
6928
  }
6926
- .success-bar[data-v-24954146] {
6929
+ .success-bar[data-v-c359b5e7] {
6927
6930
  width: 50%;
6928
6931
  }
6929
6932
  }
6930
6933
  @media (max-width: 640px) {
6931
- .success-bar[data-v-24954146] {
6934
+ .success-bar[data-v-c359b5e7] {
6932
6935
  width: 91.666667%;
6933
6936
  }
6934
6937
  }