@roy-ui/ui 0.0.6 → 0.0.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.
Files changed (69) hide show
  1. package/dist/Button-OZLAH5NO.css +179 -0
  2. package/dist/{Pagination-FUYIHYSD.css → Pagination-LLKV7XXI.css} +3 -1
  3. package/dist/Table-qVdGZkB4.d.ts +42 -0
  4. package/dist/TimePicker-BhRta4MK.d.ts +39 -0
  5. package/dist/chunk-4SGMAZBG.js +161 -0
  6. package/dist/chunk-4SGMAZBG.js.map +1 -0
  7. package/dist/chunk-5CIBIH7R.js +98 -0
  8. package/dist/chunk-5CIBIH7R.js.map +1 -0
  9. package/dist/chunk-75IGGPXL.js +518 -0
  10. package/dist/chunk-75IGGPXL.js.map +1 -0
  11. package/dist/chunk-C5X3TE5U.js +87 -0
  12. package/dist/chunk-C5X3TE5U.js.map +1 -0
  13. package/dist/chunk-HUCK7AM7.js +840 -0
  14. package/dist/chunk-HUCK7AM7.js.map +1 -0
  15. package/dist/chunk-KSHKVSNK.js +82 -0
  16. package/dist/chunk-KSHKVSNK.js.map +1 -0
  17. package/dist/chunk-M6HB6BMA.js +101 -0
  18. package/dist/chunk-M6HB6BMA.js.map +1 -0
  19. package/dist/chunk-MDPMEW4K.js +58 -0
  20. package/dist/chunk-MDPMEW4K.js.map +1 -0
  21. package/dist/chunk-PGV55XSZ.js +107 -0
  22. package/dist/chunk-PGV55XSZ.js.map +1 -0
  23. package/dist/chunk-RLBVY3DG.js +64 -0
  24. package/dist/chunk-RLBVY3DG.js.map +1 -0
  25. package/dist/chunk-SFENGB5N.js +410 -0
  26. package/dist/chunk-SFENGB5N.js.map +1 -0
  27. package/dist/chunk-XERZVDIT.js +194 -0
  28. package/dist/chunk-XERZVDIT.js.map +1 -0
  29. package/dist/components/button/index.d.ts +37 -0
  30. package/dist/components/button/index.js +4 -0
  31. package/dist/components/button/index.js.map +1 -0
  32. package/dist/components/data-table/index.d.ts +145 -0
  33. package/dist/components/data-table/index.js +9 -0
  34. package/dist/components/data-table/index.js.map +1 -0
  35. package/dist/components/date-range-picker/index.d.ts +30 -0
  36. package/dist/components/date-range-picker/index.js +4 -0
  37. package/dist/components/date-range-picker/index.js.map +1 -0
  38. package/dist/components/gradient-button/index.d.ts +12 -0
  39. package/dist/components/gradient-button/index.js +4 -0
  40. package/dist/components/gradient-button/index.js.map +1 -0
  41. package/dist/components/made-by/index.d.ts +23 -0
  42. package/dist/components/made-by/index.js +4 -0
  43. package/dist/components/made-by/index.js.map +1 -0
  44. package/dist/components/pagination/index.d.ts +23 -0
  45. package/dist/components/pagination/index.js +4 -0
  46. package/dist/components/pagination/index.js.map +1 -0
  47. package/dist/components/popover/index.d.ts +18 -0
  48. package/dist/components/popover/index.js +4 -0
  49. package/dist/components/popover/index.js.map +1 -0
  50. package/dist/components/table/index.d.ts +28 -0
  51. package/dist/components/table/index.js +4 -0
  52. package/dist/components/table/index.js.map +1 -0
  53. package/dist/components/table-search/index.d.ts +19 -0
  54. package/dist/components/table-search/index.js +4 -0
  55. package/dist/components/table-search/index.js.map +1 -0
  56. package/dist/components/text-morph/index.d.ts +28 -0
  57. package/dist/components/text-morph/index.js +4 -0
  58. package/dist/components/text-morph/index.js.map +1 -0
  59. package/dist/components/time-picker/index.d.ts +14 -0
  60. package/dist/components/time-picker/index.js +4 -0
  61. package/dist/components/time-picker/index.js.map +1 -0
  62. package/dist/components/tree-nav/index.d.ts +30 -0
  63. package/dist/components/tree-nav/index.js +4 -0
  64. package/dist/components/tree-nav/index.js.map +1 -0
  65. package/dist/dateUtils-B_m_EICl.d.ts +14 -0
  66. package/dist/index.d.ts +17 -408
  67. package/dist/index.js +12 -2462
  68. package/dist/index.js.map +1 -1
  69. package/package.json +51 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/table/Spinner.tsx","../src/components/table/Table.tsx","../src/components/table/TableParts.tsx"],"names":["Table","jsx","jsxs","forwardRef","TableHeader","TableBody","TableRow","TableHead","TableCell"],"mappings":"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","file":"chunk-XERZVDIT.js","sourcesContent":["'use client';\n\nimport type { CSSProperties } from 'react';\n\nexport interface SpinnerProps {\n size?: number;\n strokeWidth?: number;\n label?: string;\n style?: CSSProperties;\n className?: string;\n}\n\nexport function Spinner({\n size = 16,\n strokeWidth = 2,\n label = 'Loading',\n style,\n className = '',\n}: SpinnerProps) {\n const r = (size - strokeWidth) / 2;\n const c = size / 2;\n const circumference = 2 * Math.PI * r;\n\n return (\n <span\n role=\"status\"\n aria-label={label}\n className={['royui-spinner', className].filter(Boolean).join(' ')}\n style={{ width: size, height: size, ...style }}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`} aria-hidden>\n <circle\n cx={c}\n cy={c}\n r={r}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeOpacity={0.18}\n strokeWidth={strokeWidth}\n />\n <circle\n cx={c}\n cy={c}\n r={r}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference * 0.72}\n transform={`rotate(-90 ${c} ${c})`}\n />\n </svg>\n </span>\n );\n}\n","'use client';\n\nimport {\n forwardRef,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n type TableHTMLAttributes,\n} from 'react';\nimport { Spinner } from './Spinner';\nimport './Table.css';\n\nexport type TableDensity = 'compact' | 'cozy' | 'comfortable';\n\nexport type FontSpec =\n | string\n | {\n family?: string;\n size?: string | number;\n weight?: number | string;\n letterSpacing?: string;\n featureSettings?: string;\n };\n\nexport interface TableProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Rows visible before vertical scroll. Default 7. */\n visibleRows?: number;\n /** Approximate row height in px — drives the scroll cap. Default 44. */\n rowHeight?: number;\n /** Header sticks during scroll. Default true. */\n stickyHeader?: boolean;\n /** Padding scale. Default 'cozy'. */\n density?: TableDensity;\n /** Renders an inline spinner overlay on top of rows. */\n loading?: boolean;\n /** Replaces row area when no rows are present. */\n empty?: ReactNode;\n /**\n * Force every column to fit in the container — disables horizontal scroll\n * and lets the browser distribute width across all visible columns.\n * Cell content wraps onto multiple lines instead of clipping.\n */\n fitColumns?: boolean;\n /** Per-zone fonts. */\n headerFont?: FontSpec;\n rowHeaderFont?: FontSpec;\n cellFont?: FontSpec;\n children?: ReactNode;\n tableProps?: TableHTMLAttributes<HTMLTableElement>;\n /** Show the empty slot. Set explicitly by DataTable; defaults to false. */\n isEmpty?: boolean;\n}\n\nfunction fontVars(prefix: string, spec: FontSpec | undefined): CSSProperties {\n if (!spec) return {};\n const out: Record<string, string> = {};\n if (typeof spec === 'string') {\n out[`${prefix}-font`] = spec;\n return out as CSSProperties;\n }\n if (spec.family) out[`${prefix}-font`] = spec.family;\n if (spec.size != null)\n out[`${prefix}-size`] = typeof spec.size === 'number' ? `${spec.size}px` : spec.size;\n if (spec.weight != null) out[`${prefix}-weight`] = String(spec.weight);\n if (spec.letterSpacing) out[`${prefix}-tracking`] = spec.letterSpacing;\n if (spec.featureSettings) out[`${prefix}-features`] = spec.featureSettings;\n return out as CSSProperties;\n}\n\nexport const Table = forwardRef<HTMLDivElement, TableProps>(function Table(\n {\n visibleRows = 7,\n rowHeight = 44,\n stickyHeader = true,\n density = 'cozy',\n loading = false,\n empty,\n isEmpty = false,\n fitColumns = false,\n headerFont,\n rowHeaderFont,\n cellFont,\n className = '',\n style,\n children,\n tableProps,\n ...rest\n },\n ref,\n) {\n const headerH = 40;\n const maxH = rowHeight * visibleRows + (stickyHeader ? headerH : 0);\n\n const mergedStyle: CSSProperties = {\n ...style,\n ['--royui-table-row-h' as string]: `${rowHeight}px`,\n ['--royui-table-max-h' as string]: `${maxH}px`,\n ...fontVars('--royui-table-header', headerFont),\n ...fontVars('--royui-table-row-header', rowHeaderFont),\n ...fontVars('--royui-table-cell', cellFont),\n };\n\n const classes = [\n 'royui-table',\n `royui-table--${density}`,\n stickyHeader && 'royui-table--sticky',\n loading && 'royui-table--loading',\n fitColumns && 'royui-table--fit',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div ref={ref} className={classes} style={mergedStyle} {...rest}>\n <div className=\"royui-table__scroll\" role=\"region\" aria-label=\"Table\">\n <table className=\"royui-table__table\" {...tableProps}>\n {children}\n </table>\n {isEmpty && !loading && (\n <div className=\"royui-table__empty\" role=\"status\">\n {empty ?? <span>No results</span>}\n </div>\n )}\n {loading && (\n <div className=\"royui-table__loading\" aria-hidden>\n <Spinner size={18} />\n </div>\n )}\n </div>\n </div>\n );\n});\n","'use client';\n\nimport {\n forwardRef,\n type HTMLAttributes,\n type ThHTMLAttributes,\n type TdHTMLAttributes,\n} from 'react';\n\nexport const TableHeader = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(function TableHeader({ className = '', ...rest }, ref) {\n return (\n <thead\n ref={ref}\n className={['royui-table__thead', className].filter(Boolean).join(' ')}\n {...rest}\n />\n );\n});\n\nexport const TableBody = forwardRef<\n HTMLTableSectionElement,\n HTMLAttributes<HTMLTableSectionElement>\n>(function TableBody({ className = '', ...rest }, ref) {\n return (\n <tbody\n ref={ref}\n className={['royui-table__tbody', className].filter(Boolean).join(' ')}\n {...rest}\n />\n );\n});\n\nexport const TableRow = forwardRef<\n HTMLTableRowElement,\n HTMLAttributes<HTMLTableRowElement>\n>(function TableRow({ className = '', ...rest }, ref) {\n return (\n <tr\n ref={ref}\n className={['royui-table__tr', className].filter(Boolean).join(' ')}\n {...rest}\n />\n );\n});\n\nexport interface TableHeadCellProps extends ThHTMLAttributes<HTMLTableCellElement> {\n align?: 'left' | 'right' | 'center';\n}\n\nexport const TableHead = forwardRef<HTMLTableCellElement, TableHeadCellProps>(\n function TableHead({ className = '', align = 'left', ...rest }, ref) {\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={[\n 'royui-table__th',\n align !== 'left' && `royui-table__th--${align}`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n />\n );\n },\n);\n\nexport interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {\n align?: 'left' | 'right' | 'center';\n isRowHeader?: boolean;\n}\n\nexport const TableCell = forwardRef<HTMLTableCellElement, TableCellProps>(\n function TableCell({ className = '', align = 'left', isRowHeader, ...rest }, ref) {\n if (isRowHeader) {\n return (\n <th\n ref={ref}\n scope=\"row\"\n className={[\n 'royui-table__row-header',\n align !== 'left' && `royui-table__td--${align}`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...(rest as ThHTMLAttributes<HTMLTableCellElement>)}\n />\n );\n }\n return (\n <td\n ref={ref}\n className={[\n 'royui-table__td',\n align !== 'left' && `royui-table__td--${align}`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...rest}\n />\n );\n },\n);\n"]}
@@ -0,0 +1,37 @@
1
+ import * as react from 'react';
2
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
3
+
4
+ type ButtonSize = 'sm' | 'md' | 'lg';
5
+ type ButtonVariant = 'primary' | 'secondary' | 'ghost';
6
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
7
+ /** Visual scale. Defaults to "md". */
8
+ size?: ButtonSize;
9
+ /** Visual weight. "primary" is the solid depth button; "secondary" is a
10
+ * quieter raised surface; "ghost" is text-only until hovered. Defaults to "primary". */
11
+ variant?: ButtonVariant;
12
+ /**
13
+ * Render the single child element instead of a <button>, merging the
14
+ * button's classes, styles, and props onto it. Use this for a
15
+ * button-styled link with real anchor semantics:
16
+ * `<Button asChild><Link href="/x">Go</Link></Button>`.
17
+ */
18
+ asChild?: boolean;
19
+ /**
20
+ * Base color (hex or rgb()). The whole depth treatment derives from it —
21
+ * a lighter top and darker base for the gradient, a hairline ring that
22
+ * adapts to the tone, and a readable label color picked by luminance.
23
+ * Defaults to the near-black surface. Override individual CSS variables
24
+ * (--royui-btn-top etc.) for finer control.
25
+ */
26
+ color?: string;
27
+ /** Stretch the button to fill its container. Defaults to false. */
28
+ fullWidth?: boolean;
29
+ /** Replaces children with a spinner and disables the button. */
30
+ loading?: boolean;
31
+ /** Optional override for the loading visual. Defaults to a spinner. */
32
+ loadingLabel?: ReactNode;
33
+ children: ReactNode;
34
+ }
35
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
36
+
37
+ export { Button, type ButtonProps, type ButtonSize };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { Button } from '../../chunk-4SGMAZBG.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,145 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+ import { F as FontSpec, a as TableDensity } from '../../Table-qVdGZkB4.js';
4
+ import { D as DateRange } from '../../dateUtils-B_m_EICl.js';
5
+ import { c as TimePickerVariant, d as TimeValue } from '../../TimePicker-BhRta4MK.js';
6
+
7
+ type ColumnType = 'text' | 'number' | 'date' | 'time';
8
+ type Column<T> = {
9
+ key: string;
10
+ header: string;
11
+ accessor: (row: T) => unknown;
12
+ type?: ColumnType;
13
+ align?: 'left' | 'right' | 'center';
14
+ /** Marks this column as the row-header cell (<th scope="row">). At most one per table. */
15
+ isRowHeader?: boolean;
16
+ /** Custom per-cell renderer. Falls back to the accessor's stringified value. */
17
+ cell?: (value: unknown, row: T) => ReactNode;
18
+ /** Initial pixel width. Resizable still by default. */
19
+ defaultWidth?: number;
20
+ minWidth?: number;
21
+ maxWidth?: number;
22
+ resizable?: boolean;
23
+ reorderable?: boolean;
24
+ hideable?: boolean;
25
+ defaultHidden?: boolean;
26
+ pinned?: 'left' | 'right';
27
+ /** Override the per-cell font for this column only (data cells; header stays unified). */
28
+ font?: FontSpec;
29
+ /** Override the comparator used when sorting this column. */
30
+ sortBy?: (row: T) => string | number | Date;
31
+ };
32
+ interface DataIO<T> {
33
+ export?: {
34
+ enabled: boolean;
35
+ formats?: ('csv' | 'json')[];
36
+ filename?: string | (() => string);
37
+ scope?: 'all' | 'filtered' | 'page';
38
+ serialize?: (rows: T[], cols: Column<T>[], format: 'csv' | 'json') => string;
39
+ };
40
+ import?: {
41
+ enabled: boolean;
42
+ accept?: string;
43
+ parse?: (text: string, file: File) => T[] | Promise<T[]>;
44
+ onImport: (rows: T[], info: {
45
+ mode: 'replace' | 'append';
46
+ file: File;
47
+ }) => void;
48
+ mode?: 'replace' | 'append';
49
+ onError?: (err: unknown, file: File) => void;
50
+ };
51
+ }
52
+ interface DataTableProps<T> {
53
+ data: T[];
54
+ columns: Column<T>[];
55
+ /** Stable row key. Defaults to the index. */
56
+ getRowId?: (row: T, index: number) => string | number;
57
+ visibleRows?: number;
58
+ rowHeight?: number;
59
+ stickyHeader?: boolean;
60
+ density?: TableDensity;
61
+ loading?: boolean;
62
+ empty?: ReactNode;
63
+ /**
64
+ * Force every column to fit in the container — disables horizontal scroll
65
+ * and ignores `defaultWidth` / resized widths so columns share the width
66
+ * equally. Cell content wraps. Resize handles still draw, but their effect
67
+ * is clamped by the container.
68
+ */
69
+ fitColumns?: boolean;
70
+ /** Toolbar — search. */
71
+ search?: {
72
+ enabled: boolean;
73
+ placeholder?: string;
74
+ debounceMs?: number;
75
+ /** Override the default per-column substring match. */
76
+ predicate?: (row: T, query: string, columns: Column<T>[]) => boolean;
77
+ };
78
+ /** Toolbar — date range filter against one column. */
79
+ dateFilter?: {
80
+ column: string;
81
+ monthsVisible?: number;
82
+ placeholder?: string;
83
+ };
84
+ /** Toolbar — time filter against one column. */
85
+ timeFilter?: {
86
+ column: string;
87
+ variant?: TimePickerVariant;
88
+ hourCycle?: 12 | 24;
89
+ placeholder?: string;
90
+ /** Tolerance in minutes around the chosen time. Default 0 (exact). */
91
+ toleranceMinutes?: number;
92
+ };
93
+ /** Pagination. Pass `false` to disable. */
94
+ pagination?: {
95
+ pageSize?: number;
96
+ siblingCount?: number;
97
+ showSummary?: boolean;
98
+ } | false;
99
+ /** Column reorder. Default true. */
100
+ reorderable?: boolean;
101
+ /** Column resize. Default true. */
102
+ resizable?: boolean;
103
+ /** Show the "Columns" menu in the toolbar. Default true. */
104
+ columnMenu?: boolean;
105
+ /** Data export / import wiring. */
106
+ dataIO?: DataIO<T>;
107
+ /** Per-zone typography. */
108
+ headerFont?: FontSpec;
109
+ rowHeaderFont?: FontSpec;
110
+ cellFont?: FontSpec;
111
+ /** Persist layout state (order, sizes, hidden) under this key in localStorage. */
112
+ storageKey?: string;
113
+ className?: string;
114
+ /** Slot rendered between the toolbar and the table. */
115
+ toolbarExtras?: ReactNode;
116
+ }
117
+ type SortDir = 'asc' | 'desc' | null;
118
+ type TableLayout = {
119
+ order: string[];
120
+ sizes: Record<string, number>;
121
+ hidden: string[];
122
+ };
123
+ interface FilterState {
124
+ search: string;
125
+ dateRange: DateRange;
126
+ time: TimeValue | null;
127
+ }
128
+
129
+ declare function DataTable<T>({ data, columns, getRowId, visibleRows, rowHeight, stickyHeader, density, loading, empty, fitColumns, search, dateFilter, timeFilter, pagination, reorderable, resizable, columnMenu, dataIO, headerFont, rowHeaderFont, cellFont, storageKey, className, toolbarExtras, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
130
+
131
+ interface ColumnMenuProps<T> {
132
+ columns: Column<T>[];
133
+ layout: TableLayout;
134
+ onToggle: (key: string) => void;
135
+ onReset: () => void;
136
+ }
137
+ declare function ColumnMenu<T>({ columns, layout, onToggle, onReset, }: ColumnMenuProps<T>): react_jsx_runtime.JSX.Element;
138
+
139
+ declare function toCsv<T>(rows: T[], cols: Column<T>[]): string;
140
+ declare function fromCsv(text: string): Record<string, string>[];
141
+ declare function toJson<T>(rows: T[], cols: Column<T>[]): string;
142
+ declare function fromJson<T>(text: string): T[];
143
+ declare function downloadString(text: string, filename: string, mime: string): void;
144
+
145
+ export { type Column, ColumnMenu, type ColumnType, type DataIO, DataTable, type DataTableProps, type FilterState, type SortDir, type TableLayout, downloadString, fromCsv, fromJson, toCsv, toJson };
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ export { ColumnMenu, DataTable, downloadString, fromCsv, fromJson, toCsv, toJson } from '../../chunk-HUCK7AM7.js';
3
+ import '../../chunk-XERZVDIT.js';
4
+ import '../../chunk-KSHKVSNK.js';
5
+ import '../../chunk-75IGGPXL.js';
6
+ import '../../chunk-SFENGB5N.js';
7
+ import '../../chunk-5CIBIH7R.js';
8
+ //# sourceMappingURL=index.js.map
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,30 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { CSSProperties, ReactNode } from 'react';
3
+ import { D as DateRange } from '../../dateUtils-B_m_EICl.js';
4
+ export { a as addDays, b as addMonths, f as formatMonthYear, c as formatRange, d as formatShort, i as isBetween, e as isSameDay, s as startOfDay } from '../../dateUtils-B_m_EICl.js';
5
+
6
+ type DatePreset = {
7
+ label: string;
8
+ range: () => DateRange;
9
+ };
10
+ interface DateRangePickerProps {
11
+ value?: DateRange;
12
+ defaultValue?: DateRange;
13
+ onChange?: (range: DateRange) => void;
14
+ monthsVisible?: number;
15
+ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
16
+ minDate?: Date | null;
17
+ maxDate?: Date | null;
18
+ placeholder?: string;
19
+ presets?: DatePreset[];
20
+ /** Render below the trigger when open. Default 'left'. */
21
+ align?: 'left' | 'right';
22
+ className?: string;
23
+ style?: CSSProperties;
24
+ triggerLabel?: ReactNode;
25
+ disabled?: boolean;
26
+ }
27
+ declare const DEFAULT_PRESETS: DatePreset[];
28
+ declare function DateRangePicker({ value, defaultValue, onChange, monthsVisible, weekStartsOn, minDate, maxDate, placeholder, presets, align, className, style, triggerLabel, disabled, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
29
+
30
+ export { DEFAULT_PRESETS, type DatePreset, DateRange, DateRangePicker, type DateRangePickerProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { DEFAULT_PRESETS, DateRangePicker, addDays, addMonths, formatMonthYear, formatRange, formatShort, isBetween, isSameDay, startOfDay } from '../../chunk-SFENGB5N.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,12 @@
1
+ import * as react from 'react';
2
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
3
+
4
+ interface GradientButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
+ loading?: boolean;
6
+ loadingLabel?: ReactNode;
7
+ fullWidth?: boolean;
8
+ children: ReactNode;
9
+ }
10
+ declare const GradientButton: react.ForwardRefExoticComponent<GradientButtonProps & react.RefAttributes<HTMLButtonElement>>;
11
+
12
+ export { GradientButton, type GradientButtonProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { GradientButton } from '../../chunk-RLBVY3DG.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,23 @@
1
+ import * as react from 'react';
2
+ import { AnchorHTMLAttributes, ReactNode, CSSProperties } from 'react';
3
+
4
+ type MadeByPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
5
+ interface MadeByProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'prefix'> {
6
+ /** Display name shown after the prefix. */
7
+ name: string;
8
+ /** URL opened when the badge is clicked. */
9
+ href: string;
10
+ /** Prefix copy. Defaults to "Made by". */
11
+ prefix?: ReactNode;
12
+ /** Viewport anchor. Defaults to "bottom-right". */
13
+ position?: MadeByPosition;
14
+ /** Optional leading slot — avatar, mark, emoji, dot. */
15
+ icon?: ReactNode;
16
+ /** Custom font-family for the author name. */
17
+ nameFont?: string;
18
+ /** Font style for the author name. Defaults to "italic". */
19
+ nameStyle?: CSSProperties['fontStyle'];
20
+ }
21
+ declare const MadeBy: react.ForwardRefExoticComponent<MadeByProps & react.RefAttributes<HTMLAnchorElement>>;
22
+
23
+ export { MadeBy, type MadeByPosition, type MadeByProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { MadeBy } from '../../chunk-MDPMEW4K.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { CSSProperties } from 'react';
3
+
4
+ interface PaginationProps {
5
+ page: number;
6
+ pageCount: number;
7
+ onPageChange: (page: number) => void;
8
+ /** Pages shown adjacent to the current page. Default 1. */
9
+ siblingCount?: number;
10
+ /** Show Prev / Next text buttons. Default true. */
11
+ showPrevNext?: boolean;
12
+ /** Override the Prev / Next labels. */
13
+ prevLabel?: string;
14
+ nextLabel?: string;
15
+ /** Compact summary like "Page 3 of 12" on the left. Default false. */
16
+ showSummary?: boolean;
17
+ summaryRender?: (page: number, pageCount: number) => string;
18
+ className?: string;
19
+ style?: CSSProperties;
20
+ }
21
+ declare function Pagination({ page, pageCount, onPageChange, siblingCount, showPrevNext, prevLabel, nextLabel, showSummary, summaryRender, className, style, }: PaginationProps): react_jsx_runtime.JSX.Element;
22
+
23
+ export { Pagination, type PaginationProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { Pagination } from '../../chunk-5CIBIH7R.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface PopoverProps {
5
+ children: ReactNode;
6
+ title?: string;
7
+ align?: 'left' | 'right';
8
+ width?: 'sm' | 'md' | 'lg' | number;
9
+ label?: string;
10
+ defaultOpen?: boolean;
11
+ renderTrigger?: (api: {
12
+ isOpen: boolean;
13
+ toggle: () => void;
14
+ }) => ReactNode;
15
+ }
16
+ declare function Popover({ children, title, align, width, label, defaultOpen, renderTrigger, }: PopoverProps): react_jsx_runtime.JSX.Element;
17
+
18
+ export { Popover, type PopoverProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { Popover } from '../../chunk-C5X3TE5U.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,28 @@
1
+ export { F as FontSpec, T as Table, a as TableDensity, b as TableProps } from '../../Table-qVdGZkB4.js';
2
+ import * as react from 'react';
3
+ import { HTMLAttributes, TdHTMLAttributes, ThHTMLAttributes, CSSProperties } from 'react';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+
6
+ declare const TableHeader: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & react.RefAttributes<HTMLTableSectionElement>>;
7
+ declare const TableBody: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableSectionElement> & react.RefAttributes<HTMLTableSectionElement>>;
8
+ declare const TableRow: react.ForwardRefExoticComponent<HTMLAttributes<HTMLTableRowElement> & react.RefAttributes<HTMLTableRowElement>>;
9
+ interface TableHeadCellProps extends ThHTMLAttributes<HTMLTableCellElement> {
10
+ align?: 'left' | 'right' | 'center';
11
+ }
12
+ declare const TableHead: react.ForwardRefExoticComponent<TableHeadCellProps & react.RefAttributes<HTMLTableCellElement>>;
13
+ interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {
14
+ align?: 'left' | 'right' | 'center';
15
+ isRowHeader?: boolean;
16
+ }
17
+ declare const TableCell: react.ForwardRefExoticComponent<TableCellProps & react.RefAttributes<HTMLTableCellElement>>;
18
+
19
+ interface SpinnerProps {
20
+ size?: number;
21
+ strokeWidth?: number;
22
+ label?: string;
23
+ style?: CSSProperties;
24
+ className?: string;
25
+ }
26
+ declare function Spinner({ size, strokeWidth, label, style, className, }: SpinnerProps): react_jsx_runtime.JSX.Element;
27
+
28
+ export { Spinner, type SpinnerProps, TableBody, TableCell, type TableCellProps, TableHead, type TableHeadCellProps, TableHeader, TableRow };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { Spinner, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../../chunk-XERZVDIT.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,19 @@
1
+ import * as react from 'react';
2
+ import { InputHTMLAttributes, CSSProperties } from 'react';
3
+
4
+ interface TableSearchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'defaultValue'> {
5
+ value?: string;
6
+ defaultValue?: string;
7
+ onChange?: (value: string) => void;
8
+ /** Debounce in ms before onChange fires. Default 0 (synchronous). */
9
+ debounceMs?: number;
10
+ placeholder?: string;
11
+ /** Width in px. Default 260. */
12
+ width?: number | string;
13
+ /** Hide the magnifier dot. */
14
+ hideIndicator?: boolean;
15
+ style?: CSSProperties;
16
+ }
17
+ declare const TableSearch: react.ForwardRefExoticComponent<TableSearchProps & react.RefAttributes<HTMLInputElement>>;
18
+
19
+ export { TableSearch, type TableSearchProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { TableSearch } from '../../chunk-KSHKVSNK.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,28 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ interface TextMorphProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
5
+ /** The current text. When this prop changes, the component diff-types
6
+ from the previously displayed text to the new value. */
7
+ value: string;
8
+ /** Optional renderer for the current intermediate text — handy for
9
+ syntax highlighting, gradient spans, or wrapping each word. Receives
10
+ the partial string at every keystroke during the animation. */
11
+ renderText?: (current: string) => ReactNode;
12
+ /** Per-character typing delay range in ms. Default [30, 60]. */
13
+ typeDelay?: [min: number, max: number];
14
+ /** Per-character backspace delay range in ms. Default [18, 30]. */
15
+ backspaceDelay?: [min: number, max: number];
16
+ /** Characters that get an additional delay (harder to type on a real
17
+ keyboard — punctuation, brackets, symbols). Default /[\/{}\-_@]/. */
18
+ hardChars?: RegExp;
19
+ /** Extra delay range for hard chars in ms. Default [30, 65]. */
20
+ hardCharExtraDelay?: [min: number, max: number];
21
+ /** Pause between backspace phase and typing phase, in ms. Default 70. */
22
+ pauseMs?: number;
23
+ /** Skip animation entirely and just swap text. */
24
+ disabled?: boolean;
25
+ }
26
+ declare const TextMorph: react.ForwardRefExoticComponent<TextMorphProps & react.RefAttributes<HTMLSpanElement>>;
27
+
28
+ export { TextMorph, type TextMorphProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { TextMorph } from '../../chunk-PGV55XSZ.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,14 @@
1
+ import { d as TimeValue } from '../../TimePicker-BhRta4MK.js';
2
+ export { A as AnalogClock, a as AnalogClockProps, T as TimePicker, b as TimePickerProps, c as TimePickerVariant, f as formatTime } from '../../TimePicker-BhRta4MK.js';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import 'react';
5
+
6
+ interface DigitalClockProps {
7
+ value: TimeValue;
8
+ onChange: (next: TimeValue) => void;
9
+ hourCycle?: 12 | 24;
10
+ minuteStep?: number;
11
+ }
12
+ declare function DigitalClock({ value, onChange, hourCycle, minuteStep, }: DigitalClockProps): react_jsx_runtime.JSX.Element;
13
+
14
+ export { DigitalClock, type DigitalClockProps, TimeValue };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { AnalogClock, DigitalClock, TimePicker, formatTime } from '../../chunk-75IGGPXL.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,30 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, LiHTMLAttributes, ReactNode, AnchorHTMLAttributes } from 'react';
3
+
4
+ interface TreeNavProps extends HTMLAttributes<HTMLUListElement> {
5
+ /** Left indent of the branched group, in pixels. Default 24. */
6
+ indent?: number;
7
+ /** Vertical gap between items, in pixels. Default 2. */
8
+ gap?: number;
9
+ }
10
+ declare const TreeNav: react.ForwardRefExoticComponent<TreeNavProps & react.RefAttributes<HTMLUListElement>>;
11
+
12
+ interface TreeNavItemProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'children'> {
13
+ /** Link target. Used when asChild is false (default <a> render). */
14
+ href?: string;
15
+ /** Mark this item active. Adds aria-current="page" to the rendered link. */
16
+ active?: boolean;
17
+ /** Render the consumer's element (e.g. next/link, TanStack Link) instead of an <a>. */
18
+ asChild?: boolean;
19
+ /** Hide the triangle tip at the end of the branch. Default false (tip shown). */
20
+ hideTip?: boolean;
21
+ /** Leading icon slot. */
22
+ icon?: ReactNode;
23
+ /** Anchor / link contents. */
24
+ children?: ReactNode;
25
+ /** Forwarded to the inner link element (className, onClick, etc.). */
26
+ linkProps?: Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'children'>;
27
+ }
28
+ declare const TreeNavItem: react.ForwardRefExoticComponent<TreeNavItemProps & react.RefAttributes<HTMLLIElement>>;
29
+
30
+ export { TreeNav, TreeNavItem, type TreeNavItemProps, type TreeNavProps };
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ export { TreeNav, TreeNavItem } from '../../chunk-M6HB6BMA.js';
3
+ //# sourceMappingURL=index.js.map
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,14 @@
1
+ type DateRange = {
2
+ from: Date | null;
3
+ to: Date | null;
4
+ };
5
+ declare function startOfDay(d: Date): Date;
6
+ declare function isSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean;
7
+ declare function addMonths(d: Date, n: number): Date;
8
+ declare function addDays(d: Date, n: number): Date;
9
+ declare function isBetween(d: Date, from: Date, to: Date): boolean;
10
+ declare function formatMonthYear(d: Date): string;
11
+ declare function formatShort(d: Date | null): string;
12
+ declare function formatRange(range: DateRange): string;
13
+
14
+ export { type DateRange as D, addDays as a, addMonths as b, formatRange as c, formatShort as d, isSameDay as e, formatMonthYear as f, isBetween as i, startOfDay as s };