@grupo-elo-editorial/shared-ui-react 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,69 @@
1
+ # Changelog — `@grupo-elo-editorial/shared-ui-react`
2
+
3
+ Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) · Versioning: [SemVer](https://semver.org/spec/v2.0.0.html).
4
+
5
+ ---
6
+
7
+ ## [1.1.0] — 2026-05-20 (Layout primitives + Figma shared-ui sync)
8
+
9
+ Additive sync with the upstream Figma shared-ui file (`q4V5CYymU4oU5nlbbHNmh8`) and with `@grupo-elo-editorial/design-tokens@3.1.0`. No breaking changes; consumers of `^1.0.0` can bump to `^1.1.0` with zero code changes.
10
+
11
+ ### Added — Layout primitives
12
+
13
+ Three new layout components that consume the breakpoint/container/grid tokens introduced in `design-tokens@3.1.0`:
14
+
15
+ - **`Container`** — page-level wrapper. Centers content within `var(--container-max)` (1280px) with responsive `var(--container-px)` (1.5rem) horizontal padding. Polymorphic via the `as` prop (defaults to `'div'`).
16
+ - **`Grid`** — responsive grid primitive. Default progression: `grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4` with `gap-[var(--grid-gutter)]` (1.5rem). Override via `className`.
17
+ - **`Col`** — grid cell with explicit column span (1–6). Always includes `min-w-0` to prevent overflow on wide content (long text, large images) — addresses the implicit `min-width: auto` gotcha on grid items.
18
+
19
+ ```tsx
20
+ import { Container, Grid, Col } from '@grupo-elo-editorial/shared-ui-react';
21
+
22
+ <Container as="section">
23
+ <Grid>
24
+ <Col><ProductCard ... /></Col>
25
+ <Col><ProductCard ... /></Col>
26
+ <Col span={2}>Wide cell</Col>
27
+ </Grid>
28
+ </Container>
29
+ ```
30
+
31
+ ### Added — docs
32
+
33
+ - `docs/SHARED_UI_STANDARDS.md` — prescriptive guide for the package: filosofia, naming conventions, design tokens, A11y WCAG 2.2 AA, estados de componentes, props API, composição, testes, performance, checklist de qualidade, versionamento.
34
+
35
+ ### Changed
36
+
37
+ - `package.json` `version` bumped `1.0.0 → 1.1.0`.
38
+ - `package.json` `description` updated to mention layout primitives + new `design-tokens@^3.1.0` minimum.
39
+ - `src/index.ts` now re-exports `Container`, `Grid`, `Col` (and their `ContainerProps`/`GridProps`/`ColProps` types) from `./components/layout`.
40
+ - `repository.url` now uses canonical `git+https://` scheme (eliminates `npm publish` warning).
41
+
42
+ ### Compat with design-tokens v3.1.0
43
+
44
+ `@grupo-elo-editorial/design-tokens@^3.1.0` is the minimum effective dependency now (the layout primitives use `var(--container-max)`, `var(--container-px)`, and `var(--grid-gutter)` which were introduced in 3.1.0). Older 3.0.x of design-tokens still works for everything _except_ the layout primitives, which will render with browser-default sizing if the consumer hasn't bumped design-tokens.
45
+
46
+ ---
47
+
48
+ ## [1.0.0] — 2026-05-13 (Initial release — port from Figma)
49
+
50
+ First public release. 42 components ported 1:1 from the Figma Make export `loEUZ5dnW0f4e8GwQIEWSz`.
51
+
52
+ ### Added
53
+
54
+ - **7 custom atoms**: Button, Textarea, Badge, Avatar, Spinner, Divider, Rating
55
+ - **5 custom molecules**: ProductCard, SearchBar, PriceDisplay, QuantitySelector, FormGroup
56
+ - **4 custom organisms**: Hero, EmptyState, ErrorState, ProductGrid
57
+ - **2 PRD domain components**: TopAccessibilityBar, HeroCarousel
58
+ - **~50 shadcn/ui primitives** in `components/ui/` — Radix wrappers (Dialog, Sheet, Select, Tooltip, Accordion, Checkbox, Switch, RadioGroup, Breadcrumb, Progress, Calendar, Carousel, Chart, Command, ContextMenu, Drawer, DropdownMenu, Form, HoverCard, InputOTP, Menubar, NavigationMenu, Pagination, Popover, Resizable, ScrollArea, Separator, Sidebar, Skeleton, Slider, Sonner, Table, Tabs, ToggleGroup, …).
59
+ - **Re-exports** from atoms/molecules/organisms barrels: `Input`, `Select*`, `Checkbox`, `RadioGroup*`, `Toggle (= Switch)`, `Breadcrumb*`, `Accordion*`, `Tooltip*`, `ProgressBar`, `toast (sonner)`, `Modal (= Dialog)`, `Drawer (= Sheet)`.
60
+ - **`figma/ImageWithFallback`** helper.
61
+ - **Util**: `cn` (clsx + tailwind-merge).
62
+ - **Bundled CSS**: `dist/style.css` (96 kB, gzip 9 kB) — Lato fonts + Tailwind v4 + multibrand theme tokens with `[data-brand]` / `[data-theme]` selectors (aligned with `@grupo-elo-editorial/design-tokens@^3.0.0`).
63
+ - **Docs imported from Figma**: `docs/COMPONENT_LIBRARY.md`, `docs/CORRECTIONS.md`, `docs/GUIDELINES.md`.
64
+
65
+ ### Notes
66
+
67
+ - Stack: React 18+/19, TypeScript, Tailwind CSS v4, Radix UI, Lucide icons, Sonner toasts, `class-variance-authority` for variants.
68
+ - Brand + theme contract: `<html data-brand="elo-editora|perabook" data-theme="light|dark">` — same as design-tokens.
69
+ - The Figma export used `.brand-elo` / `.brand-pera` / `.dark` class selectors; this port adapted to `[data-brand]` / `[data-theme]` attribute selectors to match the design-tokens v3 contract. Component code consumes `var(--brand-*)` so the visual result is identical.
@@ -0,0 +1,29 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ColProps {
3
+ children: ReactNode;
4
+ /**
5
+ * How many grid columns this cell spans (1–6). When omitted, the cell takes
6
+ * one column at every breakpoint.
7
+ */
8
+ span?: 1 | 2 | 3 | 4 | 5 | 6;
9
+ className?: string;
10
+ }
11
+ /**
12
+ * Grid cell with explicit column span. Always includes `min-w-0` to prevent
13
+ * grid items from overflowing when their content (long text, large images) is
14
+ * wider than the available column — without this the implicit `min-width: auto`
15
+ * on grid items would push the cell beyond its grid track.
16
+ *
17
+ * Use inside `<Grid>`. Not strictly required (you can use a plain `<div>` for
18
+ * 1-column cells), but recommended for any cell that spans multiple columns.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <Grid>
23
+ * <Col span={2}>Wide cell</Col>
24
+ * <Col>Standard cell</Col>
25
+ * <Col>Standard cell</Col>
26
+ * </Grid>
27
+ * ```
28
+ */
29
+ export declare function Col({ children, span, className }: ColProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { type ElementType, type ReactNode } from 'react';
2
+ export interface ContainerProps {
3
+ children: ReactNode;
4
+ /** Override the wrapper element. Default `'div'`. */
5
+ as?: ElementType;
6
+ className?: string;
7
+ }
8
+ /**
9
+ * Page-level content wrapper. Centers content within `var(--container-max)`
10
+ * (1280px by default in `@grupo-elo-editorial/design-tokens@^3.1.0`) and applies
11
+ * the responsive `var(--container-px)` horizontal padding.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <Container as="section">
16
+ * <h2>Section heading</h2>
17
+ * <p>Body content stays within the centered, padded container.</p>
18
+ * </Container>
19
+ * ```
20
+ */
21
+ export declare function Container({ children, as: Tag, className }: ContainerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface GridProps {
3
+ children: ReactNode;
4
+ /**
5
+ * Override the default responsive column progression
6
+ * (`grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4`) by appending Tailwind utility classes here.
7
+ */
8
+ className?: string;
9
+ }
10
+ /**
11
+ * Responsive grid primitive. Defaults to the progression defined by the
12
+ * `--grid-cols-{default,sm,md,lg}` tokens (1 → 2 → 3 → 4 columns) and the
13
+ * `--grid-gutter` (1.5rem) gap, both shipped by
14
+ * `@grupo-elo-editorial/design-tokens@^3.1.0`.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <Grid>
19
+ * <Col><ProductCard ... /></Col>
20
+ * <Col><ProductCard ... /></Col>
21
+ * </Grid>
22
+ * ```
23
+ */
24
+ export declare function Grid({ children, className }: GridProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export { Container } from './Container';
2
+ export type { ContainerProps } from './Container';
3
+ export { Grid } from './Grid';
4
+ export type { GridProps } from './Grid';
5
+ export { Col } from './Col';
6
+ export type { ColProps } from './Col';
package/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export * from './components/atoms';
3
3
  export * from './components/molecules';
4
4
  export * from './components/organisms';
5
5
  export * from './components/prd';
6
+ export * from './components/layout';
6
7
  export { cn } from './components/ui/utils';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { clsx as K } from "clsx";
2
2
  import { twMerge as J } from "tailwind-merge";
3
3
  import { jsx as e, jsxs as s, Fragment as j } from "react/jsx-runtime";
4
4
  import { forwardRef as N, useState as k, useEffect as D } from "react";
5
- import { Loader2 as E, User as Y, Star as Z, CheckIcon as V, ChevronDownIcon as B, ChevronUpIcon as O, CircleIcon as ee, Heart as te, ShoppingCart as _, Search as L, X as ae, Minus as H, Plus as q, ChevronRight as F, FileX as re, Package as ie, AlertCircle as se, RefreshCw as oe, Home as ne, XIcon as G, Eye as le, Moon as de, Sun as ce, ChevronLeft as ue } from "lucide-react";
5
+ import { Loader2 as E, User as Y, Star as Z, CheckIcon as V, ChevronDownIcon as B, ChevronUpIcon as O, CircleIcon as ee, Heart as te, ShoppingCart as _, Search as L, X as ae, Minus as H, Plus as q, ChevronRight as G, FileX as re, Package as ie, AlertCircle as se, RefreshCw as oe, Home as ne, XIcon as F, Eye as le, Moon as de, Sun as ce, ChevronLeft as ue } from "lucide-react";
6
6
  import { cva as $ } from "class-variance-authority";
7
7
  import * as y from "@radix-ui/react-select";
8
8
  import * as A from "@radix-ui/react-checkbox";
@@ -11,8 +11,8 @@ import * as M from "@radix-ui/react-switch";
11
11
  import { Slot as me } from "@radix-ui/react-slot";
12
12
  import * as I from "@radix-ui/react-accordion";
13
13
  import * as C from "@radix-ui/react-tooltip";
14
- import { toast as jt } from "sonner";
15
- import { Progress as Pt } from "@radix-ui/react-progress";
14
+ import { toast as Tt } from "sonner";
15
+ import { Progress as Et } from "@radix-ui/react-progress";
16
16
  import * as w from "@radix-ui/react-dialog";
17
17
  function i(...a) {
18
18
  return J(K(a));
@@ -362,17 +362,17 @@ function Fe({ className: a, type: t, ...r }) {
362
362
  }
363
363
  );
364
364
  }
365
- function Ge({
365
+ function Qe({
366
366
  ...a
367
367
  }) {
368
368
  return /* @__PURE__ */ e(y.Root, { "data-slot": "select", ...a });
369
369
  }
370
- function Qe({
370
+ function Ue({
371
371
  ...a
372
372
  }) {
373
373
  return /* @__PURE__ */ e(y.Value, { "data-slot": "select-value", ...a });
374
374
  }
375
- function Ue({
375
+ function We({
376
376
  className: a,
377
377
  size: t = "default",
378
378
  children: r,
@@ -395,7 +395,7 @@ function Ue({
395
395
  }
396
396
  );
397
397
  }
398
- function We({
398
+ function Xe({
399
399
  className: a,
400
400
  children: t,
401
401
  position: r = "popper",
@@ -429,7 +429,7 @@ function We({
429
429
  }
430
430
  ) });
431
431
  }
432
- function Xe({
432
+ function Ke({
433
433
  className: a,
434
434
  children: t,
435
435
  ...r
@@ -484,7 +484,7 @@ function we({
484
484
  }
485
485
  );
486
486
  }
487
- function Ke({
487
+ function Je({
488
488
  className: a,
489
489
  ...t
490
490
  }) {
@@ -508,7 +508,7 @@ function Ke({
508
508
  }
509
509
  );
510
510
  }
511
- function Je({
511
+ function Ye({
512
512
  className: a,
513
513
  ...t
514
514
  }) {
@@ -521,7 +521,7 @@ function Je({
521
521
  }
522
522
  );
523
523
  }
524
- function Ye({
524
+ function Ze({
525
525
  className: a,
526
526
  ...t
527
527
  }) {
@@ -545,7 +545,7 @@ function Ye({
545
545
  }
546
546
  );
547
547
  }
548
- function Ze({
548
+ function Oe({
549
549
  className: a,
550
550
  ...t
551
551
  }) {
@@ -916,10 +916,10 @@ const Se = N(
916
916
  ] })
917
917
  );
918
918
  Se.displayName = "FormGroup";
919
- function Oe({ ...a }) {
919
+ function et({ ...a }) {
920
920
  return /* @__PURE__ */ e("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...a });
921
921
  }
922
- function et({ className: a, ...t }) {
922
+ function tt({ className: a, ...t }) {
923
923
  return /* @__PURE__ */ e(
924
924
  "ol",
925
925
  {
@@ -932,7 +932,7 @@ function et({ className: a, ...t }) {
932
932
  }
933
933
  );
934
934
  }
935
- function tt({ className: a, ...t }) {
935
+ function at({ className: a, ...t }) {
936
936
  return /* @__PURE__ */ e(
937
937
  "li",
938
938
  {
@@ -942,7 +942,7 @@ function tt({ className: a, ...t }) {
942
942
  }
943
943
  );
944
944
  }
945
- function at({
945
+ function rt({
946
946
  asChild: a,
947
947
  className: t,
948
948
  ...r
@@ -956,7 +956,7 @@ function at({
956
956
  }
957
957
  );
958
958
  }
959
- function rt({ className: a, ...t }) {
959
+ function it({ className: a, ...t }) {
960
960
  return /* @__PURE__ */ e(
961
961
  "span",
962
962
  {
@@ -969,7 +969,7 @@ function rt({ className: a, ...t }) {
969
969
  }
970
970
  );
971
971
  }
972
- function it({
972
+ function st({
973
973
  children: a,
974
974
  className: t,
975
975
  ...r
@@ -982,16 +982,16 @@ function it({
982
982
  "aria-hidden": "true",
983
983
  className: i("[&>svg]:size-3.5", t),
984
984
  ...r,
985
- children: a ?? /* @__PURE__ */ e(F, {})
985
+ children: a ?? /* @__PURE__ */ e(G, {})
986
986
  }
987
987
  );
988
988
  }
989
- function st({
989
+ function ot({
990
990
  ...a
991
991
  }) {
992
992
  return /* @__PURE__ */ e(I.Root, { "data-slot": "accordion", ...a });
993
993
  }
994
- function ot({
994
+ function nt({
995
995
  className: a,
996
996
  ...t
997
997
  }) {
@@ -1004,7 +1004,7 @@ function ot({
1004
1004
  }
1005
1005
  );
1006
1006
  }
1007
- function nt({
1007
+ function lt({
1008
1008
  className: a,
1009
1009
  children: t,
1010
1010
  ...r
@@ -1025,7 +1025,7 @@ function nt({
1025
1025
  }
1026
1026
  ) });
1027
1027
  }
1028
- function lt({
1028
+ function dt({
1029
1029
  className: a,
1030
1030
  children: t,
1031
1031
  ...r
@@ -1053,17 +1053,17 @@ function Ce({
1053
1053
  }
1054
1054
  );
1055
1055
  }
1056
- function dt({
1056
+ function ct({
1057
1057
  ...a
1058
1058
  }) {
1059
1059
  return /* @__PURE__ */ e(Ce, { children: /* @__PURE__ */ e(C.Root, { "data-slot": "tooltip", ...a }) });
1060
1060
  }
1061
- function ct({
1061
+ function ut({
1062
1062
  ...a
1063
1063
  }) {
1064
1064
  return /* @__PURE__ */ e(C.Trigger, { "data-slot": "tooltip-trigger", ...a });
1065
1065
  }
1066
- function ut({
1066
+ function mt({
1067
1067
  className: a,
1068
1068
  sideOffset: t = 0,
1069
1069
  children: r,
@@ -1391,12 +1391,12 @@ const De = N(
1391
1391
  }
1392
1392
  );
1393
1393
  De.displayName = "ProductGrid";
1394
- function mt({
1394
+ function ft({
1395
1395
  ...a
1396
1396
  }) {
1397
1397
  return /* @__PURE__ */ e(w.Root, { "data-slot": "dialog", ...a });
1398
1398
  }
1399
- function ft({
1399
+ function gt({
1400
1400
  ...a
1401
1401
  }) {
1402
1402
  return /* @__PURE__ */ e(w.Trigger, { "data-slot": "dialog-trigger", ...a });
@@ -1422,7 +1422,7 @@ function $e({
1422
1422
  }
1423
1423
  );
1424
1424
  }
1425
- function gt({
1425
+ function pt({
1426
1426
  className: a,
1427
1427
  children: t,
1428
1428
  ...r
@@ -1441,7 +1441,7 @@ function gt({
1441
1441
  children: [
1442
1442
  t,
1443
1443
  /* @__PURE__ */ s(w.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
1444
- /* @__PURE__ */ e(G, {}),
1444
+ /* @__PURE__ */ e(F, {}),
1445
1445
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
1446
1446
  ] })
1447
1447
  ]
@@ -1449,7 +1449,7 @@ function gt({
1449
1449
  )
1450
1450
  ] });
1451
1451
  }
1452
- function pt({ className: a, ...t }) {
1452
+ function vt({ className: a, ...t }) {
1453
1453
  return /* @__PURE__ */ e(
1454
1454
  "div",
1455
1455
  {
@@ -1459,7 +1459,7 @@ function pt({ className: a, ...t }) {
1459
1459
  }
1460
1460
  );
1461
1461
  }
1462
- function vt({ className: a, ...t }) {
1462
+ function bt({ className: a, ...t }) {
1463
1463
  return /* @__PURE__ */ e(
1464
1464
  "div",
1465
1465
  {
@@ -1472,7 +1472,7 @@ function vt({ className: a, ...t }) {
1472
1472
  }
1473
1473
  );
1474
1474
  }
1475
- function bt({
1475
+ function ht({
1476
1476
  className: a,
1477
1477
  ...t
1478
1478
  }) {
@@ -1485,7 +1485,7 @@ function bt({
1485
1485
  }
1486
1486
  );
1487
1487
  }
1488
- function ht({
1488
+ function xt({
1489
1489
  className: a,
1490
1490
  ...t
1491
1491
  }) {
@@ -1498,10 +1498,10 @@ function ht({
1498
1498
  }
1499
1499
  );
1500
1500
  }
1501
- function xt({ ...a }) {
1501
+ function Nt({ ...a }) {
1502
1502
  return /* @__PURE__ */ e(w.Root, { "data-slot": "sheet", ...a });
1503
1503
  }
1504
- function Nt({
1504
+ function wt({
1505
1505
  ...a
1506
1506
  }) {
1507
1507
  return /* @__PURE__ */ e(w.Trigger, { "data-slot": "sheet-trigger", ...a });
@@ -1527,7 +1527,7 @@ function Re({
1527
1527
  }
1528
1528
  );
1529
1529
  }
1530
- function wt({
1530
+ function yt({
1531
1531
  className: a,
1532
1532
  children: t,
1533
1533
  side: r = "right",
@@ -1551,7 +1551,7 @@ function wt({
1551
1551
  children: [
1552
1552
  t,
1553
1553
  /* @__PURE__ */ s(w.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
1554
- /* @__PURE__ */ e(G, { className: "size-4" }),
1554
+ /* @__PURE__ */ e(F, { className: "size-4" }),
1555
1555
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
1556
1556
  ] })
1557
1557
  ]
@@ -1559,7 +1559,7 @@ function wt({
1559
1559
  )
1560
1560
  ] });
1561
1561
  }
1562
- function yt({ className: a, ...t }) {
1562
+ function kt({ className: a, ...t }) {
1563
1563
  return /* @__PURE__ */ e(
1564
1564
  "div",
1565
1565
  {
@@ -1569,7 +1569,7 @@ function yt({ className: a, ...t }) {
1569
1569
  }
1570
1570
  );
1571
1571
  }
1572
- function kt({ className: a, ...t }) {
1572
+ function zt({ className: a, ...t }) {
1573
1573
  return /* @__PURE__ */ e(
1574
1574
  "div",
1575
1575
  {
@@ -1579,7 +1579,7 @@ function kt({ className: a, ...t }) {
1579
1579
  }
1580
1580
  );
1581
1581
  }
1582
- function zt({
1582
+ function St({
1583
1583
  className: a,
1584
1584
  ...t
1585
1585
  }) {
@@ -1592,7 +1592,7 @@ function zt({
1592
1592
  }
1593
1593
  );
1594
1594
  }
1595
- function St({
1595
+ function Ct({
1596
1596
  className: a,
1597
1597
  ...t
1598
1598
  }) {
@@ -1823,7 +1823,7 @@ const Be = N(
1823
1823
  onClick: m,
1824
1824
  className: "absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/90 p-2 shadow-lg transition-all hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] min-w-[44px] min-h-[44px]",
1825
1825
  "aria-label": "Próximo slide",
1826
- children: /* @__PURE__ */ e(F, { className: "h-6 w-6 text-gray-900" })
1826
+ children: /* @__PURE__ */ e(G, { className: "h-6 w-6 text-gray-900" })
1827
1827
  }
1828
1828
  )
1829
1829
  ] }),
@@ -1846,69 +1846,107 @@ const Be = N(
1846
1846
  }
1847
1847
  );
1848
1848
  Be.displayName = "HeroCarousel";
1849
+ function It({ children: a, as: t = "div", className: r }) {
1850
+ return /* @__PURE__ */ e(
1851
+ t,
1852
+ {
1853
+ "data-slot": "container",
1854
+ className: i("w-full mx-auto px-[var(--container-px)]", r),
1855
+ style: { maxWidth: "var(--container-max)" },
1856
+ children: a
1857
+ }
1858
+ );
1859
+ }
1860
+ function jt({ children: a, className: t }) {
1861
+ return /* @__PURE__ */ e(
1862
+ "div",
1863
+ {
1864
+ "data-slot": "grid",
1865
+ className: i(
1866
+ "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-[var(--grid-gutter)]",
1867
+ t
1868
+ ),
1869
+ children: a
1870
+ }
1871
+ );
1872
+ }
1873
+ const Ae = {
1874
+ 1: "col-span-1",
1875
+ 2: "col-span-2",
1876
+ 3: "col-span-3",
1877
+ 4: "col-span-4",
1878
+ 5: "col-span-5",
1879
+ 6: "col-span-6"
1880
+ };
1881
+ function Dt({ children: a, span: t, className: r }) {
1882
+ return /* @__PURE__ */ e("div", { "data-slot": "col", className: i("min-w-0", t && Ae[t], r), children: a });
1883
+ }
1849
1884
  export {
1850
- st as Accordion,
1851
- lt as AccordionContent,
1852
- ot as AccordionItem,
1853
- nt as AccordionTrigger,
1885
+ ot as Accordion,
1886
+ dt as AccordionContent,
1887
+ nt as AccordionItem,
1888
+ lt as AccordionTrigger,
1854
1889
  ve as Avatar,
1855
1890
  P as Badge,
1856
- Oe as Breadcrumb,
1857
- tt as BreadcrumbItem,
1858
- at as BreadcrumbLink,
1859
- et as BreadcrumbList,
1860
- rt as BreadcrumbPage,
1861
- it as BreadcrumbSeparator,
1891
+ et as Breadcrumb,
1892
+ at as BreadcrumbItem,
1893
+ rt as BreadcrumbLink,
1894
+ tt as BreadcrumbList,
1895
+ it as BreadcrumbPage,
1896
+ st as BreadcrumbSeparator,
1862
1897
  z as Button,
1863
- Ke as Checkbox,
1864
- gt as DialogContent,
1865
- ht as DialogDescription,
1866
- vt as DialogFooter,
1867
- pt as DialogHeader,
1868
- bt as DialogTitle,
1869
- ft as DialogTrigger,
1898
+ Je as Checkbox,
1899
+ Dt as Col,
1900
+ It as Container,
1901
+ pt as DialogContent,
1902
+ xt as DialogDescription,
1903
+ bt as DialogFooter,
1904
+ vt as DialogHeader,
1905
+ ht as DialogTitle,
1906
+ gt as DialogTrigger,
1870
1907
  xe as Divider,
1871
- xt as Drawer,
1908
+ Nt as Drawer,
1872
1909
  W as EmptyState,
1873
1910
  je as ErrorState,
1874
1911
  Se as FormGroup,
1912
+ jt as Grid,
1875
1913
  Ie as Hero,
1876
1914
  Be as HeroCarousel,
1877
1915
  Fe as Input,
1878
- mt as Modal,
1916
+ ft as Modal,
1879
1917
  ke as PriceDisplay,
1880
1918
  R as ProductCard,
1881
1919
  De as ProductGrid,
1882
- Pt as ProgressBar,
1920
+ Et as ProgressBar,
1883
1921
  ze as QuantitySelector,
1884
- Je as RadioGroup,
1885
- Ye as RadioGroupItem,
1922
+ Ye as RadioGroup,
1923
+ Ze as RadioGroupItem,
1886
1924
  U as Rating,
1887
1925
  ye as SearchBar,
1888
- Ge as Select,
1889
- We as SelectContent,
1890
- Xe as SelectItem,
1891
- Ue as SelectTrigger,
1892
- Qe as SelectValue,
1893
- wt as SheetContent,
1894
- St as SheetDescription,
1895
- kt as SheetFooter,
1896
- yt as SheetHeader,
1897
- zt as SheetTitle,
1898
- Nt as SheetTrigger,
1926
+ Qe as Select,
1927
+ Xe as SelectContent,
1928
+ Ke as SelectItem,
1929
+ We as SelectTrigger,
1930
+ Ue as SelectValue,
1931
+ yt as SheetContent,
1932
+ Ct as SheetDescription,
1933
+ zt as SheetFooter,
1934
+ kt as SheetHeader,
1935
+ St as SheetTitle,
1936
+ wt as SheetTrigger,
1899
1937
  he as Spinner,
1900
1938
  fe as Textarea,
1901
- Ze as Toggle,
1902
- dt as Tooltip,
1903
- ut as TooltipContent,
1939
+ Oe as Toggle,
1940
+ ct as Tooltip,
1941
+ mt as TooltipContent,
1904
1942
  Ce as TooltipProvider,
1905
- ct as TooltipTrigger,
1943
+ ut as TooltipTrigger,
1906
1944
  Ee as TopAccessibilityBar,
1907
1945
  pe as avatarVariants,
1908
1946
  ge as badgeVariants,
1909
1947
  Q as buttonVariants,
1910
1948
  i as cn,
1911
1949
  be as spinnerVariants,
1912
- jt as toast
1950
+ Tt as toast
1913
1951
  };
1914
1952
  //# sourceMappingURL=index.js.map