@breakergames/design-system 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.
Files changed (57) hide show
  1. package/dist/components/Avatar/Avatar.d.ts +8 -0
  2. package/dist/components/Avatar/index.d.ts +2 -0
  3. package/dist/components/Badge/Badge.d.ts +9 -0
  4. package/dist/components/Badge/index.d.ts +2 -0
  5. package/dist/components/BottomInputBar/BottomInputBar.d.ts +10 -0
  6. package/dist/components/BottomInputBar/index.d.ts +2 -0
  7. package/dist/components/Button/Button.d.ts +10 -0
  8. package/dist/components/Button/index.d.ts +2 -0
  9. package/dist/components/Card/Card.d.ts +9 -0
  10. package/dist/components/Card/FeaturedCard.d.ts +15 -0
  11. package/dist/components/Card/GeneratingCard.d.ts +7 -0
  12. package/dist/components/Card/ScenarioCard.d.ts +15 -0
  13. package/dist/components/Card/index.d.ts +8 -0
  14. package/dist/components/ChatBubble/ChatBubble.d.ts +7 -0
  15. package/dist/components/ChatBubble/index.d.ts +2 -0
  16. package/dist/components/GameGrid/GameGrid.d.ts +8 -0
  17. package/dist/components/GameGrid/HotGrid.d.ts +9 -0
  18. package/dist/components/GameGrid/WaterfallGrid.d.ts +8 -0
  19. package/dist/components/GameGrid/index.d.ts +6 -0
  20. package/dist/components/Header/Header.d.ts +21 -0
  21. package/dist/components/Header/index.d.ts +2 -0
  22. package/dist/components/Input/Input.d.ts +8 -0
  23. package/dist/components/Input/index.d.ts +2 -0
  24. package/dist/components/LikeButton/LikeButton.d.ts +9 -0
  25. package/dist/components/LikeButton/index.d.ts +2 -0
  26. package/dist/components/Modal/BottomSheet.d.ts +11 -0
  27. package/dist/components/Modal/Modal.d.ts +10 -0
  28. package/dist/components/Modal/index.d.ts +4 -0
  29. package/dist/components/StatCard/StatCard.d.ts +8 -0
  30. package/dist/components/StatCard/index.d.ts +2 -0
  31. package/dist/icons/ArrowUpIcon.d.ts +4 -0
  32. package/dist/icons/CloseIcon.d.ts +4 -0
  33. package/dist/icons/HeartIcon.d.ts +5 -0
  34. package/dist/icons/PlayIcon.d.ts +4 -0
  35. package/dist/icons/index.d.ts +4 -0
  36. package/dist/index.cjs.js +1 -0
  37. package/dist/index.d.ts +30 -0
  38. package/dist/index.es.js +361 -0
  39. package/dist/style.css +1 -0
  40. package/dist/tokens/colors.d.ts +14 -0
  41. package/dist/tokens/spacing.d.ts +20 -0
  42. package/dist/tokens/typography.d.ts +9 -0
  43. package/dist/types/index.d.ts +19 -0
  44. package/guidelines/Guidelines.md +41 -0
  45. package/guidelines/components/badge.md +25 -0
  46. package/guidelines/components/button.md +30 -0
  47. package/guidelines/components/card.md +51 -0
  48. package/guidelines/components/chat-bubble.md +17 -0
  49. package/guidelines/components/game-grid.md +34 -0
  50. package/guidelines/components/header.md +38 -0
  51. package/guidelines/components/input.md +22 -0
  52. package/guidelines/components/modal.md +42 -0
  53. package/guidelines/design-tokens/colors.md +47 -0
  54. package/guidelines/design-tokens/spacing.md +47 -0
  55. package/guidelines/design-tokens/typography.md +30 -0
  56. package/guidelines/overview-components.md +43 -0
  57. package/package.json +38 -0
@@ -0,0 +1,8 @@
1
+
2
+ export interface AvatarProps {
3
+ name?: string;
4
+ imageUrl?: string;
5
+ size?: 'sm' | 'md' | 'lg';
6
+ className?: string;
7
+ }
8
+ export declare function Avatar({ name, imageUrl, size, className }: AvatarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Avatar } from './Avatar';
2
+ export type { AvatarProps } from './Avatar';
@@ -0,0 +1,9 @@
1
+ import { BadgeType } from '../../types';
2
+
3
+ export interface BadgeProps {
4
+ type: BadgeType;
5
+ label?: string;
6
+ language?: 'en' | 'zh';
7
+ className?: string;
8
+ }
9
+ export declare function Badge({ type, label, language, className }: BadgeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Badge } from './Badge';
2
+ export type { BadgeProps } from './Badge';
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface BottomInputBarProps {
4
+ placeholder?: string;
5
+ onClick?: () => void;
6
+ isLoading?: boolean;
7
+ icon?: React.ReactNode;
8
+ className?: string;
9
+ }
10
+ export declare function BottomInputBar({ placeholder, onClick, isLoading, icon, className, }: BottomInputBarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { BottomInputBar } from './BottomInputBar';
2
+ export type { BottomInputBarProps } from './BottomInputBar';
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ variant?: 'primary' | 'secondary' | 'ghost' | 'danger';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ fullWidth?: boolean;
7
+ loading?: boolean;
8
+ icon?: React.ReactNode;
9
+ }
10
+ export declare function Button({ variant, size, fullWidth, loading, icon, children, disabled, className, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Button } from './Button';
2
+ export type { ButtonProps } from './Button';
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface CardProps {
4
+ children: React.ReactNode;
5
+ className?: string;
6
+ clickable?: boolean;
7
+ onClick?: () => void;
8
+ }
9
+ export declare function Card({ children, className, clickable, onClick }: CardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface FeaturedCardProps {
4
+ title: string;
5
+ tagline?: string;
6
+ imageUrl?: string;
7
+ gradientFrom?: string;
8
+ gradientTo?: string;
9
+ badge?: React.ReactNode;
10
+ playCount?: number;
11
+ likeCount?: number;
12
+ onClick?: () => void;
13
+ className?: string;
14
+ }
15
+ export declare function FeaturedCard({ title, tagline, imageUrl, gradientFrom, gradientTo, badge, playCount, likeCount, onClick, className, }: FeaturedCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+
2
+ export interface GeneratingCardProps {
3
+ status?: 'searching' | 'generating' | 'ready';
4
+ statusText?: string;
5
+ className?: string;
6
+ }
7
+ export declare function GeneratingCard({ status, statusText, className }: GeneratingCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface ScenarioCardProps {
4
+ title: string;
5
+ tagline?: string;
6
+ imageUrl?: string;
7
+ primaryColor?: string;
8
+ backgroundColor?: string;
9
+ badge?: React.ReactNode;
10
+ playCount?: number;
11
+ likeCount?: number;
12
+ onClick?: () => void;
13
+ className?: string;
14
+ }
15
+ export declare function ScenarioCard({ title, tagline, imageUrl, primaryColor, backgroundColor, badge, playCount, likeCount, onClick, className, }: ScenarioCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export { Card } from './Card';
2
+ export type { CardProps } from './Card';
3
+ export { FeaturedCard } from './FeaturedCard';
4
+ export type { FeaturedCardProps } from './FeaturedCard';
5
+ export { ScenarioCard } from './ScenarioCard';
6
+ export type { ScenarioCardProps } from './ScenarioCard';
7
+ export { GeneratingCard } from './GeneratingCard';
8
+ export type { GeneratingCardProps } from './GeneratingCard';
@@ -0,0 +1,7 @@
1
+
2
+ export interface ChatBubbleProps {
3
+ content: string;
4
+ role: 'user' | 'assistant';
5
+ className?: string;
6
+ }
7
+ export declare function ChatBubble({ content, role, className }: ChatBubbleProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { ChatBubble } from './ChatBubble';
2
+ export type { ChatBubbleProps } from './ChatBubble';
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface GameGridProps {
4
+ children: React.ReactNode;
5
+ columns?: 2 | 3 | 4;
6
+ className?: string;
7
+ }
8
+ export declare function GameGrid({ children, columns, className }: GameGridProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface HotGridProps {
4
+ title?: string;
5
+ icon?: string;
6
+ children: React.ReactNode;
7
+ className?: string;
8
+ }
9
+ export declare function HotGrid({ title, icon, children, className }: HotGridProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface WaterfallGridProps {
4
+ leftColumn: React.ReactNode;
5
+ rightColumn: React.ReactNode;
6
+ className?: string;
7
+ }
8
+ export declare function WaterfallGrid({ leftColumn, rightColumn, className }: WaterfallGridProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export { GameGrid } from './GameGrid';
2
+ export type { GameGridProps } from './GameGrid';
3
+ export { HotGrid } from './HotGrid';
4
+ export type { HotGridProps } from './HotGrid';
5
+ export { WaterfallGrid } from './WaterfallGrid';
6
+ export type { WaterfallGridProps } from './WaterfallGrid';
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface HeaderTab {
4
+ id: string;
5
+ label: string;
6
+ }
7
+ export interface HeaderProps {
8
+ logoText?: string;
9
+ logoIcon?: React.ReactNode;
10
+ tabs?: HeaderTab[];
11
+ activeTab?: string;
12
+ onTabChange?: (tabId: string) => void;
13
+ userName?: string;
14
+ avatar?: React.ReactNode;
15
+ onSignIn?: () => void;
16
+ onLogout?: () => void;
17
+ languageLabel?: string;
18
+ onLanguageToggle?: () => void;
19
+ className?: string;
20
+ }
21
+ export declare function Header({ logoText, logoIcon, tabs, activeTab, onTabChange, userName, avatar, onSignIn, onLogout, languageLabel, onLanguageToggle, className, }: HeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Header } from './Header';
2
+ export type { HeaderProps, HeaderTab } from './Header';
@@ -0,0 +1,8 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
4
+ label?: string;
5
+ error?: string;
6
+ helperText?: string;
7
+ }
8
+ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ export { Input } from './Input';
2
+ export type { InputProps } from './Input';
@@ -0,0 +1,9 @@
1
+
2
+ export interface LikeButtonProps {
3
+ liked?: boolean;
4
+ count?: number;
5
+ onToggle?: () => void;
6
+ disabled?: boolean;
7
+ className?: string;
8
+ }
9
+ export declare function LikeButton({ liked, count, onToggle, disabled, className }: LikeButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { LikeButton } from './LikeButton';
2
+ export type { LikeButtonProps } from './LikeButton';
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface BottomSheetProps {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ children: React.ReactNode;
7
+ title?: string;
8
+ subtitle?: string;
9
+ className?: string;
10
+ }
11
+ export declare function BottomSheet({ isOpen, onClose, children, title, subtitle, className }: BottomSheetProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface ModalProps {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ children: React.ReactNode;
7
+ size?: 'sm' | 'md' | 'lg';
8
+ className?: string;
9
+ }
10
+ export declare function Modal({ isOpen, onClose, children, size, className }: ModalProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,4 @@
1
+ export { Modal } from './Modal';
2
+ export type { ModalProps } from './Modal';
3
+ export { BottomSheet } from './BottomSheet';
4
+ export type { BottomSheetProps } from './BottomSheet';
@@ -0,0 +1,8 @@
1
+
2
+ export interface StatCardProps {
3
+ label: string;
4
+ value: string | number;
5
+ color?: 'primary' | 'danger' | 'success';
6
+ className?: string;
7
+ }
8
+ export declare function StatCard({ label, value, color, className }: StatCardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { StatCard } from './StatCard';
2
+ export type { StatCardProps } from './StatCard';
@@ -0,0 +1,4 @@
1
+ export declare function ArrowUpIcon({ size, color }: {
2
+ size?: number;
3
+ color?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare function CloseIcon({ size, color }: {
2
+ size?: number;
3
+ color?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export declare function HeartIcon({ size, color, filled }: {
2
+ size?: number;
3
+ color?: string;
4
+ filled?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare function PlayIcon({ size, color }: {
2
+ size?: number;
3
+ color?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export { PlayIcon } from './PlayIcon';
2
+ export { CloseIcon } from './CloseIcon';
3
+ export { HeartIcon } from './HeartIcon';
4
+ export { ArrowUpIcon } from './ArrowUpIcon';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),_=require("react");function u({variant:e="primary",size:s="md",fullWidth:r=!1,loading:n=!1,icon:c,children:l,disabled:i,className:t="",...d}){const o=["maka-btn",`maka-btn--${e}`,`maka-btn--${s}`,r&&"maka-btn--full",t].filter(Boolean).join(" ");return a.jsxs("button",{className:o,disabled:i||n,...d,children:[n&&a.jsx("span",{className:"maka-btn__spinner"}),!n&&c,l]})}const x=_.forwardRef(({label:e,error:s,helperText:r,className:n="",...c},l)=>a.jsxs("div",{className:"maka-input-wrapper",children:[e&&a.jsx("label",{className:"maka-input-label",children:e}),a.jsx("input",{ref:l,className:`maka-input ${s?"maka-input--error":""} ${n}`,...c}),s&&a.jsx("span",{className:"maka-input-error",children:s}),!s&&r&&a.jsx("span",{className:"maka-input-helper",children:r})]}));x.displayName="Input";const j={"staff-pick":{icon:"⭐",labelEn:"Pick",labelZh:"精选"},hot:{icon:"πŸ”₯",labelEn:"Hot",labelZh:"ηƒ­ι—¨"},liked:{icon:"❀️",labelEn:"Loved",labelZh:"ε₯½θ―„"},rising:{icon:"πŸ“ˆ",labelEn:"Rising",labelZh:"δΈŠε‡"},new:{icon:"✨",labelEn:"New",labelZh:"新品"},trending:{icon:"πŸš€",labelEn:"Trend",labelZh:"θΆ‹εŠΏ"}};function p({type:e,label:s,language:r="en",className:n=""}){const c=j[e],l=s||(r==="zh"?c.labelZh:c.labelEn);return a.jsxs("span",{className:`maka-badge maka-badge--${e} ${n}`,children:[a.jsx("span",{children:c.icon}),a.jsx("span",{children:l})]})}function b({name:e,imageUrl:s,size:r="md",className:n=""}){var l;const c=((l=e==null?void 0:e.charAt(0))==null?void 0:l.toUpperCase())||"U";return a.jsx("div",{className:`maka-avatar maka-avatar--${r} ${n}`,children:s?a.jsx("img",{src:s,alt:e||"avatar"}):a.jsx("span",{children:c})})}function v({label:e,value:s,color:r="primary",className:n=""}){return a.jsxs("div",{className:`maka-stat-card ${n}`,children:[a.jsx("span",{className:"maka-stat-card__label",children:e}),a.jsx("span",{className:`maka-stat-card__value maka-stat-card__value--${r}`,children:s})]})}function N({children:e,className:s="",clickable:r=!1,onClick:n}){return a.jsx("div",{className:`maka-card ${r?"maka-card--clickable":""} ${s}`,onClick:n,role:r?"button":void 0,tabIndex:r?0:void 0,children:e})}function g({title:e,tagline:s,imageUrl:r,gradientFrom:n,gradientTo:c,badge:l,playCount:i,likeCount:t,onClick:d,className:o=""}){const m=r?{backgroundImage:`url(${r})`}:{background:`linear-gradient(135deg, ${n||"#7c5cfa"}, ${c||"#5c9cfa"})`};return a.jsxs("div",{className:`maka-featured-card ${o}`,onClick:d,children:[a.jsx("div",{className:"maka-featured-card__bg",style:m}),a.jsx("div",{className:"maka-featured-card__overlay"}),l&&a.jsx("div",{className:"maka-featured-card__badge",children:l}),a.jsxs("div",{className:"maka-featured-card__content",children:[a.jsx("div",{className:"maka-featured-card__title",children:e}),s&&a.jsx("div",{className:"maka-featured-card__tagline",children:s}),a.jsxs("div",{className:"maka-featured-card__stats",children:[i!==void 0&&a.jsxs("span",{children:["β–Ά ",i]}),t!==void 0&&a.jsxs("span",{children:["❀ ",t]})]})]})]})}function f({title:e,tagline:s,imageUrl:r,primaryColor:n,backgroundColor:c,badge:l,playCount:i,likeCount:t,onClick:d,className:o=""}){const m=r?{backgroundImage:`url(${r})`}:{background:`linear-gradient(135deg, ${n||"#7c5cfa"}, ${c||"#1e2a3a"})`};return a.jsxs("div",{className:`maka-scenario-card ${o}`,onClick:d,children:[a.jsxs("div",{className:"maka-scenario-card__image",style:m,children:[a.jsx("div",{className:"maka-scenario-card__image-overlay"}),a.jsxs("div",{className:"maka-scenario-card__image-stats",children:[i!==void 0&&a.jsxs("span",{children:["β–Ά ",i]}),t!==void 0&&a.jsxs("span",{children:["❀ ",t]})]}),l&&a.jsx("div",{className:"maka-scenario-card__badge-slot",children:l}),a.jsx("div",{className:"maka-scenario-card__play-overlay",children:a.jsx("span",{style:{fontSize:32,color:"white"},children:"β–Ά"})})]}),a.jsxs("div",{className:"maka-scenario-card__body",children:[a.jsx("div",{className:"maka-scenario-card__title",children:e}),s&&a.jsx("div",{className:"maka-scenario-card__tagline",children:s})]})]})}const y={searching:"Searching...",generating:"Generating...",ready:"Ready!"};function $({status:e="generating",statusText:s,className:r=""}){return a.jsxs("div",{className:`maka-generating-card ${r}`,children:[a.jsxs("div",{className:"maka-generating-card__dots",children:[a.jsx("div",{className:"maka-generating-card__dot"}),a.jsx("div",{className:"maka-generating-card__dot"}),a.jsx("div",{className:"maka-generating-card__dot"})]}),a.jsx("div",{className:"maka-generating-card__text",children:s||y[e]})]})}function w({content:e,role:s,className:r=""}){return a.jsx("div",{className:`maka-chat-bubble maka-chat-bubble--${s} ${r}`,children:e})}function B({liked:e=!1,count:s=0,onToggle:r,disabled:n,className:c=""}){return a.jsxs("button",{className:`maka-like-btn ${e?"maka-like-btn--liked":""} ${c}`,onClick:r,disabled:n,children:[a.jsx("span",{children:e?"❀️":"🀍"}),s>0&&a.jsx("span",{children:s})]})}function C({placeholder:e="Search or create games...",onClick:s,isLoading:r=!1,icon:n,className:c=""}){return a.jsx("div",{className:`maka-bottom-bar ${r?"maka-bottom-bar--loading":""} ${c}`,children:a.jsxs("div",{className:"maka-bottom-bar__pill",onClick:s,role:"button",tabIndex:0,children:[a.jsx("span",{className:"maka-bottom-bar__icon",children:n||"πŸ¦™"}),a.jsx("span",{className:"maka-bottom-bar__placeholder",children:e}),r?a.jsx("span",{className:"maka-bottom-bar__spinner"}):a.jsx("span",{className:"maka-bottom-bar__send",children:"↑"})]})})}function I({logoText:e="Makabaka",logoIcon:s,tabs:r=[],activeTab:n,onTabChange:c,userName:l,avatar:i,onSignIn:t,onLogout:d,languageLabel:o="EN",onLanguageToggle:m,className:k=""}){return a.jsx("header",{className:`maka-header ${k}`,children:a.jsxs("div",{className:"maka-header__inner",children:[a.jsxs("a",{className:"maka-header__logo",href:"/",children:[a.jsx("span",{className:"maka-header__logo-icon",children:s||"πŸ¦™"}),a.jsx("span",{className:"maka-header__logo-text",children:e})]}),r.length>0&&a.jsx("nav",{className:"maka-header__nav",children:r.map(h=>a.jsx("button",{className:`maka-header__tab ${n===h.id?"maka-header__tab--active":""}`,onClick:()=>c==null?void 0:c(h.id),children:h.label},h.id))}),a.jsxs("div",{className:"maka-header__actions",children:[m&&a.jsx("button",{className:"maka-header__lang-btn",onClick:m,children:o}),l?a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"maka-header__username",children:l}),i,d&&a.jsx("button",{className:"maka-header__tab",onClick:d,style:{display:"none"},children:"Logout"})]}):t&&a.jsx("button",{className:"maka-header__tab",onClick:t,children:"Sign In"})]})]})})}function S({isOpen:e,onClose:s,children:r,size:n="md",className:c=""}){return e?a.jsx("div",{className:"maka-modal-backdrop",onClick:s,children:a.jsxs("div",{className:`maka-modal maka-modal--${n} ${c}`,onClick:l=>l.stopPropagation(),children:[a.jsx("button",{className:"maka-modal__close",onClick:s,children:"βœ•"}),r]})}):null}function G({isOpen:e,onClose:s,children:r,title:n,subtitle:c,className:l=""}){return e?a.jsx("div",{className:"maka-bottom-sheet-backdrop",onClick:s,children:a.jsxs("div",{className:`maka-bottom-sheet ${l}`,onClick:i=>i.stopPropagation(),children:[a.jsx("div",{className:"maka-bottom-sheet__handle"}),(n||c)&&a.jsxs("div",{className:"maka-bottom-sheet__header",children:[a.jsxs("div",{children:[n&&a.jsx("div",{className:"maka-bottom-sheet__title",children:n}),c&&a.jsx("div",{className:"maka-bottom-sheet__subtitle",children:c})]}),a.jsx("button",{className:"maka-bottom-sheet__close",onClick:s,children:"βœ•"})]}),a.jsx("div",{className:"maka-bottom-sheet__body",children:r})]})}):null}function E({children:e,columns:s=3,className:r=""}){return a.jsx("div",{className:`maka-game-grid ${s===4?"maka-game-grid--4":""} ${r}`,children:e})}function H({title:e,icon:s,children:r,className:n=""}){return a.jsxs("div",{className:n,children:[(e||s)&&a.jsxs("div",{className:"maka-hot-grid__header",children:[s&&a.jsx("span",{className:"maka-hot-grid__header-icon",children:s}),e&&a.jsx("span",{children:e})]}),a.jsx("div",{className:"maka-hot-grid__content",children:r})]})}function P({leftColumn:e,rightColumn:s,className:r=""}){return a.jsxs("div",{className:`maka-waterfall ${r}`,children:[a.jsx("div",{className:"maka-waterfall__col",children:e}),a.jsx("div",{className:"maka-waterfall__col maka-waterfall__col--offset",children:s})]})}function A({size:e=24,color:s="currentColor"}){return a.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:s,children:a.jsx("path",{d:"M8 5v14l11-7L8 5z"})})}function L({size:e=24,color:s="currentColor"}){return a.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:s,strokeWidth:"2",strokeLinecap:"round",children:[a.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}function M({size:e=24,color:s="currentColor",filled:r=!1}){return a.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:r?s:"none",stroke:s,strokeWidth:"2",children:a.jsx("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"})})}function Z({size:e=24,color:s="currentColor"}){return a.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:s,strokeWidth:"2",strokeLinecap:"round",children:[a.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),a.jsx("polyline",{points:"5 12 12 5 19 12"})]})}const R={primary:"#7c5cfa",primaryHover:"#6b4ee0",secondary:"#5c9cfa",accent:"#06d6a0",bgDark:"#1b2838",bgCard:"#1e2a3a",bgHover:"#2a3a4a",textPrimary:"#e8e8ec",danger:"#ef4444",success:"#22c55e",warning:"#f59e0b",like:"#f43f5e"},W={fontDisplay:'"Plus Jakarta Sans", "Inter", sans-serif',fontBody:'"Inter", sans-serif',weightRegular:400,weightMedium:500,weightSemibold:600,weightBold:700,weightExtrabold:800},F={1:"4px",2:"8px",3:"12px",4:"16px",5:"20px",6:"24px",8:"32px",10:"40px",12:"48px",16:"64px"},D={sm:"4px",md:"8px",lg:"12px",xl:"16px","2xl":"24px",full:"9999px"};exports.ArrowUpIcon=Z;exports.Avatar=b;exports.Badge=p;exports.BottomInputBar=C;exports.BottomSheet=G;exports.Button=u;exports.Card=N;exports.ChatBubble=w;exports.CloseIcon=L;exports.FeaturedCard=g;exports.GameGrid=E;exports.GeneratingCard=$;exports.Header=I;exports.HeartIcon=M;exports.HotGrid=H;exports.Input=x;exports.LikeButton=B;exports.Modal=S;exports.PlayIcon=A;exports.ScenarioCard=f;exports.StatCard=v;exports.WaterfallGrid=P;exports.colors=R;exports.radius=D;exports.spacing=F;exports.typography=W;
@@ -0,0 +1,30 @@
1
+
2
+ export { Button } from './components/Button';
3
+ export type { ButtonProps } from './components/Button';
4
+ export { Input } from './components/Input';
5
+ export type { InputProps } from './components/Input';
6
+ export { Badge } from './components/Badge';
7
+ export type { BadgeProps } from './components/Badge';
8
+ export { Avatar } from './components/Avatar';
9
+ export type { AvatarProps } from './components/Avatar';
10
+ export { StatCard } from './components/StatCard';
11
+ export type { StatCardProps } from './components/StatCard';
12
+ export { Card, FeaturedCard, ScenarioCard, GeneratingCard } from './components/Card';
13
+ export type { CardProps, FeaturedCardProps, ScenarioCardProps, GeneratingCardProps } from './components/Card';
14
+ export { ChatBubble } from './components/ChatBubble';
15
+ export type { ChatBubbleProps } from './components/ChatBubble';
16
+ export { LikeButton } from './components/LikeButton';
17
+ export type { LikeButtonProps } from './components/LikeButton';
18
+ export { BottomInputBar } from './components/BottomInputBar';
19
+ export type { BottomInputBarProps } from './components/BottomInputBar';
20
+ export { Header } from './components/Header';
21
+ export type { HeaderProps, HeaderTab } from './components/Header';
22
+ export { Modal, BottomSheet } from './components/Modal';
23
+ export type { ModalProps, BottomSheetProps } from './components/Modal';
24
+ export { GameGrid, HotGrid, WaterfallGrid } from './components/GameGrid';
25
+ export type { GameGridProps, HotGridProps, WaterfallGridProps } from './components/GameGrid';
26
+ export { PlayIcon, CloseIcon, HeartIcon, ArrowUpIcon } from './icons';
27
+ export { colors } from './tokens/colors';
28
+ export { typography } from './tokens/typography';
29
+ export { spacing, radius } from './tokens/spacing';
30
+ export type { BadgeType, DiscoveryScenario } from './types';