@cascivo/react 0.5.1 → 0.6.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/README.md +43 -1
- package/dist/command-menu/command-menu.css +1 -1
- package/dist/command-menu/command-menu.js +284 -122
- package/dist/command-menu/command-menu.module.js +30 -15
- package/dist/form/form.js +17 -10
- package/dist/index.d.ts +230 -4
- package/dist/layouts/src/auto-grid/auto-grid.css +1 -0
- package/dist/layouts/src/auto-grid/auto-grid.js +19 -0
- package/dist/layouts/src/auto-grid/auto-grid.module.js +7 -0
- package/dist/layouts/src/center/center.css +1 -0
- package/dist/layouts/src/center/center.js +18 -0
- package/dist/layouts/src/center/center.module.js +6 -0
- package/dist/layouts/src/columns/columns.css +1 -0
- package/dist/layouts/src/columns/columns.js +19 -0
- package/dist/layouts/src/columns/columns.module.js +6 -0
- package/dist/layouts/src/flex/flex.css +1 -0
- package/dist/layouts/src/flex/flex.js +22 -0
- package/dist/layouts/src/flex/flex.module.js +6 -0
- package/dist/layouts/src/grid/grid.css +1 -0
- package/dist/layouts/src/grid/grid.js +54 -0
- package/dist/layouts/src/grid/grid.module.js +9 -0
- package/dist/layouts/src/spacer/spacer.css +1 -0
- package/dist/layouts/src/spacer/spacer.js +19 -0
- package/dist/layouts/src/spacer/spacer.module.js +6 -0
- package/dist/react/src/index.js +93 -86
- package/dist/react/src/theme.js +43 -0
- package/dist/storage/src/drivers.js +36 -0
- package/dist/storage/src/persisted-signal.js +43 -0
- package/dist/styles.css +31 -10
- package/package.json +2 -2
- package/readme.body.md +43 -1
|
@@ -2,21 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
import './command-menu.css';
|
|
4
4
|
var e = {
|
|
5
|
-
dialog: "
|
|
6
|
-
panel: "
|
|
7
|
-
search: "
|
|
8
|
-
searchIcon: "
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
dialog: "_dialog_1dfrg_2",
|
|
6
|
+
panel: "_panel_1dfrg_62",
|
|
7
|
+
search: "_search_1dfrg_72",
|
|
8
|
+
searchIcon: "_searchIcon_1dfrg_80",
|
|
9
|
+
scopeChip: "_scopeChip_1dfrg_85",
|
|
10
|
+
scopeClear: "_scopeClear_1dfrg_101",
|
|
11
|
+
input: "_input_1dfrg_123",
|
|
12
|
+
scopes: "_scopes_1dfrg_142",
|
|
13
|
+
scopesLabel: "_scopesLabel_1dfrg_153",
|
|
14
|
+
scopePill: "_scopePill_1dfrg_163",
|
|
15
|
+
scopePrefix: "_scopePrefix_1dfrg_193",
|
|
16
|
+
list: "_list_1dfrg_199",
|
|
17
|
+
group: "_group_1dfrg_205",
|
|
18
|
+
heading: "_heading_1dfrg_209",
|
|
19
|
+
count: "_count_1dfrg_222",
|
|
20
|
+
option: "_option_1dfrg_228",
|
|
21
|
+
icon: "_icon_1dfrg_253",
|
|
22
|
+
text: "_text_1dfrg_260",
|
|
23
|
+
label: "_label_1dfrg_268",
|
|
24
|
+
match: "_match_1dfrg_274",
|
|
25
|
+
description: "_description_1dfrg_280",
|
|
26
|
+
status: "_status_1dfrg_289",
|
|
27
|
+
statusDot: "_statusDot_1dfrg_316",
|
|
28
|
+
actions: "_actions_1dfrg_325",
|
|
29
|
+
action: "_action_1dfrg_325",
|
|
30
|
+
actionKeys: "_actionKeys_1dfrg_369",
|
|
31
|
+
shortcut: "_shortcut_1dfrg_374",
|
|
32
|
+
empty: "_empty_1dfrg_392",
|
|
33
|
+
footer: "_footer_1dfrg_400",
|
|
34
|
+
hint: "_hint_1dfrg_411"
|
|
20
35
|
};
|
|
21
36
|
//#endregion
|
|
22
37
|
export { e as default };
|
package/dist/form/form.js
CHANGED
|
@@ -19,24 +19,33 @@ async function c(e, t) {
|
|
|
19
19
|
return r;
|
|
20
20
|
}
|
|
21
21
|
function l(e) {
|
|
22
|
-
let n = r({ ...e.initialValues }), i = r({}), a = r({}), o = r(!1), s = (
|
|
23
|
-
n
|
|
22
|
+
let n = r({ ...e.initialValues }), i = r({}), a = r({}), o = r(!1), s = async (t) => {
|
|
23
|
+
let n = {};
|
|
24
|
+
return e.schema && (n = await c(e.schema, t)), Object.keys(n).length === 0 && e.validate && (n = await e.validate(t)), n;
|
|
25
|
+
}, l = 0, u = (t, r) => {
|
|
26
|
+
if (n.value = {
|
|
24
27
|
...n.value,
|
|
25
|
-
[
|
|
26
|
-
};
|
|
28
|
+
[t]: r
|
|
29
|
+
}, !e.validateOnChange) return;
|
|
30
|
+
let a = ++l;
|
|
31
|
+
s(n.value).then((e) => {
|
|
32
|
+
if (a !== l) return;
|
|
33
|
+
let n = { ...i.value }, r = e[t];
|
|
34
|
+
r === void 0 ? delete n[t] : n[t] = r, i.value = n;
|
|
35
|
+
});
|
|
27
36
|
};
|
|
28
37
|
return {
|
|
29
38
|
values: n,
|
|
30
39
|
errors: i,
|
|
31
40
|
touched: a,
|
|
32
41
|
submitting: o,
|
|
33
|
-
setValue:
|
|
42
|
+
setValue: u,
|
|
34
43
|
field(e) {
|
|
35
44
|
return {
|
|
36
45
|
get value() {
|
|
37
46
|
return n.value[e];
|
|
38
47
|
},
|
|
39
|
-
onChange: (t) =>
|
|
48
|
+
onChange: (t) => u(e, t),
|
|
40
49
|
onBlur: () => {
|
|
41
50
|
a.value = {
|
|
42
51
|
...a.value,
|
|
@@ -51,11 +60,9 @@ function l(e) {
|
|
|
51
60
|
async submit(r) {
|
|
52
61
|
o.value = !0;
|
|
53
62
|
try {
|
|
54
|
-
let o =
|
|
55
|
-
e.schema && (o = await c(e.schema, n.value)), Object.keys(o).length === 0 && e.validate && (o = await e.validate(n.value));
|
|
56
|
-
let s = Object.fromEntries(Object.keys(e.initialValues).map((e) => [e, !0]));
|
|
63
|
+
let o = await s(n.value), c = Object.fromEntries(Object.keys(e.initialValues).map((e) => [e, !0]));
|
|
57
64
|
t(() => {
|
|
58
|
-
i.value = o, a.value =
|
|
65
|
+
i.value = o, a.value = c;
|
|
59
66
|
}), Object.keys(o).length === 0 && await r(n.value);
|
|
60
67
|
} finally {
|
|
61
68
|
o.value = !1;
|
package/dist/index.d.ts
CHANGED
|
@@ -1051,21 +1051,52 @@ interface CommandPage {
|
|
|
1051
1051
|
placeholder?: string;
|
|
1052
1052
|
groups: CommandGroup[];
|
|
1053
1053
|
}
|
|
1054
|
+
/** An inline action revealed on the active/hovered row (e.g. "Open ↵", "New tab ⌘↵"). */
|
|
1055
|
+
interface CommandAction {
|
|
1056
|
+
id: string;
|
|
1057
|
+
label: string;
|
|
1058
|
+
/** Keycaps shown after the label, e.g. ['↵'] or ['⌘', '↵']. */
|
|
1059
|
+
shortcut?: string[];
|
|
1060
|
+
onSelect: () => void;
|
|
1061
|
+
}
|
|
1062
|
+
/** A status pill shown on the right of a row (e.g. cluster health). */
|
|
1063
|
+
interface CommandStatus {
|
|
1064
|
+
label: string;
|
|
1065
|
+
tone?: 'healthy' | 'degraded' | 'neutral';
|
|
1066
|
+
}
|
|
1054
1067
|
interface CommandItem {
|
|
1055
1068
|
id: string;
|
|
1056
1069
|
label: string;
|
|
1070
|
+
/** Secondary metadata line rendered in mono beneath the label (e.g. `region · plan · id`). */
|
|
1071
|
+
description?: string;
|
|
1057
1072
|
icon?: ReactNode;
|
|
1058
1073
|
shortcut?: string[];
|
|
1059
1074
|
keywords?: string[];
|
|
1060
|
-
|
|
1075
|
+
status?: CommandStatus;
|
|
1076
|
+
/**
|
|
1077
|
+
* Inline actions revealed when the row is active/hovered. The first is the
|
|
1078
|
+
* primary (Enter), the second the secondary (Cmd/Ctrl+Enter); each is also
|
|
1079
|
+
* clickable. Takes precedence over `onSelect` for keyboard activation.
|
|
1080
|
+
*/
|
|
1081
|
+
actions?: CommandAction[];
|
|
1082
|
+
/** Primary activation. Exactly one of onSelect, page, or actions drives a row. */
|
|
1061
1083
|
onSelect?: () => void;
|
|
1062
1084
|
disabled?: boolean;
|
|
1063
1085
|
page?: CommandPage;
|
|
1064
1086
|
}
|
|
1065
1087
|
interface CommandGroup {
|
|
1066
1088
|
heading?: string;
|
|
1089
|
+
/** Associates the group with a scope id; hidden unless that scope (or none) is active. */
|
|
1090
|
+
scope?: string;
|
|
1067
1091
|
items: CommandItem[];
|
|
1068
1092
|
}
|
|
1093
|
+
/** A filter scope selectable via pill, typed prefix (`c:`/`c `), or Tab. */
|
|
1094
|
+
interface CommandScope {
|
|
1095
|
+
id: string;
|
|
1096
|
+
label: string;
|
|
1097
|
+
/** Single-char prefix that activates this scope when typed, e.g. 'c' or '>'. */
|
|
1098
|
+
prefix?: string;
|
|
1099
|
+
}
|
|
1069
1100
|
interface CommandMenuProps {
|
|
1070
1101
|
open: boolean;
|
|
1071
1102
|
onOpenChange: (open: boolean) => void;
|
|
@@ -1076,13 +1107,23 @@ interface CommandMenuProps {
|
|
|
1076
1107
|
label?: string;
|
|
1077
1108
|
loading?: boolean;
|
|
1078
1109
|
onQueryChange?: (query: string) => void;
|
|
1110
|
+
/** Selectable filter scopes; enables the scope bar, chip, prefixes, and Tab cycling. */
|
|
1111
|
+
scopes?: CommandScope[];
|
|
1079
1112
|
className?: string;
|
|
1080
1113
|
}
|
|
1114
|
+
interface FuzzyMatch {
|
|
1115
|
+
score: number;
|
|
1116
|
+
/** Indices in `text` that matched, in order. */
|
|
1117
|
+
indices: number[];
|
|
1118
|
+
}
|
|
1081
1119
|
/**
|
|
1082
1120
|
* Fuzzy subsequence matcher. Every character of `query` must appear in order
|
|
1083
|
-
* (case-insensitive) in `text`. Returns
|
|
1084
|
-
* Consecutive runs and word-start matches score bonuses.
|
|
1121
|
+
* (case-insensitive) in `text`. Returns null for no match; higher score is
|
|
1122
|
+
* better. Consecutive runs and word-start matches score bonuses. `indices`
|
|
1123
|
+
* are the matched character positions, used to highlight the glyphs.
|
|
1085
1124
|
*/
|
|
1125
|
+
declare function fuzzyMatch(query: string, text: string): FuzzyMatch | null;
|
|
1126
|
+
/** Score-only helper (backwards compatible). Returns 0 for no match. */
|
|
1086
1127
|
declare function fuzzyScore(query: string, text: string): number;
|
|
1087
1128
|
declare function CommandMenu({
|
|
1088
1129
|
open,
|
|
@@ -1094,6 +1135,7 @@ declare function CommandMenu({
|
|
|
1094
1135
|
label,
|
|
1095
1136
|
loading,
|
|
1096
1137
|
onQueryChange,
|
|
1138
|
+
scopes,
|
|
1097
1139
|
className
|
|
1098
1140
|
}: CommandMenuProps): import("react").JSX.Element;
|
|
1099
1141
|
interface StandardSchemaV1<Input = unknown, Output = Input> {
|
|
@@ -1127,6 +1169,13 @@ interface FormConfig<T extends Record<string, unknown>> {
|
|
|
1127
1169
|
validate?: (values: T) => Errors<T> | Promise<Errors<T>>;
|
|
1128
1170
|
/** Standard Schema V1 compatible schema (zod, valibot, arktype, …). Runs before validate(). */
|
|
1129
1171
|
schema?: StandardSchemaV1;
|
|
1172
|
+
/**
|
|
1173
|
+
* Revalidate on every `setValue`/`field().onChange`, updating only the changed
|
|
1174
|
+
* field's error (other fields' errors are left untouched until submit). Off by
|
|
1175
|
+
* default — validation runs on submit only. Because updates flow through
|
|
1176
|
+
* signals, keystroke-frequency revalidation triggers no React re-render.
|
|
1177
|
+
*/
|
|
1178
|
+
validateOnChange?: boolean;
|
|
1130
1179
|
}
|
|
1131
1180
|
interface FormStore<T extends Record<string, unknown>> {
|
|
1132
1181
|
values: Signal<T>;
|
|
@@ -3169,4 +3218,181 @@ declare function SwipeItem({
|
|
|
3169
3218
|
trailingActions,
|
|
3170
3219
|
className
|
|
3171
3220
|
}: SwipeItemProps): import("react").JSX.Element;
|
|
3172
|
-
|
|
3221
|
+
type SpaceStep$4 = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
|
|
3222
|
+
/** A scalar value, or a per-breakpoint object keyed by the canonical scale. */
|
|
3223
|
+
type Responsive<T> = T | Partial<Record<'base' | 'sm' | 'md' | 'lg' | 'xl', T>>;
|
|
3224
|
+
/** Grid track alignment keyword (maps directly to `align-items` / `justify-items`). */
|
|
3225
|
+
type GridAlign = 'start' | 'center' | 'end' | 'stretch';
|
|
3226
|
+
interface GridProps extends HTMLAttributes<HTMLDivElement> {
|
|
3227
|
+
/** Column count. A number, or `{ base, sm, md, lg, xl }` for responsive columns. */
|
|
3228
|
+
cols?: Responsive<number>;
|
|
3229
|
+
gap?: SpaceStep$4;
|
|
3230
|
+
/** Block-axis alignment of items within their cells (`align-items`). Defaults to `stretch`. */
|
|
3231
|
+
align?: GridAlign;
|
|
3232
|
+
/** Inline-axis alignment of items within their cells (`justify-items`). Defaults to `stretch`. */
|
|
3233
|
+
justify?: GridAlign;
|
|
3234
|
+
}
|
|
3235
|
+
declare function Grid({
|
|
3236
|
+
cols,
|
|
3237
|
+
gap,
|
|
3238
|
+
align,
|
|
3239
|
+
justify,
|
|
3240
|
+
className,
|
|
3241
|
+
style,
|
|
3242
|
+
children,
|
|
3243
|
+
...props
|
|
3244
|
+
}: GridProps): import("react").JSX.Element;
|
|
3245
|
+
interface GridItemProps extends HTMLAttributes<HTMLDivElement> {
|
|
3246
|
+
/** Column span. A number, or `{ base, sm, md, lg, xl }` for responsive spans. */
|
|
3247
|
+
span?: Responsive<number>;
|
|
3248
|
+
}
|
|
3249
|
+
declare function GridItem({
|
|
3250
|
+
span,
|
|
3251
|
+
className,
|
|
3252
|
+
style,
|
|
3253
|
+
...props
|
|
3254
|
+
}: GridItemProps): import("react").JSX.Element;
|
|
3255
|
+
type SpaceStep$3 = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
|
|
3256
|
+
interface FlexProps extends HTMLAttributes<HTMLDivElement> {
|
|
3257
|
+
direction?: 'vertical' | 'horizontal';
|
|
3258
|
+
gap?: SpaceStep$3;
|
|
3259
|
+
align?: 'start' | 'center' | 'end' | 'stretch';
|
|
3260
|
+
justify?: 'start' | 'center' | 'end' | 'between';
|
|
3261
|
+
wrap?: boolean;
|
|
3262
|
+
}
|
|
3263
|
+
declare function Flex({
|
|
3264
|
+
direction,
|
|
3265
|
+
gap,
|
|
3266
|
+
align,
|
|
3267
|
+
justify,
|
|
3268
|
+
wrap,
|
|
3269
|
+
className,
|
|
3270
|
+
style,
|
|
3271
|
+
...props
|
|
3272
|
+
}: FlexProps): import("react").JSX.Element;
|
|
3273
|
+
type SpaceStep$2 = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
|
|
3274
|
+
interface ColumnsProps extends HTMLAttributes<HTMLDivElement> {
|
|
3275
|
+
count?: 2 | 3 | 4;
|
|
3276
|
+
gap?: SpaceStep$2;
|
|
3277
|
+
}
|
|
3278
|
+
declare function Columns({
|
|
3279
|
+
count,
|
|
3280
|
+
gap,
|
|
3281
|
+
className,
|
|
3282
|
+
style,
|
|
3283
|
+
...props
|
|
3284
|
+
}: ColumnsProps): import("react").JSX.Element;
|
|
3285
|
+
interface CenterProps extends HTMLAttributes<HTMLDivElement> {
|
|
3286
|
+
maxWidth?: string;
|
|
3287
|
+
}
|
|
3288
|
+
declare function Center({
|
|
3289
|
+
maxWidth,
|
|
3290
|
+
className,
|
|
3291
|
+
style,
|
|
3292
|
+
...props
|
|
3293
|
+
}: CenterProps): import("react").JSX.Element;
|
|
3294
|
+
type SpaceStep$1 = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
|
|
3295
|
+
interface SpacerProps extends HTMLAttributes<HTMLDivElement> {
|
|
3296
|
+
size?: SpaceStep$1;
|
|
3297
|
+
}
|
|
3298
|
+
declare function Spacer({
|
|
3299
|
+
size,
|
|
3300
|
+
className,
|
|
3301
|
+
style,
|
|
3302
|
+
...props
|
|
3303
|
+
}: SpacerProps): import("react").JSX.Element;
|
|
3304
|
+
type SpaceStep = 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12;
|
|
3305
|
+
interface AutoGridProps extends HTMLAttributes<HTMLDivElement> {
|
|
3306
|
+
/** Minimum track size before items wrap to fewer columns. */
|
|
3307
|
+
min?: string;
|
|
3308
|
+
gap?: SpaceStep;
|
|
3309
|
+
className?: string | undefined;
|
|
3310
|
+
}
|
|
3311
|
+
declare function AutoGrid({
|
|
3312
|
+
min,
|
|
3313
|
+
gap,
|
|
3314
|
+
className,
|
|
3315
|
+
style,
|
|
3316
|
+
...props
|
|
3317
|
+
}: AutoGridProps): import("react").JSX.Element;
|
|
3318
|
+
/**
|
|
3319
|
+
* Set the active theme imperatively, from anywhere. Persists the choice and
|
|
3320
|
+
* drives the `data-theme` attribute through the mounted {@link ThemeProvider}.
|
|
3321
|
+
*/
|
|
3322
|
+
declare function setTheme(next: string): void;
|
|
3323
|
+
/**
|
|
3324
|
+
* Read and set the active theme. The returned signal is reactive — a component
|
|
3325
|
+
* that reads `.value` re-renders when the theme changes (this hook calls
|
|
3326
|
+
* `useSignals()` for you, so it works in React apps with no Babel transform).
|
|
3327
|
+
*
|
|
3328
|
+
* ```tsx
|
|
3329
|
+
* const [theme, setTheme] = useTheme()
|
|
3330
|
+
* return <button onClick={() => setTheme(theme.value === 'dark' ? 'light' : 'dark')}>
|
|
3331
|
+
* {theme.value}
|
|
3332
|
+
* </button>
|
|
3333
|
+
* ```
|
|
3334
|
+
*/
|
|
3335
|
+
declare function useTheme(): readonly [Signal<string>, (next: string) => void];
|
|
3336
|
+
interface ThemeProviderProps {
|
|
3337
|
+
/**
|
|
3338
|
+
* Theme to use when nothing is persisted yet. Falls back to the visitor's OS
|
|
3339
|
+
* `prefers-color-scheme` (light/dark), then to `'light'`.
|
|
3340
|
+
*/
|
|
3341
|
+
defaultTheme?: string;
|
|
3342
|
+
/**
|
|
3343
|
+
* Controlled theme. When set, the provider mirrors it on every render and the
|
|
3344
|
+
* persisted value is ignored — the parent owns the state (React semantics).
|
|
3345
|
+
*/
|
|
3346
|
+
value?: string;
|
|
3347
|
+
/** localStorage key for the persisted choice. Defaults to `cascivo-theme`. */
|
|
3348
|
+
storageKey?: string;
|
|
3349
|
+
/** Attribute written to the target element. Defaults to `data-theme`. */
|
|
3350
|
+
attribute?: string;
|
|
3351
|
+
/**
|
|
3352
|
+
* Element to theme. Omit to theme the whole document (`<html>`). Pass a ref to
|
|
3353
|
+
* a container to scope the theme to a subtree — cascivo themes resolve against
|
|
3354
|
+
* the nearest `data-theme`, so a scoped subtree can differ from the page.
|
|
3355
|
+
*/
|
|
3356
|
+
target?: RefObject<HTMLElement | null>;
|
|
3357
|
+
/** Called whenever the active theme changes. */
|
|
3358
|
+
onChange?: (theme: string) => void;
|
|
3359
|
+
children?: ReactNode;
|
|
3360
|
+
}
|
|
3361
|
+
/**
|
|
3362
|
+
* Binds the active theme signal to a `data-theme` attribute and persists the
|
|
3363
|
+
* choice — the reusable, SSR-safe form of the wiring apps otherwise hand-roll.
|
|
3364
|
+
*
|
|
3365
|
+
* - No flash of the wrong theme: pair with {@link themePreloadScript} in your
|
|
3366
|
+
* document `<head>` so the correct theme paints on first byte.
|
|
3367
|
+
* - No banned React hooks: the DOM write happens in `useSignalEffect`, not
|
|
3368
|
+
* `useEffect`; there is no `useState`/`useContext`.
|
|
3369
|
+
* - Uncontrolled by default (persists to localStorage); pass `value` to control.
|
|
3370
|
+
*/
|
|
3371
|
+
declare function ThemeProvider({
|
|
3372
|
+
defaultTheme,
|
|
3373
|
+
value,
|
|
3374
|
+
storageKey,
|
|
3375
|
+
attribute,
|
|
3376
|
+
target,
|
|
3377
|
+
onChange,
|
|
3378
|
+
children
|
|
3379
|
+
}: ThemeProviderProps): ReactNode;
|
|
3380
|
+
/**
|
|
3381
|
+
* A tiny script to inline in your document `<head>` (before the app bundle) so
|
|
3382
|
+
* the persisted theme paints on the first byte — no flash of the wrong theme on
|
|
3383
|
+
* SSR or a hard reload. Pass the same `storageKey`/`attribute`/`defaultTheme`
|
|
3384
|
+
* you give {@link ThemeProvider}.
|
|
3385
|
+
*
|
|
3386
|
+
* ```tsx
|
|
3387
|
+
* // Next.js app/layout.tsx
|
|
3388
|
+
* <head>
|
|
3389
|
+
* <script dangerouslySetInnerHTML={{ __html: themePreloadScript() }} />
|
|
3390
|
+
* </head>
|
|
3391
|
+
* ```
|
|
3392
|
+
*/
|
|
3393
|
+
declare function themePreloadScript(options?: {
|
|
3394
|
+
storageKey?: string;
|
|
3395
|
+
attribute?: string;
|
|
3396
|
+
defaultTheme?: string;
|
|
3397
|
+
}): string;
|
|
3398
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, ActionSheet, ActionSheetAction, ActionSheetProps, Alert, AlertDialog, AlertDialogLabels, AlertDialogProps, AlertProps, AppShell, AppShellProps, AspectRatio, AspectRatioProps, AutoGrid, AutoGridProps, Avatar, AvatarGroup, AvatarGroupLabels, AvatarGroupProps, AvatarProps, Badge, BadgeProps, Blockquote, BlockquoteProps, BottomSheet, BottomSheetProps, Breadcrumb, BreadcrumbItem, BreadcrumbProps, Button, ButtonGroup, ButtonGroupProps, ButtonProps, Calendar, CalendarLabels, CalendarProps, Card, CardContent, CardContentProps, CardFooter, CardFooterProps, CardHeader, CardHeaderProps, CardProps, CardTitle, CardTitleProps, Carousel, CarouselLabels, CarouselProps, Center, CenterProps, ChatBubble, ChatBubbleProps, ChatBubbleSide, Checkbox, CheckboxCard, CheckboxCardProps, CheckboxProps, Code, type CodeLang, CodeProps, CodeSnippet, CodeSnippetProps, Collapsible, CollapsibleProps, ColorPicker, ColorPickerLabels, ColorPickerProps, Column, Columns, ColumnsProps, Combobox, ComboboxLabels, ComboboxOption, ComboboxProps, CommandAction, CommandGroup, CommandItem, CommandMenu, CommandMenuProps, CommandPage, CommandScope, CommandStatus, Comparison, ComparisonProps, ContainedList, ContainedListItem, ContainedListItemProps, ContainedListProps, ContextMenu, ContextMenuItem, ContextMenuItemProps, ContextMenuProps, CopyButton, CopyButtonProps, DataList, DataListItem, DataListProps, DataTable, DataTableLabels, DataTableProps, DatePicker, DatePickerLabels, DatePickerProps, DateRange, DateRangePicker, DateRangePickerLabels, DateRangePickerProps, DateRangePreset, Dock, DockItem, DockProps, Drawer, DrawerProps, Dropdown, DropdownItem, DropdownProps, Editable, EditableProps, EmptyState, EmptyStateProps, ErrorBoundary, Fab, FabAction, FabProps, Field, FieldProps, FileUploader, FileUploaderLabels, FileUploaderProps, Filter, FilterOption, FilterProps, FilterVariant, Flex, FlexProps, FocusScope, Form, FormConfig, FormProps, FormStore, FuzzyMatch, Grid, GridAlign, GridItem, GridItemProps, GridProps, Header, HeaderLabels, HeaderLink, HeaderPanel, HeaderPanelLabels, HeaderPanelProps, HeaderProps, Heading, HeadingLevel, HeadingProps, HeadingSize, HoverCard, HoverCardContent, HoverCardContentProps, HoverCardProps, HoverCardTrigger, HoverCardTriggerProps, IconButton, IconButtonProps, Image, ImageProps, Indicator, IndicatorPlacement, IndicatorProps, InlineLoading, InlineLoadingProps, InlineLoadingStatus, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, type InputGroupProps, InputProps, Item, ItemActions, ItemActionsProps, ItemContent, ItemContentProps, ItemDescription, ItemDescriptionProps, ItemMedia, ItemMediaProps, ItemProps, ItemTitle, ItemTitleProps, Join, JoinOrientation, JoinProps, Kbd, KbdProps, Label, LabelProps, Link, LinkProps, List, ListItem, ListItemProps, ListProps, LogLevel, LogLine, LogViewer, LogViewerLabels, LogViewerProps, Menu, MenuButton, MenuButtonItem, MenuButtonProps, MenuItem, MenuItemProps, MenuProps, MenuSeparator, MenuTrigger, MenuTriggerProps, Menubar, MenubarItem, MenubarMenu, MenubarProps, Modal, ModalProps, MultiSelect, MultiSelectLabels, MultiSelectOption, MultiSelectProps, NativeSelect, NativeSelectOption, NativeSelectProps, NavigationMenu, NavigationMenuItem, NavigationMenuProps, Notification, NotificationProps, NotificationVariant, NumberInput, NumberInputProps, OtpInput, OtpInputProps, OverflowMenu, OverflowMenuItem, OverflowMenuProps, Pagination, PaginationLabels, PaginationProps, PasswordInput, PasswordInputLabels, PasswordInputProps, Popover, PopoverContent, PopoverContentProps, PopoverProps, PopoverTrigger, PopoverTriggerProps, Portal, Progress, ProgressBar, ProgressBarProps, ProgressCircle, ProgressCircleProps, ProgressIndicator, ProgressIndicatorProps, ProgressProps, ProgressSize, ProgressStep, ProgressVariant, Prose, ProseProps, PullToRefresh, PullToRefreshProps, QrCode, QrCodeProps, RadialProgress, RadialProgressProps, RadialProgressSize, RadialProgressVariant, Radio, RadioCard, RadioCardGroup, RadioCardGroupProps, RadioCardProps, RadioGroup, RadioGroupProps, RadioProps, RatingGroup, RatingGroupLabels, RatingGroupProps, RelativeTime, RelativeTimeProps, Resizable, ResizableProps, Responsive, ScrollArea, ScrollAreaProps, Search, SearchProps, SegmentedControl, SegmentedControlOption, SegmentedControlProps, Select, SelectOption, SelectProps, Separator, SeparatorProps, Sheet, SheetProps, ShellHeader, ShellHeaderAction, ShellHeaderBrand, ShellHeaderLabels, ShellHeaderNavItem, ShellHeaderNavLink, ShellHeaderNavMenu, ShellHeaderNavMenuItem, ShellHeaderProps, SideNav, SideNavGroup, SideNavItem, SideNavLinkSubItem, SideNavProps, SideNavSubItem, SideNavTone, Skeleton, SkeletonProps, SkipNavLink, SkipNavLinkProps, SkipNavTarget, SkipNavTargetProps, Slider, SliderProps, SortDirection, SortState, Spacer, SpacerProps, Spinner, SpinnerProps, Stack, StackProps, type StandardSchemaV1, Stat, StatProps, Status, StatusProps, Step, StepState, Steps, StepsProps, StructuredList, StructuredListItem, StructuredListProps, SuspenseBoundary, Swap, SwapMode, SwapProps, SwipeAction, SwipeItem, SwipeItemProps, Switcher, SwitcherEntry, SwitcherLink, SwitcherProps, Tabs, TabsContent, TabsContentProps, TabsList, TabsProps, TabsTrigger, TabsTriggerProps, Tag$1 as Tag, TagProps, TagsInput, TagsInputProps, Text, TextProps, Textarea, TextareaProps, ThemeProvider, type ThemeProviderProps, Tile, TileProps, TimePicker, TimePickerProps, Timeline, TimelineItem, TimelineProps, ToastOptions, ToastProvider, ToastVariant, Toc, TocItem, TocProps, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupProps, ToggleProps, Toggletip, ToggletipPlacement, ToggletipProps, Tooltip, TooltipProps, TreeNode, TreeView, TreeViewProps, UploaderFile, type UsePopoverOptions, type UsePopoverReturn, type UseTocFromRegionOptions, User, UserProps, VisuallyHidden, VisuallyHiddenProps, createForm, dismissAllToasts, fuzzyMatch, fuzzyScore, setTheme, themePreloadScript, treeViewMessages, useForm, usePopover, useTheme, useToast, useTocFromRegion };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer cascivo.component{._auto-grid_v8cqo_2{grid-template-columns:repeat(auto-fill, minmax(min(var(--_min,16rem), 100%), 1fr));gap:var(--_gap,var(--cascivo-space-4));display:grid}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import e from "./auto-grid.module.js";
|
|
4
|
+
import { cn as t } from "@cascivo/core";
|
|
5
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
6
|
+
//#region ../layouts/src/auto-grid/auto-grid.tsx
|
|
7
|
+
function r({ min: r = "16rem", gap: i = 4, className: a, style: o, ...s }) {
|
|
8
|
+
return /* @__PURE__ */ n("div", {
|
|
9
|
+
className: t(e["auto-grid"], a),
|
|
10
|
+
style: {
|
|
11
|
+
"--_min": r,
|
|
12
|
+
"--_gap": `var(--cascivo-space-${i})`,
|
|
13
|
+
...o
|
|
14
|
+
},
|
|
15
|
+
...s
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { r as AutoGrid };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer cascivo.component{._center_1euo8_2{max-inline-size:var(--_center-max,48rem);padding-inline:var(--cascivo-space-4);inline-size:100%;margin-inline:auto}}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import e from "./center.module.js";
|
|
4
|
+
import { cn as t } from "@cascivo/core";
|
|
5
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
6
|
+
//#region ../layouts/src/center/center.tsx
|
|
7
|
+
function r({ maxWidth: r = "48rem", className: i, style: a, ...o }) {
|
|
8
|
+
return /* @__PURE__ */ n("div", {
|
|
9
|
+
className: t(e.center, i),
|
|
10
|
+
style: {
|
|
11
|
+
"--_center-max": r,
|
|
12
|
+
...a
|
|
13
|
+
},
|
|
14
|
+
...o
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { r as Center };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer cascivo.component{._columns_yqrkk_2{grid-template-columns:repeat(var(--_cols,2), minmax(0, 1fr));gap:var(--_gap,var(--cascivo-space-4));display:grid;container-type:inline-size}@container (width<=40rem){._columns_yqrkk_2{grid-template-columns:1fr}}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import e from "./columns.module.js";
|
|
4
|
+
import { cn as t } from "@cascivo/core";
|
|
5
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
6
|
+
//#region ../layouts/src/columns/columns.tsx
|
|
7
|
+
function r({ count: r = 2, gap: i = 4, className: a, style: o, ...s }) {
|
|
8
|
+
return /* @__PURE__ */ n("div", {
|
|
9
|
+
className: t(e.columns, a),
|
|
10
|
+
style: {
|
|
11
|
+
"--_cols": String(r),
|
|
12
|
+
"--_gap": `var(--cascivo-space-${i})`,
|
|
13
|
+
...o
|
|
14
|
+
},
|
|
15
|
+
...s
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { r as Columns };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer cascivo.component{._flex_1cngp_2{gap:var(--_flex-gap,var(--cascivo-space-4));display:flex}._flex_1cngp_2[data-direction=vertical]{flex-direction:column}._flex_1cngp_2[data-direction=horizontal]{flex-direction:row}._flex_1cngp_2[data-wrap]{flex-wrap:wrap}}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import e from "./flex.module.js";
|
|
4
|
+
import { cn as t } from "@cascivo/core";
|
|
5
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
6
|
+
//#region ../layouts/src/flex/flex.tsx
|
|
7
|
+
function r({ direction: r = "vertical", gap: i = 4, align: a, justify: o, wrap: s = !1, className: c, style: l, ...u }) {
|
|
8
|
+
return /* @__PURE__ */ n("div", {
|
|
9
|
+
className: t(e.flex, c),
|
|
10
|
+
"data-direction": r,
|
|
11
|
+
"data-wrap": s ? "" : void 0,
|
|
12
|
+
style: {
|
|
13
|
+
"--_flex-gap": `var(--cascivo-space-${i})`,
|
|
14
|
+
...a ? { alignItems: a === "start" || a === "end" ? `flex-${a}` : a } : {},
|
|
15
|
+
...o ? { justifyContent: o === "between" ? "space-between" : o === "start" || o === "end" ? `flex-${o}` : o } : {},
|
|
16
|
+
...l
|
|
17
|
+
},
|
|
18
|
+
...u
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { r as Flex };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer cascivo.component{._grid_1awa2_2{grid-template-columns:repeat(var(--_grid-cols,12), minmax(0, 1fr));gap:var(--_grid-gap,var(--cascivo-space-4));align-items:var(--_grid-align,stretch);justify-items:var(--_grid-justify,stretch);display:grid;container-type:inline-size}@container (width<=40rem){._grid_1awa2_2:not([data-responsive]){grid-template-columns:1fr}}@container (width>=30rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-sm,var(--_grid-cols,12)), minmax(0, 1fr))}}@container (width>=40rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12))), minmax(0, 1fr))}}@container (width>=64rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-lg,var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12)))), minmax(0, 1fr))}}@container (width>=80rem){._grid_1awa2_2[data-responsive]{grid-template-columns:repeat(var(--_grid-cols-xl,var(--_grid-cols-lg,var(--_grid-cols-md,var(--_grid-cols-sm,var(--_grid-cols,12))))), minmax(0, 1fr))}}._grid-item_1awa2_46{grid-column:span var(--_span,1)}@container (width>=30rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-sm,var(--_span,1))}}@container (width>=40rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-md,var(--_span-sm,var(--_span,1)))}}@container (width>=64rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-lg,var(--_span-md,var(--_span-sm,var(--_span,1))))}}@container (width>=80rem){._grid-item_1awa2_46[data-responsive]{grid-column:span var(--_span-xl,var(--_span-lg,var(--_span-md,var(--_span-sm,var(--_span,1)))))}}}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import e from "./grid.module.js";
|
|
4
|
+
import { cn as t } from "@cascivo/core";
|
|
5
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
6
|
+
//#region ../layouts/src/grid/grid.tsx
|
|
7
|
+
function r(e) {
|
|
8
|
+
return typeof e == "object" && !!e;
|
|
9
|
+
}
|
|
10
|
+
function i(e, t) {
|
|
11
|
+
if (t === void 0) return {};
|
|
12
|
+
if (!r(t)) return { [e]: String(t) };
|
|
13
|
+
let n = {};
|
|
14
|
+
t.base !== void 0 && (n[e] = String(t.base));
|
|
15
|
+
for (let r of [
|
|
16
|
+
"sm",
|
|
17
|
+
"md",
|
|
18
|
+
"lg",
|
|
19
|
+
"xl"
|
|
20
|
+
]) {
|
|
21
|
+
let i = t[r];
|
|
22
|
+
i !== void 0 && (n[`${e}-${r}`] = String(i));
|
|
23
|
+
}
|
|
24
|
+
return n;
|
|
25
|
+
}
|
|
26
|
+
function a({ cols: a = 12, gap: o = 4, align: s, justify: c, className: l, style: u, children: d, ...f }) {
|
|
27
|
+
return /* @__PURE__ */ n("div", {
|
|
28
|
+
className: t(e.grid, l),
|
|
29
|
+
"data-responsive": r(a) ? "" : void 0,
|
|
30
|
+
style: {
|
|
31
|
+
...i("--_grid-cols", a),
|
|
32
|
+
"--_grid-gap": `var(--cascivo-space-${o})`,
|
|
33
|
+
...s ? { "--_grid-align": s } : {},
|
|
34
|
+
...c ? { "--_grid-justify": c } : {},
|
|
35
|
+
...u
|
|
36
|
+
},
|
|
37
|
+
...f,
|
|
38
|
+
children: d
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function o({ span: a, className: o, style: s, ...c }) {
|
|
42
|
+
let l = a !== void 0 && r(a);
|
|
43
|
+
return /* @__PURE__ */ n("div", {
|
|
44
|
+
className: t(e["grid-item"], o),
|
|
45
|
+
"data-responsive": l ? "" : void 0,
|
|
46
|
+
style: {
|
|
47
|
+
...i("--_span", a),
|
|
48
|
+
...s
|
|
49
|
+
},
|
|
50
|
+
...c
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { a as Grid, o as GridItem };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer cascivo.component{._spacer_9ie78_2{block-size:var(--_spacer-size,var(--cascivo-space-4));flex-shrink:0}}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import e from "./spacer.module.js";
|
|
4
|
+
import { cn as t } from "@cascivo/core";
|
|
5
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
6
|
+
//#region ../layouts/src/spacer/spacer.tsx
|
|
7
|
+
function r({ size: r = 4, className: i, style: a, ...o }) {
|
|
8
|
+
return /* @__PURE__ */ n("div", {
|
|
9
|
+
role: "none",
|
|
10
|
+
className: t(e.spacer, i),
|
|
11
|
+
style: {
|
|
12
|
+
"--_spacer-size": `var(--cascivo-space-${r})`,
|
|
13
|
+
...a
|
|
14
|
+
},
|
|
15
|
+
...o
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { r as Spacer };
|