Files
dt-design-system/packages/react/src/index.ts
michael e74c285b70 Add storefront component migration: cards, badges, progress bars, animations, and React wrapper package
Major feature migration from dt-shopify-storefront into the design system:

- Card system: per-card color modes (normal/emphasis/warning/success/other),
  progress bars, full-bleed card body (card-body-flush), image bevel clip-paths,
  and visible structural borders at bevel corners
- Badge system: dt-card-badge with position-aware offsets for cards vs media frames
- Media frames: dt-bevel-media with inner surface fill, image clipping, and
  "MISSING MEDIA" placeholder for empty containers
- Interactive bevel buttons: dt-btn with hover/selected states and pulse animation
- Menu items: dt-menu-item with active states and level indentation
- Animations: scale-in, fade-in, slide-up, pulse, ping, spin keyframes
- Feature legend: CSS grid for product feature icons with state colors
- Scrollbar styling for DT brand
- New @dangerousthings/react package wrapping web CSS components
- New @dangerousthings/tailwind-preset package
- New @dangerousthings/hex-background package
- Desktop showcase rewritten in React with Tailwind CSS
- Mobile showcase updated with new screens (animations, filters, advanced cards)
- Tokens: added mode color tokens, RGB variants, and selected-state tokens

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:18:39 -08:00

61 lines
2.5 KiB
TypeScript

/**
* @dangerousthings/react
*
* React web components for the Dangerous Things design system.
* Wraps @dangerousthings/web CSS classes with React component APIs
* matching @dangerousthings/react-native for cross-platform parity.
*/
// Theme
export { DTWebThemeProvider } from './components/DTWebThemeProvider';
export { useDTWebTheme } from './hooks/useDTWebTheme';
// Types (re-exported from tokens for convenience)
export type { DTVariant, ThemeBrand, ThemeMode } from '@dangerousthings/tokens';
export { variantToClassName, variantToCSSProperty } from '@dangerousthings/tokens';
// Utilities
export { cx } from './utils/cx';
export { getVariantClass, featureStateToVariant, variantToBadgeClass } from './utils/variantClasses';
// Hooks
export { useScaleIn } from './hooks/useScaleIn';
export { usePulse } from './hooks/usePulse';
// Components — bevel & layout
export { DTCard } from './components/DTCard';
export { DTButton } from './components/DTButton';
export { DTLabel } from './components/DTLabel';
export { DTChip } from './components/DTChip';
export { DTMediaFrame } from './components/DTMediaFrame';
export { DTModal } from './components/DTModal';
export { DTDrawer } from './components/DTDrawer';
// Components — forms
export { DTTextInput } from './components/DTTextInput';
export { DTCheckbox } from './components/DTCheckbox';
export { DTSwitch } from './components/DTSwitch';
export { DTRadioGroup } from './components/DTRadioGroup';
export type { DTRadioOption } from './components/DTRadioGroup';
export { DTQuantityStepper } from './components/DTQuantityStepper';
export { DTSearchInput } from './components/DTSearchInput';
// Components — layout & animation
export { DTProgressBar } from './components/DTProgressBar';
export { DTAccordion } from './components/DTAccordion';
export type { DTAccordionSection } from './components/DTAccordion';
export { DTStaggerContainer } from './components/DTStaggerContainer';
export { DTBadgeOverlay } from './components/DTBadgeOverlay';
// Components — filter & feature
export { DTMenu } from './components/DTMenu';
export type { DTMenuItem } from './components/DTMenu';
export { DTFeatureLegend } from './components/DTFeatureLegend';
export type { DTFeatureItem } from './components/DTFeatureLegend';
export { DTMobileFilterOverlay } from './components/DTMobileFilterOverlay';
// Components — media & decorative
export { DTGallery } from './components/DTGallery';
export type { DTGalleryItem } from './components/DTGallery';
export { DTHexagon } from './components/DTHexagon';