@orangesk/orange-design-system 2.0.0-beta.17 → 2.0.0-beta.19
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/build/components/Accordion/style.css +1 -1
- package/build/components/Accordion/style.css.map +1 -1
- package/build/components/AnchorNavigation/style.css +1 -1
- package/build/components/AnchorNavigation/style.css.map +1 -1
- package/build/components/Grid/style.css +1 -1
- package/build/components/Grid/style.css.map +1 -1
- package/build/components/Megamenu/style.css +1 -1
- package/build/components/Megamenu/style.css.map +1 -1
- package/build/components/PromoBanner/style.css +1 -1
- package/build/components/PromoBanner/style.css.map +1 -1
- package/build/components/index.js +1 -23
- package/build/components/index.js.map +1 -1
- package/build/components/tsconfig.tsbuildinfo +1 -1
- package/build/components/types/index.d.ts +5 -3
- package/build/components/types/src/components/Accordion/Accordion.d.ts +2 -2
- package/build/components/types/src/components/Accordion/Accordion.static.d.ts +1 -0
- package/build/components/types/src/components/Carousel/Carousel.static.d.ts +38 -18
- package/build/components/types/src/components/Grid/Grid.d.ts +1 -1
- package/build/components/types/src/components/Megamenu/Megamenu.d.ts +6 -1
- package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +2 -1
- package/build/components/types/src/components/Megamenu/constants.d.ts +2 -0
- package/build/components/types/src/components/Modal/ModalProductHeader.d.ts +2 -0
- package/build/lib/base.css +1 -1
- package/build/lib/base.css.map +1 -1
- package/build/lib/components.css +1 -1
- package/build/lib/components.css.map +1 -1
- package/build/lib/megamenu.css +1 -1
- package/build/lib/megamenu.css.map +1 -1
- package/build/lib/megamenu.js +1 -1
- package/build/lib/megamenu.js.map +1 -1
- package/build/lib/scripts.js +1 -9
- package/build/lib/scripts.js.map +1 -1
- package/build/lib/style.css +1 -1
- package/build/lib/style.css.map +1 -1
- package/build/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/components/Accordion/Accordion.static.ts +36 -30
- package/src/components/Accordion/Accordion.tsx +4 -4
- package/src/components/Accordion/AccordionHeader.tsx +0 -10
- package/src/components/Accordion/styles/mixins.scss +0 -6
- package/src/components/Accordion/styles/style.scss +2 -2
- package/src/components/Accordion/tests/Accordion.unit.test.js +12 -26
- package/src/components/AnchorNavigation/AnchorNavigation.static.ts +0 -1
- package/src/components/AnchorNavigation/styles/mixins.scss +4 -0
- package/src/components/Carousel/Carousel.static.ts +177 -91
- package/src/components/Carousel/tests/Carousel.static.test.js +213 -0
- package/src/components/Carousel/tests/Carousel.unit.test.js +58 -0
- package/src/components/Expander/Expander.static.ts +11 -12
- package/src/components/Footer/Footer.tsx +1 -1
- package/src/components/Footer/tests/Footer.conformance.test.js +4 -4
- package/src/components/Footer/tests/Footer.unit.test.js +4 -4
- package/src/components/Grid/Grid.tsx +1 -1
- package/src/components/Grid/styles/config.scss +5 -3
- package/src/components/Grid/styles/mixins.scss +29 -19
- package/src/components/Grid/tests/Grid.unit.test.js +11 -0
- package/src/components/Megamenu/Megamenu.tsx +142 -68
- package/src/components/Megamenu/MegamenuBlog.tsx +41 -27
- package/src/components/Megamenu/constants.ts +2 -0
- package/src/components/Megamenu/static.ts +0 -9
- package/src/components/Megamenu/styles/mixins.scss +20 -2
- package/src/components/Megamenu/styles/style.scss +2 -0
- package/src/components/Modal/ModalProductHeader.tsx +6 -2
- package/src/components/Modal/tests/ModalProductHeader.unit.test.js +12 -0
- package/src/components/PromoBanner/PromoBanner.tsx +3 -1
- package/src/components/PromoBanner/styles/mixins.scss +5 -0
- package/src/styles/typography/mixins.scss +4 -5
- package/build/search-index.json +0 -406
|
@@ -42,9 +42,33 @@ import {
|
|
|
42
42
|
CLASS_NAV_SPACE_SMALL,
|
|
43
43
|
CLASS_NAV_CART_ICON,
|
|
44
44
|
CLASS_SPACER,
|
|
45
|
+
CLASS_TAG,
|
|
46
|
+
CLASS_TAG_ORANGE,
|
|
47
|
+
CLASS_TAG_SMALL,
|
|
48
|
+
CLASS_LIST_INLINE,
|
|
45
49
|
} from "./constants";
|
|
46
50
|
|
|
47
|
-
export const
|
|
51
|
+
export const list = [
|
|
52
|
+
"Dobitie kreditu",
|
|
53
|
+
"Nedostupnosť služieb",
|
|
54
|
+
"Faktúry",
|
|
55
|
+
"Zdieľanie dát",
|
|
56
|
+
"Prečerpané dáta",
|
|
57
|
+
"Elektronická faktúra",
|
|
58
|
+
"Prvá pomoc internet",
|
|
59
|
+
"Nastavenie zariadení a sim kariet",
|
|
60
|
+
"Pevny internet do domacnosti",
|
|
61
|
+
"Dátový roaming",
|
|
62
|
+
"Nákup online",
|
|
63
|
+
"Telemarketing",
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
export type MegamenuProps = {
|
|
67
|
+
className?: string;
|
|
68
|
+
searchEmpty?: boolean;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const Megamenu = ({ className, searchEmpty }: MegamenuProps) => {
|
|
48
72
|
return (
|
|
49
73
|
<header>
|
|
50
74
|
<nav
|
|
@@ -57,12 +81,9 @@ export const Megamenu = ({ className }: any) => {
|
|
|
57
81
|
data-hide-when-sticky="true"
|
|
58
82
|
>
|
|
59
83
|
<div className={CLASS_CONTAINER}>
|
|
60
|
-
<h2 id="top-menu-title" className="sr-only">
|
|
61
|
-
Top menu
|
|
62
|
-
</h2>
|
|
63
84
|
<ul
|
|
64
85
|
className={cx(CLASS_NAV, CLASS_NAV_SPACE_SMALL)}
|
|
65
|
-
aria-
|
|
86
|
+
aria-label="Top menu"
|
|
66
87
|
>
|
|
67
88
|
<li className={CLASS_NAV_ITEM}>
|
|
68
89
|
<a
|
|
@@ -99,10 +120,7 @@ export const Megamenu = ({ className }: any) => {
|
|
|
99
120
|
|
|
100
121
|
<div className={CLASS_MAIN}>
|
|
101
122
|
<div className={CLASS_CONTAINER}>
|
|
102
|
-
<
|
|
103
|
-
Hlavné menu
|
|
104
|
-
</h2>
|
|
105
|
-
<ul className={CLASS_NAV} aria-labelledby="menu-title">
|
|
123
|
+
<ul className={CLASS_NAV} aria-label="Hlavné menu">
|
|
106
124
|
<li className={cx(CLASS_NAV_ITEM, CLASS_NAV_ITEM_MAIN)}>
|
|
107
125
|
<a
|
|
108
126
|
href="#"
|
|
@@ -175,53 +193,75 @@ export const Megamenu = ({ className }: any) => {
|
|
|
175
193
|
</div>
|
|
176
194
|
|
|
177
195
|
<div className={CLASS_CARD}>
|
|
178
|
-
<
|
|
196
|
+
<p id="pausaly-heading" className={CLASS_TEXT_LARGE}>
|
|
197
|
+
Internet
|
|
198
|
+
</p>
|
|
179
199
|
<ul
|
|
180
200
|
className={CLASS_SUBNAV}
|
|
181
201
|
role="group"
|
|
182
202
|
aria-labelledby="pausaly-heading"
|
|
183
203
|
>
|
|
184
204
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
185
|
-
<a href="#">Prehľad
|
|
205
|
+
<a href="#">Prehľad internetu</a>
|
|
186
206
|
</li>
|
|
187
207
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
188
|
-
<a href="#">
|
|
208
|
+
<a href="#">Mobilný internet</a>
|
|
189
209
|
</li>
|
|
190
210
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
191
|
-
<a href="#">
|
|
211
|
+
<a href="#">Bezpečný internet so sebou</a>
|
|
212
|
+
</li>
|
|
213
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
214
|
+
<a href="#">Domáca linka k internetu</a>
|
|
192
215
|
</li>
|
|
193
216
|
</ul>
|
|
194
217
|
|
|
195
|
-
<
|
|
196
|
-
|
|
197
|
-
|
|
218
|
+
<p
|
|
219
|
+
id="volania-s-kreditom-heading"
|
|
220
|
+
className={CLASS_TEXT_LARGE}
|
|
221
|
+
>
|
|
222
|
+
Televízia
|
|
223
|
+
</p>
|
|
198
224
|
<ul
|
|
199
225
|
className={CLASS_SUBNAV}
|
|
200
226
|
role="group"
|
|
201
227
|
aria-labelledby="volania-s-kreditom-heading"
|
|
202
228
|
>
|
|
203
229
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
204
|
-
<a href="#">
|
|
230
|
+
<a href="#">Najlepšia TV na doma</a>
|
|
205
231
|
</li>
|
|
206
232
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
207
|
-
<a href="#">
|
|
233
|
+
<a href="#">TV cez satelit</a>
|
|
208
234
|
</li>
|
|
209
235
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
210
|
-
<a href="#">
|
|
236
|
+
<a href="#">TV cez internet</a>
|
|
237
|
+
</li>
|
|
238
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
239
|
+
<a href="#">Novinky na Orange TV</a>
|
|
211
240
|
</li>
|
|
212
241
|
</ul>
|
|
213
242
|
|
|
214
|
-
<
|
|
243
|
+
<p id="zahranicie-heading" className={CLASS_TEXT_LARGE}>
|
|
244
|
+
Internet + televízia
|
|
245
|
+
</p>
|
|
215
246
|
<ul
|
|
216
247
|
className={CLASS_SUBNAV}
|
|
217
248
|
role="group"
|
|
218
249
|
aria-labelledby="zahranicie-heading"
|
|
219
250
|
>
|
|
220
251
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
221
|
-
<a href="#">
|
|
252
|
+
<a href="#">Ponuka Love</a>{" "}
|
|
253
|
+
<span
|
|
254
|
+
className={cx(
|
|
255
|
+
CLASS_TAG,
|
|
256
|
+
CLASS_TAG_ORANGE,
|
|
257
|
+
CLASS_TAG_SMALL,
|
|
258
|
+
)}
|
|
259
|
+
>
|
|
260
|
+
Novinka
|
|
261
|
+
</span>
|
|
222
262
|
</li>
|
|
223
263
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
224
|
-
<a href="#">
|
|
264
|
+
<a href="#">Výhodný pár zariadení</a>
|
|
225
265
|
</li>
|
|
226
266
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
227
267
|
<a href="#">Volania do zahraničia</a>
|
|
@@ -233,36 +273,29 @@ export const Megamenu = ({ className }: any) => {
|
|
|
233
273
|
</div>
|
|
234
274
|
|
|
235
275
|
<div className={CLASS_CARD}>
|
|
236
|
-
<
|
|
276
|
+
<p
|
|
277
|
+
id="nase-sluzby-heading"
|
|
278
|
+
className={CLASS_TEXT_LARGE}
|
|
279
|
+
>
|
|
280
|
+
Ste náš zákazník?
|
|
281
|
+
</p>
|
|
237
282
|
<ul
|
|
238
283
|
className={CLASS_SUBNAV}
|
|
239
284
|
role="group"
|
|
240
285
|
aria-labelledby="nase-sluzby-heading"
|
|
241
286
|
>
|
|
242
|
-
<li className={CLASS_SUBNAV_ITEM}>
|
|
243
|
-
<a href="#">Chcem zmeniť paušál</a>
|
|
244
|
-
</li>
|
|
245
|
-
<li className={CLASS_SUBNAV_ITEM}>
|
|
246
|
-
<a href="#">Dobiť kredit</a>
|
|
247
|
-
</li>
|
|
248
287
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
249
288
|
<a href="#">Predĺžiť služby</a>
|
|
250
289
|
</li>
|
|
251
290
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
252
|
-
<a href="#">
|
|
291
|
+
<a href="#">Nový internet</a>
|
|
253
292
|
</li>
|
|
254
293
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
255
|
-
<a href="#">
|
|
256
|
-
</li>
|
|
257
|
-
<li className={CLASS_SUBNAV_ITEM}>
|
|
258
|
-
<a href="#">Orange Svojim</a>
|
|
294
|
+
<a href="#">Nová televízia</a>
|
|
259
295
|
</li>
|
|
260
296
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
261
297
|
<a href="#">Odporučte Orange</a>
|
|
262
298
|
</li>
|
|
263
|
-
<li className={CLASS_SUBNAV_ITEM}>
|
|
264
|
-
<a href="#">Ostatné služby</a>
|
|
265
|
-
</li>
|
|
266
299
|
</ul>
|
|
267
300
|
</div>
|
|
268
301
|
</div>
|
|
@@ -361,31 +394,47 @@ export const Megamenu = ({ className }: any) => {
|
|
|
361
394
|
CLASS_INPUT,
|
|
362
395
|
CLASS_INPUT_SEARCH_ICON_WITH_PLACEHOLDER,
|
|
363
396
|
)}
|
|
364
|
-
id="search-
|
|
397
|
+
id="megamenu-search-input"
|
|
365
398
|
type="text"
|
|
366
399
|
placeholder="Search"
|
|
367
|
-
name="search
|
|
400
|
+
name="search"
|
|
401
|
+
defaultValue={searchEmpty ? "" : "apple"}
|
|
368
402
|
/>
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
<
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
403
|
+
{searchEmpty ? (
|
|
404
|
+
<>
|
|
405
|
+
<p>Najhľadanejši výrazy</p>
|
|
406
|
+
<ul className={CLASS_LIST_INLINE}>
|
|
407
|
+
{list.map((item) => (
|
|
408
|
+
<li key={item}>
|
|
409
|
+
<a href="/" className={cx(CLASS_TAG)}>
|
|
410
|
+
{item}
|
|
411
|
+
</a>
|
|
412
|
+
</li>
|
|
413
|
+
))}
|
|
414
|
+
</ul>
|
|
415
|
+
</>
|
|
416
|
+
) : (
|
|
417
|
+
<ul className={CLASS_SUBNAV}>
|
|
418
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
419
|
+
<a href="#">apple</a>
|
|
420
|
+
</li>
|
|
421
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
422
|
+
<a href="#">apple hodinky</a>
|
|
423
|
+
</li>
|
|
424
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
425
|
+
<a href="#">apple iphone</a>
|
|
426
|
+
</li>
|
|
427
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
428
|
+
<a href="#">apple 16</a>
|
|
429
|
+
</li>
|
|
430
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
431
|
+
<a href="#">apple pro</a>
|
|
432
|
+
</li>
|
|
433
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
434
|
+
<a href="#">apple watch</a>
|
|
435
|
+
</li>
|
|
436
|
+
</ul>
|
|
437
|
+
)}
|
|
389
438
|
</div>
|
|
390
439
|
</div>
|
|
391
440
|
</li>
|
|
@@ -509,10 +558,10 @@ export const Megamenu = ({ className }: any) => {
|
|
|
509
558
|
CLASS_INPUT,
|
|
510
559
|
CLASS_INPUT_SEARCH_ICON_WITH_PLACEHOLDER,
|
|
511
560
|
)}
|
|
512
|
-
id="search-
|
|
561
|
+
id="megamenu-mobile-search-input"
|
|
513
562
|
type="text"
|
|
514
563
|
placeholder="Search"
|
|
515
|
-
name="search
|
|
564
|
+
name="search"
|
|
516
565
|
/>
|
|
517
566
|
<ul className={cx(CLASS_SUBNAV, "hide")}>
|
|
518
567
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
@@ -598,7 +647,12 @@ export const Megamenu = ({ className }: any) => {
|
|
|
598
647
|
</ul>
|
|
599
648
|
</div>
|
|
600
649
|
<div>
|
|
601
|
-
<
|
|
650
|
+
<p
|
|
651
|
+
id="mobile-internet-heading"
|
|
652
|
+
className={CLASS_TEXT_LARGE}
|
|
653
|
+
>
|
|
654
|
+
Internet
|
|
655
|
+
</p>
|
|
602
656
|
<ul
|
|
603
657
|
className={CLASS_SUBNAV}
|
|
604
658
|
role="group"
|
|
@@ -618,7 +672,12 @@ export const Megamenu = ({ className }: any) => {
|
|
|
618
672
|
</li>
|
|
619
673
|
</ul>
|
|
620
674
|
|
|
621
|
-
<
|
|
675
|
+
<p
|
|
676
|
+
id="mobile-tv-heading"
|
|
677
|
+
className={CLASS_TEXT_LARGE}
|
|
678
|
+
>
|
|
679
|
+
Televízia
|
|
680
|
+
</p>
|
|
622
681
|
<ul
|
|
623
682
|
className={CLASS_SUBNAV}
|
|
624
683
|
role="group"
|
|
@@ -638,16 +697,28 @@ export const Megamenu = ({ className }: any) => {
|
|
|
638
697
|
</li>
|
|
639
698
|
</ul>
|
|
640
699
|
|
|
641
|
-
<
|
|
700
|
+
<p
|
|
701
|
+
id="mobile-internet-tv-heading"
|
|
702
|
+
className={CLASS_TEXT_LARGE}
|
|
703
|
+
>
|
|
642
704
|
Internet + televízia
|
|
643
|
-
</
|
|
705
|
+
</p>
|
|
644
706
|
<ul
|
|
645
707
|
className={CLASS_SUBNAV}
|
|
646
708
|
role="group"
|
|
647
709
|
aria-labelledby="mobile-internet-tv-heading"
|
|
648
710
|
>
|
|
649
711
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
650
|
-
<a href="#">Ponuka Love</a>
|
|
712
|
+
<a href="#">Ponuka Love</a>{" "}
|
|
713
|
+
<span
|
|
714
|
+
className={cx(
|
|
715
|
+
CLASS_TAG,
|
|
716
|
+
CLASS_TAG_ORANGE,
|
|
717
|
+
CLASS_TAG_SMALL,
|
|
718
|
+
)}
|
|
719
|
+
>
|
|
720
|
+
Novinka
|
|
721
|
+
</span>
|
|
651
722
|
</li>
|
|
652
723
|
<li className={CLASS_SUBNAV_ITEM}>
|
|
653
724
|
<a href="#">Výhodný pár zariadení</a>
|
|
@@ -660,9 +731,12 @@ export const Megamenu = ({ className }: any) => {
|
|
|
660
731
|
</li>
|
|
661
732
|
</ul>
|
|
662
733
|
|
|
663
|
-
<
|
|
734
|
+
<p
|
|
735
|
+
id="mobile-customer-heading"
|
|
736
|
+
className={CLASS_TEXT_LARGE}
|
|
737
|
+
>
|
|
664
738
|
Ste náš zákazník?
|
|
665
|
-
</
|
|
739
|
+
</p>
|
|
666
740
|
<ul
|
|
667
741
|
className={CLASS_SUBNAV}
|
|
668
742
|
role="group"
|
|
@@ -33,9 +33,12 @@ import {
|
|
|
33
33
|
CLASS_ACCORDION_ITEM,
|
|
34
34
|
CLASS_ACCORDION_TITLE,
|
|
35
35
|
CLASS_SPACER_SMALL,
|
|
36
|
+
CLASS_LIST_INLINE,
|
|
37
|
+
CLASS_TAG,
|
|
36
38
|
} from "./constants";
|
|
39
|
+
import { list, MegamenuProps } from "./Megamenu";
|
|
37
40
|
|
|
38
|
-
export const MegamenuBlog = ({ className }:
|
|
41
|
+
export const MegamenuBlog = ({ className, searchEmpty }: MegamenuProps) => {
|
|
39
42
|
return (
|
|
40
43
|
<header>
|
|
41
44
|
<nav
|
|
@@ -45,10 +48,7 @@ export const MegamenuBlog = ({ className }: any) => {
|
|
|
45
48
|
>
|
|
46
49
|
<div className={CLASS_MAIN}>
|
|
47
50
|
<div className={CLASS_CONTAINER}>
|
|
48
|
-
<
|
|
49
|
-
Hlavné menu
|
|
50
|
-
</h2>
|
|
51
|
-
<ul className={CLASS_NAV} aria-labelledby="menu-title">
|
|
51
|
+
<ul className={CLASS_NAV} aria-label="Hlavné menu">
|
|
52
52
|
<li className={cx(CLASS_NAV_ITEM, CLASS_NAV_ITEM_MAIN)}>
|
|
53
53
|
<a
|
|
54
54
|
href="#"
|
|
@@ -109,31 +109,45 @@ export const MegamenuBlog = ({ className }: any) => {
|
|
|
109
109
|
CLASS_INPUT,
|
|
110
110
|
CLASS_INPUT_SEARCH_ICON_WITH_PLACEHOLDER,
|
|
111
111
|
)}
|
|
112
|
-
id="search-
|
|
112
|
+
id="megamenu-blog-search-input"
|
|
113
113
|
type="text"
|
|
114
114
|
placeholder="Search"
|
|
115
|
-
name="search
|
|
115
|
+
name="search"
|
|
116
|
+
defaultValue={searchEmpty ? "" : "apple"}
|
|
116
117
|
/>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
118
|
+
{searchEmpty ? (
|
|
119
|
+
<>
|
|
120
|
+
<p>Najhľadanejši výrazy</p>
|
|
121
|
+
<ul className={CLASS_LIST_INLINE}>
|
|
122
|
+
{list.map((item) => (
|
|
123
|
+
<a key={item}>
|
|
124
|
+
<span className={cx(CLASS_TAG)}>{item}</span>
|
|
125
|
+
</a>
|
|
126
|
+
))}
|
|
127
|
+
</ul>
|
|
128
|
+
</>
|
|
129
|
+
) : (
|
|
130
|
+
<ul className={CLASS_SUBNAV}>
|
|
131
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
132
|
+
<a href="#">apple</a>
|
|
133
|
+
</li>
|
|
134
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
135
|
+
<a href="#">apple hodinky</a>
|
|
136
|
+
</li>
|
|
137
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
138
|
+
<a href="#">apple iphone</a>
|
|
139
|
+
</li>
|
|
140
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
141
|
+
<a href="#">apple 16</a>
|
|
142
|
+
</li>
|
|
143
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
144
|
+
<a href="#">apple pro</a>
|
|
145
|
+
</li>
|
|
146
|
+
<li className={CLASS_SUBNAV_ITEM}>
|
|
147
|
+
<a href="#">apple watch</a>
|
|
148
|
+
</li>
|
|
149
|
+
</ul>
|
|
150
|
+
)}
|
|
137
151
|
</div>
|
|
138
152
|
</div>
|
|
139
153
|
</li>
|
|
@@ -49,6 +49,8 @@ export const CLASS_INPUT = `${CLASS_ROOT}__input`;
|
|
|
49
49
|
export const CLASS_INPUT_SEARCH_ICON_WITH_PLACEHOLDER = `${CLASS_ROOT}__input--search-icon-with-placeholder`;
|
|
50
50
|
|
|
51
51
|
export const CLASS_TAG = `${CLASS_ROOT}__tag`;
|
|
52
|
+
export const CLASS_TAG_ORANGE = `${CLASS_ROOT}__tag--orange`;
|
|
53
|
+
export const CLASS_TAG_SMALL = `${CLASS_ROOT}__tag--small`;
|
|
52
54
|
export const CLASS_TAG_TRANSPARENT = `${CLASS_ROOT}__tag--transparent`;
|
|
53
55
|
export const CLASS_TAG_LARGE = `${CLASS_ROOT}__tag--large`;
|
|
54
56
|
|
|
@@ -33,17 +33,8 @@ window.ODSMegamenu = window.ODSMegamenu || {
|
|
|
33
33
|
Megamenu,
|
|
34
34
|
instances: [],
|
|
35
35
|
init: () => {
|
|
36
|
-
// Debug logging
|
|
37
|
-
const elements = document.querySelectorAll("[data-megamenu]");
|
|
38
|
-
console.log("Found elements with data-megamenu:", elements.length);
|
|
39
|
-
|
|
40
36
|
// Initialize all Megamenu instances on the page
|
|
41
37
|
window.ODSMegamenu.instances = moduleFactory(Megamenu, "[data-megamenu]");
|
|
42
|
-
console.log(
|
|
43
|
-
"ODSMegamenu instances created:",
|
|
44
|
-
window.ODSMegamenu.instances.length,
|
|
45
|
-
);
|
|
46
|
-
console.log("ODSMegamenu loaded and initialized");
|
|
47
38
|
},
|
|
48
39
|
destroy: () => {
|
|
49
40
|
// Destroy all instances
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
left: 0;
|
|
207
207
|
width: 100%;
|
|
208
208
|
background-color: var(--color-surface-primary);
|
|
209
|
-
padding: convert.to-rem(
|
|
209
|
+
padding: convert.to-rem(60px) 0 convert.to-rem(60px) 0;
|
|
210
210
|
display: none;
|
|
211
211
|
opacity: 0;
|
|
212
212
|
z-index: 15;
|
|
@@ -353,6 +353,8 @@
|
|
|
353
353
|
}
|
|
354
354
|
|
|
355
355
|
@mixin subnav-item {
|
|
356
|
+
display: flex;
|
|
357
|
+
gap: convert.to-rem(10px);
|
|
356
358
|
margin-bottom: convert.to-rem(10px) !important;
|
|
357
359
|
|
|
358
360
|
&:last-child {
|
|
@@ -579,7 +581,7 @@
|
|
|
579
581
|
height: 100vh;
|
|
580
582
|
}
|
|
581
583
|
|
|
582
|
-
@include breakpoint.get("
|
|
584
|
+
@include breakpoint.get("md", "down") {
|
|
583
585
|
display: none;
|
|
584
586
|
}
|
|
585
587
|
}
|
|
@@ -705,6 +707,22 @@
|
|
|
705
707
|
@include tag.color($variant);
|
|
706
708
|
}
|
|
707
709
|
}
|
|
710
|
+
|
|
711
|
+
// Interactive styles for button and anchor tags
|
|
712
|
+
&:not(&--transparent):where(button) {
|
|
713
|
+
@include tag.button();
|
|
714
|
+
z-index: 2;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
&:not(&--transparent):where(a) {
|
|
718
|
+
@include tag.button();
|
|
719
|
+
z-index: 2;
|
|
720
|
+
text-decoration: none !important;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
&:not(&--transparent) {
|
|
724
|
+
@include tag.buttton-disabled();
|
|
725
|
+
}
|
|
708
726
|
}
|
|
709
727
|
|
|
710
728
|
@mixin tag-transparent {
|
|
@@ -11,10 +11,12 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
#{config.$class-root},
|
|
14
|
+
.is-light #{config.$class-root},
|
|
14
15
|
#{config.$class-root}.is-light {
|
|
15
16
|
@include mixins.light-vars;
|
|
16
17
|
}
|
|
17
18
|
|
|
19
|
+
.is-dark #{config.$class-root},
|
|
18
20
|
#{config.$class-root}.is-dark {
|
|
19
21
|
@include mixins.dark-vars;
|
|
20
22
|
}
|
|
@@ -5,6 +5,8 @@ interface ModalProductHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
5
5
|
image?: React.ReactNode;
|
|
6
6
|
/** Use small spacing */
|
|
7
7
|
space?: "small";
|
|
8
|
+
/** Optional id for accessibility (e.g., for aria-labelledby) */
|
|
9
|
+
titleId?: string;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
export const CLASS_ROOT = "modal__product";
|
|
@@ -12,7 +14,7 @@ export const CLASS_ROOT = "modal__product";
|
|
|
12
14
|
const ModalProductHeader = React.forwardRef<
|
|
13
15
|
HTMLDivElement,
|
|
14
16
|
ModalProductHeaderProps
|
|
15
|
-
>(({ className, children, image, space, ...other }, ref) => {
|
|
17
|
+
>(({ className, children, image, space, titleId, ...other }, ref) => {
|
|
16
18
|
const classes = cx(
|
|
17
19
|
`${CLASS_ROOT}-header`,
|
|
18
20
|
{
|
|
@@ -25,7 +27,9 @@ const ModalProductHeader = React.forwardRef<
|
|
|
25
27
|
|
|
26
28
|
return (
|
|
27
29
|
<div className={classes} ref={ref} {...other}>
|
|
28
|
-
<div className={contentClasses}
|
|
30
|
+
<div className={contentClasses} id={titleId}>
|
|
31
|
+
{children}
|
|
32
|
+
</div>
|
|
29
33
|
{image}
|
|
30
34
|
</div>
|
|
31
35
|
);
|
|
@@ -70,4 +70,16 @@ describe("rendering ModalProductHeader", () => {
|
|
|
70
70
|
container.querySelector(".modal__product-content"),
|
|
71
71
|
).toHaveTextContent("Product Header");
|
|
72
72
|
});
|
|
73
|
+
|
|
74
|
+
it("has titleId attribute when titleId prop is provided", () => {
|
|
75
|
+
const { container } = render(
|
|
76
|
+
<ModalProductHeader titleId="test-title-id">
|
|
77
|
+
Product Header
|
|
78
|
+
</ModalProductHeader>,
|
|
79
|
+
);
|
|
80
|
+
expect(container.querySelector(".modal__product-content")).toHaveAttribute(
|
|
81
|
+
"id",
|
|
82
|
+
"test-title-id",
|
|
83
|
+
);
|
|
84
|
+
});
|
|
73
85
|
});
|
|
@@ -39,7 +39,7 @@ export const PromoBanner = ({
|
|
|
39
39
|
className,
|
|
40
40
|
);
|
|
41
41
|
return (
|
|
42
|
-
<Grid className={classes}>
|
|
42
|
+
<Grid columnGapSize="large" className={classes}>
|
|
43
43
|
{variant === "reverse" && image && (
|
|
44
44
|
<GridCol
|
|
45
45
|
size={{ xs: 12, md: 6 }}
|
|
@@ -83,6 +83,8 @@ export const PromoBanner = ({
|
|
|
83
83
|
{
|
|
84
84
|
[`${CLASS_ROOT}__image--bleed-right`]: bleedImage,
|
|
85
85
|
[`align-self-${alignImage}`]: alignImage,
|
|
86
|
+
"pt-none": alignImage === "top",
|
|
87
|
+
"pb-none": alignImage === "bottom",
|
|
86
88
|
"align-center": variant === "vertical",
|
|
87
89
|
},
|
|
88
90
|
imageClassName,
|
|
@@ -166,13 +166,12 @@
|
|
|
166
166
|
|
|
167
167
|
@mixin list-inline() {
|
|
168
168
|
@include list-unstyled();
|
|
169
|
+
gap: space.get("small");
|
|
170
|
+
display: flex;
|
|
171
|
+
flex-wrap: wrap;
|
|
169
172
|
|
|
170
173
|
> li {
|
|
171
|
-
display: inline-
|
|
172
|
-
|
|
173
|
-
&:not(:last-child) {
|
|
174
|
-
margin-right: space.get("small");
|
|
175
|
-
}
|
|
174
|
+
display: inline-flex;
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
177
|
|