@depict-ai/react-ui 2.0.1 → 2.0.3
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/ES10/index.cjs +1 -1
- package/ES10/index.d.ts +1 -1
- package/ES10/index.js +1 -1
- package/dist/styles/plain-css-fallback-styling.css +1 -1
- package/latest/index.cjs +1 -1
- package/latest/index.d.ts +1 -1
- package/latest/index.js +1 -1
- package/package.json +5 -5
- package/server/ES10/index.cjs +1 -1
- package/server/ES10/index.d.ts +1 -1
- package/server/ES10/index.js +1 -1
- package/server/latest/index.cjs +1 -1
- package/server/latest/index.d.ts +1 -1
- package/server/latest/index.js +1 -1
- package/dist/main.js +0 -293
- package/dist/module.js +0 -285
- package/dist/styles/components/PLP/Buttons.scss +0 -124
- package/dist/styles/components/PLP/MorphingSign.scss +0 -31
- package/dist/styles/components/PLP/PLPResults.scss +0 -20
- package/dist/styles/components/PLP/ProductListingPage.scss +0 -142
- package/dist/styles/components/PLP/ScrollStatus.scss +0 -24
- package/dist/styles/components/PLP/SelectedFilters.scss +0 -74
- package/dist/styles/components/PLP/SlidableItems.scss +0 -99
- package/dist/styles/components/PLP/SortAndFilter/FloatingButtons.scss +0 -75
- package/dist/styles/components/PLP/SortAndFilter/SortAndFilter.scss +0 -728
- package/dist/styles/components/PLP/SortAndFilter/SortAndFilterModal.scss +0 -160
- package/dist/styles/components/PLP/SortAndFilter/WhiteSortAndFilter.scss +0 -148
- package/dist/styles/components/PLP/Toast.scss +0 -54
- package/dist/styles/components/PLP/index.scss +0 -45
- package/dist/styles/components/category/BreadCrumbs.scss +0 -23
- package/dist/styles/components/category/CategoryTitle.scss +0 -28
- package/dist/styles/components/category/QuickLinks.scss +0 -71
- package/dist/styles/components/category/index.scss +0 -23
- package/dist/styles/components/search/Autocomplete.scss +0 -117
- package/dist/styles/components/search/CategorySuggestions.scss +0 -74
- package/dist/styles/components/search/InstantCard.scss +0 -117
- package/dist/styles/components/search/InstantResults.scss +0 -10
- package/dist/styles/components/search/PreviousSearches.scss +0 -77
- package/dist/styles/components/search/QueryInput.scss +0 -167
- package/dist/styles/components/search/SearchModal.scss +0 -95
- package/dist/styles/components/search/SearchRecommendations.scss +0 -25
- package/dist/styles/components/search/ShowingResultsFor.scss +0 -10
- package/dist/styles/components/search/index.scss +0 -40
- package/dist/styles/default.css +0 -1
- package/dist/styles/helpers/custom_input.scss +0 -162
- package/dist/styles/helpers/supports-hover.scss +0 -5
- package/dist/styles/helpers/utils.scss +0 -82
- package/dist/styles/variables.scss +0 -47
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
@use "../../variables";
|
|
2
|
-
@use "../../helpers/supports-hover";
|
|
3
|
-
@use "../../helpers/utils";
|
|
4
|
-
@use "sass:color";
|
|
5
|
-
|
|
6
|
-
$primary-button-background: variables.$brand-black;
|
|
7
|
-
$primary-button-color: #fff;
|
|
8
|
-
$primary-button-border: 1px solid transparent; // so that the page doesn't jump when there's half a border when switching between having sort and filters open (the buttons switch between pimary and secondary)
|
|
9
|
-
$primary-button-border-radius: variables.$border-radius;
|
|
10
|
-
$primary-button-hover-filter: drop-shadow(-2px -2px 4px rgba(255, 255, 255, 0.25))
|
|
11
|
-
drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.15));
|
|
12
|
-
$primary-button-active-filter: drop-shadow(2px 2px 4px rgba(255, 255, 255, 0.25))
|
|
13
|
-
drop-shadow(-2px -2px 4px rgba(0, 0, 0, 0.15));
|
|
14
|
-
$primary-button-focus-visible-filter: drop-shadow(2px 2px 4px rgba(65, 143, 195, 0.8))
|
|
15
|
-
drop-shadow(-2px -2px 4px rgba(65, 143, 195, 0.8));
|
|
16
|
-
|
|
17
|
-
$secondary-button-background: variables.$brand-lightest-grey;
|
|
18
|
-
$secondary-button-color: variables.$brand-dark-grey;
|
|
19
|
-
$secondary-button-border: 1px solid variables.$brand-black;
|
|
20
|
-
$secondary-button-border-radius: variables.$border-radius;
|
|
21
|
-
$secondary-button-hover-filter: drop-shadow(-2px -2px 4px rgba(255, 255, 255, 0.25))
|
|
22
|
-
drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.15));
|
|
23
|
-
$secondary-button-active-filter: drop-shadow(2px 2px 4px rgba(255, 255, 255, 0.25))
|
|
24
|
-
drop-shadow(-2px -2px 4px rgba(0, 0, 0, 0.15));
|
|
25
|
-
$secondary-button-focus-visible-filter: drop-shadow(-2px -2px 4px rgba(65, 143, 195, 0.8))
|
|
26
|
-
drop-shadow(2px 2px 4px rgba(65, 143, 195, 0.8));
|
|
27
|
-
|
|
28
|
-
@mixin PrimaryButton(
|
|
29
|
-
$background: $primary-button-background,
|
|
30
|
-
$color: $primary-button-color,
|
|
31
|
-
$border: $primary-button-border,
|
|
32
|
-
$border-radius: $primary-button-border-radius,
|
|
33
|
-
$hover-filter: $primary-button-hover-filter,
|
|
34
|
-
$active-filter: $primary-button-active-filter,
|
|
35
|
-
$focus-visible-filter: $primary-button-focus-visible-filter
|
|
36
|
-
) {
|
|
37
|
-
// not using .primary since that's 100% going to conflict with existing declarations on sites
|
|
38
|
-
button.major {
|
|
39
|
-
@include Button(
|
|
40
|
-
$background,
|
|
41
|
-
$color,
|
|
42
|
-
$border,
|
|
43
|
-
$border-radius,
|
|
44
|
-
$hover-filter,
|
|
45
|
-
$active-filter,
|
|
46
|
-
$focus-visible-filter
|
|
47
|
-
) {
|
|
48
|
-
@content;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@mixin SecondaryButton(
|
|
54
|
-
$background: $secondary-button-background,
|
|
55
|
-
$color: $secondary-button-color,
|
|
56
|
-
$border: $secondary-button-border,
|
|
57
|
-
$border-radius: $secondary-button-border-radius,
|
|
58
|
-
$hover-filter: $secondary-button-hover-filter,
|
|
59
|
-
$active-filter: $secondary-button-active-filter,
|
|
60
|
-
$focus-visible-filter: $secondary-button-focus-visible-filter
|
|
61
|
-
) {
|
|
62
|
-
// not using .secondary since that's 100% going to conflict with existing declarations on sites
|
|
63
|
-
button.minor {
|
|
64
|
-
@include Button(
|
|
65
|
-
$background,
|
|
66
|
-
$color,
|
|
67
|
-
$border,
|
|
68
|
-
$border-radius,
|
|
69
|
-
$hover-filter,
|
|
70
|
-
$active-filter,
|
|
71
|
-
$focus-visible-filter
|
|
72
|
-
) {
|
|
73
|
-
@content;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@mixin Button(
|
|
79
|
-
$background,
|
|
80
|
-
$color,
|
|
81
|
-
$border,
|
|
82
|
-
$border-radius,
|
|
83
|
-
$hover-filter,
|
|
84
|
-
$active-filter,
|
|
85
|
-
$focus-visible-filter,
|
|
86
|
-
$padding: 10px 20px
|
|
87
|
-
) {
|
|
88
|
-
background: $background;
|
|
89
|
-
color: $color;
|
|
90
|
-
border: $border;
|
|
91
|
-
border-radius: $border-radius;
|
|
92
|
-
@if $padding {
|
|
93
|
-
padding: $padding;
|
|
94
|
-
}
|
|
95
|
-
display: flex;
|
|
96
|
-
white-space: pre-wrap; // can't have spaces otherwise
|
|
97
|
-
justify-content: center;
|
|
98
|
-
align-items: center;
|
|
99
|
-
cursor: pointer;
|
|
100
|
-
transition: filter 150ms ease-in-out, background 100ms ease-in-out;
|
|
101
|
-
|
|
102
|
-
svg path {
|
|
103
|
-
fill: $color; // treat icons the same as text
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
@include supports-hover.supports-hover() {
|
|
107
|
-
&:hover {
|
|
108
|
-
filter: $hover-filter;
|
|
109
|
-
@include utils.highlight-background($normal-background: $background);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
&:active {
|
|
113
|
-
filter: $active-filter;
|
|
114
|
-
@include utils.highlight-background($normal-background: $background, $darken-factor: 10%, $lighten-factor: 20%);
|
|
115
|
-
}
|
|
116
|
-
&:focus {
|
|
117
|
-
outline-style: none;
|
|
118
|
-
}
|
|
119
|
-
&:focus-visible {
|
|
120
|
-
filter: $focus-visible-filter;
|
|
121
|
-
@include utils.highlight-background($normal-background: $background);
|
|
122
|
-
}
|
|
123
|
-
@content;
|
|
124
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
@mixin MorphingSign($color: #fff) {
|
|
2
|
-
.morphing-sign {
|
|
3
|
-
/* https://stackoverflow.com/a/38136283 */
|
|
4
|
-
border: 0;
|
|
5
|
-
font-size: 1.5em;
|
|
6
|
-
position: relative;
|
|
7
|
-
width: 1em;
|
|
8
|
-
height: 1em;
|
|
9
|
-
|
|
10
|
-
span {
|
|
11
|
-
position: absolute;
|
|
12
|
-
background: $color;
|
|
13
|
-
border-radius: 2px;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/* Create the "+" shape by positioning the spans absolutely */
|
|
17
|
-
span:first-child {
|
|
18
|
-
top: 25%;
|
|
19
|
-
bottom: 25%;
|
|
20
|
-
width: 10%;
|
|
21
|
-
left: 45%;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
span:last-child {
|
|
25
|
-
left: 25%;
|
|
26
|
-
right: 25%;
|
|
27
|
-
height: 10%;
|
|
28
|
-
top: 45%;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
@use "../../variables";
|
|
2
|
-
@use "../../helpers/utils";
|
|
3
|
-
|
|
4
|
-
@mixin PLPResults() {
|
|
5
|
-
.listing-page {
|
|
6
|
-
.no-results {
|
|
7
|
-
background: white;
|
|
8
|
-
padding: 40px;
|
|
9
|
-
display: flex;
|
|
10
|
-
justify-content: flex-start;
|
|
11
|
-
align-items: center;
|
|
12
|
-
flex-direction: column;
|
|
13
|
-
flex-grow: 2;
|
|
14
|
-
.hint {
|
|
15
|
-
text-decoration: underline;
|
|
16
|
-
cursor: pointer;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
@use "../../helpers/utils";
|
|
2
|
-
|
|
3
|
-
@mixin ProductListingPage($spacing-to-filters: 12px, $desktop-item-gap: 20px, $mobile-item-gap: 16px) {
|
|
4
|
-
.listing-page {
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
padding: $desktop-item-gap calc(#{$desktop-item-gap} / 2);
|
|
8
|
-
@include mobile_sizes() {
|
|
9
|
-
padding: $mobile-item-gap calc(#{$mobile-item-gap} / 2);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&,
|
|
13
|
-
& * {
|
|
14
|
-
box-sizing: border-box;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
& > .filter-results-for-one-row,
|
|
18
|
-
& > .results-for {
|
|
19
|
-
margin-bottom: calc(#{$desktop-item-gap} / 2);
|
|
20
|
-
@include mobile_sizes() {
|
|
21
|
-
margin-bottom: calc(#{$mobile-item-gap} / 2);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
& > .sort-and-filter-buttons {
|
|
26
|
-
margin-top: calc(#{$desktop-item-gap} / 2);
|
|
27
|
-
margin-bottom: calc(#{$desktop-item-gap} / 2);
|
|
28
|
-
@include mobile_sizes() {
|
|
29
|
-
margin-top: calc(#{$mobile-item-gap} / 2);
|
|
30
|
-
margin-bottom: calc(#{$mobile-item-gap} / 2);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
.PLP-results {
|
|
34
|
-
margin-top: calc(#{$desktop-item-gap} / 2);
|
|
35
|
-
@include mobile_sizes() {
|
|
36
|
-
margin-top: calc(#{$mobile-item-gap} / 2);
|
|
37
|
-
}
|
|
38
|
-
display: flex;
|
|
39
|
-
& > {
|
|
40
|
-
.filters,
|
|
41
|
-
.sorting {
|
|
42
|
-
margin-left: $spacing-to-filters;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
.cards {
|
|
47
|
-
// this is for all product lists, meaning PLPResults (category + search product lists) and SearchRecommendations
|
|
48
|
-
flex-wrap: wrap;
|
|
49
|
-
display: flex;
|
|
50
|
-
flex-direction: row;
|
|
51
|
-
flex-grow: 1;
|
|
52
|
-
overflow: hidden;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@mixin SearchPage(
|
|
58
|
-
$spacing-to-filters: 12px,
|
|
59
|
-
$desktop-item-gap: 20px,
|
|
60
|
-
$mobile-item-gap: 16px,
|
|
61
|
-
$spacing-above-search-field: true,
|
|
62
|
-
$query-input-width: 800px,
|
|
63
|
-
$gap-to-recs-factor: 3
|
|
64
|
-
) {
|
|
65
|
-
.listing-page {
|
|
66
|
-
.query-input {
|
|
67
|
-
width: min(100%, $query-input-width);
|
|
68
|
-
align-self: center;
|
|
69
|
-
|
|
70
|
-
@if $spacing-above-search-field {
|
|
71
|
-
margin-top: calc(#{$desktop-item-gap} * 2);
|
|
72
|
-
}
|
|
73
|
-
margin-bottom: $desktop-item-gap;
|
|
74
|
-
@include mobile_sizes() {
|
|
75
|
-
margin-bottom: $mobile-item-gap;
|
|
76
|
-
@if $spacing-above-search-field {
|
|
77
|
-
margin-top: calc(#{$mobile-item-gap});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
~ .category-suggestions .category-suggestion {
|
|
81
|
-
&:last-child {
|
|
82
|
-
margin-right: auto;
|
|
83
|
-
}
|
|
84
|
-
&:first-child {
|
|
85
|
-
margin-left: auto;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
.category-suggestions {
|
|
90
|
-
margin-bottom: $desktop-item-gap;
|
|
91
|
-
@include mobile_sizes() {
|
|
92
|
-
margin-bottom: $mobile-item-gap;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
.query-input {
|
|
96
|
-
// if there are no category suggestions we should have 2x the gap between where they should be and what's there, only for desktop tho
|
|
97
|
-
& + .filter-results-for-one-row,
|
|
98
|
-
& + .results-for {
|
|
99
|
-
@media (min-width: 652px) {
|
|
100
|
-
margin-top: $desktop-item-gap;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
.search-recs {
|
|
105
|
-
// whole gap here so that we don't have to make the margin bottom of search-results conditional
|
|
106
|
-
margin-top: calc(#{$desktop-item-gap} * #{$gap-to-recs-factor});
|
|
107
|
-
// in between these there's the border, a visual line separating the results and recs
|
|
108
|
-
padding-top: calc(#{$desktop-item-gap} * #{$gap-to-recs-factor});
|
|
109
|
-
@include mobile_sizes() {
|
|
110
|
-
margin-top: calc(#{$mobile-item-gap} * #{$gap-to-recs-factor});
|
|
111
|
-
padding-top: calc(#{$mobile-item-gap} * #{$gap-to-recs-factor});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
.PLP-results.nothing + .search-recs {
|
|
115
|
-
// if no results, bring us closer
|
|
116
|
-
margin-top: calc(#{$desktop-item-gap} * 1.5);
|
|
117
|
-
padding-top: calc(#{$desktop-item-gap} * 1.5);
|
|
118
|
-
@include mobile_sizes() {
|
|
119
|
-
margin-top: calc(#{$mobile-item-gap} * 1.5);
|
|
120
|
-
padding-top: calc(#{$mobile-item-gap} * 1.5);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
@mixin CategoryPage($spacing-to-filters: 12px, $desktop-item-gap: 20px, $mobile-item-gap: 16px) {
|
|
127
|
-
.listing-page {
|
|
128
|
-
.quicklinks,
|
|
129
|
-
.crumbs {
|
|
130
|
-
margin-bottom: $desktop-item-gap;
|
|
131
|
-
@include mobile_sizes() {
|
|
132
|
-
margin-bottom: $mobile-item-gap;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
@mixin mobile_sizes() {
|
|
139
|
-
@media (max-width: 651px) {
|
|
140
|
-
@content;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
@use "../../variables";
|
|
2
|
-
|
|
3
|
-
@mixin ScrollStatus(
|
|
4
|
-
$scroll-status-background: rgba(100, 100, 100, 0.9),
|
|
5
|
-
$border-radius: calc(variables.$border-radius * 5)
|
|
6
|
-
) {
|
|
7
|
-
.scroll-status {
|
|
8
|
-
pointer-events: none;
|
|
9
|
-
position: sticky;
|
|
10
|
-
bottom: 10vh;
|
|
11
|
-
white-space: nowrap;
|
|
12
|
-
display: flex;
|
|
13
|
-
justify-content: center;
|
|
14
|
-
z-index: calc(#{variables.$base-z-index} + 4);
|
|
15
|
-
align-items: center;
|
|
16
|
-
opacity: 0;
|
|
17
|
-
.text {
|
|
18
|
-
background: $scroll-status-background;
|
|
19
|
-
color: white;
|
|
20
|
-
padding: 10px 20px;
|
|
21
|
-
border-radius: $border-radius;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
@use "../../variables";
|
|
2
|
-
@use "../../helpers/utils";
|
|
3
|
-
@use "../../helpers/supports-hover";
|
|
4
|
-
@use "./Buttons";
|
|
5
|
-
|
|
6
|
-
@mixin SelectedFilters(
|
|
7
|
-
$border-radius: variables.$border-radius,
|
|
8
|
-
$title-color: variables.$brand-black,
|
|
9
|
-
$filter-title-transform: uppercase,
|
|
10
|
-
$margin-on-desktop: 0px,
|
|
11
|
-
$set-border-on-crumbs: true
|
|
12
|
-
) {
|
|
13
|
-
.listing-page .selected-filters {
|
|
14
|
-
.inner {
|
|
15
|
-
// this is in here because it's an ExpandingContainer and the animation gets borked otherwise
|
|
16
|
-
margin-top: 10px;
|
|
17
|
-
margin-bottom: 10px;
|
|
18
|
-
display: flex;
|
|
19
|
-
align-items: center;
|
|
20
|
-
.title {
|
|
21
|
-
margin-right: 10px;
|
|
22
|
-
}
|
|
23
|
-
@media (min-width: 652px) {
|
|
24
|
-
margin-top: $margin-on-desktop;
|
|
25
|
-
margin-bottom: $margin-on-desktop;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.title {
|
|
29
|
-
@media (max-width: 600px) {
|
|
30
|
-
display: none;
|
|
31
|
-
}
|
|
32
|
-
font-size: 1.1em;
|
|
33
|
-
text-transform: $filter-title-transform;
|
|
34
|
-
color: $title-color;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.depict-slider {
|
|
38
|
-
overflow: hidden;
|
|
39
|
-
width: unset;
|
|
40
|
-
|
|
41
|
-
.clear-filter {
|
|
42
|
-
@if $set-border-on-crumbs {
|
|
43
|
-
border: 1px solid Buttons.$primary-button-background;
|
|
44
|
-
}
|
|
45
|
-
svg {
|
|
46
|
-
width: 12.64px;
|
|
47
|
-
height: 12.64px;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
.clear-all-filters {
|
|
51
|
-
@if $set-border-on-crumbs {
|
|
52
|
-
border: Buttons.$secondary-button-border;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.clear-filter,
|
|
57
|
-
.clear-all-filters {
|
|
58
|
-
flex: 0 0 auto;
|
|
59
|
-
box-sizing: border-box;
|
|
60
|
-
white-space: nowrap;
|
|
61
|
-
padding: 5px 10px;
|
|
62
|
-
display: flex;
|
|
63
|
-
@include utils.flex-gap(5px, "row nowrap");
|
|
64
|
-
align-items: center;
|
|
65
|
-
border-radius: $border-radius;
|
|
66
|
-
font-size: 1em;
|
|
67
|
-
line-height: 1;
|
|
68
|
-
cursor: pointer;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
@content;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
// @use "../../../rendering/slider_button_positioning";
|
|
2
|
-
@use "../../helpers/utils";
|
|
3
|
-
@use "../../variables";
|
|
4
|
-
@use "../../helpers/supports-hover";
|
|
5
|
-
|
|
6
|
-
@mixin button_positioning {
|
|
7
|
-
.d-navbutton {
|
|
8
|
-
position: absolute;
|
|
9
|
-
z-index: 2;
|
|
10
|
-
top: 50%;
|
|
11
|
-
transform: translateY(-50%);
|
|
12
|
-
-webkit-transform: translateY(-50%);
|
|
13
|
-
touch-action: manipulation;
|
|
14
|
-
transition-duration: 0.2s;
|
|
15
|
-
padding-right: 1px;
|
|
16
|
-
cursor: pointer;
|
|
17
|
-
&.hidden {
|
|
18
|
-
cursor: default;
|
|
19
|
-
opacity: 0;
|
|
20
|
-
animation-name: depict_slider_button_unclickable;
|
|
21
|
-
animation-duration: 5s;
|
|
22
|
-
animation-fill-mode: forwards;
|
|
23
|
-
}
|
|
24
|
-
&.left {
|
|
25
|
-
transform: translateY(-50%) rotate(180deg);
|
|
26
|
-
left: -1px; // fix chrome rendering half a px of not the button
|
|
27
|
-
}
|
|
28
|
-
&.right {
|
|
29
|
-
right: -1px;
|
|
30
|
-
}
|
|
31
|
-
img {
|
|
32
|
-
width: 100%;
|
|
33
|
-
height: 100%;
|
|
34
|
-
}
|
|
35
|
-
@content;
|
|
36
|
-
}
|
|
37
|
-
@keyframes depict_slider_button_unclickable {
|
|
38
|
-
0% {
|
|
39
|
-
pointer-events: all;
|
|
40
|
-
}
|
|
41
|
-
100% {
|
|
42
|
-
pointer-events: none;
|
|
43
|
-
visibility: hidden; // make not keyboard focusable with tab
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@mixin SlidableItems($fade-to: variables.$brand-lighter-grey, $fade-from: rgba(238, 238, 240, 0)) {
|
|
49
|
-
.depict-slider {
|
|
50
|
-
width: 100%;
|
|
51
|
-
position: relative;
|
|
52
|
-
.sliding {
|
|
53
|
-
height: 100%;
|
|
54
|
-
@include utils.flex-gap(10px, "row nowrap");
|
|
55
|
-
align-items: center;
|
|
56
|
-
display: flex;
|
|
57
|
-
flex-direction: row;
|
|
58
|
-
flex-wrap: nowrap;
|
|
59
|
-
overflow-x: scroll;
|
|
60
|
-
/* Internet Explorer 10+; next 3 properties stolen from: https://stackoverflow.com/a/38994837*/
|
|
61
|
-
-ms-overflow-style: none;
|
|
62
|
-
/* Firefox */
|
|
63
|
-
scrollbar-width: none;
|
|
64
|
-
// Chrome and Safari
|
|
65
|
-
&::-webkit-scrollbar {
|
|
66
|
-
display: none;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// TODO: break out button button positioning related lib code into a package and import that here instead of duplicating the code
|
|
70
|
-
// @include slider_button_positioning.button_positioning {
|
|
71
|
-
@include button_positioning {
|
|
72
|
-
height: calc(100% + 2px);
|
|
73
|
-
padding-top: 0;
|
|
74
|
-
padding-left: 0;
|
|
75
|
-
padding-bottom: 0;
|
|
76
|
-
width: 26px;
|
|
77
|
-
background: linear-gradient(270deg, $fade-to 50%, $fade-from 105%);
|
|
78
|
-
display: flex;
|
|
79
|
-
align-items: center;
|
|
80
|
-
justify-content: flex-end;
|
|
81
|
-
border: none;
|
|
82
|
-
|
|
83
|
-
@include supports-hover.supports-hover() {
|
|
84
|
-
&:hover {
|
|
85
|
-
svg {
|
|
86
|
-
transform: scale(1.2);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
svg {
|
|
91
|
-
transition-duration: 150ms;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
&:active {
|
|
95
|
-
opacity: 0.9;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
@use "../../../variables";
|
|
2
|
-
@use "../../../helpers/supports-hover";
|
|
3
|
-
|
|
4
|
-
@mixin FloatingButtons(
|
|
5
|
-
$button-background: variables.$brand-lighter-grey,
|
|
6
|
-
$hovered-button-background: variables.$brand-lightest-grey,
|
|
7
|
-
$button-border-color: variables.$brand-black,
|
|
8
|
-
$icon-color: variables.$brand-dark-grey,
|
|
9
|
-
$bottom-distance: 12px,
|
|
10
|
-
$side-distance: 12px,
|
|
11
|
-
$position: "left" // "left" or "right"
|
|
12
|
-
) {
|
|
13
|
-
.floating-buttons {
|
|
14
|
-
position: sticky;
|
|
15
|
-
bottom: $bottom-distance;
|
|
16
|
-
display: flex;
|
|
17
|
-
z-index: calc(#{variables.$base-z-index} + 4);
|
|
18
|
-
align-items: center;
|
|
19
|
-
opacity: 0;
|
|
20
|
-
transition-timing-function: ease-in-out;
|
|
21
|
-
transition-duration: 300ms;
|
|
22
|
-
@if $position== "left" {
|
|
23
|
-
padding-left: $side-distance;
|
|
24
|
-
justify-content: flex-start;
|
|
25
|
-
} @else if $position== "right" {
|
|
26
|
-
padding-right: $side-distance;
|
|
27
|
-
justify-content: flex-end;
|
|
28
|
-
}
|
|
29
|
-
&:not(.show-them) {
|
|
30
|
-
pointer-events: none;
|
|
31
|
-
}
|
|
32
|
-
&.show-them {
|
|
33
|
-
opacity: 1;
|
|
34
|
-
}
|
|
35
|
-
.filter {
|
|
36
|
-
margin-right: 5px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.sort {
|
|
40
|
-
margin-left: 5px;
|
|
41
|
-
margin-right: 5px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.up {
|
|
45
|
-
margin-left: 5px;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
.sort,
|
|
49
|
-
.filter,
|
|
50
|
-
.up {
|
|
51
|
-
background: $button-background;
|
|
52
|
-
filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.1)) drop-shadow(-2px -2px 4px rgba(255, 255, 255, 0.3));
|
|
53
|
-
border: 1px solid $button-border-color;
|
|
54
|
-
border-radius: 20px;
|
|
55
|
-
padding: 10px;
|
|
56
|
-
@include supports-hover.supports-hover() {
|
|
57
|
-
&:hover {
|
|
58
|
-
background: $hovered-button-background;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
&:focus {
|
|
62
|
-
outline: none;
|
|
63
|
-
}
|
|
64
|
-
&:focus-visible {
|
|
65
|
-
background: $hovered-button-background;
|
|
66
|
-
}
|
|
67
|
-
div {
|
|
68
|
-
display: flex;
|
|
69
|
-
}
|
|
70
|
-
svg path {
|
|
71
|
-
fill: $icon-color;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|