@portfoliablejs/valence 0.1.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/LICENSE +21 -0
- package/README.md +23 -0
- package/package.json +68 -0
- package/public/favicon.svg +1 -0
- package/public/icons.svg +24 -0
- package/src/assets/devices/apple/mobile/consulta.avif +0 -0
- package/src/assets/devices/apple/mobile/iphone17.avif +0 -0
- package/src/assets/devices/apple/mobile/iphone6.avif +0 -0
- package/src/assets/devices/apple/mobile/iphonex.avif +0 -0
- package/src/assets/devices/apple/wearables/appleWatch.avif +0 -0
- package/src/assets/hero.png +0 -0
- package/src/assets/javascript.svg +1 -0
- package/src/assets/vite.svg +1 -0
- package/src/counter.js +9 -0
- package/src/index.js +25 -0
- package/src/lib/i18n.js +50 -0
- package/src/main.js +50 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Air/Device/Apple MacBook Air Gold.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Air/Device/Apple MacBook Air Silver.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Air/Device/Apple MacBook Air Space Grey.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Pro/Device/Apple Macbook Pro 13 Silver.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Pro/Device/Apple Macbook Pro 13 Space Grey.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Pro/Device/Apple Macbook Pro 16 Silver.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple MacBook Pro/Device/Apple Macbook Pro 16 Space Grey.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple Macbook/Device/Apple-Macbook-Gold.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple Macbook/Device/Apple-Macbook-Space-Grey.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple Pro Display XDR/Device/Apple Pro Display XDR.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple Thunderbolt Display/Device/Apple Thunderbolt Display.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac/Device/Apple iMac.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Blue.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Green.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Orange.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Purple.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Red.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Silver.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac 24 2021/Device/Apple iMac 24 Yellow.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac Pro/Device/Apple iMac Pro.avif +0 -0
- package/src/stories/assets/mockups/desktop/apple/Apple iMac Retina/Device/Apple iMac Retina.avif +0 -0
- package/src/stories/assets/mockups/desktop/dell/Dell UltraSharp HD 5K Monitor/Device/Dell UltraSharp 5K Monitor 27 90deg.avif +0 -0
- package/src/stories/assets/mockups/desktop/dell/Dell UltraSharp HD 5K Monitor/Device/Dell UltraSharp 5K Monitor 27.avif +0 -0
- package/src/stories/assets/mockups/desktop/dell/Dell UltraSharp Monitor/24 Inch/Device/Dell UltraSharp 24 90deg.avif +0 -0
- package/src/stories/assets/mockups/desktop/dell/Dell UltraSharp Monitor/24 Inch/Device/Dell UltraSharp 24.avif +0 -0
- package/src/stories/assets/mockups/desktop/dell/Dell UltraSharp Monitor/27 Inch/Device/Dell UltraSharp 27 90deg.avif +0 -0
- package/src/stories/assets/mockups/desktop/dell/Dell UltraSharp Monitor/27 Inch/Device/Dell UltraSharp 27.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11/Device/Apple iPhone 11 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11/Device/Apple iPhone 11 Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11/Device/Apple iPhone 11 Purple.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11/Device/Apple iPhone 11 Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11/Device/Apple iPhone 11 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11/Device/Apple iPhone 11 Yellow.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro/Device/Apple iPhone 11 Pro Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro/Device/Apple iPhone 11 Pro Midnight Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro/Device/Apple iPhone 11 Pro Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro/Device/Apple iPhone 11 Pro Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro Max/Device/Apple iPhone 11 Pro Max Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro Max/Device/Apple iPhone 11 Pro Max Midnight Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro Max/Device/Apple iPhone 11 Pro Max Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 11 Pro Max/Device/Apple iPhone 11 Pro Max Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12/Device/Apple iPhone 12 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12/Device/Apple iPhone 12 Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12/Device/Apple iPhone 12 Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12/Device/Apple iPhone 12 Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12/Device/Apple iPhone 12 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Mini/Device/Apple iPhone 12 Mini Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Mini/Device/Apple iPhone 12 Mini Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Mini/Device/Apple iPhone 12 Mini Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Mini/Device/Apple iPhone 12 Mini Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Mini/Device/Apple iPhone 12 Mini White.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro/Device/Apple iPhone 12 Pro Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro/Device/Apple iPhone 12 Pro Graphite.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro/Device/Apple iPhone 12 Pro Pacific Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro/Device/Apple iPhone 12 Pro Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro Max/Device/Apple iPhone 12 Pro Max Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro Max/Device/Apple iPhone 12 Pro Max Graphite.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro Max/Device/Apple iPhone 12 Pro Max Pacific Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 12 Pro Max/Device/Apple iPhone 12 Pro Max Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13/Device/Apple iPhone 13 /342/200/224 Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13/Device/Apple iPhone 13 /342/200/224 Midnight.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13/Device/Apple iPhone 13 /342/200/224 Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13/Device/Apple iPhone 13 /342/200/224 Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13/Device/Apple iPhone 13 /342/200/224 Starlight.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Mini/Device/iPhone 13 Mini /342/200/224 Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Mini/Device/iPhone 13 Mini /342/200/224 Midnight.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Mini/Device/iPhone 13 Mini /342/200/224 Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Mini/Device/iPhone 13 Mini /342/200/224 Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Mini/Device/iPhone 13 Mini /342/200/224 Starlight.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro/Device/Apple iPhone 13 Pro /342/200/224 Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro/Device/Apple iPhone 13 Pro /342/200/224 Graphite.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro/Device/Apple iPhone 13 Pro /342/200/224 Sierra Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro/Device/Apple iPhone 13 Pro /342/200/224 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro Max/Device/Apple iPhone 13 Pro Max /342/200/224 Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro Max/Device/Apple iPhone 13 Pro Max /342/200/224 Graphite.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro Max/Device/Apple iPhone 13 Pro Max /342/200/224 Sierra Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 13 Pro Max/Device/Apple iPhone 13 Pro Max /342/200/224 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5c/Device/Apple iPhone 5c Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5c/Device/Apple iPhone 5c Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5c/Device/Apple iPhone 5c Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5c/Device/Apple iPhone 5c White.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5c/Device/Apple iPhone 5c Yellow.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5s/Device/Apple iPhone 5s Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5s/Device/Apple iPhone 5s Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 5s/Device/Apple iPhone 5s Space Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s/Device/Apple iPhone 6s Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s/Device/Apple iPhone 6s Rose Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s/Device/Apple iPhone 6s Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s/Device/Apple iPhone 6s Space Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s Plus/Device/Apple iPhone 6s Plus Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s Plus/Device/Apple iPhone 6s Plus Rose Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s Plus/Device/Apple iPhone 6s Plus Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 6s Plus/Device/Apple iPhone 6s Plus Space Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7/Device/Apple iPhone 7 Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7/Device/Apple iPhone 7 Jet Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7/Device/Apple iPhone 7 Matte Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7/Device/Apple iPhone 7 Rose Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7/Device/Apple iPhone 7 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7 Plus/Device/Apple iPhone 7 Plus Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7 Plus/Device/Apple iPhone 7 Plus Jet Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7 Plus/Device/Apple iPhone 7 Plus Matte Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7 Plus/Device/Apple iPhone 7 Plus Rose Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 7 Plus/Device/Apple iPhone 7 Plus Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 8/Device/Apple iPhone 8 Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 8/Device/Apple iPhone 8 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 8/Device/Apple iPhone 8 Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 8 Plus/Device/Apple iPhone 8 Plus Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 8 Plus/Device/Apple iPhone 8 Plus Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone 8 Plus/Device/Apple iPhone 8 Plus Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone SE/Device/Apple iPhone SE Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone SE/Device/Apple iPhone SE Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone SE/Device/Apple iPhone SE White.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone X/Device/Apple iPhone X Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone X/Device/Apple iPhone X Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XR/Device/Apple iPhone XR Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XR/Device/Apple iPhone XR Coral.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XR/Device/Apple iPhone XR Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XR/Device/Apple iPhone XR Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XR/Device/Apple iPhone XR Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XR/Device/Apple iPhone XR Yellow.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XS/Device/Apple iPhone XS Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XS/Device/Apple iPhone XS Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XS/Device/Apple iPhone XS Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XS Max/Device/Apple iPhone XS Max Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XS Max/Device/Apple iPhone XS Max Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/apple/Apple iPhone XS Max/Device/Apple iPhone XS Max Space Grey.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel/Device/Google Pixel Quite Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel/Device/Google Pixel Really Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel/Device/Google Pixel Very Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 2/Device/Google PIxel 2 Kinda Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 2/Device/Google Pixel 2 Clearly White.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 2/Device/Google Pixel 2 Just Black.avif +0 -0
- White.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 2 XL/Device/Google Pixel 2 XL Just Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 3/Device/Google Pixel 3 - Clearly White.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 3/Device/Google Pixel 3 - Just Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 3/Device/Google Pixel 3 - Not Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 3 XL/Device/Google Pixel 3 XL - Clearly White.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 3 XL/Device/Google Pixel 3 XL - Just Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 3 XL/Device/Google Pixel 3 XL - Not Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 4/Device/Google Pixel 4 Clearly White.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 4/Device/Google Pixel 4 Just Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 4/Device/Google Pixel 4 Oh So Orange.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 4 XL/Device/Google Pixel 4 XL Clearly White.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 4 XL/Device/Google Pixel 4 XL Just Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 4 XL/Device/Google Pixel 4 XL Oh So Orange.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 5/Device/Google Pixel 5 Just Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Google Pixel 5/Device/Google Pixel 5/302/240Sorta Sage.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Nexus 4/Device/Nexus 4.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Nexus 5X/Device/Nexus 5x.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Nexus 6P/Device/Nexus 6P.avif +0 -0
- package/src/stories/assets/mockups/mobile/google/Nexus 9/Device/Nexus 9.avif +0 -0
- package/src/stories/assets/mockups/mobile/htcone/HTC One A9/Device/HTC One A9 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/htcone/HTC One A9/Device/HTC One A9 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/huawei/Huawei P8/Device/Huawei P8 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/huawei/Huawei P8/Device/Huawei P8 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/microsoft/Microsoft Lumia 950/Device/Microsoft Lumia 950 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/microsoft/Microsoft Lumia 950/Device/Microsoft Lumia 950 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/motorola/Motorola Moto E/Device/Motorola Moto E Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/motorola/Motorola Moto E/Device/Motorola Moto E White.avif +0 -0
- package/src/stories/assets/mockups/mobile/motorola/Motorola Moto G/Device/Motorola Moto G.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note 5/Device/Samsung Galaxy Note 5 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note 5/Device/Samsung Galaxy Note 5 Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note 5/Device/Samsung Galaxy Note 5 Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note 5/Device/Samsung Galaxy Note 5 Silver Titanium.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note 5/Device/Samsung Galaxy Note 5 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10/Device/Samsung Galaxy Note10 Aura Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10/Device/Samsung Galaxy Note10 Aura Glow.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10/Device/Samsung Galaxy Note10 Aura Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10/Device/Samsung Galaxy Note10 Aura Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10/Device/Samsung Galaxy Note10 Aura White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10+/Device/Samsung Galaxy Note10+ Aura Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10+/Device/Samsung Galaxy Note10+ Aura Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10+/Device/Samsung Galaxy Note10+ Aura Glow.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Note10+/Device/Samsung Galaxy Note10+ Aura White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S Duos/Device/Samsung Galaxy S Duos.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10/Device/Samsung Galaxy S10 Flamingo Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10/Device/Samsung Galaxy S10 Prism Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10/Device/Samsung Galaxy S10 Prism Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10/Device/Samsung Galaxy S10 Prism Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10/Device/Samsung Galaxy S10 Prism White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10+/Device/Samsung Galaxy S10+ Ceramic White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10+/Device/Samsung Galaxy S10+ Flamingo Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10+/Device/Samsung Galaxy S10+ Prism Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10+/Device/Samsung Galaxy S10+ Prism Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10+/Device/Samsung Galaxy S10+ Prism Green.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S10+/Device/Samsung Galaxy S10+ Prism White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20/Device/Samsung Galaxy S20 Cloud Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20/Device/Samsung Galaxy S20 Cloud Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20/Device/Samsung Galaxy S20 Cosmic Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20 Ultra/Device/Samsung Galaxy S20 Utra Cosmic Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20 Ultra/Device/Samsung Galaxy S20 Utra Cosmic Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20+/Device/Samsung Galaxy S20+ Cloud Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20+/Device/Samsung Galaxy S20+ Cosmic Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S20+/Device/Samsung Galaxy S20+ Cosmic Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21 5G/Device/Samsung Galaxy S21 5G /342/200/224 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21 5G/Device/Samsung Galaxy S21 5G /342/200/224 Pink.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21 5G/Device/Samsung Galaxy S21 5G /342/200/224 Violet.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21 5G/Device/Samsung Galaxy S21 5G /342/200/224 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21 Ultra 5G/Device/Samsung Galaxy S21 Ultra 5G /342/200/224 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21 Ultra 5G/Device/Samsung Galaxy S21 Ultra 5G /342/200/224 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21+/Device/Samsung Galaxy S21+ 5G /342/200/224 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21+/Device/Samsung Galaxy S21+ 5G /342/200/224 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S21+/Device/Samsung Galaxy S21+ 5G /342/200/224 Violet.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S3/Device/Samsung Galaxy S3.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S5/Device/Samsung Galaxy S5 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S5/Device/Samsung Galaxy S5 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S7/Device/Samsung Galaxy S7 Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S7/Device/Samsung Galaxy S7 Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S7/Device/Samsung Galaxy S7 Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S7/Device/Samsung Galaxy S7 White.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S8/Device/Samsung Galaxy S8 Arctic Silver.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S8/Device/Samsung Galaxy S8 Coral Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S8/Device/Samsung Galaxy S8 Maple Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S8/Device/Samsung Galaxy S8 Midnight Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S8/Device/Samsung Galaxy S8 Orchid Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S9/Device/Samsung Galaxy S9 Burgundy Red.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S9/Device/Samsung Galaxy S9 Coral Blue.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S9/Device/Samsung Galaxy S9 Lilac Purple.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S9/Device/Samsung Galaxy S9 Midnight Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S9/Device/Samsung Galaxy S9 Sunrise Gold.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy S9/Device/Samsung Galaxy S9 Titanium Gray.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Y/Device/Samsung Galaxy Y Black.avif +0 -0
- package/src/stories/assets/mockups/mobile/samsung/Samsung Galaxy Y/Device/Samsung Galaxy Y White.avif +0 -0
- package/src/stories/assets/mockups/mobile/xiaomi/Xiaomi Mi Mix Alpha/Device/Xiaomi Mi Mix Alpha Back.avif +0 -0
- package/src/stories/assets/mockups/mobile/xiaomi/Xiaomi Mi Mix Alpha/Device/Xiaomi Mi Mix Alpha Front.avif +0 -0
- package/src/stories/assets/mockups/mobile/xiaomi/Xiaomi Mi Mix Alpha/Device/Xiaomi Mi Mix Alpha Side.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad/Device/Apple iPad Gold.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad/Device/Apple iPad Silver.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad/Device/Apple iPad Space Grey.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Green Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Green Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Rose Gold Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Rose Gold Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Silver Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Silver Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Sky Blue Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Sky Blue Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Space Gray Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Air 2020/Device/Apple iPad Air 2020 Space Gray Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Mini/Device/Apple iPad Mini Gold.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Mini/Device/Apple iPad Mini Silver.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Mini/Device/Apple iPad Mini Space Grey.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 11 Silver - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 11 Silver - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 11 Space Gray - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 11 Space Gray - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 13 Silver - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 13 Silver - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 13 Space Gray - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device with Pencil/Apple iPad Pro 13 Space Gray - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 11 Silver - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 11 Silver - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 11 Space Gray - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 11 Space Gray - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 13 Silver - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 13 Silver - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 13 Space Gray - Landscape.avif +0 -0
- package/src/stories/assets/mockups/tablet/apple/Apple iPad Pro/Device/Device without Pencil/Apple iPad Pro 13 Space Gray - Portrait.avif +0 -0
- package/src/stories/assets/mockups/tablet/dell/Dell XPS 13/Device/Dell XPS 13.avif +0 -0
- package/src/stories/assets/mockups/tablet/dell/Dell XPS 15/Device/Dell XPS 15.avif +0 -0
- package/src/stories/assets/mockups/tablet/google/Google Slate/Device/Google Pixel Slate.avif +0 -0
- package/src/stories/assets/mockups/tablet/microsoft/Microsoft Surface 3/Device/Microsoft Surface Pro 3.avif +0 -0
- package/src/stories/assets/mockups/tablet/microsoft/Microsoft Surface Book/Device/Microsoft Surface Book.avif +0 -0
- package/src/stories/assets/mockups/tablet/microsoft/Microsoft Surface Pro 4/Device/Microsoft Surface Pro 4.avif +0 -0
- package/src/stories/assets/mockups/tablet/microsoft/Microsoft Surface Pro X/Device/Surface Pro X Black.avif +0 -0
- package/src/stories/assets/mockups/tablet/microsoft/Microsoft Surface Pro X/Device/Surface Pro X Silver.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Beige with Studio Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Beige without Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Beige.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Black with Studio Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Black without Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Black.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Brown with Studio Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Brown without Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - Brown.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - White with Studio Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - White without Stand.avif +0 -0
- package/src/stories/assets/mockups/television/samsung/Samsung Frame/Device/Samsung Frame - White.avif +0 -0
- package/src/stories/assets/mockups/television/sony/Sony W850C/Device/Sony W850C.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Black Steel + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Gold + Black Leather Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Gold + Midnight Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Rose Gold + Black Leather Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Rose Gold + Lavender Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + Fog Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + Green Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + Red Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + Walnut Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum Gold + Antique White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum Rose Gold + Stone Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Sport Space Gray + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Stainless Steel + Black Leather Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/38mm/Device Closed/Apple Watch 38mm Steel + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Black Steel + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Gold + Black Leather Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Gold + Midnight Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Rose Gold + Black Leather Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Rose Gold + Lavender Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum + Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum + Fog Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum + Green Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum + Red Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum + Walnut Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum Gold + Antique White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Aluminum Rose Gold + Stone Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Sport Space Gray + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Stainless Steel + Black Leather Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch/Device/42mm/Device Closed/Apple Watch 42mm Steel + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Black Steel + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Edition Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Rose Gold Aluminum + Midnight Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Cocoa Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Concrete Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Flat Silver Volt Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Flat Silver White Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Ocean Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Red Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Turquoise Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Silver Aluminum + Yellow Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Space Gray Aluminum + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Space Gray Aluminum + Black Cool Gray Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Space Gray Aluminum + Black Volt Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Sport Aluminum + Walnut Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/38mm/Device Closed/Apple Watch 38mm Steel + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Edition Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Gold Aluminum + Cocoa Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Rose Gold Aluminum + Midnight Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Concrete Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Flat Silver Volt Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Flat Silver White Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Green Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Light Pink Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Ocean Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Pink Sand Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Red Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Turquoise Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Silver Aluminum + Yellow Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Space Black Steel + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Space Gray Aluminum + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Space Gray Aluminum + Black Cool Gray Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Space Gray Aluminum + Black Volt Nike Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch 2/Device/42mm/Device Closed/Apple Watch 42mm Steel + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Gold Aluminum + Pink Sand Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Gold Stainless Steel + Stone Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Silver Aluminum + Clementine Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Space Black Stainless Steel + Alaskan Blue Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Space Black Titanium + Pine Green Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Space Grey Aluminum + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Stainless Steel + Lemon Cream Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm Titanium + Red Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 5/Device/44mm/Closed/Apple Watch 44mm White Ceramic + White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Blue Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Dark Titanium Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Gold Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Gold Stainless Steel Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Graphite Stainless Steel Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Light Titanium Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Red Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Silver Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Silver Stainless Steel Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/40mm/Apple Watch 40mm Space Gray Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Blue Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Dark Titanium Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Gold Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Gold Stainless Steel Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Graphite Stainless Steel Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Light Titanium Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Red Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Silver Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Silver Stainless Steel Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Cyprus Green Solo Loop/44mm/Apple Watch 44mm Space Gray Aluminum Cyprus Green Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Blue Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Dark Titanium Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Gold Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Gold Stainless Steel Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Graphite Stainless Steel Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Light Titanium Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Red Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Silver Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Silver Stainless Steel Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/40mm/Apple Watch 40mm Space Gray Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Blue Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Dark Titanium Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Gold Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Gold Stainless Steel Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Graphite Stainless Steel Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Light Titanium Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Red Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Silver Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Silver Stainless Steel Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Ginger Solo Loop/44mm/Apple Watch 44mm Space Gray Aluminum Ginger Solo Loop.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Blue Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Dark Titanium Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Gold Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Gold Stainless Steel Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Graphite Stainless Steel Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Light Titanium Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Red Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Silver Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Silver Stainless Steel Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/40mm/Apple Watch 40mm Space Gray Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Blue Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Dark Titanium Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Gold Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Gold Stainless Steel Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Graphite Stainless Steel Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Light Titanium Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Red Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Silver Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Silver Stainless Steel Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/With Bands/Pink Citrus Sport Closed/44mm/Apple Watch 44mm Space Gray Aluminum Pink Citrus Sport.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Blue Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Dark Titanium.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Gold Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Gold Stainless Steel.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Graphite Stainless Steel.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Light Titanium.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Red Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Silver Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Silver Stainless Steel.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/40mm/Apple Watch 40mm Space Gray Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Blue Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Dark Titanium.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Gold Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Gold Stainless Steel.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Graphite Stainless Steel.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Light Titanium.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Red Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Silver Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Silver Stainless Steel.avif +0 -0
- package/src/stories/assets/mockups/wearable/apple/Apple Watch Series 6/Device/Without Bands/44mm/Apple Watch 44mm Space Gray Aluminum.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Men Black + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Men Black + Cognac Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Men Gold + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Men Gold + Cognac Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Men Silver + Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Men Silver + Cognac Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Women Gold + Blush Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Women Gold + Stone Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Women Rose Gold + Blush Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Women Rose Gold + Stone Grey Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Women Silver + Blush Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Closed/Motorola Moto 360 Women Silver + Stone Grey Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Men Black + Black Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Men Black + Cognac Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Men Gold + Black Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Men Gold + Cognac Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Men Silver + Black Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Men Silver + Cognac Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Women Gold + Blush Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Women Gold + Stone Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Women Rose Gold + Blush Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Women Rose Gold + Stone Grey Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Women Silver + Blush Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/motorola/Motorola Moto 360/Device Open/Motorola Moto 360 Women Silver + Stone Grey Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/sony/Sony SmartWatch 3/Device Closed/Sony SmartWatch 3 Black Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/sony/Sony SmartWatch 3/Device Closed/Sony SmartWatch 3 White Closed.avif +0 -0
- package/src/stories/assets/mockups/wearable/sony/Sony SmartWatch 3/Device Open/Sony SmartWatch 3 Black Open.avif +0 -0
- package/src/stories/assets/mockups/wearable/sony/Sony SmartWatch 3/Device Open/Sony SmartWatch 3 White Open.avif +0 -0
- package/src/stories/atoms/Button/Button.Architecture.mdx +384 -0
- package/src/stories/atoms/Button/Button.Changelog.mdx +124 -0
- package/src/stories/atoms/Button/Button.js +131 -0
- package/src/stories/atoms/Button/Button.stories.js +535 -0
- package/src/stories/atoms/Button/button.css +585 -0
- package/src/stories/atoms/Check/Check.Architecture.mdx +227 -0
- package/src/stories/atoms/Check/Check.Changelog.mdx +73 -0
- package/src/stories/atoms/Check/Check.js +122 -0
- package/src/stories/atoms/Check/Check.stories.js +196 -0
- package/src/stories/atoms/Check/check.css +159 -0
- package/src/stories/atoms/Divider/Divider.Architecture.mdx +202 -0
- package/src/stories/atoms/Divider/Divider.Changelog.mdx +73 -0
- package/src/stories/atoms/Divider/Divider.js +74 -0
- package/src/stories/atoms/Divider/Divider.stories.js +158 -0
- package/src/stories/atoms/Divider/divider.css +84 -0
- package/src/stories/atoms/Icon/Icon.Architecture.mdx +224 -0
- package/src/stories/atoms/Icon/Icon.Changelog.mdx +73 -0
- package/src/stories/atoms/Icon/Icon.stories.js +177 -0
- package/src/stories/atoms/Icon/Iconography.js +603 -0
- package/src/stories/atoms/Icon/iconography.css +67 -0
- package/src/stories/atoms/KBD/Kbd.Architecture.mdx +211 -0
- package/src/stories/atoms/KBD/Kbd.Changelog.mdx +72 -0
- package/src/stories/atoms/KBD/Kbd.js +71 -0
- package/src/stories/atoms/KBD/Kbd.stories.js +182 -0
- package/src/stories/atoms/KBD/kbd.css +110 -0
- package/src/stories/atoms/Loader/Loader.Architecture.mdx +216 -0
- package/src/stories/atoms/Loader/Loader.Changelog.mdx +66 -0
- package/src/stories/atoms/Loader/Loader.js +88 -0
- package/src/stories/atoms/Loader/Loader.stories.js +130 -0
- package/src/stories/atoms/Loader/loader.css +132 -0
- package/src/stories/atoms/MetricCard/MetricCard.Architecture.mdx +207 -0
- package/src/stories/atoms/MetricCard/MetricCard.Changelog.mdx +34 -0
- package/src/stories/atoms/MetricCard/MetricCard.js +142 -0
- package/src/stories/atoms/MetricCard/MetricCard.stories.js +368 -0
- package/src/stories/atoms/MetricCard/metric-card.css +181 -0
- package/src/stories/atoms/Pill/Pill.Architecture.mdx +270 -0
- package/src/stories/atoms/Pill/Pill.Changelog.mdx +72 -0
- package/src/stories/atoms/Pill/Pill.js +323 -0
- package/src/stories/atoms/Pill/Pill.stories.js +478 -0
- package/src/stories/atoms/Pill/pill.css +174 -0
- package/src/stories/atoms/Radio/Radio.Architecture.mdx +204 -0
- package/src/stories/atoms/Radio/Radio.Changelog.mdx +67 -0
- package/src/stories/atoms/Radio/Radio.js +125 -0
- package/src/stories/atoms/Radio/Radio.stories.js +191 -0
- package/src/stories/atoms/Radio/radio.css +170 -0
- package/src/stories/atoms/SeekBar/SeekBar.Architecture.mdx +245 -0
- package/src/stories/atoms/SeekBar/SeekBar.Changelog.mdx +67 -0
- package/src/stories/atoms/SeekBar/SeekBar.js +385 -0
- package/src/stories/atoms/SeekBar/SeekBar.stories.js +375 -0
- package/src/stories/atoms/SeekBar/seek-bar.css +302 -0
- package/src/stories/atoms/SliderDot/SliderDot.Architecture.mdx +215 -0
- package/src/stories/atoms/SliderDot/SliderDot.Changelog.mdx +67 -0
- package/src/stories/atoms/SliderDot/SliderDot.js +98 -0
- package/src/stories/atoms/SliderDot/SliderDot.stories.js +153 -0
- package/src/stories/atoms/SliderDot/slider-dot.css +146 -0
- package/src/stories/atoms/Subtitle/Subtitle.Architecture.mdx +237 -0
- package/src/stories/atoms/Subtitle/Subtitle.Changelog.mdx +66 -0
- package/src/stories/atoms/Subtitle/Subtitle.js +160 -0
- package/src/stories/atoms/Subtitle/Subtitle.stories.js +274 -0
- package/src/stories/atoms/Subtitle/subtitle.css +132 -0
- package/src/stories/atoms/TOC/TOC.Architecture.mdx +111 -0
- package/src/stories/atoms/TOC/TOC.Changelog.mdx +84 -0
- package/src/stories/atoms/TOC/TOC.js +311 -0
- package/src/stories/atoms/TOC/TOC.stories.js +205 -0
- package/src/stories/atoms/TOC/toc.css +138 -0
- package/src/stories/atoms/Tab/Tab.Architecture.mdx +255 -0
- package/src/stories/atoms/Tab/Tab.Changelog.mdx +67 -0
- package/src/stories/atoms/Tab/Tab.js +130 -0
- package/src/stories/atoms/Tab/Tab.stories.js +165 -0
- package/src/stories/atoms/Tab/tab.css +178 -0
- package/src/stories/atoms/Thumbnail/Thumbnail.Architecture.mdx +279 -0
- package/src/stories/atoms/Thumbnail/Thumbnail.Changelog.mdx +133 -0
- package/src/stories/atoms/Thumbnail/Thumbnail.js +585 -0
- package/src/stories/atoms/Thumbnail/Thumbnail.stories.js +199 -0
- package/src/stories/atoms/Thumbnail/thumbnail-manifest.generated.js +6039 -0
- package/src/stories/atoms/Thumbnail/thumbnail.css +106 -0
- package/src/stories/atoms/Toggle/Toggle.Architecture.mdx +272 -0
- package/src/stories/atoms/Toggle/Toggle.Changelog.mdx +67 -0
- package/src/stories/atoms/Toggle/Toggle.js +232 -0
- package/src/stories/atoms/Toggle/Toggle.stories.js +167 -0
- package/src/stories/atoms/Toggle/toggle.css +447 -0
- package/src/stories/contributing/Contributing.mdx +73 -0
- package/src/stories/contributing/DocumentingArchitecture.mdx +216 -0
- package/src/stories/contributing/DocumentingChangelog.mdx +162 -0
- package/src/stories/contributing/DocumentingComponents.mdx +248 -0
- package/src/stories/getting-started/Changelog.mdx +47 -0
- package/src/stories/getting-started/DesignTokens.mdx +47 -0
- package/src/stories/getting-started/Disclaimers.mdx +153 -0
- package/src/stories/getting-started/Installation.mdx +71 -0
- package/src/stories/getting-started/Introduction.mdx +51 -0
- package/src/stories/getting-started/PortfoliableIntegration.mdx +265 -0
- package/src/stories/getting-started/Theming.mdx +48 -0
- package/src/stories/molecules/AudioPlayer/AudioPlayer.Architecture.mdx +299 -0
- package/src/stories/molecules/AudioPlayer/AudioPlayer.Changelog.mdx +72 -0
- package/src/stories/molecules/AudioPlayer/AudioPlayer.js +395 -0
- package/src/stories/molecules/AudioPlayer/AudioPlayer.stories.js +259 -0
- package/src/stories/molecules/AudioPlayer/audio-player.css +276 -0
- package/src/stories/molecules/Breadcrumb/Breadcrumb.Architecture.mdx +222 -0
- package/src/stories/molecules/Breadcrumb/Breadcrumb.Changelog.mdx +30 -0
- package/src/stories/molecules/Breadcrumb/Breadcrumb.js +382 -0
- package/src/stories/molecules/Breadcrumb/Breadcrumb.stories.js +213 -0
- package/src/stories/molecules/Breadcrumb/breadcrumb.css +149 -0
- package/src/stories/molecules/CaseNavigator/CaseNavigator.Architecture.mdx +294 -0
- package/src/stories/molecules/CaseNavigator/CaseNavigator.Changelog.mdx +71 -0
- package/src/stories/molecules/CaseNavigator/CaseNavigator.js +527 -0
- package/src/stories/molecules/CaseNavigator/CaseNavigator.stories.js +550 -0
- package/src/stories/molecules/CaseNavigator/case-navigator.css +318 -0
- package/src/stories/molecules/ComboTabs/ComboTabs.js +80 -0
- package/src/stories/molecules/ComboTabs/ComboTabs.stories.js +30 -0
- package/src/stories/molecules/ComboTabs/combo-tabs.css +48 -0
- package/src/stories/molecules/GalleryItem/GalleryItem.Architecture.mdx +264 -0
- package/src/stories/molecules/GalleryItem/GalleryItem.Changelog.mdx +142 -0
- package/src/stories/molecules/GalleryItem/GalleryItem.js +201 -0
- package/src/stories/molecules/GalleryItem/GalleryItem.stories.js +312 -0
- package/src/stories/molecules/GalleryItem/gallery-item.css +113 -0
- package/src/stories/molecules/ItemRow/ItemRow.Architecture.mdx +271 -0
- package/src/stories/molecules/ItemRow/ItemRow.Changelog.mdx +72 -0
- package/src/stories/molecules/ItemRow/ItemRow.js +320 -0
- package/src/stories/molecules/ItemRow/ItemRow.stories.js +323 -0
- package/src/stories/molecules/ItemRow/item-row.css +229 -0
- package/src/stories/molecules/NavigationMenu/NavigationMenu.Architecture.mdx +179 -0
- package/src/stories/molecules/NavigationMenu/NavigationMenu.Changelog.mdx +82 -0
- package/src/stories/molecules/NavigationMenu/NavigationMenu.js +335 -0
- package/src/stories/molecules/NavigationMenu/NavigationMenu.stories.js +295 -0
- package/src/stories/molecules/NavigationMenu/navigation-menu.css +88 -0
- package/src/stories/molecules/Summary/Summary.Architecture.mdx +186 -0
- package/src/stories/molecules/Summary/Summary.Changelog.mdx +34 -0
- package/src/stories/molecules/Summary/Summary.js +171 -0
- package/src/stories/molecules/Summary/Summary.stories.js +264 -0
- package/src/stories/molecules/Summary/summary.css +182 -0
- package/src/stories/molecules/Toast/Toast.Architecture.mdx +272 -0
- package/src/stories/molecules/Toast/Toast.Changelog.mdx +71 -0
- package/src/stories/molecules/Toast/Toast.js +141 -0
- package/src/stories/molecules/Toast/Toast.stories.js +250 -0
- package/src/stories/molecules/Toast/toast.css +149 -0
- package/src/stories/molecules/Tooltip/Tooltip.Architecture.mdx +255 -0
- package/src/stories/molecules/Tooltip/Tooltip.Changelog.mdx +71 -0
- package/src/stories/molecules/Tooltip/Tooltip.js +135 -0
- package/src/stories/molecules/Tooltip/Tooltip.stories.js +211 -0
- package/src/stories/molecules/Tooltip/tooltip.css +168 -0
- package/src/stories/molecules/VideoControls/VideoControls.Architecture.mdx +260 -0
- package/src/stories/molecules/VideoControls/VideoControls.Changelog.mdx +72 -0
- package/src/stories/molecules/VideoControls/VideoControls.js +157 -0
- package/src/stories/molecules/VideoControls/VideoControls.stories.js +214 -0
- package/src/stories/molecules/VideoControls/video-controls.css +70 -0
- package/src/stories/organisms/Article/Article.Architecture.mdx +215 -0
- package/src/stories/organisms/Article/Article.Changelog.mdx +45 -0
- package/src/stories/organisms/Article/Article.js +398 -0
- package/src/stories/organisms/Article/Article.stories.js +589 -0
- package/src/stories/organisms/Article/article.css +1324 -0
- package/src/stories/organisms/ComboCard/ComboCard.js +44 -0
- package/src/stories/organisms/ComboCard/ComboCard.stories.js +18 -0
- package/src/stories/organisms/ComboCard/combo-card.css +25 -0
- package/src/stories/organisms/ContextualMenu/ContextualMenu.Architecture.mdx +296 -0
- package/src/stories/organisms/ContextualMenu/ContextualMenu.Changelog.mdx +98 -0
- package/src/stories/organisms/ContextualMenu/ContextualMenu.js +396 -0
- package/src/stories/organisms/ContextualMenu/ContextualMenu.stories.js +409 -0
- package/src/stories/organisms/ContextualMenu/contextual-menu.css +255 -0
- package/src/stories/organisms/Gallery/Gallery.Architecture.mdx +181 -0
- package/src/stories/organisms/Gallery/Gallery.Changelog.mdx +74 -0
- package/src/stories/organisms/Gallery/Gallery.js +549 -0
- package/src/stories/organisms/Gallery/Gallery.stories.js +175 -0
- package/src/stories/organisms/Gallery/gallery.css +59 -0
- package/src/stories/organisms/Header/Header.Architecture.mdx +195 -0
- package/src/stories/organisms/Header/Header.Changelog.mdx +32 -0
- package/src/stories/organisms/Header/Header.js +151 -0
- package/src/stories/organisms/Header/Header.stories.js +212 -0
- package/src/stories/organisms/Header/header.css +48 -0
- package/src/stories/organisms/VideoPlayer/VideoPlayer.js +156 -0
- package/src/stories/organisms/VideoPlayer/VideoPlayer.stories.js +63 -0
- package/src/stories/organisms/VideoPlayer/video-player.css +45 -0
- package/src/stories/sub-atomic/Accessibility/Accessibility.mdx +478 -0
- package/src/stories/sub-atomic/Accessibility/accessibility.css +111 -0
- package/src/stories/sub-atomic/Architecture/Architecture.mdx +176 -0
- package/src/stories/sub-atomic/Borderography/Borderography.mdx +94 -0
- package/src/stories/sub-atomic/Borderography/borderography.css +12 -0
- package/src/stories/sub-atomic/Choreography/Choreography.mdx +322 -0
- package/src/stories/sub-atomic/Choreography/choreography.css +18 -0
- package/src/stories/sub-atomic/Chromography/Chromography.mdx +116 -0
- package/src/stories/sub-atomic/Chromography/chromography.css +44 -0
- package/src/stories/sub-atomic/Curvography/Curvography.mdx +104 -0
- package/src/stories/sub-atomic/Curvography/curvography.css +9 -0
- package/src/stories/sub-atomic/Depthography/Depthography.mdx +79 -0
- package/src/stories/sub-atomic/Depthography/depthography.css +11 -0
- package/src/stories/sub-atomic/Formography/Formography.mdx +202 -0
- package/src/stories/sub-atomic/Formography/formography.css +82 -0
- package/src/stories/sub-atomic/Gridography/Gridography.mdx +94 -0
- package/src/stories/sub-atomic/Gridography/gridography.css +15 -0
- package/src/stories/sub-atomic/Iconography/Iconography.js +304 -0
- package/src/stories/sub-atomic/Iconography/Iconography.mdx +281 -0
- package/src/stories/sub-atomic/Layoutography/Layoutography.mdx +213 -0
- package/src/stories/sub-atomic/Layoutography/layoutography.css +71 -0
- package/src/stories/sub-atomic/Mermaid/MermaidDiagram.js +42 -0
- package/src/stories/sub-atomic/Mermaid/mermaid.css +243 -0
- package/src/stories/sub-atomic/Opacityography/Opacityography.mdx +78 -0
- package/src/stories/sub-atomic/Opacityography/opacityography.css +10 -0
- package/src/stories/sub-atomic/Shadowgraphy/Shadowgraphy.mdx +83 -0
- package/src/stories/sub-atomic/Shadowgraphy/shadowgraphy.css +9 -0
- package/src/stories/sub-atomic/Sizography/Sizography.mdx +190 -0
- package/src/stories/sub-atomic/Sizography/sizography.css +21 -0
- package/src/stories/sub-atomic/Spatialography/Spatialography.mdx +162 -0
- package/src/stories/sub-atomic/Spatialography/spatialography.css +26 -0
- package/src/stories/sub-atomic/Stateography/Stateography.mdx +287 -0
- package/src/stories/sub-atomic/Surfaceography/Surfaceography.mdx +169 -0
- package/src/stories/sub-atomic/Surfaceography/surfaceography.css +54 -0
- package/src/stories/sub-atomic/Thumbnails/Thumbnails.mdx +221 -0
- package/src/stories/sub-atomic/Typography/Typography.mdx +201 -0
- package/src/stories/sub-atomic/Typography/typography.css +23 -0
- package/src/stories/sub-atomic/index.css +1 -0
- package/src/stories/templates/HomeView/HomeView.js +164 -0
- package/src/stories/templates/HomeView/HomeView.stories.js +83 -0
- package/src/stories/templates/HomeView/homeview.css +110 -0
- package/src/style.css +67 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
kbd {
|
|
6
|
+
font-family: var(--font-family);
|
|
7
|
+
|
|
8
|
+
/* Sub-atomic Property Overrides with Semantic Token Fallbacks */
|
|
9
|
+
background: var(--ds-kbd-bg, var(--color-surface));
|
|
10
|
+
border: var(--ds-kbd-border-width, var(--border-width-thin))
|
|
11
|
+
var(--border-style-solid)
|
|
12
|
+
var(--ds-kbd-border-color, var(--color-kbd-border));
|
|
13
|
+
border-radius: var(--ds-kbd-radius, var(--radius-sm));
|
|
14
|
+
|
|
15
|
+
/* Layout Constraints */
|
|
16
|
+
padding: 3px 6px;
|
|
17
|
+
font-weight: 600;
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: var(--space-xs);
|
|
21
|
+
line-height: 1;
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
|
|
24
|
+
/* Font size scaling with system large-text multiplier */
|
|
25
|
+
font-size: calc(10px * var(--font-scale-multiplier, 1));
|
|
26
|
+
|
|
27
|
+
/* Light Mode baseline contrast */
|
|
28
|
+
color: var(--color-text-secondary);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.key {
|
|
32
|
+
text-transform: uppercase;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* --- DARK MODE CONFIGURATION --- */
|
|
36
|
+
:host([a11y-dark-mode]) kbd {
|
|
37
|
+
background: var(--ds-kbd-bg, var(--color-card-bg));
|
|
38
|
+
border-color: var(--ds-kbd-border-color, var(--color-kbd-border));
|
|
39
|
+
color: var(--color-text-primary) !important; /* Fixed: Resolves dark mode contrast failure */
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Inverted variant for dark tooltips */
|
|
43
|
+
:host([variant="inverted"]) kbd {
|
|
44
|
+
background: var(--ds-kbd-bg, var(--color-overlay-light));
|
|
45
|
+
border-color: var(--ds-kbd-border-color, var(--color-tooltip-kbd-border));
|
|
46
|
+
color: var(--color-white);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* --- LAYOUT CLEANUP --- */
|
|
50
|
+
#combo-container:empty {
|
|
51
|
+
display: none;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* ==========================================================================
|
|
55
|
+
ACCESSIBILITY OVERRIDES MATRIX (Universal Safari Shadow-Piercing)
|
|
56
|
+
========================================================================== */
|
|
57
|
+
|
|
58
|
+
/* --- HIGH CONTRAST CONFIGURATION (WCAG AAA Compliance) --- */
|
|
59
|
+
:host([a11y-high-contrast]) kbd {
|
|
60
|
+
background: #000000 !important;
|
|
61
|
+
color: #FFFFFF !important;
|
|
62
|
+
border: var(--border-width-thin) var(--border-style-solid) #FFFFFF !important;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* --- DYSLEXIA FONT OVERRIDE --- */
|
|
66
|
+
:host([a11y-dyslexia]) kbd {
|
|
67
|
+
font-family: "Comic Sans MS", "Comic Sans", cursive, sans-serif !important;
|
|
68
|
+
letter-spacing: 0.05em !important;
|
|
69
|
+
word-spacing: 0.1em !important;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* --- BULLETPROOF ZERO-DURATION REDUCED MOTION --- */
|
|
73
|
+
@media (prefers-reduced-motion: reduce) {
|
|
74
|
+
kbd, * {
|
|
75
|
+
transition-duration: 0s !important;
|
|
76
|
+
transition-delay: 0s !important;
|
|
77
|
+
animation-duration: 0s !important;
|
|
78
|
+
animation-delay: 0s !important;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:host([a11y-reduce-motion]) kbd,
|
|
83
|
+
:host([a11y-reduce-motion]) * {
|
|
84
|
+
transition-duration: 0s !important;
|
|
85
|
+
transition-delay: 0s !important;
|
|
86
|
+
animation-duration: 0s !important;
|
|
87
|
+
animation-delay: 0s !important;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* ==========================================================================
|
|
91
|
+
ACCESSIBILITY: FORCED COLORS / WINDOWS HIGH CONTRAST MODE
|
|
92
|
+
========================================================================== */
|
|
93
|
+
|
|
94
|
+
/* 1. Attribute Reflected State (Storybook / DOM Toggle) */
|
|
95
|
+
:host([a11y-forced-colors]) kbd {
|
|
96
|
+
forced-color-adjust: none !important;
|
|
97
|
+
background: Canvas !important;
|
|
98
|
+
color: CanvasText !important;
|
|
99
|
+
border: var(--border-width-thin) var(--border-style-solid) CanvasText !important;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/* 2. Native OS Media Query */
|
|
103
|
+
@media (forced-colors: active) {
|
|
104
|
+
kbd {
|
|
105
|
+
forced-color-adjust: none !important;
|
|
106
|
+
background: Canvas !important;
|
|
107
|
+
color: CanvasText !important;
|
|
108
|
+
border: var(--border-width-thin) var(--border-style-solid) CanvasText !important;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Atoms/Loader [v1.0.0]/Architecture" />
|
|
4
|
+
|
|
5
|
+
# `ds-loader`
|
|
6
|
+
|
|
7
|
+
The `ds-loader` component is a **presentational** Atom designed to render a circular loading spinner with robust accessibility support, semantic layout overrides, and full synchronization with application state shells.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Principles
|
|
12
|
+
|
|
13
|
+
### Unidirectional Data Flow
|
|
14
|
+
The component strictly adheres to the **State In / Events Out** pattern:
|
|
15
|
+
* **State In (Attributes / Properties):** The host application binds primitive attributes (`visible`, `aria-label`, `size`) to control rendering states and dimensions.
|
|
16
|
+
* **Events Out:** As a presentational indicator, the component is completely stateless and passive, emitting no action-oriented custom events. It relies entirely on screen-reader polite announcers inside its Shadow DOM boundaries.
|
|
17
|
+
|
|
18
|
+
<mermaid-diagram chart={`
|
|
19
|
+
flowchart LR
|
|
20
|
+
subgraph Host["Host Application / App Shell"]
|
|
21
|
+
direction TB
|
|
22
|
+
State["State Manager / Component Host"]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
subgraph WebComp["Valence Web Component"]
|
|
26
|
+
Component["ds-loader"]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
State -->|"1. State In: visible / aria-label / size"| Component
|
|
30
|
+
|
|
31
|
+
%% Styling
|
|
32
|
+
style Host fill:#f8fafc,stroke:#94a3b8,stroke-width:2px,color:#0f172a
|
|
33
|
+
style WebComp fill:#eff6ff,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a
|
|
34
|
+
style State fill:#ffffff,stroke:#cbd5e1,color:#0f172a
|
|
35
|
+
style Component fill:#ffffff,stroke:#93c5fd,color:#1e3a8a
|
|
36
|
+
`} />
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Slot Architecture
|
|
41
|
+
|
|
42
|
+
The `ds-loader` component is a self-contained visual indicator that completely encapsulates its spinning graphics. It does not expose public slot targets to ensure strict uniformity across visual layout environments.
|
|
43
|
+
|
|
44
|
+
### Slot Hierarchy Table
|
|
45
|
+
|
|
46
|
+
<table>
|
|
47
|
+
<thead>
|
|
48
|
+
<tr>
|
|
49
|
+
<th>Slot Name</th>
|
|
50
|
+
<th>Type / Allowed Children</th>
|
|
51
|
+
<th>Description</th>
|
|
52
|
+
<th>Fallback Behavior</th>
|
|
53
|
+
</tr>
|
|
54
|
+
</thead>
|
|
55
|
+
<tbody>
|
|
56
|
+
<tr>
|
|
57
|
+
<td>`default`</td>
|
|
58
|
+
<td>None</td>
|
|
59
|
+
<td>Internal circular vectors only; host content is not projected.</td>
|
|
60
|
+
<td>Renders standard loading spinner graphics inside the shadow root.</td>
|
|
61
|
+
</tr>
|
|
62
|
+
</tbody>
|
|
63
|
+
</table>
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Data Model
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
export interface DsLoaderState {
|
|
71
|
+
visible: boolean;
|
|
72
|
+
ariaLabel: string;
|
|
73
|
+
size?: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface DsLoaderSubAtomicHooks {
|
|
77
|
+
'--ds-loader-size'?: string;
|
|
78
|
+
'--ds-loader-bg'?: string;
|
|
79
|
+
'--ds-loader-radius'?: string;
|
|
80
|
+
'--ds-loader-color'?: string;
|
|
81
|
+
'--ds-loader-shadow'?: string;
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## API Contract
|
|
88
|
+
|
|
89
|
+
### Properties & Attributes
|
|
90
|
+
|
|
91
|
+
<table>
|
|
92
|
+
<thead>
|
|
93
|
+
<tr>
|
|
94
|
+
<th>Property</th>
|
|
95
|
+
<th>Attribute</th>
|
|
96
|
+
<th>Type</th>
|
|
97
|
+
<th>Default</th>
|
|
98
|
+
<th>Description</th>
|
|
99
|
+
</tr>
|
|
100
|
+
</thead>
|
|
101
|
+
<tbody>
|
|
102
|
+
<tr>
|
|
103
|
+
<td>`visible`</td>
|
|
104
|
+
<td>`visible`</td>
|
|
105
|
+
<td>`boolean`</td>
|
|
106
|
+
<td>`true`</td>
|
|
107
|
+
<td>Toggles the structural opacity, pointer-events, and visibility states.</td>
|
|
108
|
+
</tr>
|
|
109
|
+
<tr>
|
|
110
|
+
<td>`ariaLabel`</td>
|
|
111
|
+
<td>`aria-label`</td>
|
|
112
|
+
<td>`string`</td>
|
|
113
|
+
<td>`'Loading'`</td>
|
|
114
|
+
<td>The accessible text read aloud by screen readers. Automatically delegated down.</td>
|
|
115
|
+
</tr>
|
|
116
|
+
<tr>
|
|
117
|
+
<td>`size`</td>
|
|
118
|
+
<td>`size`</td>
|
|
119
|
+
<td>`string`</td>
|
|
120
|
+
<td>`undefined`</td>
|
|
121
|
+
<td>Optional layout size override. Maps directly to `--loader-size` token.</td>
|
|
122
|
+
</tr>
|
|
123
|
+
</tbody>
|
|
124
|
+
</table>
|
|
125
|
+
|
|
126
|
+
### Emitted Custom Events
|
|
127
|
+
|
|
128
|
+
<table>
|
|
129
|
+
<thead>
|
|
130
|
+
<tr>
|
|
131
|
+
<th>Event Name</th>
|
|
132
|
+
<th>Bubbles / Composed</th>
|
|
133
|
+
<th>Detail Payload</th>
|
|
134
|
+
<th>Description</th>
|
|
135
|
+
</tr>
|
|
136
|
+
</thead>
|
|
137
|
+
<tbody>
|
|
138
|
+
<tr>
|
|
139
|
+
<td>`None`</td>
|
|
140
|
+
<td>`None`</td>
|
|
141
|
+
<td>`None`</td>
|
|
142
|
+
<td>This component is strictly presentational and does not emit custom events.</td>
|
|
143
|
+
</tr>
|
|
144
|
+
</tbody>
|
|
145
|
+
</table>
|
|
146
|
+
|
|
147
|
+
### Sub-Atomic CSS Custom Property Hooks
|
|
148
|
+
|
|
149
|
+
<table>
|
|
150
|
+
<thead>
|
|
151
|
+
<tr>
|
|
152
|
+
<th>CSS Custom Property</th>
|
|
153
|
+
<th>Fallback Default</th>
|
|
154
|
+
<th>Description</th>
|
|
155
|
+
</tr>
|
|
156
|
+
</thead>
|
|
157
|
+
<tbody>
|
|
158
|
+
<tr>
|
|
159
|
+
<td>`--ds-loader-size`</td>
|
|
160
|
+
<td>`var(--size-height-lg)`</td>
|
|
161
|
+
<td>Overrides the outer bounding box dimensions of the spinner.</td>
|
|
162
|
+
</tr>
|
|
163
|
+
<tr>
|
|
164
|
+
<td>`--ds-loader-bg`</td>
|
|
165
|
+
<td>`var(--color-bg)` / `var(--color-card-bg)`</td>
|
|
166
|
+
<td>Overrides the circular backdrop surface background color.</td>
|
|
167
|
+
</tr>
|
|
168
|
+
<tr>
|
|
169
|
+
<td>`--ds-loader-radius`</td>
|
|
170
|
+
<td>`var(--radius-circle)`</td>
|
|
171
|
+
<td>Overrides the outer container's boundary border-radius.</td>
|
|
172
|
+
</tr>
|
|
173
|
+
<tr>
|
|
174
|
+
<td>`--ds-loader-color`</td>
|
|
175
|
+
<td>`var(--color-text-primary)`</td>
|
|
176
|
+
<td>Overrides the active rotating vector stroke foreground color.</td>
|
|
177
|
+
</tr>
|
|
178
|
+
<tr>
|
|
179
|
+
<td>`--ds-loader-shadow`</td>
|
|
180
|
+
<td>`var(--shadow-md)`</td>
|
|
181
|
+
<td>Overrides outer backdrop boundary box-shadow dimensions.</td>
|
|
182
|
+
</tr>
|
|
183
|
+
</tbody>
|
|
184
|
+
</table>
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Accessibility & Host ARIA Delegation
|
|
189
|
+
|
|
190
|
+
* **Polite Announcements:** Employs an internal `role="status"` and `aria-live="polite"` element wrapper so assistive screen-reader software cleanly triggers updates during buffering.
|
|
191
|
+
* **ARIA Host Scrubbing:** Automatically scrubs the Light DOM host attribute `aria-label` and delegates it into the internal Shadow DOM node, eliminating light validation warnings.
|
|
192
|
+
* **Global Accessibility Propagation:** Integrates `_observeRootAccessibility` to monitor class modifications on the document root element:
|
|
193
|
+
* `.a11y-dark-mode`: Swaps backdrop shadows and base contrast maps.
|
|
194
|
+
* `.a11y-high-contrast`: Installs forced binary boundaries and high-contrast borders.
|
|
195
|
+
* `.a11y-reduce-motion`: Instantly disables rotation keyframe transitions.
|
|
196
|
+
* `.a11y-forced-colors`: Overrides stroke vectors using active Windows system palette bindings (`CanvasText`).
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Examples
|
|
201
|
+
|
|
202
|
+
### Basic Integration Example
|
|
203
|
+
|
|
204
|
+
```javascript
|
|
205
|
+
import 'valence/ds-loader';
|
|
206
|
+
|
|
207
|
+
const loader = document.createElement('ds-loader');
|
|
208
|
+
loader.setAttribute('visible', 'true');
|
|
209
|
+
loader.setAttribute('aria-label', 'Video study resources are buffering...');
|
|
210
|
+
|
|
211
|
+
// Clean custom property style overrides
|
|
212
|
+
loader.style.setProperty('--ds-loader-bg', 'var(--color-surface-card)');
|
|
213
|
+
loader.style.setProperty('--ds-loader-color', 'var(--color-accent-blue)');
|
|
214
|
+
|
|
215
|
+
document.body.appendChild(loader);
|
|
216
|
+
```
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Meta, Subtitle, Source } from '@storybook/addon-docs/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="Atoms/Loader [v1.0.0]/Changelog" />
|
|
4
|
+
|
|
5
|
+
# Changelog
|
|
6
|
+
|
|
7
|
+
<br />
|
|
8
|
+
|
|
9
|
+
## [1.0.0] - 2026-07-20
|
|
10
|
+
|
|
11
|
+
<br />
|
|
12
|
+
|
|
13
|
+
### Initial Release
|
|
14
|
+
|
|
15
|
+
The stable debut of the presentational loading indicator spinner (`ds-loader`) featuring responsive CSS transitions, complete custom property hooks, and advanced aria-label scrubbing.
|
|
16
|
+
|
|
17
|
+
<br />
|
|
18
|
+
|
|
19
|
+
### Summary of Changes
|
|
20
|
+
|
|
21
|
+
<table>
|
|
22
|
+
<thead>
|
|
23
|
+
<tr>
|
|
24
|
+
<th>Classification</th>
|
|
25
|
+
<th>Scope / Context</th>
|
|
26
|
+
<th>Description</th>
|
|
27
|
+
</tr>
|
|
28
|
+
</thead>
|
|
29
|
+
<tbody>
|
|
30
|
+
<tr>
|
|
31
|
+
<td>`Added`</td>
|
|
32
|
+
<td>`ds-loader`</td>
|
|
33
|
+
<td>Initial stable implementation of the SVG buffering spinner.</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<tr>
|
|
36
|
+
<td>`Added`</td>
|
|
37
|
+
<td>`ds-loader`</td>
|
|
38
|
+
<td>Flexible CSS Custom Property mapping for layout control, including sizing, background, border-radius, stroke color, and shadow overrides.</td>
|
|
39
|
+
</tr>
|
|
40
|
+
<tr>
|
|
41
|
+
<td>`Added`</td>
|
|
42
|
+
<td>`_observeRootAccessibility`</td>
|
|
43
|
+
<td>Integrates passive root class observer syncing dark mode, high contrast, dyslexia, reduce-motion, and forced-colors states.</td>
|
|
44
|
+
</tr>
|
|
45
|
+
<tr>
|
|
46
|
+
<td>`Fixed`</td>
|
|
47
|
+
<td>`Loader.stories.js`</td>
|
|
48
|
+
<td>Refactored Storybook sub-atomic property mappings to bind to standardized `--ds-loader-*` design token custom hooks instead of the generic `--custom-*` overrides.</td>
|
|
49
|
+
</tr>
|
|
50
|
+
</tbody>
|
|
51
|
+
</table>
|
|
52
|
+
|
|
53
|
+
<br />
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
- **Circular Loader Atom:** Introduced `<ds-loader>` as a stateless, presentational spinner built for buffering or resource loading transitions.
|
|
57
|
+
- **Root Accessibility Syncing:** Built-in `MutationObserver` automatically synchronizes viewport visual preferences directly onto host attributes.
|
|
58
|
+
- **Thematic Style Customizations:** Bound border-radius, background backdrop, rotating spinner stroke color, and box-shadow variables to the standardized `--ds-loader-*` naming layout.
|
|
59
|
+
- **Storybook Integration:** Created interactive controls and CSF3 story parameters inside `Loader.stories.js`.
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
- **Sub-Atomic Story Mapping:** Resolved broken style mappings in the Storybook render pipeline by binding props to the exact `--ds-loader-radius`, `--ds-loader-bg`, `--ds-loader-color`, and `--ds-loader-shadow` custom hooks.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
*This changelog is specific to the `<ds-loader>` component. For design system global releases, refer to the main [Getting Started/Changelog](?path=/docs/getting-started-changelog--docs).*
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import css from './loader.css?inline';
|
|
2
|
+
|
|
3
|
+
export class Loader extends HTMLElement {
|
|
4
|
+
static get observedAttributes() {
|
|
5
|
+
return ['visible', 'aria-label', 'size'];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.attachShadow({ mode: 'open' });
|
|
11
|
+
// Single line compression eliminates anonymous whitespace rendering text-nodes
|
|
12
|
+
this.shadowRoot.innerHTML = `<style>${css}</style><div class="video-loader" role="status" aria-live="polite"><svg viewBox="0 0 50 50" class="spinner" aria-hidden="true"><circle cx="25" cy="25" r="20" fill="none" stroke="currentColor" stroke-width="5" stroke-linecap="round"></circle></svg><span class="sr-only" style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;"></span></div>`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
connectedCallback() {
|
|
16
|
+
this.loaderEl = this.shadowRoot.querySelector('.video-loader');
|
|
17
|
+
this.srOnlyEl = this.shadowRoot.querySelector('.sr-only');
|
|
18
|
+
this.updateAttributes();
|
|
19
|
+
this._observeRootAccessibility();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
disconnectedCallback() {
|
|
23
|
+
if (this._themeObserver) {
|
|
24
|
+
this._themeObserver.disconnect();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
29
|
+
// GUARD: Prevents infinite loop reflection when internal scrubbing occurs
|
|
30
|
+
if (name === 'aria-label' && newValue === null) return;
|
|
31
|
+
|
|
32
|
+
if (this.loaderEl && oldValue !== newValue) {
|
|
33
|
+
this.updateAttributes();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Tracks root <html> modifications to circumvent cross-browser Safari :host-context() bugs
|
|
39
|
+
*/
|
|
40
|
+
_observeRootAccessibility() {
|
|
41
|
+
const root = this.ownerDocument.documentElement;
|
|
42
|
+
const sync = () => {
|
|
43
|
+
this.toggleAttribute('a11y-dark-mode', root.classList.contains('a11y-dark-mode'));
|
|
44
|
+
this.toggleAttribute('a11y-high-contrast', root.classList.contains('a11y-high-contrast'));
|
|
45
|
+
this.toggleAttribute('a11y-dyslexia', root.classList.contains('a11y-dyslexia'));
|
|
46
|
+
this.toggleAttribute('a11y-large-text', root.classList.contains('a11y-large-text'));
|
|
47
|
+
this.toggleAttribute('a11y-reduce-motion', root.classList.contains('a11y-reduce-motion'));
|
|
48
|
+
this.toggleAttribute('a11y-focus-mode', root.classList.contains('a11y-focus-mode'));
|
|
49
|
+
this.toggleAttribute('a11y-forced-colors', root.classList.contains('a11y-forced-colors'));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
sync(); // Initial execution
|
|
53
|
+
this._themeObserver = new MutationObserver(sync);
|
|
54
|
+
this._themeObserver.observe(root, {
|
|
55
|
+
attributes: true,
|
|
56
|
+
attributeFilter: ['class'],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
updateAttributes() {
|
|
61
|
+
const visible = this.getAttribute('visible') !== 'false';
|
|
62
|
+
const ariaLabel = this.getAttribute('aria-label') || 'Loading';
|
|
63
|
+
const size = this.getAttribute('size');
|
|
64
|
+
|
|
65
|
+
if (visible) {
|
|
66
|
+
this.loaderEl.removeAttribute('aria-hidden');
|
|
67
|
+
} else {
|
|
68
|
+
this.loaderEl.setAttribute('aria-hidden', 'true');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (size) {
|
|
72
|
+
this.style.setProperty('--loader-size', size.endsWith('px') ? size : `${size}px`);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// --- ARIA DELEGATION & HOST MARKUP SCRUBBING ---
|
|
76
|
+
if (this.srOnlyEl) {
|
|
77
|
+
this.srOnlyEl.textContent = ariaLabel;
|
|
78
|
+
}
|
|
79
|
+
if (ariaLabel) {
|
|
80
|
+
this.loaderEl.setAttribute('aria-label', ariaLabel);
|
|
81
|
+
this.removeAttribute('aria-label'); // Keeps outer light DOM tree validation compliant
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (!customElements.get('ds-loader')) {
|
|
87
|
+
customElements.define('ds-loader', Loader);
|
|
88
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
3
|
+
import { expect } from 'storybook/test';
|
|
4
|
+
import './Loader';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Global component definition detail descriptions mapping clean architectural APIs down to layout layers.
|
|
8
|
+
*/
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Atoms/Loader [v1.0.0]',
|
|
11
|
+
component: 'ds-loader',
|
|
12
|
+
tags: ['autodocs'],
|
|
13
|
+
parameters: {
|
|
14
|
+
layout: 'centered',
|
|
15
|
+
docs: {
|
|
16
|
+
description: {
|
|
17
|
+
component: '`ds-loader` is a circular SVG spinner used to indicate loading or buffering states. It includes `role="status"` and `aria-live="polite"` to ensure screen readers announce the loading state properly.',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
decorators: [
|
|
22
|
+
(Story) => html`
|
|
23
|
+
<div class="canvas-buffer" style="
|
|
24
|
+
display: flex;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
align-items: center;
|
|
27
|
+
box-sizing: border-box;
|
|
28
|
+
">
|
|
29
|
+
${Story()}
|
|
30
|
+
</div>
|
|
31
|
+
`
|
|
32
|
+
],
|
|
33
|
+
argTypes: {
|
|
34
|
+
// --- COMPONENT: CORE ---
|
|
35
|
+
visible: {
|
|
36
|
+
name: 'visible',
|
|
37
|
+
description: 'Toggles the opacity and visibility of the loader.',
|
|
38
|
+
control: 'boolean',
|
|
39
|
+
table: { category: 'Component: Core', defaultValue: { summary: 'true' } },
|
|
40
|
+
},
|
|
41
|
+
ariaLabel: {
|
|
42
|
+
name: 'ariaLabel',
|
|
43
|
+
description: 'Crucial accessibility label delegated directly to internal primitives to keep host clean.',
|
|
44
|
+
control: 'text',
|
|
45
|
+
table: { category: 'Component: Core', defaultValue: { summary: 'Video is buffering...' } },
|
|
46
|
+
},
|
|
47
|
+
size: {
|
|
48
|
+
name: 'size',
|
|
49
|
+
description: 'Controls the outer bounding box dimensions of the spinner container.',
|
|
50
|
+
control: 'text',
|
|
51
|
+
table: { category: 'Component: Core', defaultValue: { summary: '48px' } },
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
// --- SUB-ATOMIC OVERRIDES ---
|
|
55
|
+
backgroundColor: {
|
|
56
|
+
name: 'backgroundColor',
|
|
57
|
+
description: 'Sub-atomic modifier overriding default backdrop pattern shading.',
|
|
58
|
+
control: 'color',
|
|
59
|
+
table: { category: 'SUB-ATOMIC PROPS', defaultValue: { summary: 'var(--color-bg)' } },
|
|
60
|
+
},
|
|
61
|
+
iconColor: {
|
|
62
|
+
name: 'iconColor',
|
|
63
|
+
description: 'Sub-atomic modifier overriding default stroke icon foreground color.',
|
|
64
|
+
control: 'color',
|
|
65
|
+
table: { category: 'SUB-ATOMIC PROPS', defaultValue: { summary: 'var(--color-text-primary)' } },
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
render: (args) => {
|
|
69
|
+
const customStyles = [
|
|
70
|
+
args.backgroundColor ? `--ds-loader-bg: ${args.backgroundColor};` : '',
|
|
71
|
+
args.iconColor ? `--ds-loader-color: ${args.iconColor};` : ''
|
|
72
|
+
].join(' ').trim();
|
|
73
|
+
|
|
74
|
+
return html`
|
|
75
|
+
<ds-loader
|
|
76
|
+
visible=${args.visible ? 'true' : 'false'}
|
|
77
|
+
aria-label=${ifDefined(args.ariaLabel)}
|
|
78
|
+
size=${ifDefined(args.size)}
|
|
79
|
+
style=${ifDefined(customStyles || undefined)}>
|
|
80
|
+
</ds-loader>
|
|
81
|
+
`;
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Standard baseline story setup validating content passing, tracking variables, and operational interaction logic.
|
|
87
|
+
*/
|
|
88
|
+
export const DefaultBaseline = {
|
|
89
|
+
args: {
|
|
90
|
+
visible: true,
|
|
91
|
+
ariaLabel: 'Video is buffering...',
|
|
92
|
+
size: '48px',
|
|
93
|
+
},
|
|
94
|
+
play: async ({ canvasElement, step }) => {
|
|
95
|
+
const component = canvasElement.querySelector('ds-loader');
|
|
96
|
+
|
|
97
|
+
await step('Verify structural attributes pass cleanly and host scrubbing executes flawlessly', async () => {
|
|
98
|
+
expect(component.getAttribute('visible')).toBe('true');
|
|
99
|
+
expect(component.getAttribute('aria-label')).toBeNull();
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
await step('Verify inner shadow layout primitives receive the delegated attribute and accessible text', async () => {
|
|
103
|
+
const loaderEl = component.shadowRoot.querySelector('.video-loader');
|
|
104
|
+
const srOnlyEl = component.shadowRoot.querySelector('.sr-only');
|
|
105
|
+
|
|
106
|
+
expect(loaderEl.getAttribute('aria-label')).toBe('Video is buffering...');
|
|
107
|
+
expect(srOnlyEl.textContent).toBe('Video is buffering...');
|
|
108
|
+
expect(loaderEl.getAttribute('role')).toBe('status');
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Validates state updates when the component enters a hidden configuration.
|
|
115
|
+
*/
|
|
116
|
+
export const HiddenState = {
|
|
117
|
+
args: {
|
|
118
|
+
...DefaultBaseline.args,
|
|
119
|
+
visible: false,
|
|
120
|
+
ariaLabel: 'Content loaded',
|
|
121
|
+
},
|
|
122
|
+
play: async ({ canvasElement, step }) => {
|
|
123
|
+
const component = canvasElement.querySelector('ds-loader');
|
|
124
|
+
|
|
125
|
+
await step('Verify hidden aria state applied to internal shadow primitive', async () => {
|
|
126
|
+
const loaderEl = component.shadowRoot.querySelector('.video-loader');
|
|
127
|
+
expect(loaderEl.getAttribute('aria-hidden')).toBe('true');
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
};
|