@metron-labs/quote-react 0.1.49 → 0.1.51
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/app/EstimatingTools.js +1 -1
- package/dist/app/stages/BasketStage.js +1 -0
- package/dist/embed/quote.js +187 -20
- package/dist/styles.css +176 -9
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -3306,7 +3306,8 @@
|
|
|
3306
3306
|
text-transform: none;
|
|
3307
3307
|
}
|
|
3308
3308
|
|
|
3309
|
-
:where(.app-wrapper) .entry-options--workflow .entry-option-title::after
|
|
3309
|
+
:where(.app-wrapper) .entry-options--workflow .entry-option-title::after,
|
|
3310
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__title::after {
|
|
3310
3311
|
/* Same badge as .results-total-action .arrow: 30px circle, with the
|
|
3311
3312
|
ForwardArrow path drawn by ::before below (a pseudo-element can't hold
|
|
3312
3313
|
the component). */
|
|
@@ -3325,7 +3326,8 @@
|
|
|
3325
3326
|
|
|
3326
3327
|
/* The arrow is a mask so its colour can come from a variable: an SVG data
|
|
3327
3328
|
URI can't read var(--on-accent). Painted over the ::after circle. */
|
|
3328
|
-
:where(.app-wrapper) .entry-options--workflow .entry-option-title::before
|
|
3329
|
+
:where(.app-wrapper) .entry-options--workflow .entry-option-title::before,
|
|
3330
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__title::before {
|
|
3329
3331
|
content: "";
|
|
3330
3332
|
position: absolute;
|
|
3331
3333
|
z-index: 1;
|
|
@@ -3340,11 +3342,13 @@
|
|
|
3340
3342
|
transition: background 0.15s ease;
|
|
3341
3343
|
}
|
|
3342
3344
|
|
|
3343
|
-
:where(.app-wrapper) .entry-options--workflow .entry-option-card:hover .entry-option-title::after
|
|
3345
|
+
:where(.app-wrapper) .entry-options--workflow .entry-option-card:hover .entry-option-title::after,
|
|
3346
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card:hover .estimator-tool-card__title::after {
|
|
3344
3347
|
background-color: var(--accent);
|
|
3345
3348
|
}
|
|
3346
3349
|
|
|
3347
|
-
:where(.app-wrapper) .entry-options--workflow .entry-option-card:hover .entry-option-title::before
|
|
3350
|
+
:where(.app-wrapper) .entry-options--workflow .entry-option-card:hover .entry-option-title::before,
|
|
3351
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card:hover .estimator-tool-card__title::before {
|
|
3348
3352
|
background: var(--on-accent);
|
|
3349
3353
|
}
|
|
3350
3354
|
|
|
@@ -5760,7 +5764,8 @@
|
|
|
5760
5764
|
}
|
|
5761
5765
|
|
|
5762
5766
|
/* Customer results and basket use the same lighter surface as the entry flow. */
|
|
5763
|
-
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer
|
|
5767
|
+
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer,
|
|
5768
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero {
|
|
5764
5769
|
display: flex;
|
|
5765
5770
|
align-items: center;
|
|
5766
5771
|
justify-content: space-between;
|
|
@@ -5770,7 +5775,8 @@
|
|
|
5770
5775
|
color: var(--text);
|
|
5771
5776
|
}
|
|
5772
5777
|
|
|
5773
|
-
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer h1
|
|
5778
|
+
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer h1,
|
|
5779
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero h1 {
|
|
5774
5780
|
margin-bottom: 8px;
|
|
5775
5781
|
color: var(--text);
|
|
5776
5782
|
font-size: clamp(28px, 3vw, 36px);
|
|
@@ -5779,7 +5785,8 @@
|
|
|
5779
5785
|
text-transform: none;
|
|
5780
5786
|
}
|
|
5781
5787
|
|
|
5782
|
-
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer p
|
|
5788
|
+
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer p,
|
|
5789
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero p {
|
|
5783
5790
|
max-width: 620px;
|
|
5784
5791
|
padding: 0;
|
|
5785
5792
|
border: 0;
|
|
@@ -5939,6 +5946,7 @@
|
|
|
5939
5946
|
:where(.app-wrapper) .quick-order-card--customer .results-search-input,
|
|
5940
5947
|
:where(.app-wrapper) .quick-order-card--customer .bom-toolbar-btn,
|
|
5941
5948
|
:where(.app-wrapper) .quick-order-card--customer .cta-btn,
|
|
5949
|
+
:where(.app-wrapper).estimating-tools--customer .cta-btn,
|
|
5942
5950
|
:where(.app-wrapper) .quick-order-card--customer .disclaimer-box {
|
|
5943
5951
|
border-radius: 14px;
|
|
5944
5952
|
}
|
|
@@ -6675,14 +6683,16 @@
|
|
|
6675
6683
|
|
|
6676
6684
|
/* Customer results/basket hero: stack title over the total-cost button
|
|
6677
6685
|
instead of squeezing the title into a one-word-per-line column. */
|
|
6678
|
-
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer
|
|
6686
|
+
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer,
|
|
6687
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero {
|
|
6679
6688
|
flex-direction: column;
|
|
6680
6689
|
align-items: stretch;
|
|
6681
6690
|
gap: 16px;
|
|
6682
6691
|
padding: 24px 20px 8px;
|
|
6683
6692
|
}
|
|
6684
6693
|
|
|
6685
|
-
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer h1
|
|
6694
|
+
:where(.app-wrapper) .quick-order-card--customer .quick-order-hero--customer h1,
|
|
6695
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero h1 {
|
|
6686
6696
|
font-size: 28px;
|
|
6687
6697
|
line-height: 1.15;
|
|
6688
6698
|
}
|
|
@@ -6768,3 +6778,160 @@
|
|
|
6768
6778
|
width: 100%;
|
|
6769
6779
|
height: 100%;
|
|
6770
6780
|
}
|
|
6781
|
+
|
|
6782
|
+
/* ===== Estimating tools, customer view =====
|
|
6783
|
+
Same lighter surface as the Quick Quote customer screens. The hero, button and
|
|
6784
|
+
arrow-badge rules are shared above; these cover what Quick Quote has no class for. */
|
|
6785
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-eyebrow {
|
|
6786
|
+
display: none;
|
|
6787
|
+
}
|
|
6788
|
+
|
|
6789
|
+
/* Title over intro: the shared hero is a row because the results/basket heroes put a
|
|
6790
|
+
button beside the copy, which the calculator heroes don't have. */
|
|
6791
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero:not(.quick-order-hero--customer) {
|
|
6792
|
+
display: block;
|
|
6793
|
+
}
|
|
6794
|
+
|
|
6795
|
+
/* Lined up with the calculator body; both drop to 20px sides on phones (below). */
|
|
6796
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator .quick-order-hero {
|
|
6797
|
+
padding-inline: 40px;
|
|
6798
|
+
}
|
|
6799
|
+
|
|
6800
|
+
/* hide-header still wins over the two display rules above. */
|
|
6801
|
+
:where(.app-wrapper).estimating-tools--customer.app-wrapper--no-header .quick-order-hero:not(.quick-order-hero--customer) {
|
|
6802
|
+
display: none;
|
|
6803
|
+
}
|
|
6804
|
+
|
|
6805
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-hero:not(.quick-order-hero--customer) p {
|
|
6806
|
+
margin: 0;
|
|
6807
|
+
}
|
|
6808
|
+
|
|
6809
|
+
/* The light hero is transparent; embedded, the host's page colour would show behind it
|
|
6810
|
+
and split it from the white calculator body. */
|
|
6811
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator {
|
|
6812
|
+
background: var(--bg);
|
|
6813
|
+
border-top: 1px solid var(--border);
|
|
6814
|
+
border-radius: 24px;
|
|
6815
|
+
}
|
|
6816
|
+
|
|
6817
|
+
/* Calculator list: unframed, like the Quick Quote entry screen. */
|
|
6818
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-card:not(.quick-order-card--customer) {
|
|
6819
|
+
border: 0;
|
|
6820
|
+
box-shadow: none;
|
|
6821
|
+
overflow: visible;
|
|
6822
|
+
}
|
|
6823
|
+
|
|
6824
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-alt {
|
|
6825
|
+
padding-top: 20px;
|
|
6826
|
+
}
|
|
6827
|
+
|
|
6828
|
+
:where(.app-wrapper).estimating-tools--customer .quick-order-alt-title {
|
|
6829
|
+
display: none;
|
|
6830
|
+
}
|
|
6831
|
+
|
|
6832
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card {
|
|
6833
|
+
border: 1.5px solid var(--border-dark);
|
|
6834
|
+
border-radius: 18px;
|
|
6835
|
+
}
|
|
6836
|
+
|
|
6837
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card:hover {
|
|
6838
|
+
border-color: var(--border-dark);
|
|
6839
|
+
box-shadow: 0 12px 28px rgb(15 23 42 / 0.14);
|
|
6840
|
+
transform: translateY(-4px);
|
|
6841
|
+
}
|
|
6842
|
+
|
|
6843
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__content {
|
|
6844
|
+
position: relative;
|
|
6845
|
+
align-self: stretch;
|
|
6846
|
+
padding: 20px 72px 22px 24px;
|
|
6847
|
+
}
|
|
6848
|
+
|
|
6849
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__title {
|
|
6850
|
+
font-size: 18px;
|
|
6851
|
+
}
|
|
6852
|
+
|
|
6853
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__title::after {
|
|
6854
|
+
top: 32px;
|
|
6855
|
+
right: 24px;
|
|
6856
|
+
}
|
|
6857
|
+
|
|
6858
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__title::before {
|
|
6859
|
+
top: 32px;
|
|
6860
|
+
right: 31px;
|
|
6861
|
+
}
|
|
6862
|
+
|
|
6863
|
+
:where(.app-wrapper).estimating-tools--customer .estimator-tool-card__desc {
|
|
6864
|
+
font-size: 14px;
|
|
6865
|
+
line-height: 1.5;
|
|
6866
|
+
}
|
|
6867
|
+
|
|
6868
|
+
:where(.app-wrapper).estimating-tools--customer
|
|
6869
|
+
:is(
|
|
6870
|
+
.truss-estimator__option-card,
|
|
6871
|
+
.truss-estimator__visual-card,
|
|
6872
|
+
.truss-estimator__toggle,
|
|
6873
|
+
.brick-calculator__options,
|
|
6874
|
+
.paint-calculator__row,
|
|
6875
|
+
.skirting-calculator__room-row,
|
|
6876
|
+
.architrave-calculator__opening-row,
|
|
6877
|
+
.materials-calculator__surface-row,
|
|
6878
|
+
[class*="-calculator__result-grid"] > div,
|
|
6879
|
+
.estimator-products__option
|
|
6880
|
+
) {
|
|
6881
|
+
border-radius: 14px;
|
|
6882
|
+
}
|
|
6883
|
+
|
|
6884
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator :is(input:not([type="checkbox"]), select, textarea) {
|
|
6885
|
+
border-radius: 10px;
|
|
6886
|
+
}
|
|
6887
|
+
|
|
6888
|
+
/* Rounds the end buttons rather than clipping the group, which would cut off their focus rings. */
|
|
6889
|
+
:where(.app-wrapper).estimating-tools--customer .brick-calculator__unit-toggle {
|
|
6890
|
+
border-radius: 10px;
|
|
6891
|
+
}
|
|
6892
|
+
|
|
6893
|
+
:where(.app-wrapper).estimating-tools--customer .brick-calculator__unit-toggle button:first-child {
|
|
6894
|
+
border-radius: 9px 0 0 9px;
|
|
6895
|
+
}
|
|
6896
|
+
|
|
6897
|
+
:where(.app-wrapper).estimating-tools--customer .brick-calculator__unit-toggle button:last-child {
|
|
6898
|
+
border-radius: 0 9px 9px 0;
|
|
6899
|
+
}
|
|
6900
|
+
|
|
6901
|
+
/* Back + Add to basket stay on one row: at their 30/70 split they would otherwise wrap
|
|
6902
|
+
whenever "Back" is wider than 30% of a narrow card. */
|
|
6903
|
+
:where(.app-wrapper).estimating-tools--customer [class*="-calculator__actions"] {
|
|
6904
|
+
flex-wrap: nowrap;
|
|
6905
|
+
}
|
|
6906
|
+
|
|
6907
|
+
/* ===== Estimating tools, customer view: phones ===== */
|
|
6908
|
+
@media (max-width: 600px) {
|
|
6909
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator .quick-order-hero,
|
|
6910
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator__card {
|
|
6911
|
+
padding-inline: 20px;
|
|
6912
|
+
}
|
|
6913
|
+
|
|
6914
|
+
/* Half-width and capped fields go full width. */
|
|
6915
|
+
:where(.app-wrapper).estimating-tools--customer .materials-calculator__depth,
|
|
6916
|
+
:where(.app-wrapper).estimating-tools--customer .paint-calculator__coat-field .truss-estimator__field,
|
|
6917
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator__field--compact input {
|
|
6918
|
+
max-width: none;
|
|
6919
|
+
}
|
|
6920
|
+
|
|
6921
|
+
/* Diagram above the copy, not squeezing it into a narrow column. */
|
|
6922
|
+
:where(.app-wrapper).estimating-tools--customer .truss-estimator__option-grid--range .truss-estimator__option-card {
|
|
6923
|
+
flex-direction: column;
|
|
6924
|
+
align-items: flex-start;
|
|
6925
|
+
gap: 8px;
|
|
6926
|
+
}
|
|
6927
|
+
|
|
6928
|
+
/* One total per row, as the other calculators already do on phones. */
|
|
6929
|
+
:where(.app-wrapper).estimating-tools--customer .brick-calculator__result-grid {
|
|
6930
|
+
grid-template-columns: 1fr;
|
|
6931
|
+
}
|
|
6932
|
+
|
|
6933
|
+
/* Qty, width and height on one row under the opening's name. */
|
|
6934
|
+
:where(.app-wrapper).estimating-tools--customer :is(.architrave-calculator__dimensions-header, .architrave-calculator__opening-row) {
|
|
6935
|
+
grid-template-columns: 56px minmax(0, 1fr) minmax(0, 1fr);
|
|
6936
|
+
}
|
|
6937
|
+
}
|