@classytic/fluid 0.2.4 → 0.3.3
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/LICENSE +21 -0
- package/README.md +149 -62
- package/dist/api-pagination-CJ0vR_w6.d.mts +34 -0
- package/dist/api-pagination-DBTE0yk4.mjs +190 -0
- package/dist/chunk-DQk6qfdC.mjs +18 -0
- package/dist/client/calendar.d.mts +105 -0
- package/dist/client/calendar.mjs +202 -0
- package/dist/client/core.d.mts +1614 -0
- package/dist/client/core.mjs +2779 -0
- package/dist/client/error.d.mts +125 -0
- package/dist/client/error.mjs +166 -0
- package/dist/client/hooks.d.mts +162 -0
- package/dist/client/hooks.mjs +447 -0
- package/dist/client/table.d.mts +84 -0
- package/dist/client/table.mjs +373 -0
- package/dist/client/theme.d.mts +6 -0
- package/dist/client/theme.mjs +65 -0
- package/dist/command.d.mts +134 -0
- package/dist/command.mjs +132 -0
- package/dist/compact.d.mts +359 -0
- package/dist/compact.mjs +892 -0
- package/dist/dashboard.d.mts +778 -0
- package/dist/dashboard.mjs +1617 -0
- package/dist/filter-utils-DqMmy_v-.mjs +72 -0
- package/dist/filter-utils-IZ0GtuPo.d.mts +40 -0
- package/dist/forms.d.mts +1549 -0
- package/dist/forms.mjs +3740 -0
- package/dist/index.d.mts +296 -0
- package/dist/index.mjs +432 -0
- package/dist/layouts.d.mts +215 -0
- package/dist/layouts.mjs +460 -0
- package/dist/search-context-DR7DBs7S.mjs +19 -0
- package/dist/search.d.mts +254 -0
- package/dist/search.mjs +523 -0
- package/dist/sheet-wrapper-C13Y-Q6w.mjs +211 -0
- package/dist/use-base-search-BGgWnWaF.d.mts +35 -0
- package/dist/use-debounce-xmZucz5e.mjs +53 -0
- package/dist/use-keyboard-shortcut-Bl6YM5Q7.mjs +82 -0
- package/dist/use-keyboard-shortcut-_mRCh3QO.d.mts +24 -0
- package/dist/use-media-query-BnVNIKT4.mjs +17 -0
- package/dist/use-mobile-BX3SQVo2.mjs +20 -0
- package/dist/use-scroll-detection-CsgsQYvy.mjs +43 -0
- package/dist/utils-CDue7cEt.d.mts +6 -0
- package/dist/utils-DQ5SCVoW.mjs +10 -0
- package/package.json +85 -45
- package/styles.css +2 -2
- package/dist/chunk-GUHK2DTW.js +0 -15
- package/dist/chunk-GUHK2DTW.js.map +0 -1
- package/dist/chunk-H3NFL3GJ.js +0 -57
- package/dist/chunk-H3NFL3GJ.js.map +0 -1
- package/dist/chunk-J2YRTQE4.js +0 -293
- package/dist/chunk-J2YRTQE4.js.map +0 -1
- package/dist/compact.d.ts +0 -217
- package/dist/compact.js +0 -986
- package/dist/compact.js.map +0 -1
- package/dist/dashboard.d.ts +0 -387
- package/dist/dashboard.js +0 -1032
- package/dist/dashboard.js.map +0 -1
- package/dist/index.d.ts +0 -2140
- package/dist/index.js +0 -6422
- package/dist/index.js.map +0 -1
- package/dist/layout.d.ts +0 -25
- package/dist/layout.js +0 -4
- package/dist/layout.js.map +0 -1
- package/dist/search.d.ts +0 -172
- package/dist/search.js +0 -341
- package/dist/search.js.map +0 -1
- package/dist/use-base-search-AS5Z3SAy.d.ts +0 -64
- package/dist/utils-Cbsgs0XP.d.ts +0 -5
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { a as buildSearchParams, i as buildListingStatusParams, n as SearchConfig, o as clearSearchAndFilterParams, r as buildFilterParams, s as getApiParams, t as FilterConfig } from "./filter-utils-IZ0GtuPo.mjs";
|
|
2
|
+
import { t as cn } from "./utils-CDue7cEt.mjs";
|
|
3
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import { ElementType, ReactNode } from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/layout/section.d.ts
|
|
8
|
+
type Background = "default" | "muted" | "primary" | "transparent";
|
|
9
|
+
type Padding = "none" | "sm" | "md" | "lg" | "xl";
|
|
10
|
+
interface SectionProps {
|
|
11
|
+
id?: string;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
background?: Background;
|
|
15
|
+
padding?: Padding;
|
|
16
|
+
}
|
|
17
|
+
declare function Section({
|
|
18
|
+
id,
|
|
19
|
+
children,
|
|
20
|
+
className,
|
|
21
|
+
background,
|
|
22
|
+
padding
|
|
23
|
+
}: SectionProps): react_jsx_runtime0.JSX.Element;
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/layout/container.d.ts
|
|
26
|
+
type MaxWidth = "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "full";
|
|
27
|
+
interface ContainerProps {
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
className?: string;
|
|
30
|
+
maxWidth?: MaxWidth;
|
|
31
|
+
}
|
|
32
|
+
declare function Container({
|
|
33
|
+
children,
|
|
34
|
+
className,
|
|
35
|
+
maxWidth
|
|
36
|
+
}: ContainerProps): react_jsx_runtime0.JSX.Element;
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/components/display-heading.d.ts
|
|
39
|
+
interface DisplayHeadingProps {
|
|
40
|
+
children: ReactNode;
|
|
41
|
+
size?: "lg" | "xl" | "2xl";
|
|
42
|
+
align?: "left" | "center" | "right";
|
|
43
|
+
className?: string;
|
|
44
|
+
highlightText?: string;
|
|
45
|
+
highlightColor?: "primary" | "secondary" | "accent" | "gradient";
|
|
46
|
+
as?: ElementType;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* DisplayHeading - Reusable component for hero/display headings
|
|
50
|
+
* Provides consistent typography across the platform
|
|
51
|
+
*/
|
|
52
|
+
declare function DisplayHeading({
|
|
53
|
+
children,
|
|
54
|
+
size,
|
|
55
|
+
align,
|
|
56
|
+
className,
|
|
57
|
+
highlightText,
|
|
58
|
+
highlightColor,
|
|
59
|
+
as: Component,
|
|
60
|
+
...props
|
|
61
|
+
}: DisplayHeadingProps): react_jsx_runtime0.JSX.Element;
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region src/components/social-icons.d.ts
|
|
64
|
+
declare const FacebookIcon: () => react_jsx_runtime0.JSX.Element;
|
|
65
|
+
declare const GoogleIcon: () => react_jsx_runtime0.JSX.Element;
|
|
66
|
+
declare const TwitterXIcon: () => react_jsx_runtime0.JSX.Element;
|
|
67
|
+
declare const InstagramIcon: () => react_jsx_runtime0.JSX.Element;
|
|
68
|
+
declare const WhatsAppIcon: () => react_jsx_runtime0.JSX.Element;
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/components/skeleton-wrappers.d.ts
|
|
71
|
+
interface SkeletonTableProps {
|
|
72
|
+
/** Number of skeleton rows */
|
|
73
|
+
rows?: number;
|
|
74
|
+
/** Number of skeleton columns */
|
|
75
|
+
columns?: number;
|
|
76
|
+
/** Optional column headers - if provided, shows text instead of skeleton */
|
|
77
|
+
headers?: string[];
|
|
78
|
+
/** Additional CSS classes */
|
|
79
|
+
className?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* SkeletonTable - Loading skeleton for tables
|
|
83
|
+
* Matches DataTable structure for consistent loading states
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```tsx
|
|
87
|
+
* <SkeletonTable rows={5} columns={4} />
|
|
88
|
+
* <SkeletonTable headers={["Name", "Email", "Status"]} rows={10} />
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function SkeletonTable({
|
|
92
|
+
rows,
|
|
93
|
+
columns,
|
|
94
|
+
headers,
|
|
95
|
+
className
|
|
96
|
+
}: SkeletonTableProps): react_jsx_runtime0.JSX.Element;
|
|
97
|
+
interface SkeletonListProps {
|
|
98
|
+
/** Number of skeleton items */
|
|
99
|
+
items?: number;
|
|
100
|
+
/** Additional CSS classes */
|
|
101
|
+
className?: string;
|
|
102
|
+
/** Show avatar placeholder */
|
|
103
|
+
showAvatar?: boolean;
|
|
104
|
+
/** Avatar shape */
|
|
105
|
+
avatarShape?: "circle" | "square";
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* SkeletonList - Compact skeleton for lists with avatars
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* <SkeletonList items={5} />
|
|
113
|
+
* <SkeletonList items={3} showAvatar={false} />
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
declare function SkeletonList({
|
|
117
|
+
items,
|
|
118
|
+
className,
|
|
119
|
+
showAvatar,
|
|
120
|
+
avatarShape
|
|
121
|
+
}: SkeletonListProps): react_jsx_runtime0.JSX.Element;
|
|
122
|
+
interface SkeletonCardProps {
|
|
123
|
+
/** Additional CSS classes */
|
|
124
|
+
className?: string;
|
|
125
|
+
/** Show action buttons placeholder */
|
|
126
|
+
showActions?: boolean;
|
|
127
|
+
/** Number of text lines */
|
|
128
|
+
lines?: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* SkeletonCard - Card skeleton for grid layouts
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* <SkeletonCard />
|
|
136
|
+
* <SkeletonCard showActions={false} lines={2} />
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
declare function SkeletonCard({
|
|
140
|
+
className,
|
|
141
|
+
showActions,
|
|
142
|
+
lines
|
|
143
|
+
}: SkeletonCardProps): react_jsx_runtime0.JSX.Element;
|
|
144
|
+
interface SkeletonGridProps {
|
|
145
|
+
/** Number of skeleton cards */
|
|
146
|
+
cards?: number;
|
|
147
|
+
/** Grid columns configuration */
|
|
148
|
+
columns?: 1 | 2 | 3 | 4;
|
|
149
|
+
/** Additional CSS classes */
|
|
150
|
+
className?: string;
|
|
151
|
+
/** Props passed to each SkeletonCard */
|
|
152
|
+
cardProps?: Omit<SkeletonCardProps, "className">;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* SkeletonGrid - Grid of skeleton cards
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```tsx
|
|
159
|
+
* <SkeletonGrid cards={6} columns={3} />
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
declare function SkeletonGrid({
|
|
163
|
+
cards,
|
|
164
|
+
columns,
|
|
165
|
+
className,
|
|
166
|
+
cardProps
|
|
167
|
+
}: SkeletonGridProps): react_jsx_runtime0.JSX.Element;
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/components/loading-state.d.ts
|
|
170
|
+
interface LoadingStateProps {
|
|
171
|
+
/** Loading message text */
|
|
172
|
+
text?: string;
|
|
173
|
+
/** Visual variant */
|
|
174
|
+
variant?: "default" | "inline" | "overlay" | "minimal";
|
|
175
|
+
/** Spinner size */
|
|
176
|
+
size?: "sm" | "md" | "lg";
|
|
177
|
+
/** Additional className */
|
|
178
|
+
className?: string;
|
|
179
|
+
}
|
|
180
|
+
interface LoadingOverlayProps {
|
|
181
|
+
/** Loading message text */
|
|
182
|
+
text?: string;
|
|
183
|
+
/** Whether the overlay is visible */
|
|
184
|
+
visible?: boolean;
|
|
185
|
+
/** Additional className */
|
|
186
|
+
className?: string;
|
|
187
|
+
/** Children to render behind the overlay */
|
|
188
|
+
children?: React$1.ReactNode;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* LoadingState — Versatile loading indicator
|
|
192
|
+
*
|
|
193
|
+
* @example Default (centered, full area)
|
|
194
|
+
* ```tsx
|
|
195
|
+
* <LoadingState text="Loading projects..." />
|
|
196
|
+
* ```
|
|
197
|
+
*
|
|
198
|
+
* @example Inline (in a row)
|
|
199
|
+
* ```tsx
|
|
200
|
+
* <LoadingState variant="inline" text="Saving..." size="sm" />
|
|
201
|
+
* ```
|
|
202
|
+
*
|
|
203
|
+
* @example Minimal (just the spinner)
|
|
204
|
+
* ```tsx
|
|
205
|
+
* <LoadingState variant="minimal" />
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
declare function LoadingState({
|
|
209
|
+
text,
|
|
210
|
+
variant,
|
|
211
|
+
size,
|
|
212
|
+
className
|
|
213
|
+
}: LoadingStateProps): react_jsx_runtime0.JSX.Element;
|
|
214
|
+
/**
|
|
215
|
+
* LoadingOverlay — Renders children with an overlay spinner on top
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```tsx
|
|
219
|
+
* <LoadingOverlay visible={isSaving} text="Saving changes...">
|
|
220
|
+
* <MyFormContent />
|
|
221
|
+
* </LoadingOverlay>
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
declare function LoadingOverlay({
|
|
225
|
+
text,
|
|
226
|
+
visible,
|
|
227
|
+
className,
|
|
228
|
+
children
|
|
229
|
+
}: LoadingOverlayProps): react_jsx_runtime0.JSX.Element;
|
|
230
|
+
//#endregion
|
|
231
|
+
//#region src/components/empty-state.d.ts
|
|
232
|
+
interface EmptyStateProps {
|
|
233
|
+
/** Title text */
|
|
234
|
+
title?: string;
|
|
235
|
+
/** Description / subtitle */
|
|
236
|
+
description?: string;
|
|
237
|
+
/** Icon element (ReactNode) — e.g. <SearchX /> or <MyCustomIcon /> */
|
|
238
|
+
icon?: React$1.ReactNode;
|
|
239
|
+
/** Primary action button */
|
|
240
|
+
action?: React$1.ReactNode;
|
|
241
|
+
/** Secondary action button */
|
|
242
|
+
secondaryAction?: React$1.ReactNode;
|
|
243
|
+
/** Visual variant */
|
|
244
|
+
variant?: "default" | "compact" | "card";
|
|
245
|
+
/** Additional className */
|
|
246
|
+
className?: string;
|
|
247
|
+
/** Children rendered below the description */
|
|
248
|
+
children?: React$1.ReactNode;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* EmptyState — Higher-level wrapper around the composable Empty primitives.
|
|
252
|
+
*
|
|
253
|
+
* Composes: Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, EmptyContent
|
|
254
|
+
*
|
|
255
|
+
* @example Default
|
|
256
|
+
* ```tsx
|
|
257
|
+
* <EmptyState
|
|
258
|
+
* title="No projects yet"
|
|
259
|
+
* description="Create your first project to get started."
|
|
260
|
+
* icon={<FolderPlus className="h-6 w-6" />}
|
|
261
|
+
* action={<Button>Create Project</Button>}
|
|
262
|
+
* />
|
|
263
|
+
* ```
|
|
264
|
+
*
|
|
265
|
+
* @example Compact (inline)
|
|
266
|
+
* ```tsx
|
|
267
|
+
* <EmptyState variant="compact" title="No items" />
|
|
268
|
+
* ```
|
|
269
|
+
*
|
|
270
|
+
* @example With preset
|
|
271
|
+
* ```tsx
|
|
272
|
+
* <EmptyStateNoResults action={<Button onClick={clearFilters}>Clear filters</Button>} />
|
|
273
|
+
* ```
|
|
274
|
+
*/
|
|
275
|
+
declare function EmptyState({
|
|
276
|
+
title,
|
|
277
|
+
description,
|
|
278
|
+
icon,
|
|
279
|
+
action,
|
|
280
|
+
secondaryAction,
|
|
281
|
+
variant,
|
|
282
|
+
className,
|
|
283
|
+
children
|
|
284
|
+
}: EmptyStateProps): react_jsx_runtime0.JSX.Element;
|
|
285
|
+
type EmptyStatePresetProps = Omit<EmptyStateProps, "icon" | "title" | "description"> & {
|
|
286
|
+
title?: string;
|
|
287
|
+
description?: string;
|
|
288
|
+
};
|
|
289
|
+
/** No search results — with search icon */
|
|
290
|
+
declare function EmptyStateNoResults(props: EmptyStatePresetProps): react_jsx_runtime0.JSX.Element;
|
|
291
|
+
/** No data — with inbox icon */
|
|
292
|
+
declare function EmptyStateNoData(props: EmptyStatePresetProps): react_jsx_runtime0.JSX.Element;
|
|
293
|
+
/** Not found — with file-x icon */
|
|
294
|
+
declare function EmptyStateNotFound(props: EmptyStatePresetProps): react_jsx_runtime0.JSX.Element;
|
|
295
|
+
//#endregion
|
|
296
|
+
export { Container, type ContainerProps, DisplayHeading, type DisplayHeadingProps, EmptyState, EmptyStateNoData, EmptyStateNoResults, EmptyStateNotFound, type EmptyStatePresetProps, type EmptyStateProps, FacebookIcon, type FilterConfig, GoogleIcon, InstagramIcon, LoadingOverlay, type LoadingOverlayProps, LoadingState, type LoadingStateProps, type SearchConfig, Section, type SectionProps, SkeletonCard, type SkeletonCardProps, SkeletonGrid, type SkeletonGridProps, SkeletonList, type SkeletonListProps, SkeletonTable, type SkeletonTableProps, TwitterXIcon, WhatsAppIcon, buildFilterParams, buildListingStatusParams, buildSearchParams, clearSearchAndFilterParams, cn, getApiParams };
|