@once-ui-system/core 1.8.3 → 1.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/ai/catalog.json +2 -2
- package/ai/manifest.json +2 -2
- package/ai/spec.json +2 -2
- package/dist/ai/catalog.json +2 -2
- package/dist/ai/manifest.json +2 -2
- package/dist/ai/spec.json +2 -2
- package/dist/components/CompareImage.d.ts +1 -1
- package/dist/components/EmojiPicker.d.ts +1 -1
- package/dist/components/FadingLettersFx.d.ts +1 -1
- package/dist/components/FadingLettersFx.d.ts.map +1 -1
- package/dist/components/Heading.d.ts +1 -1
- package/dist/components/InfiniteScroll.d.ts +1 -1
- package/dist/components/InfiniteScroll.d.ts.map +1 -1
- package/dist/components/OgCard.d.ts +1 -1
- package/dist/components/ScrollToTop.d.ts +1 -1
- package/dist/components/SplitView.d.ts +1 -1
- package/dist/components/SplitView.d.ts.map +1 -1
- package/dist/components/Table.d.ts +1 -1
- package/dist/components/Table.d.ts.map +1 -1
- package/dist/components/Text.d.ts +1 -1
- package/dist/components/ThemeInit.d.ts.map +1 -1
- package/dist/components/ThemeInit.js +6 -4
- package/dist/components/ThemeInit.js.map +1 -1
- package/dist/contexts/DataThemeProvider.d.ts +1 -1
- package/dist/contexts/DataThemeProvider.d.ts.map +1 -1
- package/dist/contexts/IconProvider.d.ts +1 -1
- package/dist/contexts/IconProvider.d.ts.map +1 -1
- package/dist/contexts/ThemeProvider.d.ts +1 -1
- package/dist/contexts/ThemeProvider.d.ts.map +1 -1
- package/dist/data/emoji-data.json +0 -10
- package/dist/modules/data/LinearGauge.d.ts +1 -1
- package/dist/modules/data/LinearGauge.d.ts.map +1 -1
- package/dist/modules/data/RadialGauge.d.ts +1 -1
- package/dist/modules/data/RadialGauge.d.ts.map +1 -1
- package/dist/modules/seo/Schema.d.ts +2 -1
- package/dist/modules/seo/Schema.d.ts.map +1 -1
- package/dist/package.json +1 -1
- package/dist/scripts/init-agent.js +156 -0
- package/dist/scripts/validate-ai-code.js +149 -0
- package/package.json +171 -173
- package/scripts/init-agent.js +0 -0
- package/scripts/validate-ai-code.js +0 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2025 Once UI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/ai/catalog.json
CHANGED
package/ai/manifest.json
CHANGED
package/ai/spec.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@once-ui-system/core",
|
|
3
|
-
"version": "1.8.
|
|
4
|
-
"generated": "2026-08-
|
|
3
|
+
"version": "1.8.4",
|
|
4
|
+
"generated": "2026-08-28",
|
|
5
5
|
"format": "props are 'type', 'type = default', or '!type' (required). Components with 'mixins' also accept all props of those mixins. 'extends' means all props of that component are accepted.",
|
|
6
6
|
"tokens": {
|
|
7
7
|
"StaticSpacingToken": "\"0\" | \"1\" | \"2\" | \"4\" | \"8\" | \"12\" | \"16\" | \"20\" | \"24\" | \"32\" | \"40\" | \"48\" | \"56\" | \"64\" | \"80\" | \"104\" | \"128\" | \"160\"",
|
package/dist/ai/catalog.json
CHANGED
package/dist/ai/manifest.json
CHANGED
package/dist/ai/spec.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@once-ui-system/core",
|
|
3
|
-
"version": "1.8.
|
|
4
|
-
"generated": "2026-08-
|
|
3
|
+
"version": "1.8.4",
|
|
4
|
+
"generated": "2026-08-28",
|
|
5
5
|
"format": "props are 'type', 'type = default', or '!type' (required). Components with 'mixins' also accept all props of those mixins. 'extends' means all props of that component are accepted.",
|
|
6
6
|
"tokens": {
|
|
7
7
|
"StaticSpacingToken": "\"0\" | \"1\" | \"2\" | \"4\" | \"8\" | \"12\" | \"16\" | \"20\" | \"24\" | \"32\" | \"40\" | \"48\" | \"56\" | \"64\" | \"80\" | \"104\" | \"128\" | \"160\"",
|
|
@@ -10,7 +10,7 @@ interface CompareImageProps extends React.ComponentProps<typeof Flex> {
|
|
|
10
10
|
unoptimized?: boolean;
|
|
11
11
|
}
|
|
12
12
|
declare const CompareImage: {
|
|
13
|
-
({ leftContent, rightContent, aspectRatio, unoptimized, ...rest }: CompareImageProps): import("react
|
|
13
|
+
({ leftContent, rightContent, aspectRatio, unoptimized, ...rest }: CompareImageProps): import("react").JSX.Element;
|
|
14
14
|
displayName: string;
|
|
15
15
|
};
|
|
16
16
|
export { CompareImage };
|
|
@@ -9,7 +9,7 @@ export interface EmojiPickerProps extends Omit<React.ComponentProps<typeof Flex>
|
|
|
9
9
|
style?: React.CSSProperties;
|
|
10
10
|
}
|
|
11
11
|
declare const EmojiPicker: {
|
|
12
|
-
({ onSelect, onClose, className, background, columns, style, ...flex }: EmojiPickerProps): import("react
|
|
12
|
+
({ onSelect, onClose, className, background, columns, style, ...flex }: EmojiPickerProps): import("react").JSX.Element;
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
15
|
export { EmojiPicker };
|
|
@@ -6,7 +6,7 @@ interface FadingLettersFxProps extends ComponentProps<typeof Text> {
|
|
|
6
6
|
animationState: AnimationState;
|
|
7
7
|
messageIdx?: number;
|
|
8
8
|
}
|
|
9
|
-
declare function FadingLettersFx({ text, animationState, messageIdx, ...textProps }: FadingLettersFxProps): import("react
|
|
9
|
+
declare function FadingLettersFx({ text, animationState, messageIdx, ...textProps }: FadingLettersFxProps): import("react").JSX.Element;
|
|
10
10
|
declare namespace FadingLettersFx {
|
|
11
11
|
var displayName: string;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FadingLettersFx.d.ts","sourceRoot":"","sources":["../../src/components/FadingLettersFx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,UAAU,oBAAqB,SAAQ,cAAc,CAAC,OAAO,IAAI,CAAC;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,cAAc,EACd,UAAc,EACd,GAAG,SAAS,EACb,EAAE,oBAAoB
|
|
1
|
+
{"version":3,"file":"FadingLettersFx.d.ts","sourceRoot":"","sources":["../../src/components/FadingLettersFx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,UAAU,oBAAqB,SAAQ,cAAc,CAAC,OAAO,IAAI,CAAC;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,cAAc,EACd,UAAc,EACd,GAAG,SAAS,EACb,EAAE,oBAAoB,+BA0CtB;kBA/CQ,eAAe;;;AAmDxB,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { ElementType, ComponentPropsWithoutRef } from "react";
|
|
|
2
2
|
import { TextProps, CommonProps, SpacingProps, DisplayProps } from "../interfaces";
|
|
3
3
|
type HeadingProps<T extends ElementType> = TextProps<T> & CommonProps & SpacingProps & Omit<DisplayProps, "as"> & ComponentPropsWithoutRef<T>;
|
|
4
4
|
declare const Heading: {
|
|
5
|
-
<T extends ElementType = "h1">({ as, variant, size, weight, family, onBackground, onSolid, align, wrap, padding, paddingLeft, paddingRight, paddingTop, paddingBottom, paddingX, paddingY, margin, marginLeft, marginRight, marginTop, marginBottom, marginX, marginY, children, style, truncate, opacity, className, ...props }: HeadingProps<T>): import("react
|
|
5
|
+
<T extends ElementType = "h1">({ as, variant, size, weight, family, onBackground, onSolid, align, wrap, padding, paddingLeft, paddingRight, paddingTop, paddingBottom, paddingX, paddingY, margin, marginLeft, marginRight, marginTop, marginBottom, marginX, marginY, children, style, truncate, opacity, className, ...props }: HeadingProps<T>): import("react").JSX.Element;
|
|
6
6
|
displayName: string;
|
|
7
7
|
};
|
|
8
8
|
export { Heading };
|
|
@@ -8,7 +8,7 @@ export interface InfiniteScrollProps<T> extends React.ComponentProps<typeof Row>
|
|
|
8
8
|
threshold?: number;
|
|
9
9
|
className?: string;
|
|
10
10
|
}
|
|
11
|
-
declare function InfiniteScroll<T>({ items, renderItem, loadMore, loading, threshold, ...flex }: InfiniteScrollProps<T>):
|
|
11
|
+
declare function InfiniteScroll<T>({ items, renderItem, loadMore, loading, threshold, ...flex }: InfiniteScrollProps<T>): React.JSX.Element;
|
|
12
12
|
declare namespace InfiniteScroll {
|
|
13
13
|
var displayName: string;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfiniteScroll.d.ts","sourceRoot":"","sources":["../../src/components/InfiniteScroll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AACtE,OAAO,EAAU,GAAG,EAAW,MAAM,GAAG,CAAC;AAEzC,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC;IAC9E,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAClD,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,cAAc,CAAC,CAAC,EAAE,EACzB,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAe,EACf,SAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"InfiniteScroll.d.ts","sourceRoot":"","sources":["../../src/components/InfiniteScroll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AACtE,OAAO,EAAU,GAAG,EAAW,MAAM,GAAG,CAAC;AAEzC,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC;IAC9E,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAClD,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,cAAc,CAAC,CAAC,EAAE,EACzB,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAe,EACf,SAAe,EACf,GAAG,IAAI,EACR,EAAE,mBAAmB,CAAC,CAAC,CAAC,qBAoExB;kBA3EQ,cAAc;;;AA8EvB,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -28,7 +28,7 @@ interface OgCardProps extends Omit<React.ComponentProps<typeof Card>, "title"> {
|
|
|
28
28
|
cardUrl?: string | false;
|
|
29
29
|
}
|
|
30
30
|
declare const OgCard: {
|
|
31
|
-
({ url, ogData: providedOgData, direction, sizes, unoptimized, size, serviceConfig, title, description, favicon, image, cardUrl, ...card }: OgCardProps): import("react
|
|
31
|
+
({ url, ogData: providedOgData, direction, sizes, unoptimized, size, serviceConfig, title, description, favicon, image, cardUrl, ...card }: OgCardProps): import("react").JSX.Element | null;
|
|
32
32
|
displayName: string;
|
|
33
33
|
};
|
|
34
34
|
export { OgCard };
|
|
@@ -3,7 +3,7 @@ interface ScrollToTopProps extends React.ComponentProps<typeof Flex> {
|
|
|
3
3
|
offset?: number;
|
|
4
4
|
}
|
|
5
5
|
export declare const ScrollToTop: {
|
|
6
|
-
({ children, offset, className, ...rest }: ScrollToTopProps): import("react
|
|
6
|
+
({ children, offset, className, ...rest }: ScrollToTopProps): import("react").JSX.Element;
|
|
7
7
|
displayName: string;
|
|
8
8
|
};
|
|
9
9
|
export {};
|
|
@@ -7,7 +7,7 @@ interface SplitViewProps extends React.ComponentProps<typeof Row> {
|
|
|
7
7
|
minSplit?: number;
|
|
8
8
|
maxSplit?: number;
|
|
9
9
|
}
|
|
10
|
-
declare function SplitView({ leftPanel, rightPanel, defaultSplit, minSplit, maxSplit, ...flex }: SplitViewProps): import("react
|
|
10
|
+
declare function SplitView({ leftPanel, rightPanel, defaultSplit, minSplit, maxSplit, ...flex }: SplitViewProps): import("react").JSX.Element;
|
|
11
11
|
declare namespace SplitView {
|
|
12
12
|
var displayName: string;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitView.d.ts","sourceRoot":"","sources":["../../src/components/SplitView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAgB,MAAM,GAAG,CAAC;AACtC,OAAO,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/D,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC;IAC/D,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkDD,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,UAAU,EACV,YAAkB,EAClB,QAAc,EACd,QAAc,EACd,GAAG,IAAI,EACR,EAAE,cAAc
|
|
1
|
+
{"version":3,"file":"SplitView.d.ts","sourceRoot":"","sources":["../../src/components/SplitView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAgB,MAAM,GAAG,CAAC;AACtC,OAAO,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/D,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC;IAC/D,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkDD,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,UAAU,EACV,YAAkB,EAClB,QAAc,EACd,QAAc,EACd,GAAG,IAAI,EACR,EAAE,cAAc,+BAsFhB;kBA7FQ,SAAS;;;AAiGlB,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -38,7 +38,7 @@ type TableProps = React.ComponentProps<typeof Flex> & {
|
|
|
38
38
|
pageSizeOptions?: number[];
|
|
39
39
|
loadingState?: ReactNode;
|
|
40
40
|
};
|
|
41
|
-
declare function Table({ data, onRowClick, searchable, searchPlaceholder, striped, hoverable, compact, loading, emptyState, actions, stickyHeader, maxHeight, rowClassName, cellClassName, paginated, defaultPageSize, pageSizeOptions, loadingState, ...flex }: TableProps): import("react
|
|
41
|
+
declare function Table({ data, onRowClick, searchable, searchPlaceholder, striped, hoverable, compact, loading, emptyState, actions, stickyHeader, maxHeight, rowClassName, cellClassName, paginated, defaultPageSize, pageSizeOptions, loadingState, ...flex }: TableProps): import("react").JSX.Element;
|
|
42
42
|
declare namespace Table {
|
|
43
43
|
var displayName: string;
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/components/Table.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAA+E,MAAM,GAAG,CAAC;AACrG,OAAO,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1D,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C,CAAC;AAEF,KAAK,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG;IACpD,IAAI,EAAE;QACJ,OAAO,EAAE,WAAW,EAAE,CAAC;QACvB,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B,CAAC;AAYF,iBAAS,KAAK,CAAC,EACb,IAAI,EACJ,UAAU,EACV,UAAkB,EAClB,iBAA+B,EAC/B,OAAe,EACf,SAAgB,EAChB,OAAe,EACf,OAAe,EACf,UAAU,EACV,OAAO,EACP,YAAoB,EACpB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,SAAiB,EACjB,eAAoB,EACpB,eAAiC,EACjC,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,UAAU
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/components/Table.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAA+E,MAAM,GAAG,CAAC;AACrG,OAAO,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrD,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1D,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C,CAAC;AAEF,KAAK,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG;IACpD,IAAI,EAAE;QACJ,OAAO,EAAE,WAAW,EAAE,CAAC;QACvB,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B,CAAC;AAYF,iBAAS,KAAK,CAAC,EACb,IAAI,EACJ,UAAU,EACV,UAAkB,EAClB,iBAA+B,EAC/B,OAAe,EACf,SAAgB,EAChB,OAAe,EACf,OAAe,EACf,UAAU,EACV,OAAO,EACP,YAAoB,EACpB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,SAAiB,EACjB,eAAoB,EACpB,eAAiC,EACjC,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,UAAU,+BAyXZ;kBA7YQ,KAAK;;;AAgZd,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { ElementType, ComponentPropsWithoutRef } from "react";
|
|
|
2
2
|
import { TextProps, CommonProps, SpacingProps, DisplayProps } from "../interfaces";
|
|
3
3
|
type TypeProps<T extends ElementType> = TextProps<T> & CommonProps & SpacingProps & Omit<DisplayProps, "as"> & ComponentPropsWithoutRef<T>;
|
|
4
4
|
declare const Text: {
|
|
5
|
-
<T extends ElementType = "span">({ as, variant, size, weight, family, onBackground, onSolid, align, wrap, padding, paddingLeft, paddingRight, paddingTop, paddingBottom, paddingX, paddingY, margin, marginLeft, marginRight, marginTop, marginBottom, marginX, marginY, children, style, className, truncate, opacity, ...props }: TypeProps<T>): import("react
|
|
5
|
+
<T extends ElementType = "span">({ as, variant, size, weight, family, onBackground, onSolid, align, wrap, padding, paddingLeft, paddingRight, paddingTop, paddingBottom, paddingX, paddingY, margin, marginLeft, marginRight, marginTop, marginBottom, marginX, marginY, children, style, className, truncate, opacity, ...props }: TypeProps<T>): import("react").JSX.Element;
|
|
6
6
|
displayName: string;
|
|
7
7
|
};
|
|
8
8
|
export { Text };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeInit.d.ts","sourceRoot":"","sources":["../../src/components/ThemeInit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"ThemeInit.d.ts","sourceRoot":"","sources":["../../src/components/ThemeInit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAoD9C,CAAC"}
|
|
@@ -18,9 +18,7 @@ export const ThemeInit = ({ config }) => {
|
|
|
18
18
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
19
19
|
}
|
|
20
20
|
return themeValue;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
ThemeInit.displayName = "ThemeInit";
|
|
21
|
+
};
|
|
24
22
|
|
|
25
23
|
// Priority:
|
|
26
24
|
// 1. localStorage
|
|
@@ -40,7 +38,11 @@ ThemeInit.displayName = "ThemeInit";
|
|
|
40
38
|
|
|
41
39
|
} catch (e) {
|
|
42
40
|
console.error('Failed to initialize theme:', e);
|
|
43
|
-
|
|
41
|
+
// Fall back to the system preference, not a hardcoded theme: forcing
|
|
42
|
+
// dark on a light-mode visitor is a worse failure than doing nothing.
|
|
43
|
+
var prefersDark = window.matchMedia
|
|
44
|
+
&& window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
45
|
+
document.documentElement.setAttribute('data-theme', prefersDark ? 'dark' : 'light');
|
|
44
46
|
}
|
|
45
47
|
})();
|
|
46
48
|
`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeInit.js","sourceRoot":"","sources":["../../src/components/ThemeInit.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoBpD,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAChE,OAAO,CACL,iBACE,EAAE,EAAC,YAAY,EACf,uBAAuB,EAAE;YACvB,MAAM,EAAE;;;;+BAIe,cAAc,CAAC,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"ThemeInit.js","sourceRoot":"","sources":["../../src/components/ThemeInit.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoBpD,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;IAChE,OAAO,CACL,iBACE,EAAE,EAAC,YAAY,EACf,uBAAuB,EAAE;YACvB,MAAM,EAAE;;;;+BAIe,cAAc,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAuC5C;SACF,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
|
|
@@ -20,7 +20,7 @@ interface DataThemeProviderProps extends Partial<ChartOptions> {
|
|
|
20
20
|
children: ReactNode;
|
|
21
21
|
}
|
|
22
22
|
declare const defaultChartOptions: ChartOptions;
|
|
23
|
-
export declare function DataThemeProvider({ children, variant, mode, height, axis, tick, ...rest }: DataThemeProviderProps): import("react
|
|
23
|
+
export declare function DataThemeProvider({ children, variant, mode, height, axis, tick, ...rest }: DataThemeProviderProps): import("react").JSX.Element;
|
|
24
24
|
export declare const useDataTheme: () => DataThemeState;
|
|
25
25
|
export { defaultChartOptions };
|
|
26
26
|
//# sourceMappingURL=DataThemeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataThemeProvider.d.ts","sourceRoot":"","sources":["../../src/contexts/DataThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,UAAU,YAAY;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,UAAU,sBAAuB,SAAQ,OAAO,CAAC,YAAY,CAAC;IAC5D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,QAAA,MAAM,mBAAmB,EAAE,YAY1B,CAAC;AAwBF,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,sBAAsB
|
|
1
|
+
{"version":3,"file":"DataThemeProvider.d.ts","sourceRoot":"","sources":["../../src/contexts/DataThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkD,SAAS,EAAE,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1D,UAAU,YAAY;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,UAAU,sBAAuB,SAAQ,OAAO,CAAC,YAAY,CAAC;IAC5D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,QAAA,MAAM,mBAAmB,EAAE,YAY1B,CAAC;AAwBF,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,sBAAsB,+BAuExB;AAED,eAAO,MAAM,YAAY,sBAMxB,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -5,7 +5,7 @@ export declare const IconContext: import("react").Context<{
|
|
|
5
5
|
export declare const IconProvider: ({ icons, children, }: {
|
|
6
6
|
icons?: Partial<IconLibrary>;
|
|
7
7
|
children: React.ReactNode;
|
|
8
|
-
}) => import("react
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
9
|
export declare const useIcons: () => {
|
|
10
10
|
icons: IconLibrary;
|
|
11
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconProvider.d.ts","sourceRoot":"","sources":["../../src/contexts/IconProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA+B,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpE,eAAO,MAAM,WAAW;WACf,WAAW;EAGlB,CAAC;AAEH,eAAO,MAAM,YAAY,GAAI,sBAG1B;IACD,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,
|
|
1
|
+
{"version":3,"file":"IconProvider.d.ts","sourceRoot":"","sources":["../../src/contexts/IconProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA+B,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpE,eAAO,MAAM,WAAW;WACf,WAAW;EAGlB,CAAC;AAEH,eAAO,MAAM,YAAY,GAAI,sBAG1B;IACD,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,gCAYA,CAAC;AAEF,eAAO,MAAM,QAAQ;WAzBZ,WAAW;CAyBiC,CAAC"}
|
|
@@ -42,7 +42,7 @@ type ThemeProviderProps = {
|
|
|
42
42
|
scaling?: ScalingSize;
|
|
43
43
|
};
|
|
44
44
|
declare const defaultStyleOptions: StyleOptions;
|
|
45
|
-
export declare function ThemeProvider({ children, theme: propTheme, neutral, brand, accent, solid, solidStyle, border, surface, transition, scaling, }: ThemeProviderProps): import("react
|
|
45
|
+
export declare function ThemeProvider({ children, theme: propTheme, neutral, brand, accent, solid, solidStyle, border, surface, transition, scaling, }: ThemeProviderProps): import("react").JSX.Element;
|
|
46
46
|
export declare const useTheme: () => ThemeProviderState;
|
|
47
47
|
export declare const useStyle: () => StyleProviderState;
|
|
48
48
|
export { defaultStyleOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/contexts/ThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,aAAa,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE,UAAU,YAAY;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC;IACjC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,KAAK,kBAAkB,GAAG,YAAY,GAAG;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAQF,QAAA,MAAM,mBAAmB,EAAE,YAW1B,CAAC;AAuFF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,EAAE,SAAoB,EAC3B,OAAO,EACP,KAAK,EACL,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,kBAAkB
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/contexts/ThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,aAAa,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAC9D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE,UAAU,YAAY;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,YAAY,GAAG,QAAQ,CAAC;IACjC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,KAAK,kBAAkB,GAAG,YAAY,GAAG;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAQF,QAAA,MAAM,mBAAmB,EAAE,YAW1B,CAAC;AAuFF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,EAAE,SAAoB,EAC3B,OAAO,EACP,KAAK,EACL,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,kBAAkB,+BAkLpB;AAED,eAAO,MAAM,QAAQ,0BAMpB,CAAC;AAEF,eAAO,MAAM,QAAQ,0BAMpB,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -13,5 +13,5 @@ export interface LinearGaugeProps extends React.ComponentProps<typeof Flex> {
|
|
|
13
13
|
hue?: "success" | "neutral" | "danger" | [number, number];
|
|
14
14
|
color?: string;
|
|
15
15
|
}
|
|
16
|
-
export declare const LinearGauge: ({ width, height, line, value, labels, hue, color, ...flex }: LinearGaugeProps) =>
|
|
16
|
+
export declare const LinearGauge: ({ width, height, line, value, labels, hue, color, ...flex }: LinearGaugeProps) => React.JSX.Element;
|
|
17
17
|
//# sourceMappingURL=LinearGauge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearGauge.d.ts","sourceRoot":"","sources":["../../../src/modules/data/LinearGauge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAU,IAAI,EAAa,MAAM,QAAQ,CAAC;AAGjD,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC;IAC1C,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,eAAO,MAAM,WAAW,GAAI,6DASzB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"LinearGauge.d.ts","sourceRoot":"","sources":["../../../src/modules/data/LinearGauge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAU,IAAI,EAAa,MAAM,QAAQ,CAAC;AAGjD,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC;IAC1C,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,eAAO,MAAM,WAAW,GAAI,6DASzB,gBAAgB,sBA0GlB,CAAC"}
|
|
@@ -20,5 +20,5 @@ export interface RadialGaugeProps extends Omit<React.ComponentProps<typeof Colum
|
|
|
20
20
|
hue?: "success" | "neutral" | "danger" | [number, number];
|
|
21
21
|
color?: string;
|
|
22
22
|
}
|
|
23
|
-
export declare const RadialGauge: ({ width, height, line, value, angle, direction, edgePad, unit, children, hue, color, ...flex }: RadialGaugeProps) =>
|
|
23
|
+
export declare const RadialGauge: ({ width, height, line, value, angle, direction, edgePad, unit, children, hue, color, ...flex }: RadialGaugeProps) => React.JSX.Element;
|
|
24
24
|
//# sourceMappingURL=RadialGauge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadialGauge.d.ts","sourceRoot":"","sources":["../../../src/modules/data/RadialGauge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAG/C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,eAAO,MAAM,WAAW,GAAI,gGAgBzB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"RadialGauge.d.ts","sourceRoot":"","sources":["../../../src/modules/data/RadialGauge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAG/C,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,eAAO,MAAM,WAAW,GAAI,gGAgBzB,gBAAgB,sBAoHlB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
export interface SchemaProps {
|
|
2
3
|
as: "website" | "article" | "blogPosting" | "techArticle" | "webPage" | "organization";
|
|
3
4
|
title: string;
|
|
@@ -14,6 +15,6 @@ export interface SchemaProps {
|
|
|
14
15
|
image?: string;
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
export declare function Schema({ as, title, description, baseURL, path, datePublished, dateModified, image, sameAs, author, }: SchemaProps):
|
|
18
|
+
export declare function Schema({ as, title, description, baseURL, path, datePublished, dateModified, image, sameAs, author, }: SchemaProps): React.JSX.Element;
|
|
18
19
|
export default Schema;
|
|
19
20
|
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/modules/seo/Schema.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/modules/seo/Schema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,cAAc,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAWD,wBAAgB,MAAM,CAAC,EACrB,EAAE,EACF,KAAK,EACL,WAAW,EACX,OAAO,EACP,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,KAAK,EACL,MAAW,EACX,MAAM,GACP,EAAE,WAAW,qBA+Db;AAED,eAAe,MAAM,CAAC"}
|
package/dist/package.json
CHANGED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Scaffold agent harness pointers in a consumer project.
|
|
4
|
+
* Usage: npx once-ui-init-agent [--force] [--dry-run]
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
const path = require("path");
|
|
9
|
+
|
|
10
|
+
const PACKAGE_ROOT = path.join(__dirname, "..");
|
|
11
|
+
const MARKER_START = "<!-- once-ui-agent-harness:start -->";
|
|
12
|
+
const MARKER_END = "<!-- once-ui-agent-harness:end -->";
|
|
13
|
+
|
|
14
|
+
const PROJECT_AGENTS_SECTION = `${MARKER_START}
|
|
15
|
+
## Once UI codegen harness
|
|
16
|
+
|
|
17
|
+
Before generating Once UI code, load the harness from your installed package (not full doc pages):
|
|
18
|
+
|
|
19
|
+
1. Read \`node_modules/@once-ui-system/core/ai/manifest.json\`
|
|
20
|
+
2. Load bootstrap: \`ai/rules.compact.md\` + \`ai/catalog.json\`
|
|
21
|
+
3. Match intent via \`ai/tasks/index.json\` → fetch task bundle + component slices
|
|
22
|
+
4. Validate: \`npx once-ui-validate-ai-code path/to/file.tsx\`
|
|
23
|
+
|
|
24
|
+
npm exports: \`@once-ui-system/core/ai/manifest.json\`
|
|
25
|
+
|
|
26
|
+
Remote fallback: https://docs.once-ui.com/ai/manifest.json
|
|
27
|
+
${MARKER_END}
|
|
28
|
+
`;
|
|
29
|
+
|
|
30
|
+
function parseArgs(argv) {
|
|
31
|
+
return {
|
|
32
|
+
force: argv.includes("--force"),
|
|
33
|
+
dryRun: argv.includes("--dry-run"),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function findProjectRoot(startDir = process.cwd()) {
|
|
38
|
+
let dir = path.resolve(startDir);
|
|
39
|
+
|
|
40
|
+
while (true) {
|
|
41
|
+
const pkgPath = path.join(dir, "package.json");
|
|
42
|
+
if (fs.existsSync(pkgPath)) {
|
|
43
|
+
try {
|
|
44
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
45
|
+
if (pkg.name !== "@once-ui-system/core") {
|
|
46
|
+
return dir;
|
|
47
|
+
}
|
|
48
|
+
} catch {
|
|
49
|
+
// keep walking
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const parent = path.dirname(dir);
|
|
54
|
+
if (parent === dir) {
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
dir = parent;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return path.resolve(startDir);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function upsertMarkedSection(existing, section, force) {
|
|
64
|
+
if (existing.includes(MARKER_START) && existing.includes(MARKER_END)) {
|
|
65
|
+
if (!force) {
|
|
66
|
+
return { content: existing, changed: false, reason: "AGENTS.md already contains Once UI harness section" };
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const start = existing.indexOf(MARKER_START);
|
|
70
|
+
const end = existing.indexOf(MARKER_END) + MARKER_END.length;
|
|
71
|
+
return {
|
|
72
|
+
content: `${existing.slice(0, start)}${section}${existing.slice(end)}`,
|
|
73
|
+
changed: true,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (existing.trim().length === 0) {
|
|
78
|
+
return {
|
|
79
|
+
content: `# AGENTS.md\n\n${section}\n`,
|
|
80
|
+
changed: true,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
content: `${existing.trimEnd()}\n\n${section}\n`,
|
|
86
|
+
changed: true,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function writeFile(root, relativePath, content, { dryRun, force }) {
|
|
91
|
+
const target = path.join(root, relativePath);
|
|
92
|
+
const exists = fs.existsSync(target);
|
|
93
|
+
|
|
94
|
+
if (exists && !force) {
|
|
95
|
+
const current = fs.readFileSync(target, "utf8");
|
|
96
|
+
if (current === content) {
|
|
97
|
+
return { path: target, status: "unchanged" };
|
|
98
|
+
}
|
|
99
|
+
return { path: target, status: "skipped", reason: "already exists (use --force)" };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (dryRun) {
|
|
103
|
+
return { path: target, status: "would-write" };
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
107
|
+
fs.writeFileSync(target, content, "utf8");
|
|
108
|
+
return { path: target, status: exists ? "updated" : "created" };
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function main() {
|
|
112
|
+
const options = parseArgs(process.argv.slice(2));
|
|
113
|
+
const projectRoot = findProjectRoot();
|
|
114
|
+
const cursorRuleTemplate = fs.readFileSync(
|
|
115
|
+
path.join(PACKAGE_ROOT, "agent", "once-ui-codegen.mdc"),
|
|
116
|
+
"utf8",
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
const agentsPath = path.join(projectRoot, "AGENTS.md");
|
|
120
|
+
let agentsContent = "";
|
|
121
|
+
if (fs.existsSync(agentsPath)) {
|
|
122
|
+
agentsContent = fs.readFileSync(agentsPath, "utf8");
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const agentsResult = upsertMarkedSection(agentsContent, PROJECT_AGENTS_SECTION, options.force);
|
|
126
|
+
const results = [];
|
|
127
|
+
|
|
128
|
+
if (agentsResult.changed) {
|
|
129
|
+
results.push(
|
|
130
|
+
writeFile(projectRoot, "AGENTS.md", agentsResult.content, options),
|
|
131
|
+
);
|
|
132
|
+
} else {
|
|
133
|
+
results.push({
|
|
134
|
+
path: agentsPath,
|
|
135
|
+
status: "unchanged",
|
|
136
|
+
reason: agentsResult.reason,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
results.push(
|
|
141
|
+
writeFile(projectRoot, ".cursor/rules/once-ui-codegen.mdc", cursorRuleTemplate, options),
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
console.log(`Once UI agent harness setup (${options.dryRun ? "dry run" : "applied"})`);
|
|
145
|
+
console.log(`Project root: ${projectRoot}`);
|
|
146
|
+
for (const result of results) {
|
|
147
|
+
const suffix = result.reason ? ` (${result.reason})` : "";
|
|
148
|
+
console.log(`- ${result.status}: ${path.relative(projectRoot, result.path)}${suffix}`);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (!options.dryRun) {
|
|
152
|
+
console.log("\nNext: open a .tsx file and ask your agent to build Once UI — it should load the harness from node_modules/@once-ui-system/core/ai/");
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
main();
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Mechanical Once UI codegen validator.
|
|
4
|
+
* Usage: node scripts/validate-ai-code.js <file.tsx> [--fix]
|
|
5
|
+
* node scripts/validate-ai-code.js --stdin < file.tsx
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require("fs");
|
|
9
|
+
const path = require("path");
|
|
10
|
+
|
|
11
|
+
const ROOT = path.join(__dirname, "..");
|
|
12
|
+
const SPEC_PATH = path.join(ROOT, "ai", "spec.json");
|
|
13
|
+
|
|
14
|
+
function loadSpec() {
|
|
15
|
+
if (!fs.existsSync(SPEC_PATH)) return { components: {}, tokens: {} };
|
|
16
|
+
return JSON.parse(fs.readFileSync(SPEC_PATH, "utf8"));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function parseIconNames(spec) {
|
|
20
|
+
const raw = spec.tokens?.IconName || "";
|
|
21
|
+
const matches = raw.match(/"([^"]+)"/g) || [];
|
|
22
|
+
return new Set(matches.map((m) => m.slice(1, -1)));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function readInput(argv) {
|
|
26
|
+
const fileArg = argv.find((a) => !a.startsWith("-"));
|
|
27
|
+
if (argv.includes("--stdin")) {
|
|
28
|
+
return { source: fs.readFileSync(0, "utf8"), file: "<stdin>" };
|
|
29
|
+
}
|
|
30
|
+
if (!fileArg) {
|
|
31
|
+
console.error("Usage: validate-ai-code.js <file.tsx> [--fix] | --stdin");
|
|
32
|
+
process.exit(2);
|
|
33
|
+
}
|
|
34
|
+
return { source: fs.readFileSync(fileArg, "utf8"), file: fileArg };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function validate(source, spec, iconNames) {
|
|
38
|
+
const issues = [];
|
|
39
|
+
|
|
40
|
+
const add = (rule, message, fix) => issues.push({ rule, message, fix });
|
|
41
|
+
|
|
42
|
+
if (/fillWidth[\s\S]{0,80}fillHeight|<Flex[^>]*direction="column"|<Flex[^>]*direction="row"/.test(source)) {
|
|
43
|
+
if (/fillWidth[\s\S]{0,120}fillHeight/.test(source)) {
|
|
44
|
+
add("layout.shorthands", "Use fill instead of fillWidth + fillHeight", "fill");
|
|
45
|
+
}
|
|
46
|
+
if (/<Flex[^>]*direction="column"/.test(source)) {
|
|
47
|
+
add("layout.shorthands", "Use Column instead of Flex direction=\"column\"", "Column");
|
|
48
|
+
}
|
|
49
|
+
if (/<Flex[^>]*direction="row"/.test(source)) {
|
|
50
|
+
add("layout.shorthands", "Use Row instead of Flex direction=\"row\"", "Row");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (/horizontal="center"[\s\S]{0,80}vertical="center"/.test(source)) {
|
|
55
|
+
add("layout.shorthands", "Use center instead of horizontal=\"center\" vertical=\"center\"", "center");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (/position="relative"/.test(source)) {
|
|
59
|
+
add("layout.defaults", "position=\"relative\" is the default — omit it");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (/<Button[^>]*variant="primary"/.test(source)) {
|
|
63
|
+
add("layout.defaults", "variant=\"primary\" is the Button default — omit it");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (/#[0-9a-fA-F]{3,8}\b|rgb\s*\(|rgba\s*\(/.test(source)) {
|
|
67
|
+
add("color.tokens", "Use semantic color tokens, not hex/rgb");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (/<img[\s>/]|<a[\s>/]|<button[\s>/]/.test(source)) {
|
|
71
|
+
add("components.primitives", "Use Once UI components (Media, SmartLink, Button) instead of raw HTML");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const cardMatches = source.match(/<Card\b[^>]*>/g) || [];
|
|
75
|
+
for (const tag of cardMatches) {
|
|
76
|
+
if (!/\b(href|onClick)=/.test(tag)) {
|
|
77
|
+
add("Card.interactive", "Card without href/onClick — use Column + surface recipe for static panels");
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const iconPropRe = /(?:prefixIcon|suffixIcon|name)=["']([^"']+)["']/g;
|
|
83
|
+
let iconMatch;
|
|
84
|
+
while ((iconMatch = iconPropRe.exec(source)) !== null) {
|
|
85
|
+
const name = iconMatch[1];
|
|
86
|
+
if (iconNames.size && !iconNames.has(name)) {
|
|
87
|
+
add("Icon.names", `Unknown icon name "${name}" — use IconName from spec.json`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (/delay=\{[^}]*\*\s*80/.test(source)) {
|
|
92
|
+
add("RevealFx.delay", "RevealFx delay is in seconds — use index * 0.1, not index * 80");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (/<Fade[^>]*>[\s\S]*<(Column|Row)[^>]*overflowY/.test(source)) {
|
|
96
|
+
add("Fade.edge", "Fade wrapping scroll content — use as absolute edge strip instead");
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (/style=\{\{[^}]*(gap|padding|margin|color|background):/.test(source)) {
|
|
100
|
+
add("spacing.tokens", "Use token props (gap, padding, background) instead of style={{}}");
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return issues;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function applyFixes(source, issues) {
|
|
107
|
+
let out = source;
|
|
108
|
+
for (const issue of issues) {
|
|
109
|
+
if (issue.fix === "fill") {
|
|
110
|
+
out = out.replace(/\bfillWidth\b\s*\n?\s*\bfillHeight\b/g, "fill");
|
|
111
|
+
}
|
|
112
|
+
if (issue.fix === "center") {
|
|
113
|
+
out = out.replace(/\bhorizontal="center"\s*\n?\s*vertical="center"/g, "center");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function main() {
|
|
120
|
+
const spec = loadSpec();
|
|
121
|
+
const iconNames = parseIconNames(spec);
|
|
122
|
+
const fix = process.argv.includes("--fix");
|
|
123
|
+
const { source, file } = readInput(process.argv.slice(2));
|
|
124
|
+
|
|
125
|
+
const issues = validate(source, spec, iconNames);
|
|
126
|
+
|
|
127
|
+
if (issues.length === 0) {
|
|
128
|
+
console.log(`✓ ${file}: no mechanical issues`);
|
|
129
|
+
process.exit(0);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
console.log(`✗ ${file}: ${issues.length} issue(s)`);
|
|
133
|
+
for (const issue of issues) {
|
|
134
|
+
console.log(` [${issue.rule}] ${issue.message}`);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (fix) {
|
|
138
|
+
const fixed = applyFixes(source, issues);
|
|
139
|
+
if (fixed !== source && !process.argv.includes("--stdin")) {
|
|
140
|
+
const fileArg = process.argv.find((a) => a.endsWith(".tsx") || a.endsWith(".jsx"));
|
|
141
|
+
fs.writeFileSync(fileArg, fixed);
|
|
142
|
+
console.log(`Applied auto-fixes to ${fileArg}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
main();
|
package/package.json
CHANGED
|
@@ -1,173 +1,171 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@once-ui-system/core",
|
|
3
|
-
"version": "1.8.
|
|
4
|
-
"description": "Once UI for Next.js NPM package",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"once-ui",
|
|
7
|
-
"react",
|
|
8
|
-
"nextjs",
|
|
9
|
-
"scss",
|
|
10
|
-
"design system",
|
|
11
|
-
"design framework",
|
|
12
|
-
"nextjs design system",
|
|
13
|
-
"ai",
|
|
14
|
-
"agent",
|
|
15
|
-
"codegen"
|
|
16
|
-
],
|
|
17
|
-
"author": "Once UI",
|
|
18
|
-
"license": "MIT",
|
|
19
|
-
"repository": {
|
|
20
|
-
"type": "git",
|
|
21
|
-
"url": "https://github.com/once-ui-system/core.git",
|
|
22
|
-
"directory": "packages/core"
|
|
23
|
-
},
|
|
24
|
-
"bugs": {
|
|
25
|
-
"url": "https://github.com/once-ui-system/core/issues"
|
|
26
|
-
},
|
|
27
|
-
"homepage": "https://docs.once-ui.com",
|
|
28
|
-
"onceUi": {
|
|
29
|
-
"harness": "./ai/manifest.json",
|
|
30
|
-
"bootstrap": [
|
|
31
|
-
"./ai/rules.compact.md",
|
|
32
|
-
"./ai/catalog.json"
|
|
33
|
-
],
|
|
34
|
-
"tasks": "./ai/tasks/index.json",
|
|
35
|
-
"validate": "./scripts/validate-ai-code.js",
|
|
36
|
-
"initAgent": "./scripts/init-agent.js",
|
|
37
|
-
"docs": "https://docs.once-ui.com/once-ui/ai-coding"
|
|
38
|
-
},
|
|
39
|
-
"bin": {
|
|
40
|
-
"once-ui-init-agent": "./scripts/init-agent.js",
|
|
41
|
-
"once-ui-validate-ai-code": "./scripts/validate-ai-code.js"
|
|
42
|
-
},
|
|
43
|
-
"main": "dist/index.js",
|
|
44
|
-
"exports": {
|
|
45
|
-
".": {
|
|
46
|
-
"types": "./dist/index.d.ts",
|
|
47
|
-
"import": "./dist/index.js",
|
|
48
|
-
"require": "./dist/index.js"
|
|
49
|
-
},
|
|
50
|
-
"./components": {
|
|
51
|
-
"types": "./dist/components/index.d.ts",
|
|
52
|
-
"import": "./dist/components/index.js",
|
|
53
|
-
"require": "./dist/components/index.js"
|
|
54
|
-
},
|
|
55
|
-
"./components/*": {
|
|
56
|
-
"types": "./dist/components/*.d.ts",
|
|
57
|
-
"import": "./dist/components/*.js",
|
|
58
|
-
"require": "./dist/components/*.js"
|
|
59
|
-
},
|
|
60
|
-
"./contexts": {
|
|
61
|
-
"types": "./dist/contexts/index.d.ts",
|
|
62
|
-
"import": "./dist/contexts/index.js",
|
|
63
|
-
"require": "./dist/contexts/index.js"
|
|
64
|
-
},
|
|
65
|
-
"./modules": {
|
|
66
|
-
"types": "./dist/modules/index.d.ts",
|
|
67
|
-
"import": "./dist/modules/index.js",
|
|
68
|
-
"require": "./dist/modules/index.js"
|
|
69
|
-
},
|
|
70
|
-
"./icons": {
|
|
71
|
-
"types": "./dist/icons.d.ts",
|
|
72
|
-
"import": "./dist/icons.js",
|
|
73
|
-
"require": "./dist/icons.js"
|
|
74
|
-
},
|
|
75
|
-
"./types": {
|
|
76
|
-
"types": "./dist/types.d.ts",
|
|
77
|
-
"import": "./dist/types.js",
|
|
78
|
-
"require": "./dist/types.js"
|
|
79
|
-
},
|
|
80
|
-
"./interfaces": {
|
|
81
|
-
"types": "./dist/interfaces.d.ts",
|
|
82
|
-
"import": "./dist/interfaces.js",
|
|
83
|
-
"require": "./dist/interfaces.js"
|
|
84
|
-
},
|
|
85
|
-
"./css/styles.css": "./dist/css/styles.css",
|
|
86
|
-
"./css/tokens.css": "./dist/css/tokens.css",
|
|
87
|
-
"./utils": {
|
|
88
|
-
"types": "./dist/utils/index.d.ts",
|
|
89
|
-
"import": "./dist/utils/index.js",
|
|
90
|
-
"require": "./dist/utils/index.js"
|
|
91
|
-
},
|
|
92
|
-
"./hooks": {
|
|
93
|
-
"types": "./dist/hooks/index.d.ts",
|
|
94
|
-
"import": "./dist/hooks/index.js",
|
|
95
|
-
"require": "./dist/hooks/index.js"
|
|
96
|
-
},
|
|
97
|
-
"./server": {
|
|
98
|
-
"types": "./dist/server/index.d.ts",
|
|
99
|
-
"import": "./dist/server/index.js",
|
|
100
|
-
"require": "./dist/server/index.js"
|
|
101
|
-
},
|
|
102
|
-
"./ai/manifest.json": "./ai/manifest.json",
|
|
103
|
-
"./ai/spec.json": "./ai/spec.json",
|
|
104
|
-
"./ai/catalog.json": "./ai/catalog.json",
|
|
105
|
-
"./ai/gotchas.json": "./ai/gotchas.json",
|
|
106
|
-
"./ai/rules.compact.md": "./ai/rules.compact.md",
|
|
107
|
-
"./ai/rules.md": "./ai/rules.md",
|
|
108
|
-
"./ai/recipes.md": "./ai/recipes.md",
|
|
109
|
-
"./ai/tasks/*": "./ai/tasks/*",
|
|
110
|
-
"./ai/components/*": "./ai/components/*",
|
|
111
|
-
"./ai/examples/*": "./ai/examples/*",
|
|
112
|
-
"./ai/examples/blocks/*": "./ai/examples/blocks/*",
|
|
113
|
-
"./AGENTS.md": "./AGENTS.md"
|
|
114
|
-
},
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
"
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
"
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
},
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@once-ui-system/core",
|
|
3
|
+
"version": "1.8.4",
|
|
4
|
+
"description": "Once UI for Next.js NPM package",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"once-ui",
|
|
7
|
+
"react",
|
|
8
|
+
"nextjs",
|
|
9
|
+
"scss",
|
|
10
|
+
"design system",
|
|
11
|
+
"design framework",
|
|
12
|
+
"nextjs design system",
|
|
13
|
+
"ai",
|
|
14
|
+
"agent",
|
|
15
|
+
"codegen"
|
|
16
|
+
],
|
|
17
|
+
"author": "Once UI",
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/once-ui-system/core.git",
|
|
22
|
+
"directory": "packages/core"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/once-ui-system/core/issues"
|
|
26
|
+
},
|
|
27
|
+
"homepage": "https://docs.once-ui.com",
|
|
28
|
+
"onceUi": {
|
|
29
|
+
"harness": "./ai/manifest.json",
|
|
30
|
+
"bootstrap": [
|
|
31
|
+
"./ai/rules.compact.md",
|
|
32
|
+
"./ai/catalog.json"
|
|
33
|
+
],
|
|
34
|
+
"tasks": "./ai/tasks/index.json",
|
|
35
|
+
"validate": "./scripts/validate-ai-code.js",
|
|
36
|
+
"initAgent": "./scripts/init-agent.js",
|
|
37
|
+
"docs": "https://docs.once-ui.com/once-ui/ai-coding"
|
|
38
|
+
},
|
|
39
|
+
"bin": {
|
|
40
|
+
"once-ui-init-agent": "./scripts/init-agent.js",
|
|
41
|
+
"once-ui-validate-ai-code": "./scripts/validate-ai-code.js"
|
|
42
|
+
},
|
|
43
|
+
"main": "dist/index.js",
|
|
44
|
+
"exports": {
|
|
45
|
+
".": {
|
|
46
|
+
"types": "./dist/index.d.ts",
|
|
47
|
+
"import": "./dist/index.js",
|
|
48
|
+
"require": "./dist/index.js"
|
|
49
|
+
},
|
|
50
|
+
"./components": {
|
|
51
|
+
"types": "./dist/components/index.d.ts",
|
|
52
|
+
"import": "./dist/components/index.js",
|
|
53
|
+
"require": "./dist/components/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./components/*": {
|
|
56
|
+
"types": "./dist/components/*.d.ts",
|
|
57
|
+
"import": "./dist/components/*.js",
|
|
58
|
+
"require": "./dist/components/*.js"
|
|
59
|
+
},
|
|
60
|
+
"./contexts": {
|
|
61
|
+
"types": "./dist/contexts/index.d.ts",
|
|
62
|
+
"import": "./dist/contexts/index.js",
|
|
63
|
+
"require": "./dist/contexts/index.js"
|
|
64
|
+
},
|
|
65
|
+
"./modules": {
|
|
66
|
+
"types": "./dist/modules/index.d.ts",
|
|
67
|
+
"import": "./dist/modules/index.js",
|
|
68
|
+
"require": "./dist/modules/index.js"
|
|
69
|
+
},
|
|
70
|
+
"./icons": {
|
|
71
|
+
"types": "./dist/icons.d.ts",
|
|
72
|
+
"import": "./dist/icons.js",
|
|
73
|
+
"require": "./dist/icons.js"
|
|
74
|
+
},
|
|
75
|
+
"./types": {
|
|
76
|
+
"types": "./dist/types.d.ts",
|
|
77
|
+
"import": "./dist/types.js",
|
|
78
|
+
"require": "./dist/types.js"
|
|
79
|
+
},
|
|
80
|
+
"./interfaces": {
|
|
81
|
+
"types": "./dist/interfaces.d.ts",
|
|
82
|
+
"import": "./dist/interfaces.js",
|
|
83
|
+
"require": "./dist/interfaces.js"
|
|
84
|
+
},
|
|
85
|
+
"./css/styles.css": "./dist/css/styles.css",
|
|
86
|
+
"./css/tokens.css": "./dist/css/tokens.css",
|
|
87
|
+
"./utils": {
|
|
88
|
+
"types": "./dist/utils/index.d.ts",
|
|
89
|
+
"import": "./dist/utils/index.js",
|
|
90
|
+
"require": "./dist/utils/index.js"
|
|
91
|
+
},
|
|
92
|
+
"./hooks": {
|
|
93
|
+
"types": "./dist/hooks/index.d.ts",
|
|
94
|
+
"import": "./dist/hooks/index.js",
|
|
95
|
+
"require": "./dist/hooks/index.js"
|
|
96
|
+
},
|
|
97
|
+
"./server": {
|
|
98
|
+
"types": "./dist/server/index.d.ts",
|
|
99
|
+
"import": "./dist/server/index.js",
|
|
100
|
+
"require": "./dist/server/index.js"
|
|
101
|
+
},
|
|
102
|
+
"./ai/manifest.json": "./ai/manifest.json",
|
|
103
|
+
"./ai/spec.json": "./ai/spec.json",
|
|
104
|
+
"./ai/catalog.json": "./ai/catalog.json",
|
|
105
|
+
"./ai/gotchas.json": "./ai/gotchas.json",
|
|
106
|
+
"./ai/rules.compact.md": "./ai/rules.compact.md",
|
|
107
|
+
"./ai/rules.md": "./ai/rules.md",
|
|
108
|
+
"./ai/recipes.md": "./ai/recipes.md",
|
|
109
|
+
"./ai/tasks/*": "./ai/tasks/*",
|
|
110
|
+
"./ai/components/*": "./ai/components/*",
|
|
111
|
+
"./ai/examples/*": "./ai/examples/*",
|
|
112
|
+
"./ai/examples/blocks/*": "./ai/examples/blocks/*",
|
|
113
|
+
"./AGENTS.md": "./AGENTS.md"
|
|
114
|
+
},
|
|
115
|
+
"dependencies": {
|
|
116
|
+
"@floating-ui/react-dom": "^2.1.9",
|
|
117
|
+
"clsx": "^2.1.1",
|
|
118
|
+
"compressorjs": "^1.3.0",
|
|
119
|
+
"date-fns": "^4.4.0",
|
|
120
|
+
"prismjs": "^1.30.0",
|
|
121
|
+
"react-icons": "^5.7.0",
|
|
122
|
+
"recharts": "^3.10.1"
|
|
123
|
+
},
|
|
124
|
+
"peerDependencies": {
|
|
125
|
+
"next": ">=15.5",
|
|
126
|
+
"react": ">=18",
|
|
127
|
+
"react-dom": ">=18",
|
|
128
|
+
"sass": "^1.77.6",
|
|
129
|
+
"sharp": "^0.33.4 || ^0.34 || ^0.35"
|
|
130
|
+
},
|
|
131
|
+
"peerDependenciesMeta": {
|
|
132
|
+
"sharp": {
|
|
133
|
+
"optional": true
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"devDependencies": {
|
|
137
|
+
"@biomejs/biome": "2.5.6",
|
|
138
|
+
"@testing-library/jest-dom": "^7.0.0",
|
|
139
|
+
"@testing-library/react": "^16.3.2",
|
|
140
|
+
"@testing-library/user-event": "^14.6.1",
|
|
141
|
+
"@types/node": "26.1.2",
|
|
142
|
+
"@types/react": "19.2.17",
|
|
143
|
+
"@types/react-dom": "19.2.3",
|
|
144
|
+
"@vitest/ui": "^4.1.10",
|
|
145
|
+
"jsdom": "^30.0.0",
|
|
146
|
+
"rimraf": "^6.1.3",
|
|
147
|
+
"typescript": "6.0.3",
|
|
148
|
+
"vitest": "^4.1.10"
|
|
149
|
+
},
|
|
150
|
+
"overrides": {
|
|
151
|
+
"@types/react": "19.2.17",
|
|
152
|
+
"@types/react-dom": "19.2.3"
|
|
153
|
+
},
|
|
154
|
+
"scripts": {
|
|
155
|
+
"build": "pnpm clean && pnpm generate-emoji-data && pnpm generate-ai-spec && tsc --project tsconfig.build.json && pnpm copy-files && pnpm build:css",
|
|
156
|
+
"build:css": "sass src/styles/index.scss:dist/css/styles.css src/tokens/index.scss:dist/css/tokens.css --style=compressed",
|
|
157
|
+
"copy-files": "node scripts/copy-files.js",
|
|
158
|
+
"clean": "rimraf dist",
|
|
159
|
+
"lint": "biome check .",
|
|
160
|
+
"format": "biome format --write .",
|
|
161
|
+
"format:check": "biome format .",
|
|
162
|
+
"test": "vitest run",
|
|
163
|
+
"test:watch": "vitest",
|
|
164
|
+
"typecheck": "tsc --noEmit",
|
|
165
|
+
"dev": "tsc --watch --preserveWatchOutput",
|
|
166
|
+
"generate-emoji-data": "node scripts/generate-emoji-data.js",
|
|
167
|
+
"generate-ai-spec": "node scripts/generate-ai-spec.js",
|
|
168
|
+
"init-agent": "node scripts/init-agent.js",
|
|
169
|
+
"validate-ai-code": "node scripts/validate-ai-code.js"
|
|
170
|
+
}
|
|
171
|
+
}
|
package/scripts/init-agent.js
CHANGED
|
File without changes
|
|
File without changes
|