@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.
- package/dist/components/Avatar/Avatar.d.ts +8 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Badge/Badge.d.ts +9 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/BottomInputBar/BottomInputBar.d.ts +10 -0
- package/dist/components/BottomInputBar/index.d.ts +2 -0
- package/dist/components/Button/Button.d.ts +10 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Card/Card.d.ts +9 -0
- package/dist/components/Card/FeaturedCard.d.ts +15 -0
- package/dist/components/Card/GeneratingCard.d.ts +7 -0
- package/dist/components/Card/ScenarioCard.d.ts +15 -0
- package/dist/components/Card/index.d.ts +8 -0
- package/dist/components/ChatBubble/ChatBubble.d.ts +7 -0
- package/dist/components/ChatBubble/index.d.ts +2 -0
- package/dist/components/GameGrid/GameGrid.d.ts +8 -0
- package/dist/components/GameGrid/HotGrid.d.ts +9 -0
- package/dist/components/GameGrid/WaterfallGrid.d.ts +8 -0
- package/dist/components/GameGrid/index.d.ts +6 -0
- package/dist/components/Header/Header.d.ts +21 -0
- package/dist/components/Header/index.d.ts +2 -0
- package/dist/components/Input/Input.d.ts +8 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/LikeButton/LikeButton.d.ts +9 -0
- package/dist/components/LikeButton/index.d.ts +2 -0
- package/dist/components/Modal/BottomSheet.d.ts +11 -0
- package/dist/components/Modal/Modal.d.ts +10 -0
- package/dist/components/Modal/index.d.ts +4 -0
- package/dist/components/StatCard/StatCard.d.ts +8 -0
- package/dist/components/StatCard/index.d.ts +2 -0
- package/dist/icons/ArrowUpIcon.d.ts +4 -0
- package/dist/icons/CloseIcon.d.ts +4 -0
- package/dist/icons/HeartIcon.d.ts +5 -0
- package/dist/icons/PlayIcon.d.ts +4 -0
- package/dist/icons/index.d.ts +4 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.es.js +361 -0
- package/dist/style.css +1 -0
- package/dist/tokens/colors.d.ts +14 -0
- package/dist/tokens/spacing.d.ts +20 -0
- package/dist/tokens/typography.d.ts +9 -0
- package/dist/types/index.d.ts +19 -0
- package/guidelines/Guidelines.md +41 -0
- package/guidelines/components/badge.md +25 -0
- package/guidelines/components/button.md +30 -0
- package/guidelines/components/card.md +51 -0
- package/guidelines/components/chat-bubble.md +17 -0
- package/guidelines/components/game-grid.md +34 -0
- package/guidelines/components/header.md +38 -0
- package/guidelines/components/input.md +22 -0
- package/guidelines/components/modal.md +42 -0
- package/guidelines/design-tokens/colors.md +47 -0
- package/guidelines/design-tokens/spacing.md +47 -0
- package/guidelines/design-tokens/typography.md +30 -0
- package/guidelines/overview-components.md +43 -0
- package/package.json +38 -0
|
@@ -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,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,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,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,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,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,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,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,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 @@
|
|
|
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;
|
package/dist/index.d.ts
ADDED
|
@@ -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';
|