@brandlab-digital/site-next 3.14.0 → 3.15.0
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/analytics.d.ts +1 -1
- package/dist/analytics.d.ts.map +1 -1
- package/dist/analytics.js +2 -0
- package/dist/analytics.js.map +1 -1
- package/dist/navigation/constants.d.ts +11 -2
- package/dist/navigation/constants.d.ts.map +1 -1
- package/dist/navigation/constants.js +11 -2
- package/dist/navigation/constants.js.map +1 -1
- package/dist/navigation/index.d.ts +1 -1
- package/dist/navigation/index.d.ts.map +1 -1
- package/dist/navigation/index.js +1 -1
- package/dist/navigation/index.js.map +1 -1
- package/dist/navigation/use-back-to-top.d.ts.map +1 -1
- package/dist/navigation/use-back-to-top.js +12 -4
- package/dist/navigation/use-back-to-top.js.map +1 -1
- package/dist/navigation/use-header-metrics.d.ts +1 -1
- package/dist/navigation/use-header-metrics.js +1 -1
- package/dist/navigation/use-header-metrics.js.map +1 -1
- package/dist/navigation/use-sticky-call-bar.d.ts +2 -1
- package/dist/navigation/use-sticky-call-bar.d.ts.map +1 -1
- package/dist/navigation/use-sticky-call-bar.js +11 -2
- package/dist/navigation/use-sticky-call-bar.js.map +1 -1
- package/dist/ui-kit/brandlab-skin.d.ts +26 -0
- package/dist/ui-kit/brandlab-skin.d.ts.map +1 -1
- package/dist/ui-kit/brandlab-skin.js.map +1 -1
- package/dist/ui-kit/prefetch.d.ts +19 -10
- package/dist/ui-kit/prefetch.d.ts.map +1 -1
- package/dist/ui-kit/prefetch.js +23 -10
- package/dist/ui-kit/prefetch.js.map +1 -1
- package/dist/ui-kit/primitives/index.d.ts +1 -1
- package/dist/ui-kit/primitives/index.d.ts.map +1 -1
- package/dist/ui-kit/primitives/index.js.map +1 -1
- package/dist/ui-kit/primitives/links.js +1 -1
- package/dist/ui-kit/primitives/links.js.map +1 -1
- package/dist/ui-kit/primitives/lists.d.ts +9 -1
- package/dist/ui-kit/primitives/lists.d.ts.map +1 -1
- package/dist/ui-kit/primitives/lists.js +1 -1
- package/dist/ui-kit/primitives/lists.js.map +1 -1
- package/dist/ui-kit/primitives/quote-button.d.ts +25 -2
- package/dist/ui-kit/primitives/quote-button.d.ts.map +1 -1
- package/dist/ui-kit/primitives/quote-button.js +25 -3
- package/dist/ui-kit/primitives/quote-button.js.map +1 -1
- package/dist/ui-kit/repeated-slots.d.ts +32 -0
- package/dist/ui-kit/repeated-slots.d.ts.map +1 -1
- package/dist/ui-kit/repeated-slots.js +16 -0
- package/dist/ui-kit/repeated-slots.js.map +1 -1
- package/dist/ui-kit/sections/area-map.d.ts +64 -0
- package/dist/ui-kit/sections/area-map.d.ts.map +1 -0
- package/dist/ui-kit/sections/area-map.js +142 -0
- package/dist/ui-kit/sections/area-map.js.map +1 -0
- package/dist/ui-kit/sections/before-after.d.ts +59 -0
- package/dist/ui-kit/sections/before-after.d.ts.map +1 -0
- package/dist/ui-kit/sections/before-after.js +42 -0
- package/dist/ui-kit/sections/before-after.js.map +1 -0
- package/dist/ui-kit/sections/council-rules.d.ts +64 -0
- package/dist/ui-kit/sections/council-rules.d.ts.map +1 -0
- package/dist/ui-kit/sections/council-rules.js +46 -0
- package/dist/ui-kit/sections/council-rules.js.map +1 -0
- package/dist/ui-kit/sections/coverage.d.ts +53 -0
- package/dist/ui-kit/sections/coverage.d.ts.map +1 -0
- package/dist/ui-kit/sections/coverage.js +57 -0
- package/dist/ui-kit/sections/coverage.js.map +1 -0
- package/dist/ui-kit/sections/emergency-band.d.ts +60 -0
- package/dist/ui-kit/sections/emergency-band.d.ts.map +1 -0
- package/dist/ui-kit/sections/emergency-band.js +43 -0
- package/dist/ui-kit/sections/emergency-band.js.map +1 -0
- package/dist/ui-kit/sections/gallery.d.ts +60 -0
- package/dist/ui-kit/sections/gallery.d.ts.map +1 -0
- package/dist/ui-kit/sections/gallery.js +39 -0
- package/dist/ui-kit/sections/gallery.js.map +1 -0
- package/dist/ui-kit/sections/hero.d.ts +5 -0
- package/dist/ui-kit/sections/hero.d.ts.map +1 -1
- package/dist/ui-kit/sections/hero.js +1 -1
- package/dist/ui-kit/sections/hero.js.map +1 -1
- package/dist/ui-kit/sections/index.d.ts +14 -1
- package/dist/ui-kit/sections/index.d.ts.map +1 -1
- package/dist/ui-kit/sections/index.js +14 -1
- package/dist/ui-kit/sections/index.js.map +1 -1
- package/dist/ui-kit/sections/licences.d.ts +72 -0
- package/dist/ui-kit/sections/licences.d.ts.map +1 -0
- package/dist/ui-kit/sections/licences.js +46 -0
- package/dist/ui-kit/sections/licences.js.map +1 -0
- package/dist/ui-kit/sections/local-facts.d.ts +78 -0
- package/dist/ui-kit/sections/local-facts.d.ts.map +1 -0
- package/dist/ui-kit/sections/local-facts.js +32 -0
- package/dist/ui-kit/sections/local-facts.js.map +1 -0
- package/dist/ui-kit/sections/nearby-areas.d.ts +50 -0
- package/dist/ui-kit/sections/nearby-areas.d.ts.map +1 -0
- package/dist/ui-kit/sections/nearby-areas.js +49 -0
- package/dist/ui-kit/sections/nearby-areas.js.map +1 -0
- package/dist/ui-kit/sections/nearby-jobs.d.ts +66 -0
- package/dist/ui-kit/sections/nearby-jobs.d.ts.map +1 -0
- package/dist/ui-kit/sections/nearby-jobs.js +49 -0
- package/dist/ui-kit/sections/nearby-jobs.js.map +1 -0
- package/dist/ui-kit/sections/projects.d.ts +79 -0
- package/dist/ui-kit/sections/projects.d.ts.map +1 -0
- package/dist/ui-kit/sections/projects.js +69 -0
- package/dist/ui-kit/sections/projects.js.map +1 -0
- package/dist/ui-kit/sections/quote-checklist.d.ts +43 -0
- package/dist/ui-kit/sections/quote-checklist.d.ts.map +1 -0
- package/dist/ui-kit/sections/quote-checklist.js +19 -0
- package/dist/ui-kit/sections/quote-checklist.js.map +1 -0
- package/dist/ui-kit/sections/related-services.d.ts +41 -0
- package/dist/ui-kit/sections/related-services.d.ts.map +1 -0
- package/dist/ui-kit/sections/related-services.js +52 -0
- package/dist/ui-kit/sections/related-services.js.map +1 -0
- package/dist/ui-kit/sections/reviews-band.d.ts +11 -0
- package/dist/ui-kit/sections/reviews-band.d.ts.map +1 -1
- package/dist/ui-kit/sections/reviews-band.js +11 -0
- package/dist/ui-kit/sections/reviews-band.js.map +1 -1
- package/dist/ui-kit/sections/services-grid.js +1 -1
- package/dist/ui-kit/sections/services-grid.js.map +1 -1
- package/dist/ui-kit/sections/work-photos.d.ts +15 -0
- package/dist/ui-kit/sections/work-photos.d.ts.map +1 -0
- package/dist/ui-kit/sections/work-photos.js +24 -0
- package/dist/ui-kit/sections/work-photos.js.map +1 -0
- package/dist/ui-kit/shell/back-to-top.js +1 -1
- package/dist/ui-kit/shell/back-to-top.js.map +1 -1
- package/dist/ui-kit/shell/current-link.d.ts +21 -5
- package/dist/ui-kit/shell/current-link.d.ts.map +1 -1
- package/dist/ui-kit/shell/current-link.js +16 -5
- package/dist/ui-kit/shell/current-link.js.map +1 -1
- package/dist/ui-kit/shell/drawer-client.js +1 -1
- package/dist/ui-kit/shell/drawer-client.js.map +1 -1
- package/dist/ui-kit/shell/intent-prefetch.d.ts.map +1 -1
- package/dist/ui-kit/shell/intent-prefetch.js +3 -2
- package/dist/ui-kit/shell/intent-prefetch.js.map +1 -1
- package/dist/ui-kit/shell/mobile-call-bar.d.ts +6 -1
- package/dist/ui-kit/shell/mobile-call-bar.d.ts.map +1 -1
- package/dist/ui-kit/shell/mobile-call-bar.js +6 -3
- package/dist/ui-kit/shell/mobile-call-bar.js.map +1 -1
- package/dist/ui-kit/shell/mobile-drawer.js +2 -2
- package/dist/ui-kit/shell/mobile-drawer.js.map +1 -1
- package/dist/ui-kit/shell/shell-quote.d.ts +10 -0
- package/dist/ui-kit/shell/shell-quote.d.ts.map +1 -0
- package/dist/ui-kit/shell/shell-quote.js +13 -0
- package/dist/ui-kit/shell/shell-quote.js.map +1 -0
- package/dist/ui-kit/shell/site-header.d.ts +1 -1
- package/dist/ui-kit/shell/site-header.js +4 -4
- package/dist/ui-kit/shell/site-header.js.map +1 -1
- package/dist/ui-kit/structure.css +410 -7
- package/package.json +2 -2
|
@@ -385,7 +385,7 @@
|
|
|
385
385
|
height: var(--bl-logo-h-phone, 40px);
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
-
/* The menu: hidden below
|
|
388
|
+
/* The menu: hidden below 1200 px (the drawer takes over). */
|
|
389
389
|
[data-bl='header'] [data-slot='inner'] > [data-slot='nav'] {
|
|
390
390
|
display: none;
|
|
391
391
|
flex: 1;
|
|
@@ -559,7 +559,7 @@
|
|
|
559
559
|
height: 1.25rem;
|
|
560
560
|
}
|
|
561
561
|
|
|
562
|
-
/* 1024 to
|
|
562
|
+
/* 1024 to 1199 px: the compact band. Logo, phone with its number, quote and Menu. The phone stays from 1024 px up. */
|
|
563
563
|
@container bl-header (min-width: 1024px) {
|
|
564
564
|
[data-bl='header'] > [data-slot='bar'] > [data-slot='inner'] {
|
|
565
565
|
min-height: var(--bl-header-bar, 5rem);
|
|
@@ -599,8 +599,8 @@
|
|
|
599
599
|
}
|
|
600
600
|
}
|
|
601
601
|
|
|
602
|
-
/*
|
|
603
|
-
@container bl-header (min-width:
|
|
602
|
+
/* 1200 px and up: the full menu, with the phone and quote still beside it. */
|
|
603
|
+
@container bl-header (min-width: 1200px) {
|
|
604
604
|
[data-bl='header'] [data-slot='inner'] > [data-slot='nav'] {
|
|
605
605
|
display: block;
|
|
606
606
|
}
|
|
@@ -834,13 +834,22 @@
|
|
|
834
834
|
color: var(--bl-color-ink, CanvasText);
|
|
835
835
|
transition: translate 200ms ease, visibility 0s;
|
|
836
836
|
}
|
|
837
|
-
|
|
838
|
-
|
|
837
|
+
/*
|
|
838
|
+
* One line each down to 360 px (3.15.0): the buttons size to their content, the number never wraps, and the inline
|
|
839
|
+
* padding (`--bl-callbar-button-padding`) outranks a skin's general button padding, so a skin tunes it by the token.
|
|
840
|
+
*/
|
|
841
|
+
[data-bl='callbar'][data-variant] > :is([data-bl='phone-link'], [data-bl='quote-button']) {
|
|
842
|
+
flex: 1 1 auto;
|
|
839
843
|
justify-content: center;
|
|
840
844
|
min-width: 0;
|
|
841
845
|
min-height: 48px;
|
|
846
|
+
padding-inline: var(--bl-callbar-button-padding, 0.75rem);
|
|
847
|
+
white-space: nowrap;
|
|
842
848
|
text-decoration: none;
|
|
843
849
|
}
|
|
850
|
+
[data-bl='callbar'] [data-bl='phone-link'] [data-slot='number'] {
|
|
851
|
+
white-space: nowrap;
|
|
852
|
+
}
|
|
844
853
|
[data-bl='callbar'][data-variant='float'] {
|
|
845
854
|
inset-inline: auto 0;
|
|
846
855
|
justify-content: flex-end;
|
|
@@ -849,6 +858,25 @@
|
|
|
849
858
|
[data-bl='callbar'][data-variant='float'] > :is([data-bl='phone-link'], [data-bl='quote-button']) {
|
|
850
859
|
flex: none;
|
|
851
860
|
}
|
|
861
|
+
/*
|
|
862
|
+
* Narrow phones: the verb before the number is visually hidden (the link's name still reads "Call 0497 777 735"), and
|
|
863
|
+
* a quote button with a compact label draws it from the attribute with empty alternative text, so its name stays the
|
|
864
|
+
* full label, which contains it (WCAG 2.5.3).
|
|
865
|
+
*/
|
|
866
|
+
@media (max-width: 419.98px) {
|
|
867
|
+
[data-bl='callbar'] [data-bl='phone-link'] [data-slot='label'],
|
|
868
|
+
[data-bl='callbar'] [data-slot='label'][data-compact-label] > [data-bl-full-label] {
|
|
869
|
+
position: absolute;
|
|
870
|
+
width: 1px;
|
|
871
|
+
height: 1px;
|
|
872
|
+
overflow: hidden;
|
|
873
|
+
clip-path: inset(50%);
|
|
874
|
+
white-space: nowrap;
|
|
875
|
+
}
|
|
876
|
+
[data-bl='callbar'] [data-slot='label'][data-compact-label]::after {
|
|
877
|
+
content: attr(data-compact-label) / '';
|
|
878
|
+
}
|
|
879
|
+
}
|
|
852
880
|
[data-bl='callbar'][data-state='hidden'] {
|
|
853
881
|
visibility: hidden;
|
|
854
882
|
translate: 0 100%;
|
|
@@ -861,7 +889,10 @@
|
|
|
861
889
|
}
|
|
862
890
|
|
|
863
891
|
/* 14-back-to-top.css */
|
|
864
|
-
/*
|
|
892
|
+
/*
|
|
893
|
+
* F7 back-to-top: a 44 px button in a bottom corner. The hook hides it while the phone call bar shows (3.15.0); the
|
|
894
|
+
* bottom offset still clears the bar's height while the bar slides away.
|
|
895
|
+
*/
|
|
865
896
|
|
|
866
897
|
[data-bl='back-to-top'] {
|
|
867
898
|
--bl-back-to-top-offset: 1.25rem;
|
|
@@ -1860,4 +1891,376 @@
|
|
|
1860
1891
|
}
|
|
1861
1892
|
}
|
|
1862
1893
|
|
|
1894
|
+
/* 40-location.css */
|
|
1895
|
+
/* Location sections (3.15.0): LocalFacts, CouncilRules, NearbyJobs, NearbyAreas, Coverage and RelatedServices. Layout
|
|
1896
|
+
only; the link lists are `LinkList`s (05-primitives.css) and the job and service cards follow 39-services.css. Lists
|
|
1897
|
+
styled without bullets carry role="list", so Safari keeps announcing them as lists. */
|
|
1898
|
+
|
|
1899
|
+
[data-bl-section='local-facts'] [data-slot='facts'],
|
|
1900
|
+
[data-bl-section='local-facts'] [data-slot='fees'],
|
|
1901
|
+
[data-bl-section='council-rules'] [data-slot='fees'],
|
|
1902
|
+
[data-bl-section='nearby-jobs'] [data-slot='list'],
|
|
1903
|
+
[data-bl-section='related-services'] [data-slot='list'] {
|
|
1904
|
+
margin: 0;
|
|
1905
|
+
padding: 0;
|
|
1906
|
+
list-style: none;
|
|
1907
|
+
}
|
|
1908
|
+
[data-bl-section='local-facts'] [data-slot='source'] > a,
|
|
1909
|
+
[data-bl-section='council-rules'] [data-slot='source'] > a,
|
|
1910
|
+
[data-bl-section='local-facts'] [data-slot='councilLink'] > a {
|
|
1911
|
+
display: inline-block;
|
|
1912
|
+
padding-block: 0.25rem;
|
|
1913
|
+
}
|
|
1914
|
+
|
|
1915
|
+
/* Nearby jobs: the photo on top of each card; a grid of up to 3 columns, or a scrolling rail. */
|
|
1916
|
+
[data-bl-section='nearby-jobs'] {
|
|
1917
|
+
container: bl-nearby-jobs / inline-size;
|
|
1918
|
+
}
|
|
1919
|
+
[data-bl-section='nearby-jobs'] [data-slot='list'] > [data-slot='item'] {
|
|
1920
|
+
display: flex;
|
|
1921
|
+
flex-direction: column;
|
|
1922
|
+
gap: 0.75rem;
|
|
1923
|
+
}
|
|
1924
|
+
[data-bl-section='nearby-jobs'] [data-slot='list'] > [data-slot='item'] > [data-slot='media'] {
|
|
1925
|
+
order: -1;
|
|
1926
|
+
}
|
|
1927
|
+
[data-bl-section='nearby-jobs'] [data-slot='list'] [data-slot='title'] {
|
|
1928
|
+
margin: 0;
|
|
1929
|
+
}
|
|
1930
|
+
[data-bl-section='nearby-jobs'][data-variant='grid'] [data-slot='list'] {
|
|
1931
|
+
display: grid;
|
|
1932
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
|
|
1933
|
+
gap: var(--bl-gutter, 1.25rem);
|
|
1934
|
+
}
|
|
1935
|
+
[data-bl-section='nearby-jobs'][data-variant='rail'] [data-slot='list'] {
|
|
1936
|
+
display: grid;
|
|
1937
|
+
grid-auto-flow: column;
|
|
1938
|
+
grid-auto-columns: minmax(16rem, 80%);
|
|
1939
|
+
gap: var(--bl-gutter, 1.25rem);
|
|
1940
|
+
overflow-x: auto;
|
|
1941
|
+
scroll-snap-type: x mandatory;
|
|
1942
|
+
}
|
|
1943
|
+
[data-bl-section='nearby-jobs'][data-variant='rail'] [data-slot='list'] > [data-slot='item'] {
|
|
1944
|
+
scroll-snap-align: start;
|
|
1945
|
+
}
|
|
1946
|
+
@container bl-nearby-jobs (min-width: 1024px) {
|
|
1947
|
+
[data-bl-section='nearby-jobs'][data-variant='grid'][data-columns='2'] [data-slot='list'] {
|
|
1948
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1949
|
+
}
|
|
1950
|
+
[data-bl-section='nearby-jobs'][data-variant='grid'][data-columns='3'] [data-slot='list'] {
|
|
1951
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
1952
|
+
}
|
|
1953
|
+
[data-bl-section='nearby-jobs'][data-variant='rail'] [data-slot='list'] {
|
|
1954
|
+
grid-auto-columns: minmax(16rem, 1fr);
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
/* Nearby areas as chips: the links wrap in a row. */
|
|
1959
|
+
[data-bl-section='nearby-areas'][data-variant='chips'] [data-bl='link-list'] {
|
|
1960
|
+
display: flex;
|
|
1961
|
+
flex-wrap: wrap;
|
|
1962
|
+
gap: 0.5rem;
|
|
1963
|
+
}
|
|
1964
|
+
|
|
1965
|
+
/* Coverage: one block per group, its heading above its list. */
|
|
1966
|
+
[data-bl-section='coverage'] [data-slot='groups'] {
|
|
1967
|
+
display: grid;
|
|
1968
|
+
gap: 2rem;
|
|
1969
|
+
}
|
|
1970
|
+
[data-bl-section='coverage'] [data-slot='groups'] > [data-slot='group'] > [data-slot='groupHeading'] {
|
|
1971
|
+
margin: 0 0 0.75rem;
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1974
|
+
/* Related services as cards: the photo on top. */
|
|
1975
|
+
[data-bl-section='related-services'][data-variant='cards'] [data-slot='list'] {
|
|
1976
|
+
display: grid;
|
|
1977
|
+
grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
|
|
1978
|
+
gap: var(--bl-gutter, 1.25rem);
|
|
1979
|
+
}
|
|
1980
|
+
[data-bl-section='related-services'][data-variant='cards'] [data-slot='list'] > [data-slot='item'] {
|
|
1981
|
+
display: flex;
|
|
1982
|
+
flex-direction: column;
|
|
1983
|
+
gap: 0.75rem;
|
|
1984
|
+
}
|
|
1985
|
+
[data-bl-section='related-services'][data-variant='cards'] [data-slot='list'] > [data-slot='item'] > [data-slot='media'] {
|
|
1986
|
+
order: -1;
|
|
1987
|
+
}
|
|
1988
|
+
[data-bl-section='related-services'][data-variant='cards'] [data-slot='list'] [data-slot='title'] {
|
|
1989
|
+
margin: 0;
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
/* 40-projects.css */
|
|
1993
|
+
/* Projects and Gallery (3.15.0): a grid of cards or photos, one column on phones, two from 640 px and the skin's
|
|
1994
|
+
columns from 1024 px of the section's own width. Lists styled without bullets carry role="list". */
|
|
1995
|
+
|
|
1996
|
+
[data-bl-section='projects'],
|
|
1997
|
+
[data-bl-section='gallery'] {
|
|
1998
|
+
container: bl-proof-grid / inline-size;
|
|
1999
|
+
}
|
|
2000
|
+
[data-bl-section='projects'] [data-slot='list'],
|
|
2001
|
+
[data-bl-section='gallery'] [data-slot='list'] {
|
|
2002
|
+
display: grid;
|
|
2003
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2004
|
+
gap: var(--bl-gutter, 1.25rem);
|
|
2005
|
+
margin: 0;
|
|
2006
|
+
padding: 0;
|
|
2007
|
+
list-style: none;
|
|
2008
|
+
}
|
|
2009
|
+
[data-bl-section='gallery'] [data-slot='list'] > [data-slot='item'] > [data-slot='link'] {
|
|
2010
|
+
display: block;
|
|
2011
|
+
}
|
|
2012
|
+
|
|
2013
|
+
@container bl-proof-grid (min-width: 640px) {
|
|
2014
|
+
[data-bl-section='projects'] [data-slot='list'],
|
|
2015
|
+
[data-bl-section='gallery'] [data-slot='list'] {
|
|
2016
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2017
|
+
}
|
|
2018
|
+
}
|
|
2019
|
+
@container bl-proof-grid (min-width: 1024px) {
|
|
2020
|
+
[data-bl-section='projects'][data-columns='3'] [data-slot='list'],
|
|
2021
|
+
[data-bl-section='gallery'][data-columns='3'] [data-slot='list'] {
|
|
2022
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2023
|
+
}
|
|
2024
|
+
[data-bl-section='projects'][data-columns='4'] [data-slot='list'],
|
|
2025
|
+
[data-bl-section='gallery'][data-columns='4'] [data-slot='list'] {
|
|
2026
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
2027
|
+
}
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
/* 41-before-after.css */
|
|
2031
|
+
/* Before and after (3.15.0): each pair's two frames stacked on phones and side by side from 640 px of the section's
|
|
2032
|
+
width (`data-arrange="side"`), before first. Both frames share one crop, so they line up. */
|
|
2033
|
+
|
|
2034
|
+
[data-bl-section='before-after'] {
|
|
2035
|
+
container: bl-before-after / inline-size;
|
|
2036
|
+
}
|
|
2037
|
+
[data-bl-section='before-after'] [data-slot='list'] {
|
|
2038
|
+
display: grid;
|
|
2039
|
+
gap: calc(var(--bl-gutter, 1.25rem) * 2);
|
|
2040
|
+
margin: 0;
|
|
2041
|
+
padding: 0;
|
|
2042
|
+
list-style: none;
|
|
2043
|
+
}
|
|
2044
|
+
[data-bl-section='before-after'] [data-slot='list'] [data-slot='frames'] {
|
|
2045
|
+
display: grid;
|
|
2046
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2047
|
+
gap: var(--bl-gutter, 1.25rem);
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
@container bl-before-after (min-width: 640px) {
|
|
2051
|
+
[data-bl-section='before-after'][data-arrange='side'] [data-slot='list'] [data-slot='frames'] {
|
|
2052
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
/* 42-licences.css */
|
|
2057
|
+
/* Licences (3.15.0): a ruled ledger, the label above its value on phones and beside it from 640 px of the section's
|
|
2058
|
+
width. The skin draws the rules and type. */
|
|
2059
|
+
|
|
2060
|
+
[data-bl-section='licences'] {
|
|
2061
|
+
container: bl-licences / inline-size;
|
|
2062
|
+
}
|
|
2063
|
+
[data-bl-section='licences'] [data-slot='list'] {
|
|
2064
|
+
margin: 0;
|
|
2065
|
+
}
|
|
2066
|
+
[data-bl-section='licences'] [data-slot='list'] > [data-slot='row'] {
|
|
2067
|
+
display: grid;
|
|
2068
|
+
gap: 0.25rem 2rem;
|
|
2069
|
+
padding-block: 1rem;
|
|
2070
|
+
}
|
|
2071
|
+
[data-bl-section='licences'] [data-slot='list'] [data-slot='row'] > dd {
|
|
2072
|
+
margin: 0;
|
|
2073
|
+
}
|
|
2074
|
+
[data-bl-section='licences'] [data-slot='list'] [data-slot='classes'] > ul {
|
|
2075
|
+
margin: 0;
|
|
2076
|
+
padding: 0;
|
|
2077
|
+
list-style: none;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
@container bl-licences (min-width: 640px) {
|
|
2081
|
+
[data-bl-section='licences'] [data-slot='list'] > [data-slot='row'] {
|
|
2082
|
+
grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
|
|
2083
|
+
}
|
|
2084
|
+
[data-bl-section='licences'] [data-slot='list'] > [data-slot='row'] > dt {
|
|
2085
|
+
grid-column: 1;
|
|
2086
|
+
grid-row: 1;
|
|
2087
|
+
}
|
|
2088
|
+
[data-bl-section='licences'] [data-slot='list'] > [data-slot='row'] > dd {
|
|
2089
|
+
grid-column: 2;
|
|
2090
|
+
}
|
|
2091
|
+
}
|
|
2092
|
+
|
|
2093
|
+
/* 43-quote-checklist.css */
|
|
2094
|
+
/* Quote checklist (3.15.0): heading, list, then the quote button; the list's columns are the TickList's. */
|
|
2095
|
+
|
|
2096
|
+
[data-bl='quote-checklist'] {
|
|
2097
|
+
display: grid;
|
|
2098
|
+
gap: 1rem;
|
|
2099
|
+
justify-items: start;
|
|
2100
|
+
}
|
|
2101
|
+
[data-bl='quote-checklist'] > [data-bl='tick-list'] {
|
|
2102
|
+
justify-self: stretch;
|
|
2103
|
+
}
|
|
2104
|
+
[data-bl='quote-checklist'] > p {
|
|
2105
|
+
margin: 0;
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
/* 44-emergency.css */
|
|
2109
|
+
/* Emergency band (3.15.0): heading and summary, then the actions (phone first), side by side from 768 px of the
|
|
2110
|
+
band's width. The skin colours it. */
|
|
2111
|
+
|
|
2112
|
+
[data-bl-section='emergency'] {
|
|
2113
|
+
container: bl-emergency / inline-size;
|
|
2114
|
+
}
|
|
2115
|
+
[data-bl-section='emergency'] > [data-slot='inner'] {
|
|
2116
|
+
display: grid;
|
|
2117
|
+
gap: 1rem;
|
|
2118
|
+
}
|
|
2119
|
+
[data-bl-section='emergency'] [data-slot='actions'] {
|
|
2120
|
+
display: flex;
|
|
2121
|
+
flex-wrap: wrap;
|
|
2122
|
+
gap: 0.75rem;
|
|
2123
|
+
align-items: center;
|
|
2124
|
+
}
|
|
2125
|
+
|
|
2126
|
+
@container bl-emergency (min-width: 768px) {
|
|
2127
|
+
[data-bl-section='emergency'] > [data-slot='inner'] {
|
|
2128
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
2129
|
+
align-items: center;
|
|
2130
|
+
column-gap: 2rem;
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
/* 45-area-map.css */
|
|
2135
|
+
/* Area map (3.15.0): the map and its place list, side by side from 768 px of the section's width (`data-list="beside"`)
|
|
2136
|
+
or stacked. The SVG's layers are `<use>` references into the base file, coloured here from the site's `--bl-map-*`
|
|
2137
|
+
tokens (falling back to its colour tokens); on narrow widths the frame shows the model's phone crop. */
|
|
2138
|
+
|
|
2139
|
+
[data-bl-section='area-map'] {
|
|
2140
|
+
container: bl-area-map / inline-size;
|
|
2141
|
+
}
|
|
2142
|
+
[data-bl-section='area-map'] [data-slot='body'] {
|
|
2143
|
+
display: grid;
|
|
2144
|
+
gap: var(--bl-gutter, 1.25rem);
|
|
2145
|
+
}
|
|
2146
|
+
[data-bl-section='area-map'] [data-slot='figure'] {
|
|
2147
|
+
margin: 0;
|
|
2148
|
+
display: grid;
|
|
2149
|
+
gap: 0.5rem;
|
|
2150
|
+
}
|
|
2151
|
+
[data-bl-section='area-map'] [data-slot='frame'] {
|
|
2152
|
+
position: relative;
|
|
2153
|
+
overflow: hidden;
|
|
2154
|
+
aspect-ratio: var(--bl-map-ratio, 1);
|
|
2155
|
+
}
|
|
2156
|
+
[data-bl-section='area-map'] [data-slot='map'] {
|
|
2157
|
+
display: block;
|
|
2158
|
+
width: 100%;
|
|
2159
|
+
height: auto;
|
|
2160
|
+
}
|
|
2161
|
+
[data-bl-section='area-map'] [data-slot='caption'] {
|
|
2162
|
+
display: grid;
|
|
2163
|
+
gap: 0.25rem;
|
|
2164
|
+
}
|
|
2165
|
+
[data-bl-section='area-map'] [data-slot='legend'] {
|
|
2166
|
+
display: flex;
|
|
2167
|
+
flex-wrap: wrap;
|
|
2168
|
+
gap: 0.25rem 1rem;
|
|
2169
|
+
}
|
|
2170
|
+
/* Each legend line starts with the marker it names, drawn in the same layer as the map's (3.15.0). */
|
|
2171
|
+
[data-bl-section='area-map'] :is([data-slot='legendJobs'], [data-slot='legendBase']) {
|
|
2172
|
+
display: inline-flex;
|
|
2173
|
+
align-items: center;
|
|
2174
|
+
gap: 0.4em;
|
|
2175
|
+
}
|
|
2176
|
+
[data-bl-section='area-map'] :is([data-slot='legendJobs'], [data-slot='legendBase']) > svg {
|
|
2177
|
+
width: 0.9em;
|
|
2178
|
+
height: 0.9em;
|
|
2179
|
+
}
|
|
2180
|
+
[data-bl-section='area-map'] [data-slot='places'] {
|
|
2181
|
+
display: grid;
|
|
2182
|
+
align-content: start;
|
|
2183
|
+
gap: 0.75rem;
|
|
2184
|
+
}
|
|
2185
|
+
[data-bl-section='area-map'] [data-slot='placesTitle'],
|
|
2186
|
+
[data-bl-section='area-map'] [data-slot='places'] > p {
|
|
2187
|
+
margin: 0;
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
/* The layers. */
|
|
2191
|
+
[data-bl-section='area-map'] [data-layer='water'] {
|
|
2192
|
+
fill: var(--bl-map-water, transparent);
|
|
2193
|
+
}
|
|
2194
|
+
[data-bl-section='area-map'] [data-layer='land'] {
|
|
2195
|
+
fill: var(--bl-map-land, var(--bl-color-surface, Canvas));
|
|
2196
|
+
}
|
|
2197
|
+
[data-bl-section='area-map'] [data-layer='served'] {
|
|
2198
|
+
fill: var(--bl-map-served, var(--bl-color-canvas, Canvas));
|
|
2199
|
+
}
|
|
2200
|
+
[data-bl-section='area-map'] [data-layer='focus'] {
|
|
2201
|
+
fill: var(--bl-map-focus, var(--bl-color-action, Highlight));
|
|
2202
|
+
}
|
|
2203
|
+
[data-bl-section='area-map'] [data-layer='linked'] use {
|
|
2204
|
+
fill: var(--bl-map-linked, var(--bl-color-canvas, Canvas));
|
|
2205
|
+
}
|
|
2206
|
+
[data-bl-section='area-map'] [data-layer='linked'] a:hover use {
|
|
2207
|
+
fill: var(--bl-map-linked-hover, var(--bl-color-surface, Canvas));
|
|
2208
|
+
}
|
|
2209
|
+
[data-bl-section='area-map'] [data-layer='outline'] {
|
|
2210
|
+
stroke: var(--bl-map-outline, currentColor);
|
|
2211
|
+
stroke-opacity: 0.35;
|
|
2212
|
+
stroke-width: 1px;
|
|
2213
|
+
}
|
|
2214
|
+
[data-bl-section='area-map'] [data-layer='names'] {
|
|
2215
|
+
fill: var(--bl-map-name, var(--bl-color-ink, CanvasText));
|
|
2216
|
+
stroke: var(--bl-map-name-halo, var(--bl-color-canvas, Canvas));
|
|
2217
|
+
paint-order: stroke;
|
|
2218
|
+
text-anchor: middle;
|
|
2219
|
+
pointer-events: none;
|
|
2220
|
+
}
|
|
2221
|
+
[data-bl-section='area-map'] [data-layer='names'] [data-state='focus'] {
|
|
2222
|
+
font-weight: 700;
|
|
2223
|
+
}
|
|
2224
|
+
[data-bl-section='area-map'] [data-layer='jobs'] {
|
|
2225
|
+
fill: var(--bl-map-job, var(--bl-color-action, Highlight));
|
|
2226
|
+
stroke: var(--bl-color-canvas, Canvas);
|
|
2227
|
+
pointer-events: none;
|
|
2228
|
+
}
|
|
2229
|
+
[data-bl-section='area-map'] [data-layer='base'] {
|
|
2230
|
+
fill: var(--bl-map-base, var(--bl-color-ink, CanvasText));
|
|
2231
|
+
stroke: var(--bl-color-canvas, Canvas);
|
|
2232
|
+
pointer-events: none;
|
|
2233
|
+
}
|
|
2234
|
+
|
|
2235
|
+
/* Narrow widths: the phone crop around the served area. */
|
|
2236
|
+
@container bl-area-map (max-width: 639px) {
|
|
2237
|
+
[data-bl-section='area-map'] [data-slot='frame'] {
|
|
2238
|
+
aspect-ratio: var(--bl-map-crop-ratio, var(--bl-map-ratio, 1));
|
|
2239
|
+
}
|
|
2240
|
+
[data-bl-section='area-map'] [data-slot='map'] {
|
|
2241
|
+
position: absolute;
|
|
2242
|
+
width: var(--bl-map-crop-size, 100%);
|
|
2243
|
+
max-width: none;
|
|
2244
|
+
left: var(--bl-map-crop-x, 0);
|
|
2245
|
+
top: var(--bl-map-crop-y, 0);
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
/*
|
|
2250
|
+
* Beside a place list the map takes three fifths of the width. A region or overview map with no list fills the body
|
|
2251
|
+
* (3.15.0); a locator keeps its column. Names on a map that wide draw at 70%, so they read at about the same size.
|
|
2252
|
+
*/
|
|
2253
|
+
@container bl-area-map (min-width: 768px) {
|
|
2254
|
+
[data-bl-section='area-map'][data-list='beside'] [data-slot='body']:has(> [data-slot='places']),
|
|
2255
|
+
[data-bl-section='area-map'][data-variant='locator'][data-list='beside'] [data-slot='body'] {
|
|
2256
|
+
grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
|
|
2257
|
+
align-items: start;
|
|
2258
|
+
}
|
|
2259
|
+
}
|
|
2260
|
+
@container bl-area-map (min-width: 960px) {
|
|
2261
|
+
[data-bl-section='area-map']:not([data-variant='locator']) [data-slot='body']:not(:has(> [data-slot='places'])) [data-layer='names'] text {
|
|
2262
|
+
font-size: 70%;
|
|
2263
|
+
}
|
|
2264
|
+
}
|
|
2265
|
+
|
|
1863
2266
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brandlab-digital/site-next",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.15.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@brandlab-digital/site-core": "3.
|
|
28
|
+
"@brandlab-digital/site-core": "3.15.0",
|
|
29
29
|
"browser-image-compression": "2.0.2",
|
|
30
30
|
"pdf-lib": "1.17.1",
|
|
31
31
|
"server-only": "0.0.1",
|