@schemavaults/ui 0.71.1 → 0.72.2

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.
@@ -42,12 +42,26 @@ export function DashboardSidebarItemRenderer({ item, Link, }) {
42
42
  duration: toggleDashboardLayoutCollapsedTransitionTime,
43
43
  }, children: item.title }, `sidebar-menu-item-title-container-[${item.title}]`));
44
44
  }
45
- return (_jsx(m.li, { className: cn("w-full", sizes.sidebar_menu_item_height_classname), children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { className: cn("w-full h-full"), children: _jsxs(Link, { href: item.url, className: cn("flex flex-row flex-nowrap", "justify-start items-center", "w-full h-full", "hover:bg-gray-200"), onClick: (e) => {
46
- e.preventDefault();
45
+ return (_jsx(m.li, { className: cn("w-full", sizes.sidebar_menu_item_height_classname), children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { className: cn("w-full h-full"), children: _jsxs(Link, { href: item.url, className: cn("flex flex-row flex-nowrap", "justify-start items-center", "w-full h-full", "hover:bg-gray-200"), onClick: () => {
47
46
  if (debug) {
48
47
  console.log("[DashboardSidebarItemRenderer] onClick(item), where item = ", item);
49
48
  }
50
- setSidebarOpen(false);
49
+ // Do NOT call e.preventDefault() here. The consumer-supplied
50
+ // <Link> navigates from its `href`, and spec-compliant routers
51
+ // (next/link, React Router, TanStack Router, ...) treat a click
52
+ // whose default was prevented as "the handler is taking over —
53
+ // don't navigate." Calling preventDefault therefore swallowed
54
+ // every sidebar navigation. Collapsing the sidebar is a side
55
+ // effect that must not cancel the click.
56
+ //
57
+ // Only eagerly collapse on mobile, where the sidebar is an
58
+ // overlay Sheet that must get out of the way after a tap. On
59
+ // desktop the sidebar is persistent chrome, so leave it open —
60
+ // matching useCloseDashboardSidebarOnRouteChange, which likewise
61
+ // only auto-closes on mobile.
62
+ if (mobile) {
63
+ setSidebarOpen(false);
64
+ }
51
65
  }, children: [_jsx(m.div, { className: cn("flex-shrink-0", sizes.desktop_collapsed_width_classname, "flex items-center justify-center"), children: _jsx(IconComponent, { className: cn("h-6 w-6", itemColorClassName) }) }), _jsx(AnimatePresence, { children: showItemLabel && _jsx(SidebarMenuItemTitle, {}, item.title) })] }) }), _jsxs(TooltipContent, { side: "right", children: [item.title, _jsx(TooltipArrow, {})] })] }) }, item.title));
52
66
  }
53
67
  export default DashboardSidebarItemRenderer;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-sidebar-item-renderer.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-sidebar-item-renderer.js","sourceRoot":"","sources":["../../../../../src/components/layout/dashboard-layout/dashboard-sidebar/dashboard-sidebar-item-renderer.tsx"],"names":[],"mappings":"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"}
@@ -194,3 +194,5 @@ export * from "./date-range-picker";
194
194
  export type * from "./date-range-picker";
195
195
  export * from "./time-picker";
196
196
  export type * from "./time-picker";
197
+ export * from "./mark";
198
+ export type * from "./mark";
@@ -96,4 +96,5 @@ export * from "./calendar";
96
96
  export * from "./date-picker";
97
97
  export * from "./date-range-picker";
98
98
  export * from "./time-picker";
99
+ export * from "./mark";
99
100
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { Mark, Mark as default, HighlightedText, markVariants, } from "./mark";
2
+ export type { MarkProps, HighlightedTextProps } from "./mark";
3
+ export { markVariantIds, markStyleIds, markSizeIds, } from "./mark-variants";
4
+ export type { MarkVariant, MarkStyle, MarkSize } from "./mark-variants";
@@ -0,0 +1,3 @@
1
+ export { Mark, Mark as default, HighlightedText, markVariants, } from "./mark";
2
+ export { markVariantIds, markStyleIds, markSizeIds, } from "./mark-variants";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/mark/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,IAAI,IAAI,OAAO,EACf,eAAe,EACf,YAAY,GACb,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const markVariantIds: readonly ["default", "primary", "secondary", "info", "success", "warning", "destructive", "accent"];
2
+ export type MarkVariant = (typeof markVariantIds)[number];
3
+ export declare const markStyleIds: readonly ["solid", "soft", "underline", "outline"];
4
+ export type MarkStyle = (typeof markStyleIds)[number];
5
+ export declare const markSizeIds: readonly ["sm", "default", "lg"];
6
+ export type MarkSize = (typeof markSizeIds)[number];
@@ -0,0 +1,22 @@
1
+ export const markVariantIds = [
2
+ "default",
3
+ "primary",
4
+ "secondary",
5
+ "info",
6
+ "success",
7
+ "warning",
8
+ "destructive",
9
+ "accent",
10
+ ];
11
+ export const markStyleIds = [
12
+ "solid",
13
+ "soft",
14
+ "underline",
15
+ "outline",
16
+ ];
17
+ export const markSizeIds = [
18
+ "sm",
19
+ "default",
20
+ "lg",
21
+ ];
22
+ //# sourceMappingURL=mark-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/mark/mark-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,SAAS;IACT,WAAW;IACX,MAAM;IACN,SAAS;IACT,SAAS;IACT,aAAa;IACb,QAAQ;CAC4B,CAAC;AAGvC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO;IACP,MAAM;IACN,WAAW;IACX,SAAS;CAC2B,CAAC;AAGvC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI;IACJ,SAAS;IACT,IAAI;CACgC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type ComponentProps, type Ref, type ReactElement } from "react";
3
+ import { markSizeIds, markStyleIds, markVariantIds, type MarkSize, type MarkStyle, type MarkVariant } from "./mark-variants";
4
+ declare const markVariants: (props?: ({
5
+ variant?: "default" | "info" | "warning" | "destructive" | "primary" | "accent" | "success" | "secondary" | null | undefined;
6
+ markStyle?: "outline" | "solid" | "underline" | "soft" | null | undefined;
7
+ size?: "sm" | "default" | "lg" | null | undefined;
8
+ rounded?: boolean | null | undefined;
9
+ animate?: boolean | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export interface MarkProps extends Omit<ComponentProps<"mark">, "style" | "ref">, VariantProps<typeof markVariants> {
12
+ /**
13
+ * Override the rendered tag. Defaults to the semantic `<mark>` element.
14
+ * Use `"span"` if you need decorative-only highlighting without the
15
+ * implicit ARIA `mark` semantics.
16
+ */
17
+ as?: "mark" | "span";
18
+ /** Pass-through `style` prop (preserved so consumers can layer custom CSS). */
19
+ style?: ComponentProps<"mark">["style"];
20
+ /** React 19 ref-as-prop. */
21
+ ref?: Ref<HTMLElement>;
22
+ }
23
+ export declare function Mark({ className, variant, markStyle, size, rounded, animate, as, children, ref, ...props }: MarkProps): ReactElement;
24
+ export declare namespace Mark {
25
+ var displayName: string;
26
+ }
27
+ export interface HighlightedTextProps extends Omit<ComponentProps<"span">, "children">, Pick<MarkProps, "variant" | "markStyle" | "size" | "rounded" | "animate"> {
28
+ /** The full text to render. */
29
+ text: string;
30
+ /** A string token (or RegExp) to highlight inside `text`. */
31
+ match: string | RegExp | readonly string[];
32
+ /** When `match` is a string, control case sensitivity. Defaults to false. */
33
+ caseSensitive?: boolean;
34
+ /** When true, only highlight whole-word matches. Defaults to false. */
35
+ wholeWord?: boolean;
36
+ /** Optional class applied to each rendered <Mark>. */
37
+ markClassName?: string;
38
+ }
39
+ export declare function HighlightedText({ text, match, caseSensitive, wholeWord, variant, markStyle, size, rounded, animate, markClassName, className, ...props }: HighlightedTextProps): ReactElement;
40
+ export declare namespace HighlightedText {
41
+ var displayName: string;
42
+ }
43
+ export { markVariants, markVariantIds, markStyleIds, markSizeIds };
44
+ export type { MarkVariant, MarkStyle, MarkSize };
45
+ export default Mark;
@@ -0,0 +1,283 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { useMemo, } from "react";
5
+ import { cn } from "../../../lib/utils";
6
+ import { markSizeIds, markStyleIds, markVariantIds, } from "./mark-variants";
7
+ const markVariants = cva("inline rounded-sm font-[inherit] decoration-skip-ink-auto transition-colors", {
8
+ variants: {
9
+ variant: {
10
+ // The classic highlighter look — explicit yellow, intentionally not themed.
11
+ default: "",
12
+ primary: "",
13
+ secondary: "",
14
+ info: "",
15
+ success: "",
16
+ warning: "",
17
+ destructive: "",
18
+ accent: "",
19
+ },
20
+ markStyle: {
21
+ solid: "",
22
+ soft: "",
23
+ underline: "bg-transparent border-b-2",
24
+ outline: "bg-transparent border",
25
+ },
26
+ size: {
27
+ sm: "px-0.5 text-[0.95em]",
28
+ default: "px-1 text-[1em]",
29
+ lg: "px-1.5 py-0.5 text-[1.05em] font-medium",
30
+ },
31
+ rounded: {
32
+ true: "rounded-md",
33
+ false: "rounded-sm",
34
+ },
35
+ animate: {
36
+ // Uses tailwindcss-animate's `animate-in` enter utilities, which are
37
+ // registered globally via @schemavaults/theme. The mark fades and
38
+ // slides in from a slight left offset — a natural reveal that does
39
+ // not depend on custom keyframes.
40
+ true: "animate-in fade-in slide-in-from-left-1 duration-500",
41
+ false: "",
42
+ },
43
+ },
44
+ compoundVariants: [
45
+ // === solid: explicit colors (highlighter feel) ===
46
+ {
47
+ markStyle: "solid",
48
+ variant: "default",
49
+ class: "bg-yellow-200 text-yellow-950 dark:bg-yellow-400/80 dark:text-yellow-950",
50
+ },
51
+ {
52
+ markStyle: "solid",
53
+ variant: "primary",
54
+ class: "bg-primary text-primary-foreground",
55
+ },
56
+ {
57
+ markStyle: "solid",
58
+ variant: "secondary",
59
+ class: "bg-secondary text-secondary-foreground",
60
+ },
61
+ {
62
+ markStyle: "solid",
63
+ variant: "info",
64
+ class: "bg-sky-300 text-sky-950 dark:bg-sky-400/80 dark:text-sky-950",
65
+ },
66
+ {
67
+ markStyle: "solid",
68
+ variant: "success",
69
+ class: "bg-emerald-300 text-emerald-950 dark:bg-emerald-400/80 dark:text-emerald-950",
70
+ },
71
+ {
72
+ markStyle: "solid",
73
+ variant: "warning",
74
+ class: "bg-warning text-warning-foreground",
75
+ },
76
+ {
77
+ markStyle: "solid",
78
+ variant: "destructive",
79
+ class: "bg-destructive text-destructive-foreground",
80
+ },
81
+ {
82
+ markStyle: "solid",
83
+ variant: "accent",
84
+ class: "bg-accent text-accent-foreground",
85
+ },
86
+ // === soft: subtle tinted background ===
87
+ {
88
+ markStyle: "soft",
89
+ variant: "default",
90
+ class: "bg-yellow-200/50 text-foreground dark:bg-yellow-400/20 dark:text-yellow-100",
91
+ },
92
+ {
93
+ markStyle: "soft",
94
+ variant: "primary",
95
+ class: "bg-primary/15 text-foreground dark:text-primary-foreground/90",
96
+ },
97
+ {
98
+ markStyle: "soft",
99
+ variant: "secondary",
100
+ class: "bg-secondary/60 text-secondary-foreground",
101
+ },
102
+ {
103
+ markStyle: "soft",
104
+ variant: "info",
105
+ class: "bg-sky-300/30 text-foreground dark:text-sky-100",
106
+ },
107
+ {
108
+ markStyle: "soft",
109
+ variant: "success",
110
+ class: "bg-emerald-300/30 text-foreground dark:text-emerald-100",
111
+ },
112
+ {
113
+ markStyle: "soft",
114
+ variant: "warning",
115
+ class: "bg-warning/25 text-foreground",
116
+ },
117
+ {
118
+ markStyle: "soft",
119
+ variant: "destructive",
120
+ class: "bg-destructive/15 text-destructive dark:text-destructive-foreground/90",
121
+ },
122
+ {
123
+ markStyle: "soft",
124
+ variant: "accent",
125
+ class: "bg-accent/60 text-accent-foreground",
126
+ },
127
+ // === underline: colored bottom border only ===
128
+ {
129
+ markStyle: "underline",
130
+ variant: "default",
131
+ class: "border-yellow-400 text-foreground",
132
+ },
133
+ {
134
+ markStyle: "underline",
135
+ variant: "primary",
136
+ class: "border-primary text-foreground",
137
+ },
138
+ {
139
+ markStyle: "underline",
140
+ variant: "secondary",
141
+ class: "border-muted-foreground/60 text-foreground",
142
+ },
143
+ {
144
+ markStyle: "underline",
145
+ variant: "info",
146
+ class: "border-sky-400 text-foreground",
147
+ },
148
+ {
149
+ markStyle: "underline",
150
+ variant: "success",
151
+ class: "border-emerald-500 text-foreground",
152
+ },
153
+ {
154
+ markStyle: "underline",
155
+ variant: "warning",
156
+ class: "border-warning text-foreground",
157
+ },
158
+ {
159
+ markStyle: "underline",
160
+ variant: "destructive",
161
+ class: "border-destructive text-foreground",
162
+ },
163
+ {
164
+ markStyle: "underline",
165
+ variant: "accent",
166
+ class: "border-accent-foreground/60 text-foreground",
167
+ },
168
+ // === outline: colored border only ===
169
+ {
170
+ markStyle: "outline",
171
+ variant: "default",
172
+ class: "border-yellow-400 text-yellow-700 dark:text-yellow-300",
173
+ },
174
+ {
175
+ markStyle: "outline",
176
+ variant: "primary",
177
+ class: "border-primary text-foreground",
178
+ },
179
+ {
180
+ markStyle: "outline",
181
+ variant: "secondary",
182
+ class: "border-muted-foreground/40 text-muted-foreground",
183
+ },
184
+ {
185
+ markStyle: "outline",
186
+ variant: "info",
187
+ class: "border-sky-400 text-sky-700 dark:text-sky-300",
188
+ },
189
+ {
190
+ markStyle: "outline",
191
+ variant: "success",
192
+ class: "border-emerald-500 text-emerald-700 dark:text-emerald-300",
193
+ },
194
+ {
195
+ markStyle: "outline",
196
+ variant: "warning",
197
+ class: "border-warning text-warning-foreground",
198
+ },
199
+ {
200
+ markStyle: "outline",
201
+ variant: "destructive",
202
+ class: "border-destructive text-destructive",
203
+ },
204
+ {
205
+ markStyle: "outline",
206
+ variant: "accent",
207
+ class: "border-accent text-accent-foreground",
208
+ },
209
+ ],
210
+ defaultVariants: {
211
+ variant: "default",
212
+ markStyle: "solid",
213
+ size: "default",
214
+ rounded: false,
215
+ animate: false,
216
+ },
217
+ });
218
+ export function Mark({ className, variant, markStyle, size, rounded, animate, as = "mark", children, ref, ...props }) {
219
+ const Comp = as;
220
+ return (_jsx(Comp, { ref: ref, "data-slot": "mark", "data-variant": variant ?? "default", "data-mark-style": markStyle ?? "solid", className: cn(markVariants({ variant, markStyle, size, rounded, animate }), className), ...props, children: children }));
221
+ }
222
+ Mark.displayName = "Mark";
223
+ function escapeRegExp(value) {
224
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
225
+ }
226
+ function buildHighlightRegExp(match, caseSensitive, wholeWord) {
227
+ if (match instanceof RegExp) {
228
+ // Ensure we have the global flag so we can iterate every match.
229
+ const flags = match.flags.includes("g") ? match.flags : `${match.flags}g`;
230
+ return new RegExp(match.source, flags);
231
+ }
232
+ const tokens = (Array.isArray(match) ? match : [match])
233
+ .map((token) => String(token))
234
+ .filter((token) => token.length > 0)
235
+ .map(escapeRegExp);
236
+ if (tokens.length === 0)
237
+ return null;
238
+ const body = tokens.join("|");
239
+ const pattern = wholeWord ? `\\b(?:${body})\\b` : `(?:${body})`;
240
+ return new RegExp(pattern, caseSensitive ? "g" : "gi");
241
+ }
242
+ export function HighlightedText({ text, match, caseSensitive = false, wholeWord = false, variant, markStyle, size, rounded, animate, markClassName, className, ...props }) {
243
+ const segments = useMemo(() => {
244
+ const regex = buildHighlightRegExp(match, caseSensitive, wholeWord);
245
+ if (regex === null)
246
+ return [text];
247
+ const parts = [];
248
+ let lastIndex = 0;
249
+ let key = 0;
250
+ // Defensive guard — RegExp.exec can loop forever on zero-width matches.
251
+ for (const result of text.matchAll(regex)) {
252
+ if (result.index === undefined)
253
+ continue;
254
+ if (result[0].length === 0)
255
+ continue;
256
+ if (result.index > lastIndex) {
257
+ parts.push(text.slice(lastIndex, result.index));
258
+ }
259
+ parts.push(_jsx(Mark, { variant: variant, markStyle: markStyle, size: size, rounded: rounded, animate: animate, className: markClassName, children: result[0] }, `m-${key++}`));
260
+ lastIndex = result.index + result[0].length;
261
+ }
262
+ if (lastIndex < text.length) {
263
+ parts.push(text.slice(lastIndex));
264
+ }
265
+ return parts;
266
+ }, [
267
+ text,
268
+ match,
269
+ caseSensitive,
270
+ wholeWord,
271
+ variant,
272
+ markStyle,
273
+ size,
274
+ rounded,
275
+ animate,
276
+ markClassName,
277
+ ]);
278
+ return (_jsx("span", { "data-slot": "highlighted-text", className: className, ...props, children: segments }));
279
+ }
280
+ HighlightedText.displayName = "HighlightedText";
281
+ export { markVariants, markVariantIds, markStyleIds, markSizeIds };
282
+ export default Mark;
283
+ //# sourceMappingURL=mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark.js","sourceRoot":"","sources":["../../../../src/components/ui/mark/mark.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,OAAO,GAKR,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GAIf,MAAM,iBAAiB,CAAC;AAEzB,MAAM,YAAY,GAAG,GAAG,CACtB,6EAA6E,EAC7E;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,4EAA4E;YAC5E,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;SAC2B;QACvC,SAAS,EAAE;YACT,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,2BAA2B;YACtC,OAAO,EAAE,uBAAuB;SACG;QACrC,IAAI,EAAE;YACJ,EAAE,EAAE,sBAAsB;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,EAAE,EAAE,yCAAyC;SACX;QACpC,OAAO,EAAE;YACP,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,YAAY;SACpB;QACD,OAAO,EAAE;YACP,qEAAqE;YACrE,kEAAkE;YAClE,mEAAmE;YACnE,kCAAkC;YAClC,IAAI,EAAE,sDAAsD;YAC5D,KAAK,EAAE,EAAE;SACV;KACF;IACD,gBAAgB,EAAE;QAChB,oDAAoD;QACpD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,0EAA0E;SAClF;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,oCAAoC;SAC5C;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,wCAAwC;SAChD;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,8DAA8D;SACtE;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,8EAA8E;SACtF;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,oCAAoC;SAC5C;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,4CAA4C;SACpD;QACD;YACE,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,kCAAkC;SAC1C;QAED,yCAAyC;QACzC;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,6EAA6E;SACrF;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,+DAA+D;SACvE;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,2CAA2C;SACnD;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,iDAAiD;SACzD;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,yDAAyD;SACjE;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,+BAA+B;SACvC;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,wEAAwE;SAChF;QACD;YACE,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,qCAAqC;SAC7C;QAED,gDAAgD;QAChD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,mCAAmC;SAC3C;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,gCAAgC;SACxC;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,4CAA4C;SACpD;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,gCAAgC;SACxC;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,oCAAoC;SAC5C;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,gCAAgC;SACxC;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,oCAAoC;SAC5C;QACD;YACE,SAAS,EAAE,WAAW;YACtB,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,6CAA6C;SACrD;QAED,uCAAuC;QACvC;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,wDAAwD;SAChE;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,gCAAgC;SACxC;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,kDAAkD;SAC1D;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,+CAA+C;SACvD;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,2DAA2D;SACnE;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,wCAAwC;SAChD;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,qCAAqC;SAC7C;QACD;YACE,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,sCAAsC;SAC9C;KAEF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;KACf;CACF,CACF,CAAC;AAiBF,MAAM,UAAU,IAAI,CAAC,EACnB,SAAS,EACT,OAAO,EACP,SAAS,EACT,IAAI,EACJ,OAAO,EACP,OAAO,EACP,EAAE,GAAG,MAAM,EACX,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACE;IACV,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,OAAO,CACL,KAAC,IAAI,IACH,GAAG,EAAE,GAAuB,eAClB,MAAM,kBACF,OAAO,IAAI,SAAS,qBACjB,SAAS,IAAI,OAAO,EACrC,SAAS,EAAE,EAAE,CACX,YAAY,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAC5D,SAAS,CACV,KACG,KAAK,YAER,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAwB1B,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAoC,EACpC,aAAsB,EACtB,SAAkB;IAElB,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC5B,gEAAgE;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;QAC1E,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;IAChE,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,EACL,aAAa,GAAG,KAAK,EACrB,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,SAAS,EACT,IAAI,EACJ,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACa;IACrB,MAAM,QAAQ,GAAG,OAAO,CAAc,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,wEAAwE;QACxE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,SAAS;YACzC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACrC,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,KAAK,CAAC,IAAI,CACR,KAAC,IAAI,IAEH,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,aAAa,YAEvB,MAAM,CAAC,CAAC,CAAC,IARL,KAAK,GAAG,EAAE,EAAE,CASZ,CACR,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE;QACD,IAAI;QACJ,KAAK;QACL,aAAa;QACb,SAAS;QACT,OAAO;QACP,SAAS;QACT,IAAI;QACJ,OAAO;QACP,OAAO;QACP,aAAa;KACd,CAAC,CAAC;IAEH,OAAO,CACL,4BAAgB,kBAAkB,EAAC,SAAS,EAAE,SAAS,KAAM,KAAK,YAC/D,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AACD,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAGnE,eAAe,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/ui",
3
- "version": "0.71.1",
3
+ "version": "0.72.2",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for SchemaVaults frontend applications",
@@ -48,34 +48,38 @@
48
48
  "tailwind-merge": "3.0.2"
49
49
  },
50
50
  "devDependencies": {
51
- "semver": "7.7.2",
51
+ "@schemavaults/send-email": "0.0.18",
52
52
  "@storybook/addon-docs": "10.4.0",
53
53
  "@storybook/addon-webpack5-compiler-swc": "4.0.3",
54
54
  "@storybook/react": "10.4.0",
55
55
  "@storybook/react-webpack5": "10.4.0",
56
+ "@storybook/test-runner": "0.24.4",
56
57
  "@types/react": "19.2.14",
57
58
  "@types/react-dom": "19.2.3",
59
+ "@typescript-eslint/eslint-plugin": "8.48.1",
60
+ "@typescript-eslint/parser": "8.48.1",
58
61
  "autoprefixer": "10.4.21",
59
62
  "base64url": "3.0.1",
60
63
  "buffer": "6.0.3",
61
64
  "bun-types": "1.3.14",
65
+ "concurrently": "10.0.3",
66
+ "eslint": "9.39.1",
67
+ "eslint-plugin-jsx-a11y": "6.10.2",
68
+ "eslint-plugin-react": "7.37.5",
69
+ "eslint-plugin-react-hooks": "7.0.1",
62
70
  "eslint-plugin-storybook": "10.4.0",
71
+ "globals": "16.5.0",
72
+ "http-server": "14.1.1",
63
73
  "ignore-loader": "0.1.2",
64
74
  "postcss": "8.5.12",
65
75
  "postcss-loader": "8.1.1",
76
+ "semver": "7.7.2",
66
77
  "storybook": "10.4.0",
67
78
  "tailwindcss": "3.4.17",
68
79
  "tsc-alias": "1.8.16",
69
80
  "typescript": "5.9.3",
70
- "webpack": "5.102.0",
71
- "eslint": "9.39.1",
72
- "globals": "16.5.0",
73
- "@typescript-eslint/eslint-plugin": "8.48.1",
74
- "@typescript-eslint/parser": "8.48.1",
75
- "eslint-plugin-react": "7.37.5",
76
- "eslint-plugin-react-hooks": "7.0.1",
77
- "eslint-plugin-jsx-a11y": "6.10.2",
78
- "@schemavaults/send-email": "0.0.18"
81
+ "wait-on": "9.0.10",
82
+ "webpack": "5.102.0"
79
83
  },
80
84
  "scripts": {
81
85
  "build:pkg": "tsc --project tsconfig.pkg.json && tsc-alias --project tsconfig.pkg.json",
@@ -87,7 +91,9 @@
87
91
  "preview": "bun run storybook",
88
92
  "lint": "eslint src --ext .ts,.tsx",
89
93
  "typecheck": "tsc --project tsconfig.pkg.json --noEmit",
90
- "typecheck:storybook": "tsc --project tsconfig.json --noEmit"
94
+ "typecheck:storybook": "tsc --project tsconfig.json --noEmit",
95
+ "test-storybook": "test-storybook",
96
+ "test-storybook:ci": "concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"http-server storybook-static --port 6006 --silent\" \"wait-on tcp:127.0.0.1:6006 && test-storybook\""
91
97
  },
92
98
  "exports": {
93
99
  ".": {