@thesage/ui 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +96 -61
  2. package/dist/dates.d.mts +20 -0
  3. package/dist/dates.d.ts +20 -0
  4. package/dist/dates.js +230 -0
  5. package/dist/dates.js.map +1 -0
  6. package/dist/dates.mjs +193 -0
  7. package/dist/dates.mjs.map +1 -0
  8. package/dist/dnd.d.mts +126 -0
  9. package/dist/dnd.d.ts +126 -0
  10. package/dist/dnd.js +274 -0
  11. package/dist/dnd.js.map +1 -0
  12. package/dist/dnd.mjs +250 -0
  13. package/dist/dnd.mjs.map +1 -0
  14. package/dist/forms.d.mts +38 -0
  15. package/dist/forms.d.ts +38 -0
  16. package/dist/forms.js +198 -0
  17. package/dist/forms.js.map +1 -0
  18. package/dist/forms.mjs +159 -0
  19. package/dist/forms.mjs.map +1 -0
  20. package/dist/hooks.js +6 -5
  21. package/dist/hooks.js.map +1 -1
  22. package/dist/hooks.mjs +6 -5
  23. package/dist/hooks.mjs.map +1 -1
  24. package/dist/index.d.mts +484 -352
  25. package/dist/index.d.ts +484 -352
  26. package/dist/index.js +2674 -2092
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +2548 -1966
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/providers.js +6 -5
  31. package/dist/providers.js.map +1 -1
  32. package/dist/providers.mjs +6 -5
  33. package/dist/providers.mjs.map +1 -1
  34. package/dist/tables.d.mts +10 -0
  35. package/dist/tables.d.ts +10 -0
  36. package/dist/tables.js +248 -0
  37. package/dist/tables.js.map +1 -0
  38. package/dist/tables.mjs +218 -0
  39. package/dist/tables.mjs.map +1 -0
  40. package/dist/utils.js +2 -1
  41. package/dist/utils.js.map +1 -1
  42. package/dist/utils.mjs +2 -1
  43. package/dist/utils.mjs.map +1 -1
  44. package/dist/webgl.d.mts +104 -0
  45. package/dist/webgl.d.ts +104 -0
  46. package/dist/webgl.js +226 -0
  47. package/dist/webgl.js.map +1 -0
  48. package/dist/webgl.mjs +195 -0
  49. package/dist/webgl.mjs.map +1 -0
  50. package/package.json +145 -16
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ColumnDef } from '@tanstack/react-table';
3
+
4
+ interface DataTableProps<TData, TValue> {
5
+ columns: ColumnDef<TData, TValue>[];
6
+ data: TData[];
7
+ }
8
+ declare function DataTable<TData, TValue>({ columns, data, }: DataTableProps<TData, TValue>): react_jsx_runtime.JSX.Element;
9
+
10
+ export { DataTable };
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ColumnDef } from '@tanstack/react-table';
3
+
4
+ interface DataTableProps<TData, TValue> {
5
+ columns: ColumnDef<TData, TValue>[];
6
+ data: TData[];
7
+ }
8
+ declare function DataTable<TData, TValue>({ columns, data, }: DataTableProps<TData, TValue>): react_jsx_runtime.JSX.Element;
9
+
10
+ export { DataTable };
package/dist/tables.js ADDED
@@ -0,0 +1,248 @@
1
+ "use client";
2
+ "use strict";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/tables.ts
32
+ var tables_exports = {};
33
+ __export(tables_exports, {
34
+ DataTable: () => DataTable
35
+ });
36
+ module.exports = __toCommonJS(tables_exports);
37
+
38
+ // src/components/data-display/DataTable.tsx
39
+ var React = __toESM(require("react"));
40
+ var import_react_table = require("@tanstack/react-table");
41
+
42
+ // src/lib/utils.ts
43
+ var import_clsx = require("clsx");
44
+ var import_tailwind_merge = require("tailwind-merge");
45
+ function cn(...inputs) {
46
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
47
+ }
48
+
49
+ // src/components/data-display/Table.tsx
50
+ var import_jsx_runtime = require("react/jsx-runtime");
51
+ var Table = ({
52
+ ref,
53
+ className,
54
+ ...props
55
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
56
+ "table",
57
+ {
58
+ ref,
59
+ className: cn("w-full caption-bottom text-sm", className),
60
+ ...props
61
+ }
62
+ ) });
63
+ var TableHeader = ({
64
+ ref,
65
+ className,
66
+ ...props
67
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props });
68
+ var TableBody = ({
69
+ ref,
70
+ className,
71
+ ...props
72
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
+ "tbody",
74
+ {
75
+ ref,
76
+ className: cn("[&_tr:last-child]:border-0", className),
77
+ ...props
78
+ }
79
+ );
80
+ var TableRow = ({
81
+ ref,
82
+ className,
83
+ ...props
84
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ "tr",
86
+ {
87
+ ref,
88
+ className: cn(
89
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
90
+ className
91
+ ),
92
+ ...props
93
+ }
94
+ );
95
+ var TableHead = ({
96
+ ref,
97
+ className,
98
+ ...props
99
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
+ "th",
101
+ {
102
+ ref,
103
+ className: cn(
104
+ "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
105
+ className
106
+ ),
107
+ ...props
108
+ }
109
+ );
110
+ var TableCell = ({
111
+ ref,
112
+ className,
113
+ ...props
114
+ }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
115
+ "td",
116
+ {
117
+ ref,
118
+ className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className),
119
+ ...props
120
+ }
121
+ );
122
+
123
+ // src/components/actions/Button.tsx
124
+ var import_class_variance_authority = require("class-variance-authority");
125
+ var import_react_slot = require("@radix-ui/react-slot");
126
+ var import_jsx_runtime2 = require("react/jsx-runtime");
127
+ var buttonVariants = (0, import_class_variance_authority.cva)(
128
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 sage-interactive [&_svg]:transition-transform [&_svg]:duration-300 hover:[&_svg]:translate-x-1",
129
+ {
130
+ variants: {
131
+ variant: {
132
+ default: "bg-primary text-primary-foreground shadow",
133
+ primary: "bg-primary text-primary-foreground shadow",
134
+ // Alias for default
135
+ destructive: "bg-destructive text-destructive-foreground shadow-sm",
136
+ outline: "border border-input bg-transparent shadow-sm hover:bg-primary hover:text-primary-foreground hover:border-primary",
137
+ secondary: "bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-sm hover:bg-primary hover:text-primary-foreground dark:hover:bg-primary dark:hover:text-primary-foreground",
138
+ ghost: "hover:text-accent-foreground",
139
+ link: "text-primary underline-offset-4 hover:underline"
140
+ },
141
+ size: {
142
+ default: "h-9 px-4 py-2",
143
+ sm: "h-8 rounded-md px-3 text-xs",
144
+ lg: "h-10 rounded-md px-8",
145
+ icon: "h-9 w-9"
146
+ }
147
+ },
148
+ defaultVariants: {
149
+ variant: "default",
150
+ size: "default"
151
+ }
152
+ }
153
+ );
154
+ var Button = ({
155
+ ref,
156
+ className,
157
+ variant,
158
+ size,
159
+ asChild = false,
160
+ children,
161
+ ...props
162
+ }) => {
163
+ const Comp = asChild ? import_react_slot.Slot : "button";
164
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
165
+ Comp,
166
+ {
167
+ className: cn(buttonVariants({ variant, size, className })),
168
+ ref,
169
+ ...props,
170
+ children: asChild ? children : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "relative z-20 flex items-center justify-center gap-2", children })
171
+ }
172
+ );
173
+ };
174
+
175
+ // src/components/data-display/DataTable.tsx
176
+ var import_jsx_runtime3 = require("react/jsx-runtime");
177
+ function DataTable({
178
+ columns,
179
+ data
180
+ }) {
181
+ const [sorting, setSorting] = React.useState([]);
182
+ const table = (0, import_react_table.useReactTable)({
183
+ data,
184
+ columns,
185
+ getCoreRowModel: (0, import_react_table.getCoreRowModel)(),
186
+ getPaginationRowModel: (0, import_react_table.getPaginationRowModel)(),
187
+ onSortingChange: setSorting,
188
+ getSortedRowModel: (0, import_react_table.getSortedRowModel)(),
189
+ state: {
190
+ sorting
191
+ }
192
+ });
193
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "space-y-4", children: [
194
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "rounded-md border", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Table, { children: [
195
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TableRow, { children: headerGroup.headers.map((header) => {
196
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TableHead, { children: header.isPlaceholder ? null : (0, import_react_table.flexRender)(
197
+ header.column.columnDef.header,
198
+ header.getContext()
199
+ ) }, header.id);
200
+ }) }, headerGroup.id)) }),
201
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
202
+ TableRow,
203
+ {
204
+ "data-state": row.getIsSelected() && "selected",
205
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TableCell, { children: (0, import_react_table.flexRender)(
206
+ cell.column.columnDef.cell,
207
+ cell.getContext()
208
+ ) }, cell.id))
209
+ },
210
+ row.id
211
+ )) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
212
+ TableCell,
213
+ {
214
+ colSpan: columns.length,
215
+ className: "h-24 text-center",
216
+ children: "No results."
217
+ }
218
+ ) }) })
219
+ ] }) }),
220
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center justify-end space-x-2", children: [
221
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
222
+ Button,
223
+ {
224
+ variant: "outline",
225
+ size: "sm",
226
+ onClick: () => table.previousPage(),
227
+ disabled: !table.getCanPreviousPage(),
228
+ children: "Previous"
229
+ }
230
+ ),
231
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
232
+ Button,
233
+ {
234
+ variant: "outline",
235
+ size: "sm",
236
+ onClick: () => table.nextPage(),
237
+ disabled: !table.getCanNextPage(),
238
+ children: "Next"
239
+ }
240
+ )
241
+ ] })
242
+ ] });
243
+ }
244
+ // Annotate the CommonJS export names for ESM import in node:
245
+ 0 && (module.exports = {
246
+ DataTable
247
+ });
248
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tables.ts","../src/components/data-display/DataTable.tsx","../src/lib/utils.ts","../src/components/data-display/Table.tsx","../src/components/actions/Button.tsx"],"sourcesContent":["export * from './components/data-display/DataTable';\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n SortingState,\n useReactTable,\n} from \"@tanstack/react-table\"\n\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./Table\"\nimport { Button } from \"../actions/Button\"\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n onSortingChange: setSorting,\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n },\n })\n\n return (\n <div className=\"space-y-4\">\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-end space-x-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n </Button>\n </div>\n </div>\n )\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Table = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableElement> & {\n ref?: React.Ref<HTMLTableElement>;\n }\n) => (<div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n</div>)\n\nconst TableHeader = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableSectionElement> & {\n ref?: React.Ref<HTMLTableSectionElement>;\n }\n) => (<thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />)\n\nconst TableBody = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableSectionElement> & {\n ref?: React.Ref<HTMLTableSectionElement>;\n }\n) => (<tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n/>)\n\nconst TableFooter = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableSectionElement> & {\n ref?: React.Ref<HTMLTableSectionElement>;\n }\n) => (<tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n/>)\n\nconst TableRow = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableRowElement> & {\n ref?: React.Ref<HTMLTableRowElement>;\n }\n) => (<tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n/>)\n\nconst TableHead = (\n {\n ref,\n className,\n ...props\n }: React.ThHTMLAttributes<HTMLTableCellElement> & {\n ref?: React.Ref<HTMLTableCellElement>;\n }\n) => (<th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n/>)\n\nconst TableCell = (\n {\n ref,\n className,\n ...props\n }: React.TdHTMLAttributes<HTMLTableCellElement> & {\n ref?: React.Ref<HTMLTableCellElement>;\n }\n) => (<td\n ref={ref}\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n/>)\n\nconst TableCaption = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableCaptionElement> & {\n ref?: React.Ref<HTMLTableCaptionElement>;\n }\n) => (<caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n/>)\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 sage-interactive [&_svg]:transition-transform [&_svg]:duration-300 hover:[&_svg]:translate-x-1',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow',\n primary: 'bg-primary text-primary-foreground shadow', // Alias for default\n destructive: 'bg-destructive text-destructive-foreground shadow-sm',\n outline: 'border border-input bg-transparent shadow-sm hover:bg-primary hover:text-primary-foreground hover:border-primary',\n secondary: 'bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-sm hover:bg-primary hover:text-primary-foreground dark:hover:bg-primary dark:hover:text-primary-foreground',\n ghost: 'hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = (\n {\n ref,\n className,\n variant,\n size,\n asChild = false,\n children,\n ...props\n }: ButtonProps & {\n ref?: React.Ref<HTMLButtonElement>;\n }\n) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <span className=\"relative z-20 flex items-center justify-center gap-2\">\n {children}\n </span>\n )}\n </Comp>\n )\n}\n\nexport { Button, buttonVariants };\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime"]}
@@ -0,0 +1,218 @@
1
+ "use client";
2
+
3
+ // src/components/data-display/DataTable.tsx
4
+ import * as React from "react";
5
+ import {
6
+ flexRender,
7
+ getCoreRowModel,
8
+ getPaginationRowModel,
9
+ getSortedRowModel,
10
+ useReactTable
11
+ } from "@tanstack/react-table";
12
+
13
+ // src/lib/utils.ts
14
+ import { clsx } from "clsx";
15
+ import { twMerge } from "tailwind-merge";
16
+ function cn(...inputs) {
17
+ return twMerge(clsx(inputs));
18
+ }
19
+
20
+ // src/components/data-display/Table.tsx
21
+ import { jsx } from "react/jsx-runtime";
22
+ var Table = ({
23
+ ref,
24
+ className,
25
+ ...props
26
+ }) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
27
+ "table",
28
+ {
29
+ ref,
30
+ className: cn("w-full caption-bottom text-sm", className),
31
+ ...props
32
+ }
33
+ ) });
34
+ var TableHeader = ({
35
+ ref,
36
+ className,
37
+ ...props
38
+ }) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props });
39
+ var TableBody = ({
40
+ ref,
41
+ className,
42
+ ...props
43
+ }) => /* @__PURE__ */ jsx(
44
+ "tbody",
45
+ {
46
+ ref,
47
+ className: cn("[&_tr:last-child]:border-0", className),
48
+ ...props
49
+ }
50
+ );
51
+ var TableRow = ({
52
+ ref,
53
+ className,
54
+ ...props
55
+ }) => /* @__PURE__ */ jsx(
56
+ "tr",
57
+ {
58
+ ref,
59
+ className: cn(
60
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
61
+ className
62
+ ),
63
+ ...props
64
+ }
65
+ );
66
+ var TableHead = ({
67
+ ref,
68
+ className,
69
+ ...props
70
+ }) => /* @__PURE__ */ jsx(
71
+ "th",
72
+ {
73
+ ref,
74
+ className: cn(
75
+ "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
76
+ className
77
+ ),
78
+ ...props
79
+ }
80
+ );
81
+ var TableCell = ({
82
+ ref,
83
+ className,
84
+ ...props
85
+ }) => /* @__PURE__ */ jsx(
86
+ "td",
87
+ {
88
+ ref,
89
+ className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className),
90
+ ...props
91
+ }
92
+ );
93
+
94
+ // src/components/actions/Button.tsx
95
+ import { cva } from "class-variance-authority";
96
+ import { Slot } from "@radix-ui/react-slot";
97
+ import { jsx as jsx2 } from "react/jsx-runtime";
98
+ var buttonVariants = cva(
99
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 sage-interactive [&_svg]:transition-transform [&_svg]:duration-300 hover:[&_svg]:translate-x-1",
100
+ {
101
+ variants: {
102
+ variant: {
103
+ default: "bg-primary text-primary-foreground shadow",
104
+ primary: "bg-primary text-primary-foreground shadow",
105
+ // Alias for default
106
+ destructive: "bg-destructive text-destructive-foreground shadow-sm",
107
+ outline: "border border-input bg-transparent shadow-sm hover:bg-primary hover:text-primary-foreground hover:border-primary",
108
+ secondary: "bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-sm hover:bg-primary hover:text-primary-foreground dark:hover:bg-primary dark:hover:text-primary-foreground",
109
+ ghost: "hover:text-accent-foreground",
110
+ link: "text-primary underline-offset-4 hover:underline"
111
+ },
112
+ size: {
113
+ default: "h-9 px-4 py-2",
114
+ sm: "h-8 rounded-md px-3 text-xs",
115
+ lg: "h-10 rounded-md px-8",
116
+ icon: "h-9 w-9"
117
+ }
118
+ },
119
+ defaultVariants: {
120
+ variant: "default",
121
+ size: "default"
122
+ }
123
+ }
124
+ );
125
+ var Button = ({
126
+ ref,
127
+ className,
128
+ variant,
129
+ size,
130
+ asChild = false,
131
+ children,
132
+ ...props
133
+ }) => {
134
+ const Comp = asChild ? Slot : "button";
135
+ return /* @__PURE__ */ jsx2(
136
+ Comp,
137
+ {
138
+ className: cn(buttonVariants({ variant, size, className })),
139
+ ref,
140
+ ...props,
141
+ children: asChild ? children : /* @__PURE__ */ jsx2("span", { className: "relative z-20 flex items-center justify-center gap-2", children })
142
+ }
143
+ );
144
+ };
145
+
146
+ // src/components/data-display/DataTable.tsx
147
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
148
+ function DataTable({
149
+ columns,
150
+ data
151
+ }) {
152
+ const [sorting, setSorting] = React.useState([]);
153
+ const table = useReactTable({
154
+ data,
155
+ columns,
156
+ getCoreRowModel: getCoreRowModel(),
157
+ getPaginationRowModel: getPaginationRowModel(),
158
+ onSortingChange: setSorting,
159
+ getSortedRowModel: getSortedRowModel(),
160
+ state: {
161
+ sorting
162
+ }
163
+ });
164
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
165
+ /* @__PURE__ */ jsx3("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs(Table, { children: [
166
+ /* @__PURE__ */ jsx3(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx3(TableRow, { children: headerGroup.headers.map((header) => {
167
+ return /* @__PURE__ */ jsx3(TableHead, { children: header.isPlaceholder ? null : flexRender(
168
+ header.column.columnDef.header,
169
+ header.getContext()
170
+ ) }, header.id);
171
+ }) }, headerGroup.id)) }),
172
+ /* @__PURE__ */ jsx3(TableBody, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx3(
173
+ TableRow,
174
+ {
175
+ "data-state": row.getIsSelected() && "selected",
176
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx3(TableCell, { children: flexRender(
177
+ cell.column.columnDef.cell,
178
+ cell.getContext()
179
+ ) }, cell.id))
180
+ },
181
+ row.id
182
+ )) : /* @__PURE__ */ jsx3(TableRow, { children: /* @__PURE__ */ jsx3(
183
+ TableCell,
184
+ {
185
+ colSpan: columns.length,
186
+ className: "h-24 text-center",
187
+ children: "No results."
188
+ }
189
+ ) }) })
190
+ ] }) }),
191
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end space-x-2", children: [
192
+ /* @__PURE__ */ jsx3(
193
+ Button,
194
+ {
195
+ variant: "outline",
196
+ size: "sm",
197
+ onClick: () => table.previousPage(),
198
+ disabled: !table.getCanPreviousPage(),
199
+ children: "Previous"
200
+ }
201
+ ),
202
+ /* @__PURE__ */ jsx3(
203
+ Button,
204
+ {
205
+ variant: "outline",
206
+ size: "sm",
207
+ onClick: () => table.nextPage(),
208
+ disabled: !table.getCanNextPage(),
209
+ children: "Next"
210
+ }
211
+ )
212
+ ] })
213
+ ] });
214
+ }
215
+ export {
216
+ DataTable
217
+ };
218
+ //# sourceMappingURL=tables.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataTable.tsx","../src/lib/utils.ts","../src/components/data-display/Table.tsx","../src/components/actions/Button.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n SortingState,\n useReactTable,\n} from \"@tanstack/react-table\"\n\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./Table\"\nimport { Button } from \"../actions/Button\"\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n}\n\nexport function DataTable<TData, TValue>({\n columns,\n data,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n onSortingChange: setSorting,\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n },\n })\n\n return (\n <div className=\"space-y-4\">\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n return (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-end space-x-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n </Button>\n </div>\n </div>\n )\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst Table = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableElement> & {\n ref?: React.Ref<HTMLTableElement>;\n }\n) => (<div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n</div>)\n\nconst TableHeader = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableSectionElement> & {\n ref?: React.Ref<HTMLTableSectionElement>;\n }\n) => (<thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />)\n\nconst TableBody = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableSectionElement> & {\n ref?: React.Ref<HTMLTableSectionElement>;\n }\n) => (<tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n/>)\n\nconst TableFooter = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableSectionElement> & {\n ref?: React.Ref<HTMLTableSectionElement>;\n }\n) => (<tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n/>)\n\nconst TableRow = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableRowElement> & {\n ref?: React.Ref<HTMLTableRowElement>;\n }\n) => (<tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n/>)\n\nconst TableHead = (\n {\n ref,\n className,\n ...props\n }: React.ThHTMLAttributes<HTMLTableCellElement> & {\n ref?: React.Ref<HTMLTableCellElement>;\n }\n) => (<th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className\n )}\n {...props}\n/>)\n\nconst TableCell = (\n {\n ref,\n className,\n ...props\n }: React.TdHTMLAttributes<HTMLTableCellElement> & {\n ref?: React.Ref<HTMLTableCellElement>;\n }\n) => (<td\n ref={ref}\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n/>)\n\nconst TableCaption = (\n {\n ref,\n className,\n ...props\n }: React.HTMLAttributes<HTMLTableCaptionElement> & {\n ref?: React.Ref<HTMLTableCaptionElement>;\n }\n) => (<caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n/>)\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 sage-interactive [&_svg]:transition-transform [&_svg]:duration-300 hover:[&_svg]:translate-x-1',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow',\n primary: 'bg-primary text-primary-foreground shadow', // Alias for default\n destructive: 'bg-destructive text-destructive-foreground shadow-sm',\n outline: 'border border-input bg-transparent shadow-sm hover:bg-primary hover:text-primary-foreground hover:border-primary',\n secondary: 'bg-black/5 dark:bg-white/10 backdrop-blur-md border border-black/5 dark:border-white/10 text-secondary-foreground shadow-sm hover:bg-primary hover:text-primary-foreground dark:hover:bg-primary dark:hover:text-primary-foreground',\n ghost: 'hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = (\n {\n ref,\n className,\n variant,\n size,\n asChild = false,\n children,\n ...props\n }: ButtonProps & {\n ref?: React.Ref<HTMLButtonElement>;\n }\n) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n >\n {asChild ? (\n children\n ) : (\n <span className=\"relative z-20 flex items-center justify-center gap-2\">\n {children}\n </span>\n )}\n </Comp>\n )\n}\n\nexport { Button, buttonVariants };\n"],"mappings":"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","names":["jsx","jsx"]}
package/dist/utils.js CHANGED
@@ -520,7 +520,8 @@ function hexToHSL(hex) {
520
520
  const b = rgb.b / 255;
521
521
  const max = Math.max(r, g, b);
522
522
  const min = Math.min(r, g, b);
523
- let h = 0, s = 0, l = (max + min) / 2;
523
+ let h = 0, s = 0;
524
+ const l = (max + min) / 2;
524
525
  if (max !== min) {
525
526
  const d = max - min;
526
527
  s = l > 0.5 ? d / (2 - max - min) : d / (max + min);