@moul-dev/ui 2026.8.18 → 2026.8.21
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/dist/assets/stylex.css +204 -8
- package/dist/moul-ui.js +4887 -3446
- package/dist/src/components/Button/Button.d.ts +1 -0
- package/dist/src/components/Button/Button.styles.d.ts +17 -0
- package/dist/src/components/ComboBox/ComboBox.styles.d.ts +8 -0
- package/dist/src/components/LogsViewer/Logs.d.ts +29 -0
- package/dist/src/components/LogsViewer/Logs.styles.d.ts +482 -0
- package/dist/src/components/LogsViewer/Logs.types.d.ts +208 -0
- package/dist/src/components/LogsViewer/exampleLogs.d.ts +3 -0
- package/dist/src/components/LogsViewer/index.d.ts +4 -0
- package/dist/src/components/LogsViewer/parseLogs.d.ts +21 -0
- package/dist/src/components/NumberField/NumberField.styles.d.ts +8 -0
- package/dist/src/components/SearchField/SearchField.styles.d.ts +23 -0
- package/dist/src/components/Sidebar/Sidebar.d.ts +3 -1
- package/dist/src/components/Sidebar/Sidebar.styles.d.ts +9 -5
- package/dist/src/components/TextArea/TextArea.styles.d.ts +2 -0
- package/dist/src/components/TextField/TextField.styles.d.ts +2 -0
- package/dist/src/components/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/src/components/ToggleButton/ToggleButton.styles.d.ts +20 -12
- package/dist/src/index.d.ts +4 -1
- package/dist/src/tokens/tokens.stylex.d.ts +1 -0
- package/dist/tokens.stylex.js +126 -0
- package/package.json +10 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { StyleXStyles } from '@stylexjs/stylex';
|
|
2
|
+
import { Key } from 'react-aria-components';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
5
|
+
export interface LogItem {
|
|
6
|
+
id: string | number;
|
|
7
|
+
timestamp?: string;
|
|
8
|
+
level?: LogLevel | string;
|
|
9
|
+
message: string;
|
|
10
|
+
attributes?: Record<string, string | number | boolean | null | undefined>;
|
|
11
|
+
raw?: string;
|
|
12
|
+
lineNumber?: number;
|
|
13
|
+
}
|
|
14
|
+
export type LogFilterLevel = LogLevel | 'all';
|
|
15
|
+
export interface LogsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style' | 'title' | 'onCopy'> {
|
|
16
|
+
/**
|
|
17
|
+
* Array of parsed log items or raw log strings.
|
|
18
|
+
*/
|
|
19
|
+
data?: (LogItem | string)[];
|
|
20
|
+
/**
|
|
21
|
+
* Raw multiline text containing log lines (e.g. from server.log).
|
|
22
|
+
*/
|
|
23
|
+
text?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Optional title shown in the log header toolbar.
|
|
26
|
+
*/
|
|
27
|
+
title?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Whether to show the top toolbar with search, filters, and actions.
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
showToolbar?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Whether to show line numbers in the table.
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
showLineNumbers?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Whether to show timestamps.
|
|
40
|
+
* @default true
|
|
41
|
+
*/
|
|
42
|
+
showTimestamps?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Whether to show severity level badges.
|
|
45
|
+
* @default true
|
|
46
|
+
*/
|
|
47
|
+
showLevels?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Whether to render structured attribute chips in the message cell.
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
showAttributes?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* How the inspector panel is displayed when a log row is selected.
|
|
55
|
+
* - 'drawer': opens a slide-out drawer from the side/bottom
|
|
56
|
+
* - 'inline': renders an inline details panel beneath the table
|
|
57
|
+
* - 'none': disables the inspector
|
|
58
|
+
* @default 'drawer'
|
|
59
|
+
*/
|
|
60
|
+
inspectorMode?: 'drawer' | 'inline' | 'none';
|
|
61
|
+
/**
|
|
62
|
+
* Whether to show an inspector / details panel for selected log rows.
|
|
63
|
+
* @deprecated Use `inspectorMode` instead.
|
|
64
|
+
*/
|
|
65
|
+
showInspector?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Controlled open state for the drawer inspector.
|
|
68
|
+
*/
|
|
69
|
+
isInspectorOpen?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Default open state for the drawer inspector (initial uncontrolled state).
|
|
72
|
+
* Note: Changing this prop post-mount does not reset internal state; use `isInspectorOpen` for controlled state.
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
defaultInspectorOpen?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Callback fired when the drawer inspector opens or closes.
|
|
78
|
+
*/
|
|
79
|
+
onInspectorOpenChange?: (isOpen: boolean) => void;
|
|
80
|
+
/**
|
|
81
|
+
* Drawer placement direction when inspectorMode is 'drawer'.
|
|
82
|
+
* @default 'right'
|
|
83
|
+
*/
|
|
84
|
+
drawerPlacement?: 'top' | 'bottom' | 'left' | 'right';
|
|
85
|
+
/**
|
|
86
|
+
* Drawer size when inspectorMode is 'drawer'.
|
|
87
|
+
* @default 'md'
|
|
88
|
+
*/
|
|
89
|
+
drawerSize?: 'sm' | 'md' | 'lg' | 'full';
|
|
90
|
+
/**
|
|
91
|
+
* Callback fired when a log row is clicked.
|
|
92
|
+
*/
|
|
93
|
+
onRowClick?: (log: LogItem) => void;
|
|
94
|
+
/**
|
|
95
|
+
* Display logs in a compact table density.
|
|
96
|
+
* @default false
|
|
97
|
+
*/
|
|
98
|
+
compact?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Wrap long log message lines instead of truncating with ellipsis.
|
|
101
|
+
* @default true
|
|
102
|
+
*/
|
|
103
|
+
wrapLines?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Search input placeholder.
|
|
106
|
+
* @default 'Filter logs...'
|
|
107
|
+
*/
|
|
108
|
+
searchPlaceholder?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Maximum height of the scrollable logs container.
|
|
111
|
+
*/
|
|
112
|
+
maxHeight?: string | number;
|
|
113
|
+
/**
|
|
114
|
+
* React Aria Table selection mode.
|
|
115
|
+
* @default 'single'
|
|
116
|
+
*/
|
|
117
|
+
selectionMode?: 'none' | 'single' | 'multiple';
|
|
118
|
+
/**
|
|
119
|
+
* Currently selected log keys.
|
|
120
|
+
*/
|
|
121
|
+
selectedKeys?: 'all' | Iterable<Key>;
|
|
122
|
+
/**
|
|
123
|
+
* Default selected log keys (initial uncontrolled state).
|
|
124
|
+
* Note: Changing this prop post-mount does not reset internal state; use `selectedKeys` for controlled state.
|
|
125
|
+
*/
|
|
126
|
+
defaultSelectedKeys?: 'all' | Iterable<Key>;
|
|
127
|
+
/**
|
|
128
|
+
* Handler fired when row selection changes.
|
|
129
|
+
*/
|
|
130
|
+
onSelectionChange?: (keys: 'all' | Set<Key>) => void;
|
|
131
|
+
/**
|
|
132
|
+
* Controlled filter level.
|
|
133
|
+
*/
|
|
134
|
+
filterLevel?: LogFilterLevel;
|
|
135
|
+
/**
|
|
136
|
+
* Default filter level (initial uncontrolled state).
|
|
137
|
+
* Note: Changing this prop post-mount does not reset internal state; use `filterLevel` for controlled state.
|
|
138
|
+
* @default 'all'
|
|
139
|
+
*/
|
|
140
|
+
defaultFilterLevel?: LogFilterLevel;
|
|
141
|
+
/**
|
|
142
|
+
* Callback fired when active filter level changes.
|
|
143
|
+
*/
|
|
144
|
+
onFilterLevelChange?: (level: LogFilterLevel) => void;
|
|
145
|
+
/**
|
|
146
|
+
* Controlled search query.
|
|
147
|
+
*/
|
|
148
|
+
searchQuery?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Default search query (initial uncontrolled state).
|
|
151
|
+
* Note: Changing this prop post-mount does not reset internal state; use `searchQuery` for controlled state.
|
|
152
|
+
*/
|
|
153
|
+
defaultSearchQuery?: string;
|
|
154
|
+
/**
|
|
155
|
+
* Callback fired when search query changes.
|
|
156
|
+
*/
|
|
157
|
+
onSearchQueryChange?: (query: string) => void;
|
|
158
|
+
/**
|
|
159
|
+
* Callback fired when the clear button is pressed.
|
|
160
|
+
*/
|
|
161
|
+
onClear?: () => void;
|
|
162
|
+
/**
|
|
163
|
+
* Callback fired when download logs button is pressed.
|
|
164
|
+
*/
|
|
165
|
+
onDownload?: () => void;
|
|
166
|
+
/**
|
|
167
|
+
* Callback fired when copy button is pressed.
|
|
168
|
+
*/
|
|
169
|
+
onCopy?: (text: string) => void;
|
|
170
|
+
/**
|
|
171
|
+
* Controlled follow / auto-scroll mode to tail the latest logs.
|
|
172
|
+
*/
|
|
173
|
+
follow?: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Default follow / auto-scroll state (initial uncontrolled state).
|
|
176
|
+
* Note: Changing this prop post-mount does not reset internal state; use `follow` for controlled state.
|
|
177
|
+
* @default false
|
|
178
|
+
*/
|
|
179
|
+
defaultFollow?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Callback fired when follow / auto-scroll state changes (e.g. paused when scrolled up).
|
|
182
|
+
*/
|
|
183
|
+
onFollowChange?: (follow: boolean) => void;
|
|
184
|
+
/**
|
|
185
|
+
* Whether to show the Follow toggle button in the top toolbar.
|
|
186
|
+
* @default true
|
|
187
|
+
*/
|
|
188
|
+
showFollowButton?: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Whether to highlight search term matches in log messages and inspector.
|
|
191
|
+
* @default true
|
|
192
|
+
*/
|
|
193
|
+
highlightMatches?: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Custom StyleX styles.
|
|
196
|
+
*/
|
|
197
|
+
style?: StyleXStyles;
|
|
198
|
+
/**
|
|
199
|
+
* Custom CSS class name.
|
|
200
|
+
*/
|
|
201
|
+
className?: string;
|
|
202
|
+
/**
|
|
203
|
+
* Accessible label for the table.
|
|
204
|
+
* @default 'Server Logs'
|
|
205
|
+
*/
|
|
206
|
+
'aria-label'?: string;
|
|
207
|
+
}
|
|
208
|
+
export type LogsViewerProps = LogsProps;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LogItem } from './Logs.types';
|
|
2
|
+
export declare const SERVER_LOG_RAW = "2026/08/19 11:16:49 INFO Starting mould engine server addr=\"http://localhost:8090\" env=\"development\" version=\"dev\"\n2026/08/19 11:16:49 INFO Request tracking flusher started component=\"analytics\"\n2026/08/19 11:16:50 DEBU Flushed request records component=\"analytics\" count=12\n2026/08/19 11:16:52 INFO HTTP request bytes_sent=48 ip=\"127.0.0.1\" latency=\"182.4\u00B5s\" method=\"GET\" path=\"/api/health\" status=200\n2026/08/19 11:16:55 INFO HTTP request bytes_sent=1420 email=\"alex@example.com\" ip=\"192.168.1.45\" latency=\"3.12ms\" method=\"GET\" path=\"/api/mouls/posts/records\" status=200 user_id=\"usr_01j7k9p2\"\n2026/08/19 11:17:02 WARN HTTP request bytes_sent=68 ip=\"192.168.1.45\" latency=\"410.5\u00B5s\" method=\"GET\" path=\"/api/mouls/nonexistent/records\" status=404 error=\"moul 'nonexistent' not found\"\n2026/08/19 11:17:08 WARN Request tracking channel full, dropping request component=\"analytics\" path=\"/api/events\"\n2026/08/19 11:17:15 WARN Background job failed, scheduled for retry error=\"dial tcp: lookup smtp.mailgun.org: no such host\" jobID=\"job_01j7k8a\" nextAttemptAt=\"2026-08-19 11:18:15\" worker=\"SendEmail\"\n2026/08/19 11:17:21 ERRO HTTP request bytes_sent=112 email=\"alex@example.com\" ip=\"192.168.1.80\" latency=\"14.85ms\" method=\"POST\" path=\"/api/mouls/orders/records\" status=500 user_id=\"usr_01j7k9p2\" error=\"database locked (sqlite busy)\"\n2026/08/19 11:17:25 ERRO After-webhook execution failed err=\"Post \\\"https://webhook.site/test\\\": context deadline exceeded\" url=\"https://webhook.site/test\"\n2026/08/19 11:17:30 ERRO Failed to start Litestream replication err=\"credentials not set in environment (AWS_ACCESS_KEY_ID)\"\n2026/08/19 11:17:40 INFO Cleaned up old requests count=42\n2026/08/19 11:17:40 INFO Cleaned up old visits count=15\n2026/08/19 11:17:40 INFO Cleaned up expired revoked tokens count=0\n2026/08/19 11:17:55 INFO Stopping Litestream replication...\n2026/08/19 11:17:55 INFO Server stopped gracefully\n2026/08/19 11:18:02 FATA Server failed to run err=\"listen tcp :8090: bind: address already in use\"";
|
|
3
|
+
export declare const SERVER_LOGS: LogItem[];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { SERVER_LOG_RAW, SERVER_LOGS } from './exampleLogs';
|
|
2
|
+
export { HighlightText, type HighlightTextProps, LogAttributeChip, type LogAttributeChipProps, LogCopyIconButton, type LogCopyIconButtonProps, LogLevelBadge, type LogLevelBadgeProps, Logs, LogsViewer, } from './Logs';
|
|
3
|
+
export type { LogFilterLevel, LogItem, LogLevel, LogsProps, LogsViewerProps, } from './Logs.types';
|
|
4
|
+
export { normalizeLogLevel, parseAttributes, parseLogLine, parseLogs, stripAttributes, } from './parseLogs';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { LogItem, LogLevel } from './Logs.types';
|
|
2
|
+
/**
|
|
3
|
+
* Normalizes any log level string into standard LogLevel.
|
|
4
|
+
*/
|
|
5
|
+
export declare function normalizeLogLevel(levelStr?: string): LogLevel;
|
|
6
|
+
/**
|
|
7
|
+
* Parses key="value" or key=value key-value pairs from a log string.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseAttributes(text: string): Record<string, string | number | boolean | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Strips key=value pairs from the string to obtain the clean base message.
|
|
12
|
+
*/
|
|
13
|
+
export declare function stripAttributes(text: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Parses a single log line into a structured LogItem.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseLogLine(rawLine: string, index?: number): LogItem;
|
|
18
|
+
/**
|
|
19
|
+
* Parses raw text or list of log strings into LogItem[].
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseLogs(input?: string | (LogItem | string)[]): LogItem[];
|
|
@@ -11,12 +11,20 @@ export declare const styles: Readonly<{
|
|
|
11
11
|
readonly alignItems: stylex.StyleXClassNameFor<"alignItems", "stretch">;
|
|
12
12
|
readonly borderWidth: stylex.StyleXClassNameFor<"borderWidth", "1px">;
|
|
13
13
|
readonly borderStyle: stylex.StyleXClassNameFor<"borderStyle", "solid">;
|
|
14
|
+
readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string>;
|
|
15
|
+
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
14
16
|
readonly boxShadow: stylex.StyleXClassNameFor<"boxShadow", string>;
|
|
15
17
|
readonly overflow: stylex.StyleXClassNameFor<"overflow", "hidden">;
|
|
16
18
|
readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
|
|
17
19
|
readonly transitionProperty: stylex.StyleXClassNameFor<"transitionProperty", "border-color, box-shadow">;
|
|
18
20
|
readonly transitionDuration: stylex.StyleXClassNameFor<"transitionDuration", "0.15s">;
|
|
19
21
|
readonly transitionTimingFunction: stylex.StyleXClassNameFor<"transitionTimingFunction", "ease-in-out">;
|
|
22
|
+
readonly ':hover': stylex.StyleXClassNameFor<":hover", {
|
|
23
|
+
readonly borderColor: stylex.StyleXVar<string>;
|
|
24
|
+
}>;
|
|
25
|
+
readonly '@media (prefers-reduced-motion: reduce)': stylex.StyleXClassNameFor<"@media (prefers-reduced-motion: reduce)", {
|
|
26
|
+
readonly transitionProperty: "none";
|
|
27
|
+
}>;
|
|
20
28
|
}>;
|
|
21
29
|
readonly groupSm: Readonly<{
|
|
22
30
|
readonly height: stylex.StyleXClassNameFor<"height", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
@@ -11,11 +11,19 @@ export declare const styles: Readonly<{
|
|
|
11
11
|
readonly alignItems: stylex.StyleXClassNameFor<"alignItems", "center">;
|
|
12
12
|
readonly borderWidth: stylex.StyleXClassNameFor<"borderWidth", "1px">;
|
|
13
13
|
readonly borderStyle: stylex.StyleXClassNameFor<"borderStyle", "solid">;
|
|
14
|
+
readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string>;
|
|
15
|
+
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
14
16
|
readonly boxShadow: stylex.StyleXClassNameFor<"boxShadow", string>;
|
|
15
17
|
readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
|
|
16
18
|
readonly transitionProperty: stylex.StyleXClassNameFor<"transitionProperty", "border-color, box-shadow">;
|
|
17
19
|
readonly transitionDuration: stylex.StyleXClassNameFor<"transitionDuration", "0.15s">;
|
|
18
20
|
readonly transitionTimingFunction: stylex.StyleXClassNameFor<"transitionTimingFunction", "ease-in-out">;
|
|
21
|
+
readonly ':hover': stylex.StyleXClassNameFor<":hover", {
|
|
22
|
+
readonly borderColor: stylex.StyleXVar<string>;
|
|
23
|
+
}>;
|
|
24
|
+
readonly '@media (prefers-reduced-motion: reduce)': stylex.StyleXClassNameFor<"@media (prefers-reduced-motion: reduce)", {
|
|
25
|
+
readonly transitionProperty: "none";
|
|
26
|
+
}>;
|
|
19
27
|
}>;
|
|
20
28
|
readonly groupSm: Readonly<{
|
|
21
29
|
readonly height: stylex.StyleXClassNameFor<"height", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
@@ -87,6 +95,21 @@ export declare const styles: Readonly<{
|
|
|
87
95
|
readonly color: stylex.StyleXClassNameFor<"color", string>;
|
|
88
96
|
readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
|
|
89
97
|
readonly outline: stylex.StyleXClassNameFor<"outline", "none">;
|
|
98
|
+
readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
|
|
99
|
+
readonly '::-webkit-search-cancel-button': stylex.StyleXClassNameFor<"::-webkit-search-cancel-button", {
|
|
100
|
+
readonly display: "none";
|
|
101
|
+
readonly WebkitAppearance: "none";
|
|
102
|
+
}>;
|
|
103
|
+
readonly '::-webkit-search-decoration': stylex.StyleXClassNameFor<"::-webkit-search-decoration", {
|
|
104
|
+
readonly display: "none";
|
|
105
|
+
readonly WebkitAppearance: "none";
|
|
106
|
+
}>;
|
|
107
|
+
readonly '::-webkit-search-results-button': stylex.StyleXClassNameFor<"::-webkit-search-results-button", {
|
|
108
|
+
readonly display: "none";
|
|
109
|
+
}>;
|
|
110
|
+
readonly '::-webkit-search-results-decoration': stylex.StyleXClassNameFor<"::-webkit-search-results-decoration", {
|
|
111
|
+
readonly display: "none";
|
|
112
|
+
}>;
|
|
90
113
|
}>;
|
|
91
114
|
readonly inputSm: Readonly<{
|
|
92
115
|
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
@@ -7,6 +7,7 @@ interface SidebarContextValue {
|
|
|
7
7
|
onSelectionChange?: (key: string) => void;
|
|
8
8
|
variant: 'solid' | 'glass';
|
|
9
9
|
onCollapseToggle: () => void;
|
|
10
|
+
showCollapseToggle?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare function useSidebar(): SidebarContextValue;
|
|
12
13
|
export interface SidebarProps {
|
|
@@ -62,12 +63,13 @@ export interface SidebarDividerProps {
|
|
|
62
63
|
}
|
|
63
64
|
export declare const SidebarDivider: React.ForwardRefExoticComponent<SidebarDividerProps & React.RefAttributes<HTMLDivElement>>;
|
|
64
65
|
export interface SidebarAsideProps {
|
|
66
|
+
'aria-label'?: string;
|
|
65
67
|
style?: React.CSSProperties;
|
|
66
68
|
className?: string;
|
|
67
69
|
children?: React.ReactNode;
|
|
68
70
|
showCollapseToggle?: boolean;
|
|
69
71
|
}
|
|
70
|
-
export declare const SidebarAside: React.ForwardRefExoticComponent<SidebarAsideProps & React.RefAttributes<
|
|
72
|
+
export declare const SidebarAside: React.ForwardRefExoticComponent<SidebarAsideProps & React.RefAttributes<HTMLElement>>;
|
|
71
73
|
export interface SidebarMainProps {
|
|
72
74
|
style?: StyleXStyles;
|
|
73
75
|
className?: string;
|
|
@@ -33,8 +33,12 @@ export declare const styles: Readonly<{
|
|
|
33
33
|
readonly glass: Readonly<{
|
|
34
34
|
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
35
35
|
readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string>;
|
|
36
|
-
readonly
|
|
37
|
-
|
|
36
|
+
readonly '@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))': stylex.StyleXClassNameFor<"@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))", {
|
|
37
|
+
readonly backgroundColor: stylex.StyleXVar<string>;
|
|
38
|
+
readonly borderColor: stylex.StyleXVar<string>;
|
|
39
|
+
readonly backdropFilter: "blur(20px)";
|
|
40
|
+
readonly WebkitBackdropFilter: "blur(20px)";
|
|
41
|
+
}>;
|
|
38
42
|
}>;
|
|
39
43
|
readonly header: Readonly<{
|
|
40
44
|
readonly display: stylex.StyleXClassNameFor<"display", "flex">;
|
|
@@ -303,9 +307,9 @@ export declare const styles: Readonly<{
|
|
|
303
307
|
}>;
|
|
304
308
|
readonly layout: Readonly<{
|
|
305
309
|
readonly display: stylex.StyleXClassNameFor<"display", "flex">;
|
|
306
|
-
readonly height: stylex.StyleXClassNameFor<"height", "
|
|
307
|
-
readonly maxHeight: stylex.StyleXClassNameFor<"maxHeight", "
|
|
308
|
-
readonly width: stylex.StyleXClassNameFor<"width", "
|
|
310
|
+
readonly height: stylex.StyleXClassNameFor<"height", "100%">;
|
|
311
|
+
readonly maxHeight: stylex.StyleXClassNameFor<"maxHeight", "100%">;
|
|
312
|
+
readonly width: stylex.StyleXClassNameFor<"width", "100%">;
|
|
309
313
|
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
310
314
|
readonly color: stylex.StyleXClassNameFor<"color", string>;
|
|
311
315
|
readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
|
|
@@ -16,6 +16,8 @@ export declare const styles: Readonly<{
|
|
|
16
16
|
readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
|
|
17
17
|
readonly borderWidth: stylex.StyleXClassNameFor<"borderWidth", "1px">;
|
|
18
18
|
readonly borderStyle: stylex.StyleXClassNameFor<"borderStyle", "solid">;
|
|
19
|
+
readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string>;
|
|
20
|
+
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
19
21
|
readonly color: stylex.StyleXClassNameFor<"color", string>;
|
|
20
22
|
readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
|
|
21
23
|
readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
|
|
@@ -11,6 +11,8 @@ export declare const styles: Readonly<{
|
|
|
11
11
|
readonly width: stylex.StyleXClassNameFor<"width", "100%">;
|
|
12
12
|
readonly borderWidth: stylex.StyleXClassNameFor<"borderWidth", "1px">;
|
|
13
13
|
readonly borderStyle: stylex.StyleXClassNameFor<"borderStyle", "solid">;
|
|
14
|
+
readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string>;
|
|
15
|
+
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
14
16
|
readonly color: stylex.StyleXClassNameFor<"color", string>;
|
|
15
17
|
readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
|
|
16
18
|
readonly outline: stylex.StyleXClassNameFor<"outline", "none">;
|
|
@@ -6,6 +6,6 @@ export interface ToggleButtonProps extends Omit<AriaToggleButtonProps, 'style'>
|
|
|
6
6
|
className?: string;
|
|
7
7
|
size?: 'sm' | 'md' | 'lg';
|
|
8
8
|
variant?: 'primary' | 'secondary';
|
|
9
|
-
|
|
9
|
+
isIcon?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export declare const ToggleButton: React.ForwardRefExoticComponent<ToggleButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -4,8 +4,10 @@ export declare const styles: Readonly<{
|
|
|
4
4
|
readonly display: stylex.StyleXClassNameFor<"display", "inline-flex">;
|
|
5
5
|
readonly alignItems: stylex.StyleXClassNameFor<"alignItems", "center">;
|
|
6
6
|
readonly justifyContent: stylex.StyleXClassNameFor<"justifyContent", "center">;
|
|
7
|
+
readonly gap: stylex.StyleXClassNameFor<"gap", string>;
|
|
7
8
|
readonly fontWeight: stylex.StyleXClassNameFor<"fontWeight", string>;
|
|
8
9
|
readonly cursor: stylex.StyleXClassNameFor<"cursor", "pointer">;
|
|
10
|
+
readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
|
|
9
11
|
readonly transitionProperty: stylex.StyleXClassNameFor<"transitionProperty", "background-color, border-color, color, transform">;
|
|
10
12
|
readonly transitionDuration: stylex.StyleXClassNameFor<"transitionDuration", "0.15s">;
|
|
11
13
|
readonly transitionTimingFunction: stylex.StyleXClassNameFor<"transitionTimingFunction", "ease-in-out">;
|
|
@@ -26,21 +28,24 @@ export declare const styles: Readonly<{
|
|
|
26
28
|
}>;
|
|
27
29
|
}>;
|
|
28
30
|
readonly sm: Readonly<{
|
|
29
|
-
readonly
|
|
31
|
+
readonly height: stylex.StyleXClassNameFor<"height", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
32
|
+
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
30
33
|
readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", string>;
|
|
31
34
|
readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
|
|
32
35
|
readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
|
|
33
36
|
readonly lineHeight: stylex.StyleXClassNameFor<"lineHeight", string>;
|
|
34
37
|
}>;
|
|
35
38
|
readonly md: Readonly<{
|
|
36
|
-
readonly
|
|
39
|
+
readonly height: stylex.StyleXClassNameFor<"height", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
40
|
+
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
37
41
|
readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", string>;
|
|
38
42
|
readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
|
|
39
43
|
readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
|
|
40
44
|
readonly lineHeight: stylex.StyleXClassNameFor<"lineHeight", string>;
|
|
41
45
|
}>;
|
|
42
46
|
readonly lg: Readonly<{
|
|
43
|
-
readonly
|
|
47
|
+
readonly height: stylex.StyleXClassNameFor<"height", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
48
|
+
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
44
49
|
readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", string>;
|
|
45
50
|
readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
|
|
46
51
|
readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
|
|
@@ -208,16 +213,19 @@ export declare const styles: Readonly<{
|
|
|
208
213
|
readonly selectionIndicatorSecondary: Readonly<{
|
|
209
214
|
readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
|
|
210
215
|
}>;
|
|
211
|
-
readonly
|
|
212
|
-
readonly
|
|
213
|
-
readonly
|
|
216
|
+
readonly iconSm: Readonly<{
|
|
217
|
+
readonly width: stylex.StyleXClassNameFor<"width", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
218
|
+
readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", 0>;
|
|
219
|
+
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
214
220
|
}>;
|
|
215
|
-
readonly
|
|
216
|
-
readonly
|
|
217
|
-
readonly
|
|
221
|
+
readonly iconMd: Readonly<{
|
|
222
|
+
readonly width: stylex.StyleXClassNameFor<"width", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
223
|
+
readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", 0>;
|
|
224
|
+
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
218
225
|
}>;
|
|
219
|
-
readonly
|
|
220
|
-
readonly
|
|
221
|
-
readonly
|
|
226
|
+
readonly iconLg: Readonly<{
|
|
227
|
+
readonly width: stylex.StyleXClassNameFor<"width", `calc(${stylex.StyleXVar<string>} * 2 + ${stylex.StyleXVar<string>})`>;
|
|
228
|
+
readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", 0>;
|
|
229
|
+
readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
|
|
222
230
|
}>;
|
|
223
231
|
}>;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const version = "2026.08.
|
|
1
|
+
export declare const version = "2026.08.21";
|
|
2
2
|
export { Alert } from './components/Alert';
|
|
3
3
|
export type { AlertProps, AlertVariant } from './components/Alert/Alert';
|
|
4
4
|
export { AlertDialog, AlertDialogBody, AlertDialogFooter, AlertDialogHeader, } from './components/AlertDialog';
|
|
@@ -49,6 +49,8 @@ export type { LineChartProps } from './components/LineChart';
|
|
|
49
49
|
export { LineChart } from './components/LineChart';
|
|
50
50
|
export { Link } from './components/Link';
|
|
51
51
|
export type { LinkProps } from './components/Link/Link';
|
|
52
|
+
export type { HighlightTextProps, LogAttributeChipProps, LogFilterLevel, LogItem, LogLevel, LogLevelBadgeProps, LogsProps, LogsViewerProps, } from './components/LogsViewer';
|
|
53
|
+
export { HighlightText, LogAttributeChip, LogLevelBadge, Logs, LogsViewer, normalizeLogLevel, parseAttributes, parseLogLine, parseLogs, SERVER_LOG_RAW, SERVER_LOGS, stripAttributes, } from './components/LogsViewer';
|
|
52
54
|
export { Modal, ModalBody, ModalDialog, ModalFooter, ModalHeader, ModalOverlay, } from './components/Modal';
|
|
53
55
|
export type { ModalBodyProps, ModalDialogProps, ModalFooterProps, ModalHeaderProps, ModalOverlayProps, ModalProps, } from './components/Modal/Modal';
|
|
54
56
|
export { NumberField } from './components/NumberField';
|
|
@@ -101,4 +103,5 @@ export { Typography, TypographyHeading, TypographyLabel, TypographyParagraph, Ty
|
|
|
101
103
|
export type { HeadingProps, ParagraphProps, SpanProps, TypographyLabelProps, TypographyProps, TypographyTag, } from './components/Typography/Typography';
|
|
102
104
|
export type { ThemeProviderProps } from './theme/ThemeProvider';
|
|
103
105
|
export { ThemeProvider } from './theme/ThemeProvider';
|
|
106
|
+
export type { Tokens } from './tokens/tokens.stylex';
|
|
104
107
|
export { tokens } from './tokens/tokens.stylex';
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import "@stylexjs/stylex";
|
|
3
|
+
//#region src/tokens/tokens.stylex.ts
|
|
4
|
+
var e = {
|
|
5
|
+
colorNeutral50: "var(--x1ox3f4o)",
|
|
6
|
+
colorNeutral100: "var(--x1oziaxx)",
|
|
7
|
+
colorNeutral200: "var(--xekkakv)",
|
|
8
|
+
colorNeutral300: "var(--x4npmm6)",
|
|
9
|
+
colorNeutral400: "var(--x6l5ye8)",
|
|
10
|
+
colorNeutral500: "var(--x1s9rx7n)",
|
|
11
|
+
colorNeutral600: "var(--x7rwqrp)",
|
|
12
|
+
colorNeutral700: "var(--x1ol9w3z)",
|
|
13
|
+
colorNeutral800: "var(--xaubso4)",
|
|
14
|
+
colorNeutral900: "var(--x21z8aa)",
|
|
15
|
+
colorPrimary50: "var(--x1l7m7gb)",
|
|
16
|
+
colorPrimary100: "var(--xvy7zpp)",
|
|
17
|
+
colorPrimary200: "var(--x189jvvz)",
|
|
18
|
+
colorPrimary300: "var(--x1smr4m2)",
|
|
19
|
+
colorPrimary400: "var(--x1p3wd7v)",
|
|
20
|
+
colorPrimary500: "var(--x11vz4nw)",
|
|
21
|
+
colorPrimary600: "var(--x19wncxt)",
|
|
22
|
+
colorPrimary700: "var(--xms5kwx)",
|
|
23
|
+
colorPrimary800: "var(--x1f1ph2q)",
|
|
24
|
+
colorPrimary900: "var(--x27tw8h)",
|
|
25
|
+
colorError300: "var(--xywa26s)",
|
|
26
|
+
colorError400: "var(--x1ttemnr)",
|
|
27
|
+
colorError500: "var(--xgm7y0w)",
|
|
28
|
+
colorError600: "var(--x14tkvwa)",
|
|
29
|
+
colorError700: "var(--xle5duh)",
|
|
30
|
+
colorWarning300: "var(--xxkj1oe)",
|
|
31
|
+
colorWarning400: "var(--xvbe47b)",
|
|
32
|
+
colorWarning500: "var(--x9boa8o)",
|
|
33
|
+
colorWarning600: "var(--x1foz1o3)",
|
|
34
|
+
colorWarning700: "var(--x1i80a2t)",
|
|
35
|
+
colorSuccess300: "var(--x1eg0uv7)",
|
|
36
|
+
colorSuccess400: "var(--x1xkz733)",
|
|
37
|
+
colorSuccess500: "var(--xo79180)",
|
|
38
|
+
colorSuccess600: "var(--xftmch4)",
|
|
39
|
+
colorSuccess700: "var(--x6beaur)",
|
|
40
|
+
colorBg: "var(--x1poa4dm)",
|
|
41
|
+
colorBgSubtle: "var(--xg2wbmg)",
|
|
42
|
+
colorBgElevated: "var(--x1qnu6yg)",
|
|
43
|
+
colorFg: "var(--x1jfchzy)",
|
|
44
|
+
colorFgSubtle: "var(--xaffrw6)",
|
|
45
|
+
colorFgOnPrimary: "var(--x16n9mb9)",
|
|
46
|
+
colorBorder: "var(--x1t7g4u6)",
|
|
47
|
+
colorBorderSubtle: "var(--xrlp4ei)",
|
|
48
|
+
colorBorderFocus: "var(--x79fgis)",
|
|
49
|
+
colorBgGlass: "var(--x7we1u4)",
|
|
50
|
+
colorBorderGlass: "var(--x8ovk6j)",
|
|
51
|
+
colorShadow: "var(--x1qvbbfx)",
|
|
52
|
+
colorOverlay: "var(--x2r2dxw)",
|
|
53
|
+
colorAlertBgInfo: "var(--x1yncxg9)",
|
|
54
|
+
colorAlertBorderInfo: "var(--xgvswlc)",
|
|
55
|
+
colorAlertHoverInfo: "var(--xdv3703)",
|
|
56
|
+
colorAlertActiveInfo: "var(--x1b4xit2)",
|
|
57
|
+
colorAlertBgAccent: "var(--xfh678y)",
|
|
58
|
+
colorAlertBorderAccent: "var(--xtwqyzw)",
|
|
59
|
+
colorAlertHoverAccent: "var(--x2hivg9)",
|
|
60
|
+
colorAlertActiveAccent: "var(--x1wzp30q)",
|
|
61
|
+
colorAlertBgSuccess: "var(--xvq252x)",
|
|
62
|
+
colorAlertBorderSuccess: "var(--x1iepgx6)",
|
|
63
|
+
colorAlertHoverSuccess: "var(--x1gcqxgm)",
|
|
64
|
+
colorAlertActiveSuccess: "var(--x1epzsal)",
|
|
65
|
+
colorAlertBgWarning: "var(--xg2n39v)",
|
|
66
|
+
colorAlertBorderWarning: "var(--x1n16z78)",
|
|
67
|
+
colorAlertHoverWarning: "var(--xq3y2id)",
|
|
68
|
+
colorAlertActiveWarning: "var(--xf8i1ro)",
|
|
69
|
+
colorAlertBgError: "var(--x1u4wyvx)",
|
|
70
|
+
colorAlertBorderError: "var(--xwq48n1)",
|
|
71
|
+
colorAlertHoverError: "var(--x1cujurv)",
|
|
72
|
+
colorAlertActiveError: "var(--x3091pa)",
|
|
73
|
+
fontSizeXs: "var(--xpanzj7)",
|
|
74
|
+
fontSizeSm: "var(--xz9ra21)",
|
|
75
|
+
fontSizeMd: "var(--x19jnf71)",
|
|
76
|
+
fontSizeLg: "var(--x16hg6gx)",
|
|
77
|
+
fontSizeXl: "var(--xkl0paq)",
|
|
78
|
+
fontSizeXxl: "var(--x18r5va)",
|
|
79
|
+
fontSize3xl: "var(--x1cwqm9m)",
|
|
80
|
+
fontSize4xl: "var(--x14r6drk)",
|
|
81
|
+
lineHeightXs: "var(--x1vx0k0f)",
|
|
82
|
+
lineHeightSm: "var(--x186dp4y)",
|
|
83
|
+
lineHeightMd: "var(--x1bapz3m)",
|
|
84
|
+
lineHeightLg: "var(--x107177a)",
|
|
85
|
+
lineHeightXl: "var(--x1x2zchm)",
|
|
86
|
+
lineHeightXxl: "var(--x1t135xi)",
|
|
87
|
+
lineHeight3xl: "var(--xqmssti)",
|
|
88
|
+
lineHeight4xl: "var(--x1458rh6)",
|
|
89
|
+
fontWeightNormal: "var(--x1oo7w7q)",
|
|
90
|
+
fontWeightMedium: "var(--x1i7new4)",
|
|
91
|
+
fontWeightSemibold: "var(--xrtlgup)",
|
|
92
|
+
fontWeightBold: "var(--x1jugmoa)",
|
|
93
|
+
fontFamilyBase: "var(--xb7uvbd)",
|
|
94
|
+
spacing1: "var(--x1jforli)",
|
|
95
|
+
spacing2: "var(--x9epbqz)",
|
|
96
|
+
spacing3: "var(--x1fim08e)",
|
|
97
|
+
spacing4: "var(--x1djehx3)",
|
|
98
|
+
spacing5: "var(--xpmkuee)",
|
|
99
|
+
spacing6: "var(--x1xsmz2k)",
|
|
100
|
+
spacing7: "var(--x1aetgvy)",
|
|
101
|
+
spacing8: "var(--x3461u0)",
|
|
102
|
+
radiusNone: "var(--x10dfn0a)",
|
|
103
|
+
radiusSm: "var(--xcxkm4p)",
|
|
104
|
+
radiusMd: "var(--x11qts0k)",
|
|
105
|
+
radiusLg: "var(--x8ikvy7)",
|
|
106
|
+
radiusFull: "var(--x69bofi)",
|
|
107
|
+
shadowSm: "var(--x1nbpjwp)",
|
|
108
|
+
shadowMd: "var(--xi6zbv0)",
|
|
109
|
+
shadowLg: "var(--xckknmd)",
|
|
110
|
+
zIndexBase: "var(--x1x05ep0)",
|
|
111
|
+
zIndexDropdown: "var(--x1r4igc)",
|
|
112
|
+
zIndexModal: "var(--xjyalnt)",
|
|
113
|
+
zIndexTooltip: "var(--x1yamzkk)",
|
|
114
|
+
zIndexToast: "var(--xd3kluz)",
|
|
115
|
+
colorChart1: "var(--x1sjgkb4)",
|
|
116
|
+
colorChart2: "var(--xndyysw)",
|
|
117
|
+
colorChart3: "var(--x97jlmp)",
|
|
118
|
+
colorChart4: "var(--x1te5qoh)",
|
|
119
|
+
colorChart5: "var(--x174xad0)",
|
|
120
|
+
colorChart6: "var(--xljzat3)",
|
|
121
|
+
colorChart7: "var(--x76stw)",
|
|
122
|
+
colorChart8: "var(--x2x0qih)",
|
|
123
|
+
__varGroupHash__: "x1x2wves"
|
|
124
|
+
};
|
|
125
|
+
//#endregion
|
|
126
|
+
export { e as tokens };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moul-dev/ui",
|
|
3
|
-
"version": "2026.08.
|
|
3
|
+
"version": "2026.08.21",
|
|
4
4
|
"description": "Accessible, zero-runtime React component library built on React Aria and StyleX",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -39,6 +39,14 @@
|
|
|
39
39
|
"types": "./dist/src/index.d.ts",
|
|
40
40
|
"import": "./dist/moul-ui.js"
|
|
41
41
|
},
|
|
42
|
+
"./tokens": {
|
|
43
|
+
"types": "./dist/src/tokens/tokens.stylex.d.ts",
|
|
44
|
+
"import": "./dist/tokens.stylex.js"
|
|
45
|
+
},
|
|
46
|
+
"./tokens.stylex": {
|
|
47
|
+
"types": "./dist/src/tokens/tokens.stylex.d.ts",
|
|
48
|
+
"import": "./dist/tokens.stylex.js"
|
|
49
|
+
},
|
|
42
50
|
"./style": {
|
|
43
51
|
"style": "./dist/assets/stylex.css",
|
|
44
52
|
"default": "./dist/assets/stylex.css"
|
|
@@ -61,6 +69,7 @@
|
|
|
61
69
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
62
70
|
},
|
|
63
71
|
"dependencies": {
|
|
72
|
+
"@phosphor-icons/react": "^2.1.10",
|
|
64
73
|
"@stylexjs/stylex": "^0.19.0",
|
|
65
74
|
"input-otp": "^1.4.2",
|
|
66
75
|
"react-aria": "^3.50.0",
|