eglador-ui-react 0.1.0-alpha.6 → 0.1.0-alpha.8

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/README.md CHANGED
@@ -26,7 +26,7 @@ Add the following to your global stylesheet (e.g. `app/globals.css`) so Tailwind
26
26
  ## Usage
27
27
 
28
28
  ```tsx
29
- import { Button, ButtonGroup, Checkbox, CheckboxGroup, Input, InputGroup, Dropdown, Select, MultiSelect, Tabs, Accordion, Modal, MediaImage, MediaVideo, Tooltip, Breadcrumb, Typewriter, Carousel } from "eglador-ui-react";
29
+ import { Button, ButtonGroup, Checkbox, CheckboxGroup, Input, InputGroup, Dropdown, Select, MultiSelect, Tabs, Accordion, Modal, MediaImage, MediaVideo, Tooltip, Breadcrumb, Typewriter, Carousel, Table } from "eglador-ui-react";
30
30
  ```
31
31
 
32
32
  ## Components
@@ -62,6 +62,12 @@ import { Button, ButtonGroup, Checkbox, CheckboxGroup, Input, InputGroup, Dropdo
62
62
  | **Breadcrumb.Item** | `href`, `isActive`, `className`, `children` |
63
63
  | **Typewriter** | `texts`, `typingSpeed`, `deletingSpeed`, `pauseDuration`, `deleteMode`, `loop`, `startDelay`, `cursor`, `cursorStyle`, `onComplete`, `className` |
64
64
  | **Carousel** | `slides`, `slidesPerView`, `align`, `containScroll`, `dragFree`, `loop`, `axis`, `direction`, `plugins`, `showNavigation`, `showPagination`, `scrollToIndex`, `breakpoints`, `className` |
65
+ | **Table** | `size`, `variant`, `shape`, `fullWidth`, `scrollX`, `scrollY`, `maxHeight`, `className` |
66
+ | **Table.Head** | `className`, `children` |
67
+ | **Table.Body** | `className`, `children` |
68
+ | **Table.Row** | `onClick`, `isActive`, `className`, `children` |
69
+ | **Table.Header** | `align`, `width`, `className`, `children` |
70
+ | **Table.Cell** | `align`, `truncate`, `className`, `children` |
65
71
 
66
72
  ## Development
67
73
 
@@ -79,7 +85,7 @@ Publishing is automated via GitHub Actions. When a GitHub Release is created, th
79
85
 
80
86
  1. Update `version` in `package.json`
81
87
  2. Commit and push
82
- 3. Create a GitHub Release with a matching tag (e.g. `v0.1.0-alpha.6`)
88
+ 3. Create a GitHub Release with a matching tag (e.g. `v0.1.0-alpha.8`)
83
89
 
84
90
  ## Compatibility
85
91
 
package/dist/index.d.mts CHANGED
@@ -347,6 +347,60 @@ interface SelectProps {
347
347
  }
348
348
  declare function Select({ value, onChange, options, placeholder, className, disabled, autoFlip, maxHeight, }: SelectProps): react_jsx_runtime.JSX.Element;
349
349
 
350
+ type TableSize = "xs" | "sm" | "md";
351
+ type TableVariant = "default" | "bordered" | "striped";
352
+ type TableShape = "square" | "rounded";
353
+ interface TableProps {
354
+ size?: TableSize;
355
+ variant?: TableVariant;
356
+ shape?: TableShape;
357
+ fullWidth?: boolean;
358
+ scrollX?: boolean;
359
+ scrollY?: boolean;
360
+ maxHeight?: string;
361
+ className?: string;
362
+ children: React.ReactNode;
363
+ }
364
+ interface TableHeadProps {
365
+ className?: string;
366
+ children: React.ReactNode;
367
+ }
368
+ interface TableBodyProps {
369
+ className?: string;
370
+ children: React.ReactNode;
371
+ }
372
+ interface TableRowProps {
373
+ onClick?: () => void;
374
+ isActive?: boolean;
375
+ className?: string;
376
+ children: React.ReactNode;
377
+ }
378
+ interface TableHeaderProps {
379
+ align?: "left" | "center" | "right";
380
+ width?: string;
381
+ className?: string;
382
+ children?: React.ReactNode;
383
+ }
384
+ interface TableCellProps {
385
+ align?: "left" | "center" | "right";
386
+ truncate?: boolean;
387
+ className?: string;
388
+ children?: React.ReactNode;
389
+ }
390
+ declare function TableRoot({ size, variant, shape, fullWidth, scrollX, scrollY, maxHeight, className, children, }: TableProps): react_jsx_runtime.JSX.Element;
391
+ declare function TableHead({ className, children }: TableHeadProps): react_jsx_runtime.JSX.Element;
392
+ declare function TableBody({ className, children }: TableBodyProps): react_jsx_runtime.JSX.Element;
393
+ declare function TableRow({ onClick, isActive, className, children }: TableRowProps): react_jsx_runtime.JSX.Element;
394
+ declare function TableHeader({ align, width, className, children }: TableHeaderProps): react_jsx_runtime.JSX.Element;
395
+ declare function TableCell({ align, truncate, className, children }: TableCellProps): react_jsx_runtime.JSX.Element;
396
+ declare const Table: typeof TableRoot & {
397
+ Head: typeof TableHead;
398
+ Body: typeof TableBody;
399
+ Row: typeof TableRow;
400
+ Header: typeof TableHeader;
401
+ Cell: typeof TableCell;
402
+ };
403
+
350
404
  type TabsVariant = "default" | "bordered" | "segmented";
351
405
  type TabsSize = "xs" | "sm" | "md";
352
406
  interface TabsProps {
@@ -412,4 +466,4 @@ declare function Typewriter({ texts, typingSpeed, deletingSpeed, pauseDuration,
412
466
 
413
467
  declare function cn(...inputs: ClassValue[]): string;
414
468
 
415
- export { Accordion, type AccordionProps, type AccordionSize, type AccordionVariant, Breadcrumb, type BreadcrumbItemProps, type BreadcrumbProps, Button, type ButtonColor, ButtonGroup, type ButtonGroupProps, type ButtonGroupVariant, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, Carousel, type CarouselBreakpointOptions, type CarouselProps, Checkbox, type CheckboxColor, CheckboxGroup, type CheckboxGroupProps, type CheckboxGroupVariant, type CheckboxProps, type CheckboxSize, type CheckboxVariant, Dropdown, type DropdownAlign, type DropdownContentProps, type DropdownProps, type DropdownSide, type DropdownTriggerProps, type DropdownWidth, Input, type InputColor, InputGroup, type InputGroupProps, type InputGroupVariant, type InputProps, type InputShape, type InputSize, type InputState, type InputVariant, MediaImage, type MediaImageProps, type MediaImageRatio, type MediaImageShape, type MediaImageSize, MediaVideo, type MediaVideoProps, type MediaVideoRatio, type MediaVideoShape, type MediaVideoSize, Modal, type ModalBodyProps, type ModalContentProps, type ModalFooterProps, type ModalHeaderProps, type ModalProps, type ModalSize, type ModalTriggerProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, Select, type SelectOption, type SelectProps, Tabs, type TabsContentProps, type TabsListProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, Tooltip, type TooltipPosition, type TooltipProps, Typewriter, type TypewriterProps, cn };
469
+ export { Accordion, type AccordionProps, type AccordionSize, type AccordionVariant, Breadcrumb, type BreadcrumbItemProps, type BreadcrumbProps, Button, type ButtonColor, ButtonGroup, type ButtonGroupProps, type ButtonGroupVariant, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, Carousel, type CarouselBreakpointOptions, type CarouselProps, Checkbox, type CheckboxColor, CheckboxGroup, type CheckboxGroupProps, type CheckboxGroupVariant, type CheckboxProps, type CheckboxSize, type CheckboxVariant, Dropdown, type DropdownAlign, type DropdownContentProps, type DropdownProps, type DropdownSide, type DropdownTriggerProps, type DropdownWidth, Input, type InputColor, InputGroup, type InputGroupProps, type InputGroupVariant, type InputProps, type InputShape, type InputSize, type InputState, type InputVariant, MediaImage, type MediaImageProps, type MediaImageRatio, type MediaImageShape, type MediaImageSize, MediaVideo, type MediaVideoProps, type MediaVideoRatio, type MediaVideoShape, type MediaVideoSize, Modal, type ModalBodyProps, type ModalContentProps, type ModalFooterProps, type ModalHeaderProps, type ModalProps, type ModalSize, type ModalTriggerProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, Select, type SelectOption, type SelectProps, Table, type TableBodyProps, type TableCellProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TableShape, type TableSize, type TableVariant, Tabs, type TabsContentProps, type TabsListProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, Tooltip, type TooltipPosition, type TooltipProps, Typewriter, type TypewriterProps, cn };
package/dist/index.d.ts CHANGED
@@ -347,6 +347,60 @@ interface SelectProps {
347
347
  }
348
348
  declare function Select({ value, onChange, options, placeholder, className, disabled, autoFlip, maxHeight, }: SelectProps): react_jsx_runtime.JSX.Element;
349
349
 
350
+ type TableSize = "xs" | "sm" | "md";
351
+ type TableVariant = "default" | "bordered" | "striped";
352
+ type TableShape = "square" | "rounded";
353
+ interface TableProps {
354
+ size?: TableSize;
355
+ variant?: TableVariant;
356
+ shape?: TableShape;
357
+ fullWidth?: boolean;
358
+ scrollX?: boolean;
359
+ scrollY?: boolean;
360
+ maxHeight?: string;
361
+ className?: string;
362
+ children: React.ReactNode;
363
+ }
364
+ interface TableHeadProps {
365
+ className?: string;
366
+ children: React.ReactNode;
367
+ }
368
+ interface TableBodyProps {
369
+ className?: string;
370
+ children: React.ReactNode;
371
+ }
372
+ interface TableRowProps {
373
+ onClick?: () => void;
374
+ isActive?: boolean;
375
+ className?: string;
376
+ children: React.ReactNode;
377
+ }
378
+ interface TableHeaderProps {
379
+ align?: "left" | "center" | "right";
380
+ width?: string;
381
+ className?: string;
382
+ children?: React.ReactNode;
383
+ }
384
+ interface TableCellProps {
385
+ align?: "left" | "center" | "right";
386
+ truncate?: boolean;
387
+ className?: string;
388
+ children?: React.ReactNode;
389
+ }
390
+ declare function TableRoot({ size, variant, shape, fullWidth, scrollX, scrollY, maxHeight, className, children, }: TableProps): react_jsx_runtime.JSX.Element;
391
+ declare function TableHead({ className, children }: TableHeadProps): react_jsx_runtime.JSX.Element;
392
+ declare function TableBody({ className, children }: TableBodyProps): react_jsx_runtime.JSX.Element;
393
+ declare function TableRow({ onClick, isActive, className, children }: TableRowProps): react_jsx_runtime.JSX.Element;
394
+ declare function TableHeader({ align, width, className, children }: TableHeaderProps): react_jsx_runtime.JSX.Element;
395
+ declare function TableCell({ align, truncate, className, children }: TableCellProps): react_jsx_runtime.JSX.Element;
396
+ declare const Table: typeof TableRoot & {
397
+ Head: typeof TableHead;
398
+ Body: typeof TableBody;
399
+ Row: typeof TableRow;
400
+ Header: typeof TableHeader;
401
+ Cell: typeof TableCell;
402
+ };
403
+
350
404
  type TabsVariant = "default" | "bordered" | "segmented";
351
405
  type TabsSize = "xs" | "sm" | "md";
352
406
  interface TabsProps {
@@ -412,4 +466,4 @@ declare function Typewriter({ texts, typingSpeed, deletingSpeed, pauseDuration,
412
466
 
413
467
  declare function cn(...inputs: ClassValue[]): string;
414
468
 
415
- export { Accordion, type AccordionProps, type AccordionSize, type AccordionVariant, Breadcrumb, type BreadcrumbItemProps, type BreadcrumbProps, Button, type ButtonColor, ButtonGroup, type ButtonGroupProps, type ButtonGroupVariant, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, Carousel, type CarouselBreakpointOptions, type CarouselProps, Checkbox, type CheckboxColor, CheckboxGroup, type CheckboxGroupProps, type CheckboxGroupVariant, type CheckboxProps, type CheckboxSize, type CheckboxVariant, Dropdown, type DropdownAlign, type DropdownContentProps, type DropdownProps, type DropdownSide, type DropdownTriggerProps, type DropdownWidth, Input, type InputColor, InputGroup, type InputGroupProps, type InputGroupVariant, type InputProps, type InputShape, type InputSize, type InputState, type InputVariant, MediaImage, type MediaImageProps, type MediaImageRatio, type MediaImageShape, type MediaImageSize, MediaVideo, type MediaVideoProps, type MediaVideoRatio, type MediaVideoShape, type MediaVideoSize, Modal, type ModalBodyProps, type ModalContentProps, type ModalFooterProps, type ModalHeaderProps, type ModalProps, type ModalSize, type ModalTriggerProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, Select, type SelectOption, type SelectProps, Tabs, type TabsContentProps, type TabsListProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, Tooltip, type TooltipPosition, type TooltipProps, Typewriter, type TypewriterProps, cn };
469
+ export { Accordion, type AccordionProps, type AccordionSize, type AccordionVariant, Breadcrumb, type BreadcrumbItemProps, type BreadcrumbProps, Button, type ButtonColor, ButtonGroup, type ButtonGroupProps, type ButtonGroupVariant, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, Carousel, type CarouselBreakpointOptions, type CarouselProps, Checkbox, type CheckboxColor, CheckboxGroup, type CheckboxGroupProps, type CheckboxGroupVariant, type CheckboxProps, type CheckboxSize, type CheckboxVariant, Dropdown, type DropdownAlign, type DropdownContentProps, type DropdownProps, type DropdownSide, type DropdownTriggerProps, type DropdownWidth, Input, type InputColor, InputGroup, type InputGroupProps, type InputGroupVariant, type InputProps, type InputShape, type InputSize, type InputState, type InputVariant, MediaImage, type MediaImageProps, type MediaImageRatio, type MediaImageShape, type MediaImageSize, MediaVideo, type MediaVideoProps, type MediaVideoRatio, type MediaVideoShape, type MediaVideoSize, Modal, type ModalBodyProps, type ModalContentProps, type ModalFooterProps, type ModalHeaderProps, type ModalProps, type ModalSize, type ModalTriggerProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, Select, type SelectOption, type SelectProps, Table, type TableBodyProps, type TableCellProps, type TableHeadProps, type TableHeaderProps, type TableProps, type TableRowProps, type TableShape, type TableSize, type TableVariant, Tabs, type TabsContentProps, type TabsListProps, type TabsProps, type TabsSize, type TabsTriggerProps, type TabsVariant, Tooltip, type TooltipPosition, type TooltipProps, Typewriter, type TypewriterProps, cn };
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  "use strict";
2
3
  var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
@@ -45,6 +46,7 @@ __export(index_exports, {
45
46
  Modal: () => Modal,
46
47
  MultiSelect: () => MultiSelect,
47
48
  Select: () => Select,
49
+ Table: () => Table,
48
50
  Tabs: () => Tabs,
49
51
  Tooltip: () => Tooltip,
50
52
  Typewriter: () => Typewriter,
@@ -5413,16 +5415,149 @@ function Select({
5413
5415
  ] });
5414
5416
  }
5415
5417
 
5416
- // src/components/tabs/tabs.tsx
5418
+ // src/components/table/table.tsx
5417
5419
  var React16 = __toESM(require("react"));
5418
5420
  var import_jsx_runtime16 = require("react/jsx-runtime");
5419
- var TabsContext = React16.createContext(null);
5421
+ var SIZES8 = {
5422
+ xs: { cell: "px-3 py-1.5", header: "px-3 py-1.5", text: "text-xs" },
5423
+ sm: { cell: "px-4 py-2.5", header: "px-4 py-2.5", text: "text-sm" },
5424
+ md: { cell: "px-5 py-3.5", header: "px-5 py-3.5", text: "text-base" }
5425
+ };
5426
+ var SHAPES5 = {
5427
+ square: "",
5428
+ rounded: "rounded-lg overflow-hidden"
5429
+ };
5430
+ var TABLE_VARIANTS = {
5431
+ default: "",
5432
+ bordered: "border border-zinc-200",
5433
+ striped: ""
5434
+ };
5435
+ var ROW_VARIANTS = {
5436
+ default: {
5437
+ base: "border-b border-zinc-100 last:border-0",
5438
+ active: "bg-zinc-50"
5439
+ },
5440
+ bordered: {
5441
+ base: "border-b border-zinc-100 last:border-0",
5442
+ active: "bg-zinc-50"
5443
+ },
5444
+ striped: {
5445
+ base: "border-b border-zinc-100 last:border-0 even:bg-zinc-50/50",
5446
+ active: "bg-zinc-100"
5447
+ }
5448
+ };
5449
+ var TableContext = React16.createContext({ size: "sm", variant: "default" });
5450
+ function useTable() {
5451
+ return React16.useContext(TableContext);
5452
+ }
5453
+ var ALIGN_MAP = {
5454
+ left: "text-left",
5455
+ center: "text-center",
5456
+ right: "text-right"
5457
+ };
5458
+ function TableRoot({
5459
+ size = "sm",
5460
+ variant = "default",
5461
+ shape = "rounded",
5462
+ fullWidth = true,
5463
+ scrollX = false,
5464
+ scrollY = false,
5465
+ maxHeight,
5466
+ className,
5467
+ children
5468
+ }) {
5469
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TableContext.Provider, { value: { size, variant }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5470
+ "div",
5471
+ {
5472
+ className: cn(
5473
+ TABLE_VARIANTS[variant],
5474
+ SHAPES5[shape],
5475
+ scrollX && "overflow-x-auto",
5476
+ scrollY && "overflow-y-auto",
5477
+ className
5478
+ ),
5479
+ style: scrollY && maxHeight ? { maxHeight } : void 0,
5480
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("table", { className: cn("border-collapse", fullWidth && "w-full"), children })
5481
+ }
5482
+ ) });
5483
+ }
5484
+ function TableHead({ className, children }) {
5485
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("thead", { className: cn("bg-zinc-50 border-b border-zinc-200 sticky top-0 z-10", className), children });
5486
+ }
5487
+ function TableBody({ className, children }) {
5488
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("tbody", { className: cn("bg-white", className), children });
5489
+ }
5490
+ function TableRow({ onClick, isActive, className, children }) {
5491
+ const { variant } = useTable();
5492
+ const v = ROW_VARIANTS[variant];
5493
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5494
+ "tr",
5495
+ {
5496
+ onClick,
5497
+ className: cn(
5498
+ v.base,
5499
+ isActive && v.active,
5500
+ onClick && "cursor-pointer hover:bg-zinc-50 transition-colors",
5501
+ className
5502
+ ),
5503
+ children
5504
+ }
5505
+ );
5506
+ }
5507
+ function TableHeader({ align = "left", width, className, children }) {
5508
+ const { size } = useTable();
5509
+ const s = SIZES8[size];
5510
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5511
+ "th",
5512
+ {
5513
+ style: width ? { width } : void 0,
5514
+ className: cn(
5515
+ "font-semibold text-zinc-500 uppercase tracking-wider whitespace-nowrap",
5516
+ s.header,
5517
+ s.text,
5518
+ ALIGN_MAP[align],
5519
+ className
5520
+ ),
5521
+ children
5522
+ }
5523
+ );
5524
+ }
5525
+ function TableCell({ align = "left", truncate, className, children }) {
5526
+ const { size } = useTable();
5527
+ const s = SIZES8[size];
5528
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5529
+ "td",
5530
+ {
5531
+ className: cn(
5532
+ "text-zinc-700",
5533
+ s.cell,
5534
+ s.text,
5535
+ ALIGN_MAP[align],
5536
+ truncate && "max-w-0 truncate",
5537
+ className
5538
+ ),
5539
+ children
5540
+ }
5541
+ );
5542
+ }
5543
+ var Table = Object.assign(TableRoot, {
5544
+ Head: TableHead,
5545
+ Body: TableBody,
5546
+ Row: TableRow,
5547
+ Header: TableHeader,
5548
+ Cell: TableCell
5549
+ });
5550
+
5551
+ // src/components/tabs/tabs.tsx
5552
+ var React17 = __toESM(require("react"));
5553
+ var import_jsx_runtime17 = require("react/jsx-runtime");
5554
+ var TabsContext = React17.createContext(null);
5420
5555
  function useTabs() {
5421
- const ctx = React16.useContext(TabsContext);
5556
+ const ctx = React17.useContext(TabsContext);
5422
5557
  if (!ctx) throw new Error("Tabs sub-components must be used within <Tabs>");
5423
5558
  return ctx;
5424
5559
  }
5425
- var SIZES8 = {
5560
+ var SIZES9 = {
5426
5561
  xs: { list: "h-9", trigger: "px-3 gap-1", font: "text-xs", iconSize: "size-3" },
5427
5562
  sm: { list: "h-10", trigger: "px-4 gap-1.5", font: "text-sm", iconSize: "size-3.5" },
5428
5563
  md: { list: "h-12", trigger: "px-5 gap-2", font: "text-base", iconSize: "size-4" }
@@ -5455,20 +5590,20 @@ function TabsRoot({
5455
5590
  className,
5456
5591
  children
5457
5592
  }) {
5458
- const [internalValue, setInternalValue] = React16.useState(defaultValue);
5459
- const baseId = React16.useId();
5593
+ const [internalValue, setInternalValue] = React17.useState(defaultValue);
5594
+ const baseId = React17.useId();
5460
5595
  const isControlled = value !== void 0;
5461
5596
  const activeValue = isControlled ? value : internalValue;
5462
5597
  const onSelect = (val) => {
5463
5598
  if (!isControlled) setInternalValue(val);
5464
5599
  onValueChange?.(val);
5465
5600
  };
5466
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(TabsContext.Provider, { value: { activeValue, onSelect, variant, size, baseId }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: cn("flex flex-col", className), children }) });
5601
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TabsContext.Provider, { value: { activeValue, onSelect, variant, size, baseId }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: cn("flex flex-col", className), children }) });
5467
5602
  }
5468
5603
  function TabsList({ className, children }) {
5469
5604
  const { variant, size } = useTabs();
5470
- const s = SIZES8[size];
5471
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5605
+ const s = SIZES9[size];
5606
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5472
5607
  "div",
5473
5608
  {
5474
5609
  role: "tablist",
@@ -5485,9 +5620,9 @@ function TabsList({ className, children }) {
5485
5620
  function TabsTrigger({ value, icon, activeClassName, disabled = false, className, children }) {
5486
5621
  const { activeValue, onSelect, variant, size, baseId } = useTabs();
5487
5622
  const isActive = activeValue === value;
5488
- const s = SIZES8[size];
5623
+ const s = SIZES9[size];
5489
5624
  const v = TRIGGER_VARIANTS[variant];
5490
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
5625
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
5491
5626
  "button",
5492
5627
  {
5493
5628
  type: "button",
@@ -5509,7 +5644,7 @@ function TabsTrigger({ value, icon, activeClassName, disabled = false, className
5509
5644
  className
5510
5645
  ),
5511
5646
  children: [
5512
- icon && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: cn("shrink-0", s.iconSize), children: icon }),
5647
+ icon && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: cn("shrink-0", s.iconSize), children: icon }),
5513
5648
  children
5514
5649
  ]
5515
5650
  }
@@ -5518,7 +5653,7 @@ function TabsTrigger({ value, icon, activeClassName, disabled = false, className
5518
5653
  function TabsContent({ value, className, children }) {
5519
5654
  const { activeValue, baseId } = useTabs();
5520
5655
  if (activeValue !== value) return null;
5521
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5656
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5522
5657
  "div",
5523
5658
  {
5524
5659
  role: "tabpanel",
@@ -5536,8 +5671,8 @@ var Tabs = Object.assign(TabsRoot, {
5536
5671
  });
5537
5672
 
5538
5673
  // src/components/tooltip/tooltip.tsx
5539
- var React17 = __toESM(require("react"));
5540
- var import_jsx_runtime17 = require("react/jsx-runtime");
5674
+ var React18 = __toESM(require("react"));
5675
+ var import_jsx_runtime18 = require("react/jsx-runtime");
5541
5676
  var POSITIONS = {
5542
5677
  top: {
5543
5678
  tooltip: "bottom-full left-1/2 -translate-x-1/2 mb-2",
@@ -5563,19 +5698,19 @@ function Tooltip({
5563
5698
  children,
5564
5699
  className
5565
5700
  }) {
5566
- const [visible, setVisible] = React17.useState(false);
5567
- const timerRef = React17.useRef(null);
5701
+ const [visible, setVisible] = React18.useState(false);
5702
+ const timerRef = React18.useRef(null);
5568
5703
  const pos = POSITIONS[position];
5569
- const show = React17.useCallback(() => {
5704
+ const show = React18.useCallback(() => {
5570
5705
  timerRef.current = setTimeout(() => setVisible(true), delay);
5571
5706
  }, [delay]);
5572
- const hide = React17.useCallback(() => {
5707
+ const hide = React18.useCallback(() => {
5573
5708
  if (timerRef.current) clearTimeout(timerRef.current);
5574
5709
  setVisible(false);
5575
5710
  }, []);
5576
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "relative inline-flex", onMouseEnter: show, onMouseLeave: hide, children: [
5711
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "relative inline-flex", onMouseEnter: show, onMouseLeave: hide, children: [
5577
5712
  children,
5578
- visible && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
5713
+ visible && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
5579
5714
  "div",
5580
5715
  {
5581
5716
  className: cn(
@@ -5586,7 +5721,7 @@ function Tooltip({
5586
5721
  ),
5587
5722
  children: [
5588
5723
  content,
5589
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: cn("absolute w-0 h-0", pos.arrow) })
5724
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: cn("absolute w-0 h-0", pos.arrow) })
5590
5725
  ]
5591
5726
  }
5592
5727
  )
@@ -5594,8 +5729,8 @@ function Tooltip({
5594
5729
  }
5595
5730
 
5596
5731
  // src/components/typewriter/typewriter.tsx
5597
- var React18 = __toESM(require("react"));
5598
- var import_jsx_runtime18 = require("react/jsx-runtime");
5732
+ var React19 = __toESM(require("react"));
5733
+ var import_jsx_runtime19 = require("react/jsx-runtime");
5599
5734
  function Typewriter({
5600
5735
  texts,
5601
5736
  typingSpeed = 40,
@@ -5609,17 +5744,17 @@ function Typewriter({
5609
5744
  onComplete,
5610
5745
  className
5611
5746
  }) {
5612
- const [displayText, setDisplayText] = React18.useState("");
5613
- const [textIndex, setTextIndex] = React18.useState(0);
5614
- const [phase, setPhase] = React18.useState(
5747
+ const [displayText, setDisplayText] = React19.useState("");
5748
+ const [textIndex, setTextIndex] = React19.useState(0);
5749
+ const [phase, setPhase] = React19.useState(
5615
5750
  startDelay > 0 ? "waiting" : "typing"
5616
5751
  );
5617
- React18.useEffect(() => {
5752
+ React19.useEffect(() => {
5618
5753
  if (phase !== "waiting") return;
5619
5754
  const timeout = setTimeout(() => setPhase("typing"), startDelay);
5620
5755
  return () => clearTimeout(timeout);
5621
5756
  }, [phase, startDelay]);
5622
- const getDelay = React18.useCallback(() => {
5757
+ const getDelay = React19.useCallback(() => {
5623
5758
  switch (phase) {
5624
5759
  case "typing":
5625
5760
  return typingSpeed;
@@ -5631,7 +5766,7 @@ function Typewriter({
5631
5766
  return 0;
5632
5767
  }
5633
5768
  }, [phase, typingSpeed, pauseDuration, deletingSpeed, deleteMode]);
5634
- React18.useEffect(() => {
5769
+ React19.useEffect(() => {
5635
5770
  if (phase === "waiting" || phase === "done" || !texts.length) return;
5636
5771
  const currentFullText = texts[textIndex];
5637
5772
  const timeout = setTimeout(() => {
@@ -5669,7 +5804,7 @@ function Typewriter({
5669
5804
  }, getDelay());
5670
5805
  return () => clearTimeout(timeout);
5671
5806
  }, [displayText, textIndex, phase, texts, deleteMode, getDelay, loop, onComplete]);
5672
- const cursorElement = cursor && phase !== "done" && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5807
+ const cursorElement = cursor && phase !== "done" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5673
5808
  "span",
5674
5809
  {
5675
5810
  className: cn(
@@ -5680,7 +5815,7 @@ function Typewriter({
5680
5815
  )
5681
5816
  }
5682
5817
  );
5683
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: cn(className), children: [
5818
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: cn(className), children: [
5684
5819
  displayText,
5685
5820
  cursorElement
5686
5821
  ] });
@@ -5702,6 +5837,7 @@ function Typewriter({
5702
5837
  Modal,
5703
5838
  MultiSelect,
5704
5839
  Select,
5840
+ Table,
5705
5841
  Tabs,
5706
5842
  Tooltip,
5707
5843
  Typewriter,