import { createElement, useState, type CSSProperties } from 'react'; import { DTCard, DTStaggerContainer, DTFeatureLegend, } from '@dangerousthings/react'; import type { DTFeatureItem } from '@dangerousthings/react'; import type { DTVariant } from '@dangerousthings/tokens'; import { Section, CodeLabel } from '../components/Section'; // Feature icons from dt-shopify-storefront import { MdOutlinePhonelinkRing, MdOutlineVpnKey, MdOutlineMobileScreenShare, MdOutlineCreditCard, MdOutlineCopyAll, MdOutlineLightbulb, MdOutlineThermostat, MdOutlineSensors, MdOutlineFitbit, MdOutlineVibration, MdOutlineExplore, MdLightbulbOutline, MdOutlineVisibility, } from 'react-icons/md'; import { FaUserShield } from 'react-icons/fa'; import { LuBinary } from 'react-icons/lu'; const modes: DTVariant[] = ['normal', 'emphasis', 'warning', 'success', 'other']; // Wrap react-icons to avoid IconType/ReactNode type mismatch const ico = (C: any) => createElement(C, { style: { fontSize: '2rem' } }); // Full chip feature legend (9 features — from storefront UseCaseLegend) // NExT v2: NTAGI2C (HF) + T5577 (LF) with power-harvesting LED const chipFeatures: DTFeatureItem[] = [ { key: 'smartphone', name: 'Smartphone', icon: ico(MdOutlinePhonelinkRing), state: 'supported', detail: 'Full NFC smartphone support' }, { key: 'access_control', name: 'Access Control', icon: ico(MdOutlineVpnKey), state: 'supported', detail: 'Legacy' }, { key: 'digital_security', name: 'Digital Security', icon: ico(FaUserShield), state: 'unsupported', detail: 'Not Supported' }, { key: 'cryptography', name: 'Cryptography', icon: ico(LuBinary), state: 'unsupported', detail: 'Not Supported' }, { key: 'data_sharing', name: 'Data Sharing', icon: ico(MdOutlineMobileScreenShare), state: 'supported', detail: '1 kB' }, { key: 'payment', name: 'Payment', icon: ico(MdOutlineCreditCard), state: 'unsupported', detail: 'Not Supported' }, { key: 'magic', name: 'Magic', icon: ico(MdOutlineCopyAll), state: 'supported', detail: 'Yes' }, { key: 'Illumination', name: 'Illumination', icon: ico(MdOutlineLightbulb), state: 'supported', detail: 'HF: green, blue, white' }, { key: 'temperature', name: 'Sensors', icon: ico(MdOutlineThermostat), state: 'unsupported', detail: 'None' }, ]; // Full biomagnet feature legend (4 features — from storefront MagnetUseCaseLegend) // m0422a: axial neodymium disc, bioresin coated const magnetFeatures: DTFeatureItem[] = [ { key: 'sensing', name: 'Sensing', icon: ico(MdOutlineSensors), state: 'supported', detail: 'RP 22,860 G/g' }, { key: 'lifting', name: 'Lifting', icon: ico(MdOutlineFitbit), state: 'supported', detail: '~20 g' }, { key: 'haptics', name: 'Haptics', icon: ico(MdOutlineVibration), state: 'supported', detail: 'Push/Pull' }, { key: 'polarity', name: 'Polarity Detection', icon: ico(MdOutlineExplore), state: 'supported', detail: 'Monopole' }, ]; // Full aesthetic feature legend (2 features — from storefront AestheticUseCaseLegend) const aestheticFeatures: DTFeatureItem[] = [ { key: 'illumination', name: 'Illumination', icon: ico(MdLightbulbOutline), state: 'supported', detail: 'HF: red, green, blue, white' }, { key: 'prominence', name: 'Prominence', icon: ico(MdOutlineVisibility), state: 'supported', detail: 'Low' }, ]; export function CardsAdvancedPage() { const [staggerKey, setStaggerKey] = useState(0); return ( <>

Advanced Cards

Card color modes, progress bars, badge overlays, and interactive bevel buttons.

{modes.map(mode => (
mode-{mode}
))}
{[0, 25, 50, 75, 100].map((val, i) => (
Progress: {val}%
))}
{[ { label: 'LAB', mode: 'warning' as DTVariant, img: 'https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?w=400&h=400&fit=crop' }, { label: 'BUNDLE', mode: 'other' as DTVariant, img: 'https://images.unsplash.com/photo-1518770660439-4636190af475?w=400&h=400&fit=crop' }, { label: 'NFC', mode: 'normal' as DTVariant, img: 'https://images.unsplash.com/photo-1550751827-4bd374c3f58b?w=400&h=400&fit=crop' }, ].map(badge => (
{badge.label}
))}
{[ { name: 'All Products', cls: ' active', pad: 0 }, { name: 'NFC Implants', cls: '', pad: 0 }, { name: 'RFID Tags', cls: '', pad: 32 }, { name: 'Accessories', cls: '', pad: 32 }, { name: 'Lab Products', cls: ' mode-warning', pad: 0 }, ].map(item => ( ))}
Supported Disabled Unsupported
{Array.from({ length: 10 }, (_, i) => ( {null} ))}
); }