@sonic-equipment/ui 0.0.66 → 0.0.67

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.
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Cache used to store references to objects, used for circular
3
+ * reference checks.
4
+ */
5
+ export interface Cache<Key extends object, Value> {
6
+ delete(key: Key): boolean;
7
+ get(key: Key): Value | undefined;
8
+ set(key: Key, value: any): any;
9
+ }
10
+ export interface State<Meta> {
11
+ /**
12
+ * Cache used to identify circular references
13
+ */
14
+ readonly cache: Cache<any, any> | undefined;
15
+ /**
16
+ * Method used to determine equality of nested value.
17
+ */
18
+ readonly equals: InternalEqualityComparator<Meta>;
19
+ /**
20
+ * Additional value that can be used for comparisons.
21
+ */
22
+ meta: Meta;
23
+ /**
24
+ * Whether the equality comparison is strict, meaning it matches
25
+ * all properties (including symbols and non-enumerable properties)
26
+ * with equal shape of descriptors.
27
+ */
28
+ readonly strict: boolean;
29
+ }
30
+ export interface CircularState<Meta> extends State<Meta> {
31
+ readonly cache: Cache<any, any>;
32
+ }
33
+ export interface DefaultState<Meta> extends State<Meta> {
34
+ readonly cache: undefined;
35
+ }
36
+ export interface Dictionary<Value = any> {
37
+ [key: string | symbol]: Value;
38
+ $$typeof?: any;
39
+ }
40
+ export interface ComparatorConfig<Meta> {
41
+ /**
42
+ * Whether the arrays passed are equal in value. In strict mode, this includes
43
+ * additional properties added to the array.
44
+ */
45
+ areArraysEqual: TypeEqualityComparator<any, Meta>;
46
+ /**
47
+ * Whether the dates passed are equal in value.
48
+ */
49
+ areDatesEqual: TypeEqualityComparator<any, Meta>;
50
+ /**
51
+ * Whether the maps passed are equal in value. In strict mode, this includes
52
+ * additional properties added to the map.
53
+ */
54
+ areMapsEqual: TypeEqualityComparator<any, Meta>;
55
+ /**
56
+ * Whether the objects passed are equal in value. In strict mode, this includes
57
+ * non-enumerable properties added to the map, as well as symbol properties.
58
+ */
59
+ areObjectsEqual: TypeEqualityComparator<any, Meta>;
60
+ /**
61
+ * Whether the primitive wrappers passed are equal in value.
62
+ */
63
+ arePrimitiveWrappersEqual: TypeEqualityComparator<any, Meta>;
64
+ /**
65
+ * Whether the regexps passed are equal in value.
66
+ */
67
+ areRegExpsEqual: TypeEqualityComparator<any, Meta>;
68
+ /**
69
+ * Whether the sets passed are equal in value. In strict mode, this includes
70
+ * additional properties added to the set.
71
+ */
72
+ areSetsEqual: TypeEqualityComparator<any, Meta>;
73
+ /**
74
+ * Whether the typed arrays passed are equal in value. In strict mode, this includes
75
+ * additional properties added to the typed array.
76
+ */
77
+ areTypedArraysEqual: TypeEqualityComparator<any, Meta>;
78
+ }
79
+ export type CreateCustomComparatorConfig<Meta> = (config: ComparatorConfig<Meta>) => Partial<ComparatorConfig<Meta>>;
80
+ export type CreateState<Meta> = () => {
81
+ cache?: Cache<any, any> | undefined;
82
+ meta?: Meta;
83
+ };
84
+ export type EqualityComparator<Meta> = <A, B>(a: A, b: B, state: State<Meta>) => boolean;
85
+ export type AnyEqualityComparator<Meta> = (a: any, b: any, state: State<Meta>) => boolean;
86
+ export type EqualityComparatorCreator<Meta> = (fn: EqualityComparator<Meta>) => InternalEqualityComparator<Meta>;
87
+ export type InternalEqualityComparator<Meta> = (a: any, b: any, indexOrKeyA: any, indexOrKeyB: any, parentA: any, parentB: any, state: State<Meta>) => boolean;
88
+ export type PrimitiveWrapper = Boolean | Number | String;
89
+ /**
90
+ * Type which encompasses possible instances of TypedArray
91
+ * classes.
92
+ *
93
+ * **NOTE**: This does not include `BigInt64Array` and
94
+ * `BitUint64Array` because those are part of ES2020 and
95
+ * not supported by certain TS configurations. If using
96
+ * either in `areTypedArraysEqual`, you can cast the
97
+ * instance as `TypedArray` and it will work as expected,
98
+ * because runtime checks will still work for those classes.
99
+ */
100
+ export type TypedArray = Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | Uint16Array | Uint32Array | Uint8Array | Uint8ClampedArray;
101
+ export type TypeEqualityComparator<Type, Meta = undefined> = (a: Type, b: Type, state: State<Meta>) => boolean;
102
+ export interface CustomEqualCreatorOptions<Meta> {
103
+ /**
104
+ * Whether circular references should be supported. It causes the
105
+ * comparison to be slower, but for objects that have circular references
106
+ * it is required to avoid stack overflows.
107
+ */
108
+ circular?: boolean;
109
+ /**
110
+ * Create a custom configuration of type-specific equality comparators.
111
+ * This receives the default configuration, which allows either replacement
112
+ * or supersetting of the default methods.
113
+ */
114
+ createCustomConfig?: CreateCustomComparatorConfig<Meta>;
115
+ /**
116
+ * Create a custom internal comparator, which is used as an override to the
117
+ * default entry point for nested value equality comparisons. This is often
118
+ * used for doing custom logic for specific types (such as handling a specific
119
+ * class instance differently than other objects) or to incorporate `meta` in
120
+ * the comparison. See the recipes for examples.
121
+ */
122
+ createInternalComparator?: (compare: EqualityComparator<Meta>) => InternalEqualityComparator<Meta>;
123
+ /**
124
+ * Create a custom `state` object passed between the methods. This allows for
125
+ * custom `cache` and/or `meta` values to be used.
126
+ */
127
+ createState?: CreateState<Meta>;
128
+ /**
129
+ * Whether the equality comparison is strict, meaning it matches
130
+ * all properties (including symbols and non-enumerable properties)
131
+ * with equal shape of descriptors.
132
+ */
133
+ strict?: boolean;
134
+ }
@@ -0,0 +1 @@
1
+ export declare function AlgoliaInstantSearchStateProvider(): null;
@@ -7,6 +7,7 @@ export interface RefinementListItem {
7
7
  }
8
8
  interface BaseFilterSectionProps {
9
9
  children: React.ReactNode;
10
+ gap?: 'sm' | 'md';
10
11
  title: string;
11
12
  variant: 'default' | 'collapsible' | 'with-action';
12
13
  }
@@ -8,6 +8,22 @@ export interface UseAlgoliaEventResult {
8
8
  objectId: string;
9
9
  queryId: string;
10
10
  }): void;
11
+ sendAddToCartFromSearchResultPageEvent({ objectId, }: {
12
+ objectId: string;
13
+ }): void;
14
+ sendAddToWishListFromProductListPageEvent({ objectId, position, }: {
15
+ objectId: string;
16
+ position: number;
17
+ }): void;
18
+ sendAddToWishListFromSearchEvent({ objectId, position, queryId, }: {
19
+ objectId: string;
20
+ position: number;
21
+ queryId: string;
22
+ }): void;
23
+ sendAddToWishListFromSearchResultPageEvent({ objectId, position, }: {
24
+ objectId: string;
25
+ position: number;
26
+ }): void;
11
27
  sendProductClickFromProductListPageEvent({ objectId, position, }: {
12
28
  objectId: string;
13
29
  position: number;
@@ -18,5 +34,9 @@ export interface UseAlgoliaEventResult {
18
34
  position: number | number[];
19
35
  queryId: string;
20
36
  }): void;
37
+ sendProductClickFromSearchResultPageEvent({ objectId, position, }: {
38
+ objectId: string;
39
+ position: number;
40
+ }): void;
21
41
  }
22
42
  export declare function useAlgoliaInsights(): UseAlgoliaEventResult;
@@ -1,4 +1,8 @@
1
1
  export type AlgoliaInstantSearchStatus = 'idle' | 'loading' | 'stalled' | 'error';
2
+ export declare const useAlgoliaInstantSearchStateIndex: () => [string | undefined, import("shared/providers/global-state-provider").UpdateGlobalState<string | undefined>];
3
+ export declare const useAlgoliaInstantSearchStateQueryId: () => [string | undefined, import("shared/providers/global-state-provider").UpdateGlobalState<string | undefined>];
4
+ export declare const useAlgoliaInstantSearchStateOnline: (initialState?: boolean) => [boolean, import("shared/providers/global-state-provider").UpdateGlobalState<boolean>];
5
+ export declare const useAlgoliaInstantSearchStateStatus: (initialState?: AlgoliaInstantSearchStatus) => [AlgoliaInstantSearchStatus, import("shared/providers/global-state-provider").UpdateGlobalState<AlgoliaInstantSearchStatus>];
2
6
  export interface AlgoliaInstantSearchState {
3
7
  index?: string;
4
8
  online: boolean;
@@ -6,12 +10,12 @@ export interface AlgoliaInstantSearchState {
6
10
  status: AlgoliaInstantSearchStatus;
7
11
  }
8
12
  export declare function useAlgoliaInstantSearchState(initialState?: Partial<AlgoliaInstantSearchState>): {
9
- index?: string;
13
+ index: string | undefined;
10
14
  online: boolean;
11
- queryId?: string;
15
+ queryId: string | undefined;
16
+ setIndex: import("shared/providers/global-state-provider").UpdateGlobalState<string | undefined>;
17
+ setOnline: import("shared/providers/global-state-provider").UpdateGlobalState<boolean>;
18
+ setQueryId: import("shared/providers/global-state-provider").UpdateGlobalState<string | undefined>;
19
+ setStatus: import("shared/providers/global-state-provider").UpdateGlobalState<AlgoliaInstantSearchStatus>;
12
20
  status: AlgoliaInstantSearchStatus;
13
- setIndex: (index: string) => void;
14
- setQueryId: (queryId: string | undefined) => void;
15
- setStatus: (status: AlgoliaInstantSearchStatus) => void;
16
21
  };
17
- export declare function AlgoliaGlobalStateProvider(): null;
@@ -1,4 +1,7 @@
1
1
  import { ProductHit } from 'shared/model/product-hit';
2
+ import { AlgoliaProductHit } from './algolia-product-hit-type';
3
+ export declare const useAlgoliaProductHitsItems: () => [AlgoliaProductHit[], import("shared/providers/global-state-provider").UpdateGlobalState<AlgoliaProductHit[]>];
4
+ export declare const useAlgoliaProductHitsLoading: () => [boolean | undefined, import("shared/providers/global-state-provider").UpdateGlobalState<boolean | undefined>];
2
5
  interface UseProductHitsReturnType {
3
6
  isLoading: boolean | undefined;
4
7
  products: ProductHit[];
@@ -1,3 +1,4 @@
1
- export declare function ConnectedFavoriteButton({ productId }: {
1
+ export declare function ConnectedFavoriteButton({ onFavorite: _onFavorite, productId, }: {
2
+ onFavorite?: VoidFunction;
2
3
  productId: string;
3
4
  }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,6 +1,7 @@
1
1
  import { ProductCardProps } from './product-card';
2
2
  export interface ConnectedProductCartProps extends Omit<ProductCardProps, 'addToCartButton'> {
3
- onAddToCart?: () => void;
3
+ onAddToCart?: VoidFunction;
4
+ onFavorite?: VoidFunction;
4
5
  productId: string;
5
6
  }
6
- export declare function ConnectedProductCard({ onAddToCart, productId, ...props }: ConnectedProductCartProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function ConnectedProductCard({ onAddToCart, onFavorite, productId, ...props }: ConnectedProductCartProps): import("react/jsx-runtime").JSX.Element;
@@ -12,4 +12,4 @@ export interface CarouselProps {
12
12
  slidesPerView?: number | 'auto';
13
13
  spaceBetween?: number;
14
14
  }
15
- export declare function Carousel({ breakpoints, className, hasNavigation, hasOverflow, navigationButtonsPosition, slideClasses, slides, slidesPerView, spaceBetween, }: CarouselProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function Carousel({ breakpoints, className, hasNavigation, hasOverflow, navigationButtonsPosition, slideClasses, slides, slidesPerView, spaceBetween, }: CarouselProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1,11 +1,12 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { AccordionItemProps } from './accordion-item';
3
3
  interface AccordionProps {
4
+ borderPosition?: 'top' | 'bottom';
4
5
  children?: ReactElement<AccordionItemProps> | ReactElement<AccordionItemProps>[];
5
6
  color?: 'white' | 'black';
6
7
  hasLineSeparator?: boolean;
7
8
  indented?: boolean;
8
9
  size?: 'md' | 'lg';
9
10
  }
10
- export declare function Accordion({ children, color, hasLineSeparator, indented, size, }: AccordionProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function Accordion({ borderPosition, children, color, hasLineSeparator, indented, size, }: AccordionProps): import("react/jsx-runtime").JSX.Element;
11
12
  export {};
@@ -27,6 +27,7 @@ export * from './shared/api/shop/hooks/wishlist/use-fetch-all-wishlists-items';
27
27
  export * from './shared/api/shop/hooks/wishlist/use-fetch-wishlists';
28
28
  export * from './shared/api/shop/hooks/wishlist/use-remove-wishlist-item-from-wishlist';
29
29
  export * from './shared/hooks/use-breakpoint';
30
+ export * from './shared/hooks/use-is-breakpoint';
30
31
  export * from './shared/hooks/use-debounced-callback';
31
32
  export * from './shared/hooks/use-disclosure';
32
33
  export * from './shared/hooks/use-scroll-lock';
@@ -0,0 +1 @@
1
+ export declare function ProductListingProductOverview(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function SearchResultProductOverview(): import("react/jsx-runtime").JSX.Element;
package/dist/styles.css CHANGED
@@ -1403,6 +1403,8 @@
1403
1403
  --seperator-color: transparent;
1404
1404
  --accordion-padding-inline: 0;
1405
1405
  --accordion-padding-block: var(--space-16);
1406
+ --accordion-title-border: none;
1407
+ --accordion-item-border: none;
1406
1408
  }
1407
1409
 
1408
1410
  .accordion-module-9WvAH.accordion-module-CaVdG {
@@ -1425,6 +1427,14 @@
1425
1427
  --seperator-color: var(--color-white);
1426
1428
  }
1427
1429
 
1430
+ .accordion-module-9WvAH.accordion-module-J1-Eb {
1431
+ --accordion-title-border: 1px solid var(--seperator-color);
1432
+ }
1433
+
1434
+ .accordion-module-9WvAH.accordion-module-4LI1K {
1435
+ --accordion-item-border: 1px solid var(--seperator-color);
1436
+ }
1437
+
1428
1438
  .accordion-module-6CcEH {
1429
1439
  --accordion-padding-inline: var(--space-16);
1430
1440
  }
@@ -1432,7 +1442,7 @@
1432
1442
  .accordion-module-lf9d- {
1433
1443
  --transition-duration: 0.2s;
1434
1444
 
1435
- border-bottom: 1px solid var(--seperator-color);
1445
+ border-bottom: var(--accordion-item-border);
1436
1446
  }
1437
1447
 
1438
1448
  .accordion-module-lf9d- h3 {
@@ -1446,6 +1456,7 @@
1446
1456
  padding-right: calc(var(--accordion-padding-inline) * 2);
1447
1457
  padding-left: var(--accordion-padding-inline);
1448
1458
  border: none;
1459
+ border-bottom: var(--accordion-title-border);
1449
1460
  background: none;
1450
1461
  color: var(--color);
1451
1462
  cursor: pointer;
@@ -1479,6 +1490,10 @@
1479
1490
  --color: var(--color-gray-100);
1480
1491
  }
1481
1492
 
1493
+ .accordion-module-lf9d- .accordion-module-J1-Eb .accordion-module--Rwpb {
1494
+ border-bottom: 1px solid var(--seperator-color);
1495
+ }
1496
+
1482
1497
  .accordion-module-lf9d- .accordion-module-KZjMo {
1483
1498
  display: grid;
1484
1499
  grid-template-rows: 0fr;
@@ -1498,8 +1513,9 @@
1498
1513
  }
1499
1514
 
1500
1515
  .accordion-module-lf9d-.accordion-module-W0F1z .accordion-module-KZjMo {
1516
+ padding-top: var(--space-16);
1517
+ padding-bottom: var(--space-8);
1501
1518
  grid-template-rows: 1fr;
1502
- padding-block: 0.5rem;
1503
1519
  }
1504
1520
 
1505
1521
  .accordion-module-lf9d-:has(.accordion-module--Rwpb[disabled]) {
@@ -2126,13 +2142,19 @@
2126
2142
  }
2127
2143
 
2128
2144
  .filter-section-module-q1Ob8 {
2145
+ --border-bottom: 1px solid var(--color-brand-medium-gray);
2146
+
2129
2147
  display: block;
2130
2148
  color: var(--color-black);
2131
2149
  }
2132
2150
 
2133
- .filter-section-module-q1Ob8:where(.filter-section-module-JkP09, .filter-section-module-9qc6L) {
2134
- border-bottom: 1px solid var(--color-brand-medium-gray);
2135
- }
2151
+ .filter-section-module-q1Ob8:where(.filter-section-module-JkP09) .filter-section-module-hWVv- {
2152
+ border-bottom: var(--border-bottom);
2153
+ }
2154
+
2155
+ .filter-section-module-q1Ob8:where(.filter-section-module-9qc6L) .filter-section-module-zi2ZE {
2156
+ border-bottom: var(--border-bottom);
2157
+ }
2136
2158
 
2137
2159
  .filter-section-module-q1Ob8 .filter-section-module-zi2ZE {
2138
2160
  display: flex;
@@ -2145,21 +2167,36 @@
2145
2167
  }
2146
2168
 
2147
2169
  .filter-section-module-q1Ob8 .filter-section-module-hWVv- {
2170
+ margin: 0;
2148
2171
  font-size: var(--font-size-16);
2149
2172
  font-weight: var(--font-weight-bold);
2150
- margin-block: var(--space-16);
2173
+ padding-block: var(--space-16);
2151
2174
  }
2152
2175
 
2153
2176
  .filter-section-module-q1Ob8 .filter-section-module-15-YW {
2154
2177
  display: grid;
2155
- gap: var(--space-16);
2156
2178
  padding-block: var(--space-8);
2157
2179
  }
2158
2180
 
2181
+ .filter-section-module-q1Ob8:where(.filter-section-module-crU-3) .filter-section-module-15-YW {
2182
+ gap: var(--space-8);
2183
+ }
2184
+
2185
+ .filter-section-module-q1Ob8:where(.filter-section-module-vHRQu) .filter-section-module-15-YW {
2186
+ gap: var(--space-16);
2187
+ }
2188
+
2189
+ .filter-section-module-q1Ob8:where(.filter-section-module-dGcTY) {
2190
+ border-bottom: unset;
2191
+ }
2192
+
2193
+ .filter-section-module-q1Ob8:where(.filter-section-module-dGcTY) .filter-section-module-hWVv- {
2194
+ border-bottom: var(--border-bottom);
2195
+ }
2196
+
2159
2197
  .algolia-filter-panel-module-GfhOO {
2160
2198
  --padding: var(--space-16);
2161
2199
 
2162
- position: relative;
2163
2200
  height: 100%;
2164
2201
  }
2165
2202
 
@@ -2172,31 +2209,41 @@
2172
2209
  overflow: auto;
2173
2210
  width: 100%;
2174
2211
  height: 100%;
2175
- padding-bottom: 76px;
2212
+ padding-bottom: 16px;
2176
2213
  padding-inline: var(--padding);
2177
2214
  }
2178
2215
 
2179
2216
  .algolia-filter-panel-module-GfhOO .algolia-filter-panel-module-LKet3 {
2180
- display: inline-block;
2217
+ display: inline-flex;
2181
2218
  cursor: pointer;
2182
2219
  font: inherit;
2183
2220
  font-size: var(--font-size-14);
2184
2221
  -webkit-tap-highlight-color: transparent;
2222
+ text-decoration: none;
2185
2223
  }
2186
2224
 
2225
+ .algolia-filter-panel-module-GfhOO .algolia-filter-panel-module-LKet3 > svg {
2226
+ width: 24px;
2227
+ height: 24px;
2228
+ }
2229
+
2187
2230
  .algolia-filter-panel-module-GfhOO .algolia-filter-panel-module-LKet3.algolia-filter-panel-module-yf8kI {
2188
2231
  cursor: default;
2189
2232
  font-weight: var(--font-weight-bold);
2190
2233
  opacity: 1;
2191
- text-decoration: none;
2192
2234
  }
2193
2235
 
2236
+ .algolia-filter-panel-module-GfhOO .algolia-filter-panel-module-LKet3:not(.algolia-filter-panel-module-yf8kI) .algolia-filter-panel-module-gQzED {
2237
+ text-decoration: underline;
2238
+ }
2239
+
2194
2240
  .algolia-filter-panel-module-GfhOO .algolia-filter-panel-module-LKet3 .algolia-filter-panel-module-uAHPx {
2195
2241
  color: var(--color-brand-medium-gray);
2196
2242
  }
2197
2243
 
2198
2244
  .algolia-filter-panel-module-GfhOO .algolia-filter-panel-module-ABOYv {
2199
2245
  position: absolute;
2246
+ z-index: calc(var(--sidebar-layer) + 1);
2200
2247
  bottom: var(--padding);
2201
2248
  display: grid;
2202
2249
  inset-inline: 0;
@@ -2248,100 +2295,6 @@
2248
2295
  height: 12px;
2249
2296
  }
2250
2297
 
2251
- .modal-module-rVFJc {
2252
- position: fixed;
2253
- z-index: calc(var(--modal-layer) - 1);
2254
- top: 0;
2255
- left: 0;
2256
- display: flex;
2257
- width: 100vw;
2258
- height: var(--visual-viewport-height);
2259
- align-items: center;
2260
- justify-content: center;
2261
- -webkit-backdrop-filter: blur(4px);
2262
- backdrop-filter: blur(4px);
2263
- background-color: rgb(0 0 0 / 52%);
2264
- }
2265
-
2266
- .modal-module-rVFJc[data-entering] {
2267
- animation: modal-module-63Uyl 200ms;
2268
- }
2269
-
2270
- .modal-module-rVFJc[data-exiting] {
2271
- animation: modal-module-63Uyl 150ms reverse ease-in;
2272
- }
2273
-
2274
- .modal-module-6vlFt {
2275
- position: relative;
2276
- z-index: calc(var(--modal-layer) - 1);
2277
- min-width: 300px;
2278
- max-width: 90%;
2279
- border: 1px solid var(--gray-400);
2280
- border-radius: 6px;
2281
- background: var(--color-white);
2282
- box-shadow: 0 8px 20px rgba(0 0 0 / 10%);
2283
- color: var(--text-color);
2284
- outline: none;
2285
- }
2286
-
2287
- .modal-module-6vlFt section:focus-visible,
2288
- .modal-module-6vlFt section:focus {
2289
- outline: none;
2290
- }
2291
-
2292
- .modal-module-6vlFt[data-entering] {
2293
- animation: modal-module-aPJ7X 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
2294
- }
2295
-
2296
- @keyframes modal-module-63Uyl {
2297
- from {
2298
- opacity: 0;
2299
- }
2300
-
2301
- to {
2302
- opacity: 1;
2303
- }
2304
- }
2305
-
2306
- @keyframes modal-module-aPJ7X {
2307
- from {
2308
- transform: scale(0.8);
2309
- }
2310
-
2311
- to {
2312
- transform: scale(1);
2313
- }
2314
- }
2315
-
2316
- .dialog-module-ZnsAe {
2317
- display: flex;
2318
- align-items: center;
2319
- justify-content: space-between;
2320
- border-bottom: 1px solid #e0e0e0;
2321
- gap: 8px;
2322
- }
2323
-
2324
- .dialog-module-ZnsAe .dialog-module-SwpuZ {
2325
- padding: 1rem;
2326
- }
2327
-
2328
- .dialog-module-ZnsAe .dialog-module-Y7Tqg {
2329
- align-self: flex-start;
2330
- }
2331
-
2332
- .dialog-module-Koqia {
2333
- padding: 1rem;
2334
- }
2335
-
2336
- .dialog-module-y7Axm {
2337
- display: flex;
2338
- align-items: center;
2339
- justify-content: end;
2340
- padding: 1rem;
2341
- border-top: 1px solid #e0e0e0;
2342
- gap: 8px;
2343
- }
2344
-
2345
2298
  .category-card-module-4NUjH {
2346
2299
  all: unset;
2347
2300
  display: grid;
@@ -2535,8 +2488,9 @@
2535
2488
  max-width: 100vw;
2536
2489
  height: 100%;
2537
2490
  box-sizing: border-box;
2491
+ padding-top: 46px;
2492
+ padding-bottom: 56px;
2538
2493
  background: var(--color-white);
2539
- padding-block: 46px;
2540
2494
  }
2541
2495
 
2542
2496
  .sidebar-module-fSa9Q.sidebar-module-AIq0M.sidebar-module-LEZgg {
@@ -2625,6 +2579,100 @@
2625
2579
  margin-top: var(--space-32);
2626
2580
  }
2627
2581
 
2582
+ .modal-module-rVFJc {
2583
+ position: fixed;
2584
+ z-index: calc(var(--modal-layer) - 1);
2585
+ top: 0;
2586
+ left: 0;
2587
+ display: flex;
2588
+ width: 100vw;
2589
+ height: var(--visual-viewport-height);
2590
+ align-items: center;
2591
+ justify-content: center;
2592
+ -webkit-backdrop-filter: blur(4px);
2593
+ backdrop-filter: blur(4px);
2594
+ background-color: rgb(0 0 0 / 52%);
2595
+ }
2596
+
2597
+ .modal-module-rVFJc[data-entering] {
2598
+ animation: modal-module-63Uyl 200ms;
2599
+ }
2600
+
2601
+ .modal-module-rVFJc[data-exiting] {
2602
+ animation: modal-module-63Uyl 150ms reverse ease-in;
2603
+ }
2604
+
2605
+ .modal-module-6vlFt {
2606
+ position: relative;
2607
+ z-index: calc(var(--modal-layer) - 1);
2608
+ min-width: 300px;
2609
+ max-width: 90%;
2610
+ border: 1px solid var(--gray-400);
2611
+ border-radius: 6px;
2612
+ background: var(--color-white);
2613
+ box-shadow: 0 8px 20px rgba(0 0 0 / 10%);
2614
+ color: var(--text-color);
2615
+ outline: none;
2616
+ }
2617
+
2618
+ .modal-module-6vlFt section:focus-visible,
2619
+ .modal-module-6vlFt section:focus {
2620
+ outline: none;
2621
+ }
2622
+
2623
+ .modal-module-6vlFt[data-entering] {
2624
+ animation: modal-module-aPJ7X 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
2625
+ }
2626
+
2627
+ @keyframes modal-module-63Uyl {
2628
+ from {
2629
+ opacity: 0;
2630
+ }
2631
+
2632
+ to {
2633
+ opacity: 1;
2634
+ }
2635
+ }
2636
+
2637
+ @keyframes modal-module-aPJ7X {
2638
+ from {
2639
+ transform: scale(0.8);
2640
+ }
2641
+
2642
+ to {
2643
+ transform: scale(1);
2644
+ }
2645
+ }
2646
+
2647
+ .dialog-module-ZnsAe {
2648
+ display: flex;
2649
+ align-items: center;
2650
+ justify-content: space-between;
2651
+ border-bottom: 1px solid #e0e0e0;
2652
+ gap: 8px;
2653
+ }
2654
+
2655
+ .dialog-module-ZnsAe .dialog-module-SwpuZ {
2656
+ padding: 1rem;
2657
+ }
2658
+
2659
+ .dialog-module-ZnsAe .dialog-module-Y7Tqg {
2660
+ align-self: flex-start;
2661
+ }
2662
+
2663
+ .dialog-module-Koqia {
2664
+ padding: 1rem;
2665
+ }
2666
+
2667
+ .dialog-module-y7Axm {
2668
+ display: flex;
2669
+ align-items: center;
2670
+ justify-content: end;
2671
+ padding: 1rem;
2672
+ border-top: 1px solid #e0e0e0;
2673
+ gap: 8px;
2674
+ }
2675
+
2628
2676
  .product-listing-page-module-dmIHF .product-listing-page-module-Oz76Z {
2629
2677
  margin-bottom: 44px;
2630
2678
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonic-equipment/ui",
3
- "version": "0.0.66",
3
+ "version": "0.0.67",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -124,6 +124,7 @@
124
124
  "@types/react-transition-group": "^4.4.10",
125
125
  "algoliasearch": "^4.24.0",
126
126
  "clsx": "^2.1.1",
127
+ "fast-equals": "^5.0.1",
127
128
  "instantsearch.js": "^4.73.1",
128
129
  "query-string": "^9.1.0",
129
130
  "react-aria-components": "^1.2.1",
@@ -1 +0,0 @@
1
- export declare function ProductOverview(): import("react/jsx-runtime").JSX.Element;