@akanaka/components 0.2.3 → 0.3.1
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/index.d.ts +17 -3
- package/dist/index.js +73 -39
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { HTMLAttributes, ReactNode, ImgHTMLAttributes, ButtonHTMLAttributes, InputHTMLAttributes, SelectHTMLAttributes, TdHTMLAttributes, ThHTMLAttributes } from 'react';
|
|
3
|
+
import { HTMLAttributes, ReactNode, ImgHTMLAttributes, ButtonHTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, SelectHTMLAttributes, TdHTMLAttributes, ThHTMLAttributes } from 'react';
|
|
4
4
|
export * from '@akanaka/tokens';
|
|
5
5
|
|
|
6
6
|
type AlertVariant = "info" | "success" | "warning" | "error";
|
|
@@ -73,7 +73,10 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "typ
|
|
|
73
73
|
}
|
|
74
74
|
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
type InputSize = "sm" | "md" | "lg";
|
|
77
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
78
|
+
/** Size of the input */
|
|
79
|
+
size?: InputSize;
|
|
77
80
|
/** Error message to display */
|
|
78
81
|
error?: string;
|
|
79
82
|
/** Label text */
|
|
@@ -83,6 +86,17 @@ interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
|
83
86
|
}
|
|
84
87
|
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
85
88
|
|
|
89
|
+
type LabelSize = "sm" | "md" | "lg";
|
|
90
|
+
interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
|
|
91
|
+
/** Size of the label */
|
|
92
|
+
size?: LabelSize;
|
|
93
|
+
/** Show error styling (red text) */
|
|
94
|
+
error?: boolean;
|
|
95
|
+
/** Show required indicator (red asterisk) */
|
|
96
|
+
required?: boolean;
|
|
97
|
+
}
|
|
98
|
+
declare const Label: react.ForwardRefExoticComponent<LabelProps & react.RefAttributes<HTMLLabelElement>>;
|
|
99
|
+
|
|
86
100
|
interface ProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
87
101
|
/** Current value (0-100) */
|
|
88
102
|
value: number;
|
|
@@ -162,4 +176,4 @@ interface ToggleProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type"
|
|
|
162
176
|
}
|
|
163
177
|
declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<HTMLInputElement>>;
|
|
164
178
|
|
|
165
|
-
export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardBody, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSectionProps, CardTitle, type CardVariant, Checkbox, type CheckboxProps, Input, type InputProps, Progress, type ProgressProps, Select, type SelectOption, type SelectProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Toggle, type ToggleProps };
|
|
179
|
+
export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardBody, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, type CardSectionProps, CardTitle, type CardVariant, Checkbox, type CheckboxProps, Input, type InputProps, type InputSize, Label, type LabelProps, type LabelSize, Progress, type ProgressProps, Select, type SelectOption, type SelectProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Toggle, type ToggleProps };
|
package/dist/index.js
CHANGED
|
@@ -304,22 +304,27 @@ Checkbox.displayName = "Checkbox";
|
|
|
304
304
|
// src/Input/Input.tsx
|
|
305
305
|
import { forwardRef as forwardRef3, useId } from "react";
|
|
306
306
|
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
307
|
+
var sizeStyles3 = {
|
|
308
|
+
sm: "px-2 py-1 text-body-sm rounded-sm",
|
|
309
|
+
md: "px-3 py-2 text-body rounded-md",
|
|
310
|
+
lg: "px-4 py-3 text-body rounded-lg"
|
|
311
|
+
};
|
|
307
312
|
var Input = forwardRef3(
|
|
308
|
-
({ error, label, helperText, disabled, className = "", id, ...props }, ref) => {
|
|
313
|
+
({ size = "md", error, label, helperText, disabled, className = "", id, ...props }, ref) => {
|
|
309
314
|
const generatedId = useId();
|
|
310
315
|
const inputId = id ?? generatedId;
|
|
311
316
|
const baseStyles = [
|
|
312
|
-
"w-full
|
|
313
|
-
"text-
|
|
317
|
+
"w-full",
|
|
318
|
+
"text-neutral-900",
|
|
314
319
|
"bg-white",
|
|
315
|
-
"border
|
|
320
|
+
"border",
|
|
316
321
|
"transition-colors duration-fast",
|
|
317
322
|
"placeholder:text-neutral-500",
|
|
318
323
|
"focus:outline-none focus:shadow-focus"
|
|
319
324
|
].join(" ");
|
|
320
325
|
const stateStyles = error ? "border-error focus:border-error" : "border-neutral-300 hover:border-neutral-500 focus:border-primary-500";
|
|
321
326
|
const disabledStyles = disabled ? "bg-neutral-100 text-neutral-500 cursor-not-allowed hover:border-neutral-300" : "";
|
|
322
|
-
const classes = [baseStyles, stateStyles, disabledStyles, className].filter(Boolean).join(" ");
|
|
327
|
+
const classes = [baseStyles, sizeStyles3[size], stateStyles, disabledStyles, className].filter(Boolean).join(" ");
|
|
323
328
|
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-1", children: [
|
|
324
329
|
label && /* @__PURE__ */ jsx7(
|
|
325
330
|
"label",
|
|
@@ -348,8 +353,36 @@ var Input = forwardRef3(
|
|
|
348
353
|
);
|
|
349
354
|
Input.displayName = "Input";
|
|
350
355
|
|
|
351
|
-
// src/
|
|
356
|
+
// src/Label/Label.tsx
|
|
357
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
352
358
|
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
359
|
+
var sizeStyles4 = {
|
|
360
|
+
sm: "text-caption",
|
|
361
|
+
md: "text-body-sm",
|
|
362
|
+
lg: "text-body"
|
|
363
|
+
};
|
|
364
|
+
var Label = forwardRef4(
|
|
365
|
+
({
|
|
366
|
+
size = "md",
|
|
367
|
+
error = false,
|
|
368
|
+
required = false,
|
|
369
|
+
className = "",
|
|
370
|
+
children,
|
|
371
|
+
...props
|
|
372
|
+
}, ref) => {
|
|
373
|
+
const baseStyles = "font-medium";
|
|
374
|
+
const colorStyles = error ? "text-error" : "text-neutral-700";
|
|
375
|
+
const classes = [baseStyles, sizeStyles4[size], colorStyles, className].filter(Boolean).join(" ");
|
|
376
|
+
return /* @__PURE__ */ jsxs4("label", { ref, className: classes, ...props, children: [
|
|
377
|
+
children,
|
|
378
|
+
required && /* @__PURE__ */ jsx8("span", { className: "text-error ml-1", children: "*" })
|
|
379
|
+
] });
|
|
380
|
+
}
|
|
381
|
+
);
|
|
382
|
+
Label.displayName = "Label";
|
|
383
|
+
|
|
384
|
+
// src/Progress/Progress.tsx
|
|
385
|
+
import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
353
386
|
function Progress({
|
|
354
387
|
value,
|
|
355
388
|
max = 100,
|
|
@@ -358,8 +391,8 @@ function Progress({
|
|
|
358
391
|
...props
|
|
359
392
|
}) {
|
|
360
393
|
const percentage = Math.min(Math.max(value / max * 100, 0), 100);
|
|
361
|
-
return /* @__PURE__ */
|
|
362
|
-
/* @__PURE__ */
|
|
394
|
+
return /* @__PURE__ */ jsxs5("div", { className: `flex items-center gap-3 ${className}`, ...props, children: [
|
|
395
|
+
/* @__PURE__ */ jsx9(
|
|
363
396
|
"div",
|
|
364
397
|
{
|
|
365
398
|
role: "progressbar",
|
|
@@ -367,7 +400,7 @@ function Progress({
|
|
|
367
400
|
"aria-valuemin": 0,
|
|
368
401
|
"aria-valuemax": max,
|
|
369
402
|
className: "flex-1 h-2 bg-neutral-200 rounded-full overflow-hidden",
|
|
370
|
-
children: /* @__PURE__ */
|
|
403
|
+
children: /* @__PURE__ */ jsx9(
|
|
371
404
|
"div",
|
|
372
405
|
{
|
|
373
406
|
className: "h-full bg-primary-500 rounded-full transition-all duration-base",
|
|
@@ -376,7 +409,7 @@ function Progress({
|
|
|
376
409
|
)
|
|
377
410
|
}
|
|
378
411
|
),
|
|
379
|
-
showLabel && /* @__PURE__ */
|
|
412
|
+
showLabel && /* @__PURE__ */ jsxs5("span", { className: "text-body-sm text-neutral-500 min-w-[3ch]", children: [
|
|
380
413
|
Math.round(percentage),
|
|
381
414
|
"%"
|
|
382
415
|
] })
|
|
@@ -384,9 +417,9 @@ function Progress({
|
|
|
384
417
|
}
|
|
385
418
|
|
|
386
419
|
// src/Select/Select.tsx
|
|
387
|
-
import { forwardRef as
|
|
388
|
-
import { jsx as
|
|
389
|
-
var Select =
|
|
420
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
421
|
+
import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
422
|
+
var Select = forwardRef5(
|
|
390
423
|
({ options, placeholder, error, label, disabled, className = "", id, ...props }, ref) => {
|
|
391
424
|
const selectId = id || props.name;
|
|
392
425
|
const baseStyles = [
|
|
@@ -404,8 +437,8 @@ var Select = forwardRef4(
|
|
|
404
437
|
const stateStyles = error ? "border-error focus:border-error" : "border-neutral-300 hover:border-neutral-500 focus:border-primary-500";
|
|
405
438
|
const disabledStyles = disabled ? "bg-neutral-100 text-neutral-500 cursor-not-allowed hover:border-neutral-300" : "cursor-pointer";
|
|
406
439
|
const classes = [baseStyles, stateStyles, disabledStyles, className].filter(Boolean).join(" ");
|
|
407
|
-
return /* @__PURE__ */
|
|
408
|
-
label && /* @__PURE__ */
|
|
440
|
+
return /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-1", children: [
|
|
441
|
+
label && /* @__PURE__ */ jsx10(
|
|
409
442
|
"label",
|
|
410
443
|
{
|
|
411
444
|
htmlFor: selectId,
|
|
@@ -413,7 +446,7 @@ var Select = forwardRef4(
|
|
|
413
446
|
children: label
|
|
414
447
|
}
|
|
415
448
|
),
|
|
416
|
-
/* @__PURE__ */
|
|
449
|
+
/* @__PURE__ */ jsxs6(
|
|
417
450
|
"select",
|
|
418
451
|
{
|
|
419
452
|
ref,
|
|
@@ -423,8 +456,8 @@ var Select = forwardRef4(
|
|
|
423
456
|
"aria-invalid": !!error,
|
|
424
457
|
...props,
|
|
425
458
|
children: [
|
|
426
|
-
placeholder && /* @__PURE__ */
|
|
427
|
-
options.map((option) => /* @__PURE__ */
|
|
459
|
+
placeholder && /* @__PURE__ */ jsx10("option", { value: "", disabled: true, children: placeholder }),
|
|
460
|
+
options.map((option) => /* @__PURE__ */ jsx10(
|
|
428
461
|
"option",
|
|
429
462
|
{
|
|
430
463
|
value: option.value,
|
|
@@ -436,16 +469,16 @@ var Select = forwardRef4(
|
|
|
436
469
|
]
|
|
437
470
|
}
|
|
438
471
|
),
|
|
439
|
-
error && /* @__PURE__ */
|
|
472
|
+
error && /* @__PURE__ */ jsx10("p", { className: "text-body-sm text-error", children: error })
|
|
440
473
|
] });
|
|
441
474
|
}
|
|
442
475
|
);
|
|
443
476
|
Select.displayName = "Select";
|
|
444
477
|
|
|
445
478
|
// src/Table/Table.tsx
|
|
446
|
-
import { jsx as
|
|
479
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
447
480
|
function Table({ className = "", children, ...props }) {
|
|
448
|
-
return /* @__PURE__ */
|
|
481
|
+
return /* @__PURE__ */ jsx11("div", { className: "w-full overflow-auto", children: /* @__PURE__ */ jsx11(
|
|
449
482
|
"table",
|
|
450
483
|
{
|
|
451
484
|
className: `w-full border-collapse text-body ${className}`,
|
|
@@ -455,13 +488,13 @@ function Table({ className = "", children, ...props }) {
|
|
|
455
488
|
) });
|
|
456
489
|
}
|
|
457
490
|
function TableHeader({ className = "", children, ...props }) {
|
|
458
|
-
return /* @__PURE__ */
|
|
491
|
+
return /* @__PURE__ */ jsx11("thead", { className: `bg-neutral-50 ${className}`, ...props, children });
|
|
459
492
|
}
|
|
460
493
|
function TableBody({ className = "", children, ...props }) {
|
|
461
|
-
return /* @__PURE__ */
|
|
494
|
+
return /* @__PURE__ */ jsx11("tbody", { className: `divide-y divide-neutral-200 ${className}`, ...props, children });
|
|
462
495
|
}
|
|
463
496
|
function TableRow({ className = "", children, ...props }) {
|
|
464
|
-
return /* @__PURE__ */
|
|
497
|
+
return /* @__PURE__ */ jsx11(
|
|
465
498
|
"tr",
|
|
466
499
|
{
|
|
467
500
|
className: `border-b border-neutral-200 hover:bg-neutral-50 transition-colors ${className}`,
|
|
@@ -471,7 +504,7 @@ function TableRow({ className = "", children, ...props }) {
|
|
|
471
504
|
);
|
|
472
505
|
}
|
|
473
506
|
function TableHead({ className = "", children, ...props }) {
|
|
474
|
-
return /* @__PURE__ */
|
|
507
|
+
return /* @__PURE__ */ jsx11(
|
|
475
508
|
"th",
|
|
476
509
|
{
|
|
477
510
|
className: `px-4 py-3 text-left text-body-sm font-semibold text-neutral-700 ${className}`,
|
|
@@ -481,7 +514,7 @@ function TableHead({ className = "", children, ...props }) {
|
|
|
481
514
|
);
|
|
482
515
|
}
|
|
483
516
|
function TableCell({ className = "", children, ...props }) {
|
|
484
|
-
return /* @__PURE__ */
|
|
517
|
+
return /* @__PURE__ */ jsx11(
|
|
485
518
|
"td",
|
|
486
519
|
{
|
|
487
520
|
className: `px-4 py-3 text-neutral-900 ${className}`,
|
|
@@ -497,7 +530,7 @@ import {
|
|
|
497
530
|
useContext,
|
|
498
531
|
useState
|
|
499
532
|
} from "react";
|
|
500
|
-
import { jsx as
|
|
533
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
501
534
|
var TabsContext = createContext(null);
|
|
502
535
|
function useTabsContext() {
|
|
503
536
|
const context = useContext(TabsContext);
|
|
@@ -522,10 +555,10 @@ function Tabs({
|
|
|
522
555
|
}
|
|
523
556
|
onValueChange?.(newValue);
|
|
524
557
|
};
|
|
525
|
-
return /* @__PURE__ */
|
|
558
|
+
return /* @__PURE__ */ jsx12(TabsContext.Provider, { value: { activeTab, setActiveTab }, children: /* @__PURE__ */ jsx12("div", { className, ...props, children }) });
|
|
526
559
|
}
|
|
527
560
|
function TabsList({ children, className = "", ...props }) {
|
|
528
|
-
return /* @__PURE__ */
|
|
561
|
+
return /* @__PURE__ */ jsx12(
|
|
529
562
|
"div",
|
|
530
563
|
{
|
|
531
564
|
role: "tablist",
|
|
@@ -551,7 +584,7 @@ function TabsTrigger({
|
|
|
551
584
|
"focus:outline-none focus-visible:shadow-focus"
|
|
552
585
|
].join(" ");
|
|
553
586
|
const stateStyles = isActive ? "border-primary-500 text-primary-600" : "border-transparent text-neutral-500 hover:text-neutral-700 hover:border-neutral-300";
|
|
554
|
-
return /* @__PURE__ */
|
|
587
|
+
return /* @__PURE__ */ jsx12(
|
|
555
588
|
"button",
|
|
556
589
|
{
|
|
557
590
|
role: "tab",
|
|
@@ -573,13 +606,13 @@ function TabsContent({
|
|
|
573
606
|
if (activeTab !== value) {
|
|
574
607
|
return null;
|
|
575
608
|
}
|
|
576
|
-
return /* @__PURE__ */
|
|
609
|
+
return /* @__PURE__ */ jsx12("div", { role: "tabpanel", className: `py-4 ${className}`, ...props, children });
|
|
577
610
|
}
|
|
578
611
|
|
|
579
612
|
// src/Toggle/Toggle.tsx
|
|
580
|
-
import { forwardRef as
|
|
581
|
-
import { jsx as
|
|
582
|
-
var Toggle =
|
|
613
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
614
|
+
import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
615
|
+
var Toggle = forwardRef6(
|
|
583
616
|
({ label, disabled, checked, className = "", id, ...props }, ref) => {
|
|
584
617
|
const toggleId = id || props.name;
|
|
585
618
|
const trackStyles = [
|
|
@@ -599,9 +632,9 @@ var Toggle = forwardRef5(
|
|
|
599
632
|
"transition-transform duration-fast",
|
|
600
633
|
checked ? "translate-x-4" : "translate-x-0"
|
|
601
634
|
].join(" ");
|
|
602
|
-
return /* @__PURE__ */
|
|
603
|
-
/* @__PURE__ */
|
|
604
|
-
/* @__PURE__ */
|
|
635
|
+
return /* @__PURE__ */ jsxs7("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
636
|
+
/* @__PURE__ */ jsxs7("label", { htmlFor: toggleId, className: trackStyles, children: [
|
|
637
|
+
/* @__PURE__ */ jsx13(
|
|
605
638
|
"input",
|
|
606
639
|
{
|
|
607
640
|
ref,
|
|
@@ -615,9 +648,9 @@ var Toggle = forwardRef5(
|
|
|
615
648
|
...props
|
|
616
649
|
}
|
|
617
650
|
),
|
|
618
|
-
/* @__PURE__ */
|
|
651
|
+
/* @__PURE__ */ jsx13("span", { className: thumbStyles })
|
|
619
652
|
] }),
|
|
620
|
-
label && /* @__PURE__ */
|
|
653
|
+
label && /* @__PURE__ */ jsx13(
|
|
621
654
|
"label",
|
|
622
655
|
{
|
|
623
656
|
htmlFor: toggleId,
|
|
@@ -646,6 +679,7 @@ export {
|
|
|
646
679
|
CardTitle,
|
|
647
680
|
Checkbox,
|
|
648
681
|
Input,
|
|
682
|
+
Label,
|
|
649
683
|
Progress,
|
|
650
684
|
Select,
|
|
651
685
|
Table,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Alert/Alert.tsx","../src/Avatar/Avatar.tsx","../src/Badge/Badge.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Checkbox/Checkbox.tsx","../src/Input/Input.tsx","../src/Progress/Progress.tsx","../src/Select/Select.tsx","../src/Table/Table.tsx","../src/Tabs/Tabs.tsx","../src/Toggle/Toggle.tsx","../src/index.ts"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport type AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport interface AlertProps extends HTMLAttributes<HTMLDivElement> {\n /** Visual style variant */\n variant?: AlertVariant;\n /** Alert title */\n title?: string;\n /** Alert content */\n children: ReactNode;\n /** Dismiss handler */\n onDismiss?: () => void;\n}\n\nconst variantStyles: Record<AlertVariant, { container: string; icon: string }> = {\n info: {\n container: \"bg-blue-50 border-blue-200 text-blue-800\",\n icon: \"text-blue-500\",\n },\n success: {\n container: \"bg-green-50 border-green-200 text-green-800\",\n icon: \"text-green-500\",\n },\n warning: {\n container: \"bg-amber-50 border-amber-200 text-amber-800\",\n icon: \"text-amber-500\",\n },\n error: {\n container: \"bg-red-50 border-red-200 text-red-800\",\n icon: \"text-red-500\",\n },\n};\n\nconst icons: Record<AlertVariant, ReactNode> = {\n info: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clipRule=\"evenodd\" />\n </svg>\n ),\n success: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clipRule=\"evenodd\" />\n </svg>\n ),\n warning: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n ),\n error: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clipRule=\"evenodd\" />\n </svg>\n ),\n};\n\nexport function Alert({\n variant = \"info\",\n title,\n children,\n onDismiss,\n className = \"\",\n ...props\n}: AlertProps) {\n const baseStyles = \"flex gap-3 p-4 rounded-lg border\";\n const styles = variantStyles[variant];\n const classes = [baseStyles, styles.container, className].filter(Boolean).join(\" \");\n\n return (\n <div role=\"alert\" className={classes} {...props}>\n <span className={`flex-shrink-0 ${styles.icon}`}>{icons[variant]}</span>\n <div className=\"flex-1\">\n {title && <p className=\"font-semibold mb-1\">{title}</p>}\n <div className=\"text-body-sm\">{children}</div>\n </div>\n {onDismiss && (\n <button\n onClick={onDismiss}\n className=\"flex-shrink-0 opacity-70 hover:opacity-100 transition-opacity\"\n aria-label=\"Dismiss\"\n >\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clipRule=\"evenodd\" />\n </svg>\n </button>\n )}\n </div>\n );\n}\n","import type { ImgHTMLAttributes } from \"react\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface AvatarProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, \"size\"> {\n /** Size of the avatar */\n size?: AvatarSize;\n /** Fallback initials when no image */\n initials?: string;\n /** Image source */\n src?: string;\n /** Alt text */\n alt?: string;\n}\n\nconst sizeStyles: Record<AvatarSize, string> = {\n sm: \"w-8 h-8 text-caption\",\n md: \"w-10 h-10 text-body-sm\",\n lg: \"w-12 h-12 text-body\",\n xl: \"w-16 h-16 text-h3\",\n};\n\nexport function Avatar({\n size = \"md\",\n initials,\n src,\n alt = \"\",\n className = \"\",\n ...props\n}: AvatarProps) {\n const baseStyles = [\n \"inline-flex items-center justify-center\",\n \"rounded-full\",\n \"bg-primary-100 text-primary-700\",\n \"font-semibold\",\n \"overflow-hidden\",\n \"flex-shrink-0\",\n ].join(\" \");\n\n const classes = [baseStyles, sizeStyles[size], className]\n .filter(Boolean)\n .join(\" \");\n\n if (src) {\n return (\n <img\n src={src}\n alt={alt}\n className={`${sizeStyles[size]} rounded-full object-cover ${className}`}\n {...props}\n />\n );\n }\n\n return (\n <span className={classes} role=\"img\" aria-label={alt || initials}>\n {initials?.slice(0, 2).toUpperCase()}\n </span>\n );\n}\n","import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport type BadgeVariant = \"default\" | \"primary\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: BadgeVariant;\n /** Badge content */\n children: ReactNode;\n}\n\nconst variantStyles: Record<BadgeVariant, string> = {\n default: \"bg-neutral-100 text-neutral-700\",\n primary: \"bg-primary-100 text-primary-700\",\n success: \"bg-green-100 text-green-700\",\n warning: \"bg-amber-100 text-amber-700\",\n error: \"bg-red-100 text-red-700\",\n info: \"bg-blue-100 text-blue-700\",\n};\n\nexport function Badge({\n variant = \"default\",\n children,\n className = \"\",\n ...props\n}: BadgeProps) {\n const baseStyles = [\n \"inline-flex items-center\",\n \"px-2 py-0.5\",\n \"text-caption font-medium\",\n \"rounded-full\",\n ].join(\" \");\n\n const classes = [baseStyles, variantStyles[variant], className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <span className={classes} {...props}>\n {children}\n </span>\n );\n}\n","import { forwardRef, type ButtonHTMLAttributes } from \"react\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"default\" | \"outline\" | \"destructive\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Size of the button */\n size?: ButtonSize;\n /** Full width button */\n fullWidth?: boolean;\n}\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: [\n \"bg-primary-500 text-white\",\n \"hover:bg-primary-600\",\n \"active:bg-primary-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n default: [\n \"bg-primary-500 text-white\",\n \"hover:bg-primary-600\",\n \"active:bg-primary-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n secondary: [\n \"bg-neutral-100 text-neutral-900\",\n \"border border-neutral-300\",\n \"hover:bg-neutral-200\",\n \"active:bg-neutral-300\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-100 disabled:text-neutral-500 disabled:border-neutral-200\",\n ].join(\" \"),\n outline: [\n \"bg-transparent text-neutral-900\",\n \"border border-neutral-300\",\n \"hover:bg-neutral-100\",\n \"active:bg-neutral-200\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:text-neutral-500 disabled:border-neutral-200\",\n ].join(\" \"),\n ghost: [\n \"bg-transparent text-neutral-700\",\n \"hover:bg-neutral-100\",\n \"active:bg-neutral-200\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:text-neutral-500 disabled:bg-transparent\",\n ].join(\" \"),\n danger: [\n \"bg-error text-white\",\n \"hover:bg-red-600\",\n \"active:bg-red-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n destructive: [\n \"bg-error text-white\",\n \"hover:bg-red-600\",\n \"active:bg-red-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n link: [\n \"bg-transparent text-primary-500 underline-offset-4\",\n \"hover:underline\",\n \"active:text-primary-700\",\n \"focus-visible:outline-none focus-visible:underline\",\n \"disabled:text-neutral-500 disabled:no-underline\",\n ].join(\" \"),\n};\n\nconst sizeStyles: Record<ButtonSize, string> = {\n sm: \"px-3 py-1.5 text-body-sm rounded-sm\",\n md: \"px-4 py-2 text-body rounded-md\",\n lg: \"px-6 py-3 text-h3 rounded-lg\",\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"md\",\n fullWidth = false,\n className = \"\",\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const baseStyles = [\n \"inline-flex items-center justify-center\",\n \"font-semibold\",\n \"transition-colors duration-fast\",\n \"cursor-pointer\",\n \"disabled:cursor-not-allowed\",\n ].join(\" \");\n\n const classes = [\n baseStyles,\n variantStyles[variant],\n sizeStyles[size],\n fullWidth ? \"w-full\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <button\n ref={ref}\n className={classes}\n disabled={disabled}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";","import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport type CardVariant = \"elevated\" | \"flat\";\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n variant?: CardVariant;\n children: ReactNode;\n}\n\nexport interface CardSectionProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nconst variantStyles: Record<CardVariant, string> = {\n elevated: \"bg-white shadow-md border border-neutral-200\",\n flat: \"bg-neutral-50 border border-neutral-200\",\n};\n\nexport function Card({\n variant = \"elevated\",\n children,\n className = \"\",\n ...props\n}: CardProps) {\n const baseStyles = \"rounded-lg overflow-hidden\";\n const classes = [baseStyles, variantStyles[variant], className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n}\n\nexport function CardHeader({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <div className={`px-4 py-3 border-b border-neutral-200 ${className}`} {...props}>\n {children}\n </div>\n );\n}\n\nexport function CardTitle({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <h3 className={`text-lg font-semibold text-neutral-900 ${className}`} {...props}>\n {children}\n </h3>\n );\n}\n\nexport function CardDescription({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <p className={`text-sm text-neutral-500 mt-1 ${className}`} {...props}>\n {children}\n </p>\n );\n}\n\nexport function CardContent({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <div className={`px-4 py-4 ${className}`} {...props}>\n {children}\n </div>\n );\n}\n\n/** @deprecated Use CardContent instead */\nexport const CardBody = CardContent;\n\nexport function CardFooter({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <div className={`px-4 py-3 border-t border-neutral-200 bg-neutral-50 ${className}`} {...props}>\n {children}\n </div>\n );\n}","import { forwardRef, type InputHTMLAttributes } from \"react\";\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n /** Label text */\n label?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ label, disabled, className = \"\", id, ...props }, ref) => {\n const checkboxId = id || props.name;\n\n const checkboxStyles = [\n \"w-4 h-4\",\n \"rounded-sm\",\n \"border border-neutral-300\",\n \"text-primary-500\",\n \"transition-colors duration-fast\",\n \"focus:outline-none focus:shadow-focus\",\n \"checked:bg-primary-500 checked:border-primary-500\",\n \"hover:border-neutral-500\",\n \"disabled:bg-neutral-100 disabled:border-neutral-300 disabled:cursor-not-allowed\",\n \"cursor-pointer\",\n \"accent-primary-500\",\n ].join(\" \");\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n disabled={disabled}\n className={checkboxStyles}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className={`text-body text-neutral-900 select-none ${\n disabled ? \"text-neutral-500 cursor-not-allowed\" : \"cursor-pointer\"\n }`}\n >\n {label}\n </label>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { forwardRef, useId, type InputHTMLAttributes } from \"react\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n /** Error message to display */\n error?: string;\n /** Label text */\n label?: string;\n /** Helper text below input */\n helperText?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ error, label, helperText, disabled, className = \"\", id, ...props }, ref) => {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n\n const baseStyles = [\n \"w-full px-3 py-2\",\n \"text-body text-neutral-900\",\n \"bg-white\",\n \"border rounded-md\",\n \"transition-colors duration-fast\",\n \"placeholder:text-neutral-500\",\n \"focus:outline-none focus:shadow-focus\",\n ].join(\" \");\n\n const stateStyles = error\n ? \"border-error focus:border-error\"\n : \"border-neutral-300 hover:border-neutral-500 focus:border-primary-500\";\n\n const disabledStyles = disabled\n ? \"bg-neutral-100 text-neutral-500 cursor-not-allowed hover:border-neutral-300\"\n : \"\";\n\n const classes = [baseStyles, stateStyles, disabledStyles, className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={inputId}\n className=\"text-body-sm font-medium text-neutral-700\"\n >\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n disabled={disabled}\n className={classes}\n aria-invalid={!!error}\n aria-describedby={error ? `${inputId}-error` : helperText ? `${inputId}-helper` : undefined}\n {...props}\n />\n {error && (\n <p id={`${inputId}-error`} className=\"text-body-sm text-error\">\n {error}\n </p>\n )}\n {!error && helperText && (\n <p id={`${inputId}-helper`} className=\"text-body-sm text-neutral-500\">\n {helperText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n","import type { HTMLAttributes } from \"react\";\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n /** Current value (0-100) */\n value: number;\n /** Maximum value */\n max?: number;\n /** Show percentage label */\n showLabel?: boolean;\n}\n\nexport function Progress({\n value,\n max = 100,\n showLabel = false,\n className = \"\",\n ...props\n}: ProgressProps) {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n\n return (\n <div className={`flex items-center gap-3 ${className}`} {...props}>\n <div\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n className=\"flex-1 h-2 bg-neutral-200 rounded-full overflow-hidden\"\n >\n <div\n className=\"h-full bg-primary-500 rounded-full transition-all duration-base\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n {showLabel && (\n <span className=\"text-body-sm text-neutral-500 min-w-[3ch]\">\n {Math.round(percentage)}%\n </span>\n )}\n </div>\n );\n}\n","import { forwardRef, type SelectHTMLAttributes } from \"react\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"children\"> {\n /** Options to display */\n options: SelectOption[];\n /** Placeholder text */\n placeholder?: string;\n /** Error message */\n error?: string;\n /** Label text */\n label?: string;\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ options, placeholder, error, label, disabled, className = \"\", id, ...props }, ref) => {\n const selectId = id || props.name;\n\n const baseStyles = [\n \"w-full px-3 py-2\",\n \"text-body text-neutral-900\",\n \"bg-white\",\n \"border rounded-md\",\n \"transition-colors duration-fast\",\n \"focus:outline-none focus:shadow-focus\",\n \"appearance-none\",\n \"bg-[url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cpath%20fill%3D%22%2378716C%22%20d%3D%22M6%208L2%204h8z%22%2F%3E%3C%2Fsvg%3E')]\",\n \"bg-[length:12px] bg-[right_12px_center] bg-no-repeat\",\n \"pr-10\",\n ].join(\" \");\n\n const stateStyles = error\n ? \"border-error focus:border-error\"\n : \"border-neutral-300 hover:border-neutral-500 focus:border-primary-500\";\n\n const disabledStyles = disabled\n ? \"bg-neutral-100 text-neutral-500 cursor-not-allowed hover:border-neutral-300\"\n : \"cursor-pointer\";\n\n const classes = [baseStyles, stateStyles, disabledStyles, className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={selectId}\n className=\"text-body-sm font-medium text-neutral-700\"\n >\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n disabled={disabled}\n className={classes}\n aria-invalid={!!error}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.label}\n </option>\n ))}\n </select>\n {error && (\n <p className=\"text-body-sm text-error\">{error}</p>\n )}\n </div>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n","import type { HTMLAttributes, TdHTMLAttributes, ThHTMLAttributes } from \"react\";\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {}\nexport interface TableHeaderProps extends HTMLAttributes<HTMLTableSectionElement> {}\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {}\nexport interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {}\nexport interface TableHeadProps extends ThHTMLAttributes<HTMLTableCellElement> {}\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {}\n\nexport function Table({ className = \"\", children, ...props }: TableProps) {\n return (\n <div className=\"w-full overflow-auto\">\n <table\n className={`w-full border-collapse text-body ${className}`}\n {...props}\n >\n {children}\n </table>\n </div>\n );\n}\n\nexport function TableHeader({ className = \"\", children, ...props }: TableHeaderProps) {\n return (\n <thead className={`bg-neutral-50 ${className}`} {...props}>\n {children}\n </thead>\n );\n}\n\nexport function TableBody({ className = \"\", children, ...props }: TableBodyProps) {\n return (\n <tbody className={`divide-y divide-neutral-200 ${className}`} {...props}>\n {children}\n </tbody>\n );\n}\n\nexport function TableRow({ className = \"\", children, ...props }: TableRowProps) {\n return (\n <tr\n className={`border-b border-neutral-200 hover:bg-neutral-50 transition-colors ${className}`}\n {...props}\n >\n {children}\n </tr>\n );\n}\n\nexport function TableHead({ className = \"\", children, ...props }: TableHeadProps) {\n return (\n <th\n className={`px-4 py-3 text-left text-body-sm font-semibold text-neutral-700 ${className}`}\n {...props}\n >\n {children}\n </th>\n );\n}\n\nexport function TableCell({ className = \"\", children, ...props }: TableCellProps) {\n return (\n <td\n className={`px-4 py-3 text-neutral-900 ${className}`}\n {...props}\n >\n {children}\n </td>\n );\n}\n","import {\n createContext,\n useContext,\n useState,\n type ReactNode,\n type HTMLAttributes,\n} from \"react\";\n\ninterface TabsContextValue {\n activeTab: string;\n setActiveTab: (value: string) => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error(\"Tabs components must be used within a Tabs provider\");\n }\n return context;\n}\n\nexport interface TabsProps extends HTMLAttributes<HTMLDivElement> {\n /** Default active tab value */\n defaultValue: string;\n /** Controlled active tab value */\n value?: string;\n /** Callback when tab changes */\n onValueChange?: (value: string) => void;\n children: ReactNode;\n}\n\nexport interface TabsListProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport interface TabsTriggerProps extends HTMLAttributes<HTMLButtonElement> {\n /** Value that identifies this tab */\n value: string;\n children: ReactNode;\n}\n\nexport interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {\n /** Value that identifies this content */\n value: string;\n children: ReactNode;\n}\n\nexport function Tabs({\n defaultValue,\n value,\n onValueChange,\n children,\n className = \"\",\n ...props\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const activeTab = value ?? internalValue;\n\n const setActiveTab = (newValue: string) => {\n if (!value) {\n setInternalValue(newValue);\n }\n onValueChange?.(newValue);\n };\n\n return (\n <TabsContext.Provider value={{ activeTab, setActiveTab }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ children, className = \"\", ...props }: TabsListProps) {\n return (\n <div\n role=\"tablist\"\n className={`flex border-b border-neutral-200 ${className}`}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function TabsTrigger({\n value,\n children,\n className = \"\",\n ...props\n}: TabsTriggerProps) {\n const { activeTab, setActiveTab } = useTabsContext();\n const isActive = activeTab === value;\n\n const baseStyles = [\n \"px-4 py-2\",\n \"text-body font-medium\",\n \"border-b-2 -mb-px\",\n \"transition-colors duration-fast\",\n \"focus:outline-none focus-visible:shadow-focus\",\n ].join(\" \");\n\n const stateStyles = isActive\n ? \"border-primary-500 text-primary-600\"\n : \"border-transparent text-neutral-500 hover:text-neutral-700 hover:border-neutral-300\";\n\n return (\n <button\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => setActiveTab(value)}\n className={`${baseStyles} ${stateStyles} ${className}`}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TabsContent({\n value,\n children,\n className = \"\",\n ...props\n}: TabsContentProps) {\n const { activeTab } = useTabsContext();\n\n if (activeTab !== value) {\n return null;\n }\n\n return (\n <div role=\"tabpanel\" className={`py-4 ${className}`} {...props}>\n {children}\n </div>\n );\n}\n","import { forwardRef, type InputHTMLAttributes } from \"react\";\n\nexport interface ToggleProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n /** Label text */\n label?: string;\n}\n\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n ({ label, disabled, checked, className = \"\", id, ...props }, ref) => {\n const toggleId = id || props.name;\n\n const trackStyles = [\n \"relative inline-flex\",\n \"w-10 h-6\",\n \"rounded-full\",\n \"transition-colors duration-fast\",\n \"cursor-pointer\",\n checked ? \"bg-primary-500\" : \"bg-neutral-300\",\n disabled ? \"opacity-50 cursor-not-allowed\" : \"\",\n ].join(\" \");\n\n const thumbStyles = [\n \"absolute top-1 left-1\",\n \"w-4 h-4\",\n \"bg-white rounded-full\",\n \"shadow-sm\",\n \"transition-transform duration-fast\",\n checked ? \"translate-x-4\" : \"translate-x-0\",\n ].join(\" \");\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <label htmlFor={toggleId} className={trackStyles}>\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n id={toggleId}\n disabled={disabled}\n checked={checked}\n className=\"sr-only\"\n aria-checked={checked}\n {...props}\n />\n <span className={thumbStyles} />\n </label>\n {label && (\n <label\n htmlFor={toggleId}\n className={`text-body text-neutral-900 select-none ${\n disabled ? \"text-neutral-500 cursor-not-allowed\" : \"cursor-pointer\"\n }`}\n >\n {label}\n </label>\n )}\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n","// Components\nexport * from \"./Alert\";\nexport * from \"./Avatar\";\nexport * from \"./Badge\";\nexport * from \"./Button\";\nexport * from \"./Card\";\nexport * from \"./Checkbox\";\nexport * from \"./Input\";\nexport * from \"./Progress\";\nexport * from \"./Select\";\nexport * from \"./Table\";\nexport * from \"./Tabs\";\nexport * from \"./Toggle\";\n\n// Re-export tokens for convenience\nexport * from \"@akanaka/tokens\";\n"],"mappings":"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","names":["jsx","jsx","variantStyles","jsx","variantStyles","sizeStyles","jsx","variantStyles","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsx","forwardRef","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../src/Alert/Alert.tsx","../src/Avatar/Avatar.tsx","../src/Badge/Badge.tsx","../src/Button/Button.tsx","../src/Card/Card.tsx","../src/Checkbox/Checkbox.tsx","../src/Input/Input.tsx","../src/Label/Label.tsx","../src/Progress/Progress.tsx","../src/Select/Select.tsx","../src/Table/Table.tsx","../src/Tabs/Tabs.tsx","../src/Toggle/Toggle.tsx","../src/index.ts"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport type AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport interface AlertProps extends HTMLAttributes<HTMLDivElement> {\n /** Visual style variant */\n variant?: AlertVariant;\n /** Alert title */\n title?: string;\n /** Alert content */\n children: ReactNode;\n /** Dismiss handler */\n onDismiss?: () => void;\n}\n\nconst variantStyles: Record<AlertVariant, { container: string; icon: string }> = {\n info: {\n container: \"bg-blue-50 border-blue-200 text-blue-800\",\n icon: \"text-blue-500\",\n },\n success: {\n container: \"bg-green-50 border-green-200 text-green-800\",\n icon: \"text-green-500\",\n },\n warning: {\n container: \"bg-amber-50 border-amber-200 text-amber-800\",\n icon: \"text-amber-500\",\n },\n error: {\n container: \"bg-red-50 border-red-200 text-red-800\",\n icon: \"text-red-500\",\n },\n};\n\nconst icons: Record<AlertVariant, ReactNode> = {\n info: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clipRule=\"evenodd\" />\n </svg>\n ),\n success: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clipRule=\"evenodd\" />\n </svg>\n ),\n warning: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n ),\n error: (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clipRule=\"evenodd\" />\n </svg>\n ),\n};\n\nexport function Alert({\n variant = \"info\",\n title,\n children,\n onDismiss,\n className = \"\",\n ...props\n}: AlertProps) {\n const baseStyles = \"flex gap-3 p-4 rounded-lg border\";\n const styles = variantStyles[variant];\n const classes = [baseStyles, styles.container, className].filter(Boolean).join(\" \");\n\n return (\n <div role=\"alert\" className={classes} {...props}>\n <span className={`flex-shrink-0 ${styles.icon}`}>{icons[variant]}</span>\n <div className=\"flex-1\">\n {title && <p className=\"font-semibold mb-1\">{title}</p>}\n <div className=\"text-body-sm\">{children}</div>\n </div>\n {onDismiss && (\n <button\n onClick={onDismiss}\n className=\"flex-shrink-0 opacity-70 hover:opacity-100 transition-opacity\"\n aria-label=\"Dismiss\"\n >\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clipRule=\"evenodd\" />\n </svg>\n </button>\n )}\n </div>\n );\n}\n","import type { ImgHTMLAttributes } from \"react\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface AvatarProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, \"size\"> {\n /** Size of the avatar */\n size?: AvatarSize;\n /** Fallback initials when no image */\n initials?: string;\n /** Image source */\n src?: string;\n /** Alt text */\n alt?: string;\n}\n\nconst sizeStyles: Record<AvatarSize, string> = {\n sm: \"w-8 h-8 text-caption\",\n md: \"w-10 h-10 text-body-sm\",\n lg: \"w-12 h-12 text-body\",\n xl: \"w-16 h-16 text-h3\",\n};\n\nexport function Avatar({\n size = \"md\",\n initials,\n src,\n alt = \"\",\n className = \"\",\n ...props\n}: AvatarProps) {\n const baseStyles = [\n \"inline-flex items-center justify-center\",\n \"rounded-full\",\n \"bg-primary-100 text-primary-700\",\n \"font-semibold\",\n \"overflow-hidden\",\n \"flex-shrink-0\",\n ].join(\" \");\n\n const classes = [baseStyles, sizeStyles[size], className]\n .filter(Boolean)\n .join(\" \");\n\n if (src) {\n return (\n <img\n src={src}\n alt={alt}\n className={`${sizeStyles[size]} rounded-full object-cover ${className}`}\n {...props}\n />\n );\n }\n\n return (\n <span className={classes} role=\"img\" aria-label={alt || initials}>\n {initials?.slice(0, 2).toUpperCase()}\n </span>\n );\n}\n","import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport type BadgeVariant = \"default\" | \"primary\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: BadgeVariant;\n /** Badge content */\n children: ReactNode;\n}\n\nconst variantStyles: Record<BadgeVariant, string> = {\n default: \"bg-neutral-100 text-neutral-700\",\n primary: \"bg-primary-100 text-primary-700\",\n success: \"bg-green-100 text-green-700\",\n warning: \"bg-amber-100 text-amber-700\",\n error: \"bg-red-100 text-red-700\",\n info: \"bg-blue-100 text-blue-700\",\n};\n\nexport function Badge({\n variant = \"default\",\n children,\n className = \"\",\n ...props\n}: BadgeProps) {\n const baseStyles = [\n \"inline-flex items-center\",\n \"px-2 py-0.5\",\n \"text-caption font-medium\",\n \"rounded-full\",\n ].join(\" \");\n\n const classes = [baseStyles, variantStyles[variant], className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <span className={classes} {...props}>\n {children}\n </span>\n );\n}\n","import { forwardRef, type ButtonHTMLAttributes } from \"react\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"default\" | \"outline\" | \"destructive\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Size of the button */\n size?: ButtonSize;\n /** Full width button */\n fullWidth?: boolean;\n}\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: [\n \"bg-primary-500 text-white\",\n \"hover:bg-primary-600\",\n \"active:bg-primary-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n default: [\n \"bg-primary-500 text-white\",\n \"hover:bg-primary-600\",\n \"active:bg-primary-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n secondary: [\n \"bg-neutral-100 text-neutral-900\",\n \"border border-neutral-300\",\n \"hover:bg-neutral-200\",\n \"active:bg-neutral-300\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-100 disabled:text-neutral-500 disabled:border-neutral-200\",\n ].join(\" \"),\n outline: [\n \"bg-transparent text-neutral-900\",\n \"border border-neutral-300\",\n \"hover:bg-neutral-100\",\n \"active:bg-neutral-200\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:text-neutral-500 disabled:border-neutral-200\",\n ].join(\" \"),\n ghost: [\n \"bg-transparent text-neutral-700\",\n \"hover:bg-neutral-100\",\n \"active:bg-neutral-200\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:text-neutral-500 disabled:bg-transparent\",\n ].join(\" \"),\n danger: [\n \"bg-error text-white\",\n \"hover:bg-red-600\",\n \"active:bg-red-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n destructive: [\n \"bg-error text-white\",\n \"hover:bg-red-600\",\n \"active:bg-red-700\",\n \"focus-visible:shadow-focus focus-visible:outline-none\",\n \"disabled:bg-neutral-300 disabled:text-neutral-500\",\n ].join(\" \"),\n link: [\n \"bg-transparent text-primary-500 underline-offset-4\",\n \"hover:underline\",\n \"active:text-primary-700\",\n \"focus-visible:outline-none focus-visible:underline\",\n \"disabled:text-neutral-500 disabled:no-underline\",\n ].join(\" \"),\n};\n\nconst sizeStyles: Record<ButtonSize, string> = {\n sm: \"px-3 py-1.5 text-body-sm rounded-sm\",\n md: \"px-4 py-2 text-body rounded-md\",\n lg: \"px-6 py-3 text-h3 rounded-lg\",\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"md\",\n fullWidth = false,\n className = \"\",\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const baseStyles = [\n \"inline-flex items-center justify-center\",\n \"font-semibold\",\n \"transition-colors duration-fast\",\n \"cursor-pointer\",\n \"disabled:cursor-not-allowed\",\n ].join(\" \");\n\n const classes = [\n baseStyles,\n variantStyles[variant],\n sizeStyles[size],\n fullWidth ? \"w-full\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <button\n ref={ref}\n className={classes}\n disabled={disabled}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";","import type { HTMLAttributes, ReactNode } from \"react\";\n\nexport type CardVariant = \"elevated\" | \"flat\";\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n variant?: CardVariant;\n children: ReactNode;\n}\n\nexport interface CardSectionProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nconst variantStyles: Record<CardVariant, string> = {\n elevated: \"bg-white shadow-md border border-neutral-200\",\n flat: \"bg-neutral-50 border border-neutral-200\",\n};\n\nexport function Card({\n variant = \"elevated\",\n children,\n className = \"\",\n ...props\n}: CardProps) {\n const baseStyles = \"rounded-lg overflow-hidden\";\n const classes = [baseStyles, variantStyles[variant], className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n}\n\nexport function CardHeader({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <div className={`px-4 py-3 border-b border-neutral-200 ${className}`} {...props}>\n {children}\n </div>\n );\n}\n\nexport function CardTitle({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <h3 className={`text-lg font-semibold text-neutral-900 ${className}`} {...props}>\n {children}\n </h3>\n );\n}\n\nexport function CardDescription({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <p className={`text-sm text-neutral-500 mt-1 ${className}`} {...props}>\n {children}\n </p>\n );\n}\n\nexport function CardContent({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <div className={`px-4 py-4 ${className}`} {...props}>\n {children}\n </div>\n );\n}\n\n/** @deprecated Use CardContent instead */\nexport const CardBody = CardContent;\n\nexport function CardFooter({ children, className = \"\", ...props }: CardSectionProps) {\n return (\n <div className={`px-4 py-3 border-t border-neutral-200 bg-neutral-50 ${className}`} {...props}>\n {children}\n </div>\n );\n}","import { forwardRef, type InputHTMLAttributes } from \"react\";\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n /** Label text */\n label?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ label, disabled, className = \"\", id, ...props }, ref) => {\n const checkboxId = id || props.name;\n\n const checkboxStyles = [\n \"w-4 h-4\",\n \"rounded-sm\",\n \"border border-neutral-300\",\n \"text-primary-500\",\n \"transition-colors duration-fast\",\n \"focus:outline-none focus:shadow-focus\",\n \"checked:bg-primary-500 checked:border-primary-500\",\n \"hover:border-neutral-500\",\n \"disabled:bg-neutral-100 disabled:border-neutral-300 disabled:cursor-not-allowed\",\n \"cursor-pointer\",\n \"accent-primary-500\",\n ].join(\" \");\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n disabled={disabled}\n className={checkboxStyles}\n {...props}\n />\n {label && (\n <label\n htmlFor={checkboxId}\n className={`text-body text-neutral-900 select-none ${\n disabled ? \"text-neutral-500 cursor-not-allowed\" : \"cursor-pointer\"\n }`}\n >\n {label}\n </label>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import { forwardRef, useId, type InputHTMLAttributes } from \"react\";\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n /** Size of the input */\n size?: InputSize;\n /** Error message to display */\n error?: string;\n /** Label text */\n label?: string;\n /** Helper text below input */\n helperText?: string;\n}\n\nconst sizeStyles: Record<InputSize, string> = {\n sm: \"px-2 py-1 text-body-sm rounded-sm\",\n md: \"px-3 py-2 text-body rounded-md\",\n lg: \"px-4 py-3 text-body rounded-lg\",\n};\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ size = \"md\", error, label, helperText, disabled, className = \"\", id, ...props }, ref) => {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n\n const baseStyles = [\n \"w-full\",\n \"text-neutral-900\",\n \"bg-white\",\n \"border\",\n \"transition-colors duration-fast\",\n \"placeholder:text-neutral-500\",\n \"focus:outline-none focus:shadow-focus\",\n ].join(\" \");\n\n const stateStyles = error\n ? \"border-error focus:border-error\"\n : \"border-neutral-300 hover:border-neutral-500 focus:border-primary-500\";\n\n const disabledStyles = disabled\n ? \"bg-neutral-100 text-neutral-500 cursor-not-allowed hover:border-neutral-300\"\n : \"\";\n\n const classes = [baseStyles, sizeStyles[size], stateStyles, disabledStyles, className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={inputId}\n className=\"text-body-sm font-medium text-neutral-700\"\n >\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n disabled={disabled}\n className={classes}\n aria-invalid={!!error}\n aria-describedby={error ? `${inputId}-error` : helperText ? `${inputId}-helper` : undefined}\n {...props}\n />\n {error && (\n <p id={`${inputId}-error`} className=\"text-body-sm text-error\">\n {error}\n </p>\n )}\n {!error && helperText && (\n <p id={`${inputId}-helper`} className=\"text-body-sm text-neutral-500\">\n {helperText}\n </p>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n","import { forwardRef, type LabelHTMLAttributes } from \"react\";\n\nexport type LabelSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n /** Size of the label */\n size?: LabelSize;\n /** Show error styling (red text) */\n error?: boolean;\n /** Show required indicator (red asterisk) */\n required?: boolean;\n}\n\nconst sizeStyles: Record<LabelSize, string> = {\n sm: \"text-caption\",\n md: \"text-body-sm\",\n lg: \"text-body\",\n};\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(\n (\n {\n size = \"md\",\n error = false,\n required = false,\n className = \"\",\n children,\n ...props\n },\n ref\n ) => {\n const baseStyles = \"font-medium\";\n const colorStyles = error ? \"text-error\" : \"text-neutral-700\";\n\n const classes = [baseStyles, sizeStyles[size], colorStyles, className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <label ref={ref} className={classes} {...props}>\n {children}\n {required && <span className=\"text-error ml-1\">*</span>}\n </label>\n );\n }\n);\n\nLabel.displayName = \"Label\";\n","import type { HTMLAttributes } from \"react\";\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n /** Current value (0-100) */\n value: number;\n /** Maximum value */\n max?: number;\n /** Show percentage label */\n showLabel?: boolean;\n}\n\nexport function Progress({\n value,\n max = 100,\n showLabel = false,\n className = \"\",\n ...props\n}: ProgressProps) {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n\n return (\n <div className={`flex items-center gap-3 ${className}`} {...props}>\n <div\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n className=\"flex-1 h-2 bg-neutral-200 rounded-full overflow-hidden\"\n >\n <div\n className=\"h-full bg-primary-500 rounded-full transition-all duration-base\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n {showLabel && (\n <span className=\"text-body-sm text-neutral-500 min-w-[3ch]\">\n {Math.round(percentage)}%\n </span>\n )}\n </div>\n );\n}\n","import { forwardRef, type SelectHTMLAttributes } from \"react\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, \"children\"> {\n /** Options to display */\n options: SelectOption[];\n /** Placeholder text */\n placeholder?: string;\n /** Error message */\n error?: string;\n /** Label text */\n label?: string;\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ options, placeholder, error, label, disabled, className = \"\", id, ...props }, ref) => {\n const selectId = id || props.name;\n\n const baseStyles = [\n \"w-full px-3 py-2\",\n \"text-body text-neutral-900\",\n \"bg-white\",\n \"border rounded-md\",\n \"transition-colors duration-fast\",\n \"focus:outline-none focus:shadow-focus\",\n \"appearance-none\",\n \"bg-[url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cpath%20fill%3D%22%2378716C%22%20d%3D%22M6%208L2%204h8z%22%2F%3E%3C%2Fsvg%3E')]\",\n \"bg-[length:12px] bg-[right_12px_center] bg-no-repeat\",\n \"pr-10\",\n ].join(\" \");\n\n const stateStyles = error\n ? \"border-error focus:border-error\"\n : \"border-neutral-300 hover:border-neutral-500 focus:border-primary-500\";\n\n const disabledStyles = disabled\n ? \"bg-neutral-100 text-neutral-500 cursor-not-allowed hover:border-neutral-300\"\n : \"cursor-pointer\";\n\n const classes = [baseStyles, stateStyles, disabledStyles, className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className=\"flex flex-col gap-1\">\n {label && (\n <label\n htmlFor={selectId}\n className=\"text-body-sm font-medium text-neutral-700\"\n >\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n disabled={disabled}\n className={classes}\n aria-invalid={!!error}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options.map((option) => (\n <option\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.label}\n </option>\n ))}\n </select>\n {error && (\n <p className=\"text-body-sm text-error\">{error}</p>\n )}\n </div>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n","import type { HTMLAttributes, TdHTMLAttributes, ThHTMLAttributes } from \"react\";\n\nexport interface TableProps extends HTMLAttributes<HTMLTableElement> {}\nexport interface TableHeaderProps extends HTMLAttributes<HTMLTableSectionElement> {}\nexport interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {}\nexport interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {}\nexport interface TableHeadProps extends ThHTMLAttributes<HTMLTableCellElement> {}\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {}\n\nexport function Table({ className = \"\", children, ...props }: TableProps) {\n return (\n <div className=\"w-full overflow-auto\">\n <table\n className={`w-full border-collapse text-body ${className}`}\n {...props}\n >\n {children}\n </table>\n </div>\n );\n}\n\nexport function TableHeader({ className = \"\", children, ...props }: TableHeaderProps) {\n return (\n <thead className={`bg-neutral-50 ${className}`} {...props}>\n {children}\n </thead>\n );\n}\n\nexport function TableBody({ className = \"\", children, ...props }: TableBodyProps) {\n return (\n <tbody className={`divide-y divide-neutral-200 ${className}`} {...props}>\n {children}\n </tbody>\n );\n}\n\nexport function TableRow({ className = \"\", children, ...props }: TableRowProps) {\n return (\n <tr\n className={`border-b border-neutral-200 hover:bg-neutral-50 transition-colors ${className}`}\n {...props}\n >\n {children}\n </tr>\n );\n}\n\nexport function TableHead({ className = \"\", children, ...props }: TableHeadProps) {\n return (\n <th\n className={`px-4 py-3 text-left text-body-sm font-semibold text-neutral-700 ${className}`}\n {...props}\n >\n {children}\n </th>\n );\n}\n\nexport function TableCell({ className = \"\", children, ...props }: TableCellProps) {\n return (\n <td\n className={`px-4 py-3 text-neutral-900 ${className}`}\n {...props}\n >\n {children}\n </td>\n );\n}\n","import {\n createContext,\n useContext,\n useState,\n type ReactNode,\n type HTMLAttributes,\n} from \"react\";\n\ninterface TabsContextValue {\n activeTab: string;\n setActiveTab: (value: string) => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error(\"Tabs components must be used within a Tabs provider\");\n }\n return context;\n}\n\nexport interface TabsProps extends HTMLAttributes<HTMLDivElement> {\n /** Default active tab value */\n defaultValue: string;\n /** Controlled active tab value */\n value?: string;\n /** Callback when tab changes */\n onValueChange?: (value: string) => void;\n children: ReactNode;\n}\n\nexport interface TabsListProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport interface TabsTriggerProps extends HTMLAttributes<HTMLButtonElement> {\n /** Value that identifies this tab */\n value: string;\n children: ReactNode;\n}\n\nexport interface TabsContentProps extends HTMLAttributes<HTMLDivElement> {\n /** Value that identifies this content */\n value: string;\n children: ReactNode;\n}\n\nexport function Tabs({\n defaultValue,\n value,\n onValueChange,\n children,\n className = \"\",\n ...props\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const activeTab = value ?? internalValue;\n\n const setActiveTab = (newValue: string) => {\n if (!value) {\n setInternalValue(newValue);\n }\n onValueChange?.(newValue);\n };\n\n return (\n <TabsContext.Provider value={{ activeTab, setActiveTab }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport function TabsList({ children, className = \"\", ...props }: TabsListProps) {\n return (\n <div\n role=\"tablist\"\n className={`flex border-b border-neutral-200 ${className}`}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport function TabsTrigger({\n value,\n children,\n className = \"\",\n ...props\n}: TabsTriggerProps) {\n const { activeTab, setActiveTab } = useTabsContext();\n const isActive = activeTab === value;\n\n const baseStyles = [\n \"px-4 py-2\",\n \"text-body font-medium\",\n \"border-b-2 -mb-px\",\n \"transition-colors duration-fast\",\n \"focus:outline-none focus-visible:shadow-focus\",\n ].join(\" \");\n\n const stateStyles = isActive\n ? \"border-primary-500 text-primary-600\"\n : \"border-transparent text-neutral-500 hover:text-neutral-700 hover:border-neutral-300\";\n\n return (\n <button\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => setActiveTab(value)}\n className={`${baseStyles} ${stateStyles} ${className}`}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TabsContent({\n value,\n children,\n className = \"\",\n ...props\n}: TabsContentProps) {\n const { activeTab } = useTabsContext();\n\n if (activeTab !== value) {\n return null;\n }\n\n return (\n <div role=\"tabpanel\" className={`py-4 ${className}`} {...props}>\n {children}\n </div>\n );\n}\n","import { forwardRef, type InputHTMLAttributes } from \"react\";\n\nexport interface ToggleProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n /** Label text */\n label?: string;\n}\n\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n ({ label, disabled, checked, className = \"\", id, ...props }, ref) => {\n const toggleId = id || props.name;\n\n const trackStyles = [\n \"relative inline-flex\",\n \"w-10 h-6\",\n \"rounded-full\",\n \"transition-colors duration-fast\",\n \"cursor-pointer\",\n checked ? \"bg-primary-500\" : \"bg-neutral-300\",\n disabled ? \"opacity-50 cursor-not-allowed\" : \"\",\n ].join(\" \");\n\n const thumbStyles = [\n \"absolute top-1 left-1\",\n \"w-4 h-4\",\n \"bg-white rounded-full\",\n \"shadow-sm\",\n \"transition-transform duration-fast\",\n checked ? \"translate-x-4\" : \"translate-x-0\",\n ].join(\" \");\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <label htmlFor={toggleId} className={trackStyles}>\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n id={toggleId}\n disabled={disabled}\n checked={checked}\n className=\"sr-only\"\n aria-checked={checked}\n {...props}\n />\n <span className={thumbStyles} />\n </label>\n {label && (\n <label\n htmlFor={toggleId}\n className={`text-body text-neutral-900 select-none ${\n disabled ? \"text-neutral-500 cursor-not-allowed\" : \"cursor-pointer\"\n }`}\n >\n {label}\n </label>\n )}\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n","// Components\nexport * from \"./Alert\";\nexport * from \"./Avatar\";\nexport * from \"./Badge\";\nexport * from \"./Button\";\nexport * from \"./Card\";\nexport * from \"./Checkbox\";\nexport * from \"./Input\";\nexport * from \"./Label\";\nexport * from \"./Progress\";\nexport * from \"./Select\";\nexport * from \"./Table\";\nexport * from \"./Tabs\";\nexport * from \"./Toggle\";\n\n// Re-export tokens for convenience\nexport * from \"@akanaka/tokens\";\n"],"mappings":"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","names":["jsx","jsx","variantStyles","jsx","variantStyles","sizeStyles","jsx","variantStyles","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","sizeStyles","forwardRef","jsx","jsxs","sizeStyles","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsx","forwardRef","jsx","jsxs"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanaka/components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "React components for the design system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"tailwindcss"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@akanaka/tokens": "0.
|
|
40
|
+
"@akanaka/tokens": "0.3.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": "^18.0.0 || ^19.0.0",
|