@wallarm-org/design-system 4.4.0-rc-feat-claude-design.1 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -13
- package/dist/components/Calendar/CalendarContent.js +1 -2
- package/dist/components/CodeSnippet/adapters/createShikiHighlighter.d.ts +1 -0
- package/dist/components/CodeSnippet/adapters/createShikiHighlighter.js +52 -0
- package/dist/components/CodeSnippet/adapters/index.d.ts +3 -18
- package/dist/components/CodeSnippet/adapters/index.js +3 -13
- package/dist/components/CodeSnippet/adapters/loadHighlightJsAdapter.d.ts +2 -0
- package/dist/components/CodeSnippet/adapters/loadHighlightJsAdapter.js +5 -0
- package/dist/components/CodeSnippet/adapters/loadPrismAdapter.d.ts +2 -0
- package/dist/components/CodeSnippet/adapters/loadPrismAdapter.js +5 -0
- package/dist/components/CodeSnippet/adapters/loadShikiAdapter.d.ts +2 -0
- package/dist/components/CodeSnippet/adapters/loadShikiAdapter.js +5 -0
- package/dist/components/CodeSnippet/adapters/shiki.js +1 -8
- package/dist/components/Drawer/DrawerPortal.d.ts +1 -1
- package/dist/components/Drawer/DrawerPortal.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.js +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContent.js +1 -1
- package/dist/components/FeedbackPulse/FeedbackPulse.js +1 -1
- package/dist/components/FilterCascade/FilterCascadeContent.js +1 -1
- package/dist/components/Popover/PopoverContent.js +1 -1
- package/dist/components/SearchModal/SearchModalContent.js +1 -1
- package/dist/components/Select/SelectPositioner.js +1 -1
- package/dist/components/Selection/SelectionBulkBar/SelectionBulkBar.js +1 -1
- package/dist/components/Table/TableActionBar/TableActionBar.js +1 -1
- package/dist/components/Table/TableInner/TableInnerWindow.js +1 -1
- package/dist/components/Toast/Toaster.js +1 -1
- package/dist/components/Tooltip/TooltipContent.js +1 -1
- package/dist/components/Tour/TourInner.js +1 -2
- package/dist/components/WallyAssistant/WallyAssistant.js +1 -1
- package/dist/components/WallyAssistant/views/ChatViewProvider.js +1 -1
- package/dist/components/WallySkeleton/WallySkeleton.d.ts +11 -0
- package/dist/components/WallySkeleton/WallySkeleton.js +186 -0
- package/dist/components/WallySkeleton/index.d.ts +1 -0
- package/dist/components/WallySkeleton/index.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/metadata/components.json +310 -5
- package/package.json +4 -12
- package/dist/lib/portal/Portal.d.ts +0 -3
- package/dist/lib/portal/Portal.js +0 -22
- package/dist/lib/portal/PortalContainerContext.d.ts +0 -3
- package/dist/lib/portal/PortalContainerContext.js +0 -3
package/README.md
CHANGED
|
@@ -115,19 +115,6 @@ pnpm --filter @wallarm-org/design-system icons:sync --only Bell,BellOff # ref
|
|
|
115
115
|
|
|
116
116
|
The command writes the component files, `src/icons/index.ts`, the gallery category (`module/const.ts`) and Code Connect (`module/Icons.figma.batch.json` + its `Icons.figma.batch.ts` template). `scripts/icons/manifest.json` maps Figma nodes to component names, and also holds excluded nodes and the `keep` list of hand-maintained icons. When a new layer's name collides with an existing icon, map it there. Brand icons without a Neutral variant in Figma get a generated `*Neutral` twin. Commit with `[update-screenshots]` so CI refreshes the icon gallery baselines.
|
|
117
117
|
|
|
118
|
-
## Claude Design
|
|
119
|
-
|
|
120
|
-
Choose **Wallarm Design System** in Claude Design to prototype with the generated component
|
|
121
|
-
bundle, tokens, fonts and icons. See the [designer guide](../../apps/docs/docs/ai/claude-design.mdx).
|
|
122
|
-
Run `pnpm --filter @wallarm-org/design-system build:claude-design` to build the package and
|
|
123
|
-
generate the ignored `.claude-design/project/` folder. The bundle and story previews share
|
|
124
|
-
an Rslib IIFE configuration with the native SWC React Compiler targeting React 18.
|
|
125
|
-
Run `pnpm --filter @wallarm-org/design-system test:claude-design` for the React 18 harness and
|
|
126
|
-
producer checks, or `pnpm --filter @wallarm-org/design-system claude-design:verify` to compare
|
|
127
|
-
every output file across two consecutive builds. The repository's `/claude-design-sync`
|
|
128
|
-
skill previews and manually publishes release changes; the first sync and remote deletions
|
|
129
|
-
require confirmation. The npm package remains React 19; the separate canvas bundle uses React 18.
|
|
130
|
-
|
|
131
118
|
## 📖 Resources
|
|
132
119
|
|
|
133
120
|
- [Docs site](https://wallarm.github.io/design-system/) - Guides and component docs
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
|
-
import { DatePicker } from "@ark-ui/react";
|
|
4
|
-
import { Portal } from "../../lib/portal/Portal.js";
|
|
3
|
+
import { DatePicker, Portal } from "@ark-ui/react";
|
|
5
4
|
import { cn } from "../../utils/cn.js";
|
|
6
5
|
import { useLayerZIndexRef } from "../../utils/syncLayerZIndex.js";
|
|
7
6
|
const CalendarContent = (t0)=>{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createShikiHighlighter: () => Promise<import("@shikijs/types").HighlighterCore>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createHighlighterCore } from "shiki/core";
|
|
2
|
+
import { createOnigurumaEngine } from "shiki/engine/oniguruma";
|
|
3
|
+
import bash from "shiki/langs/bash.mjs";
|
|
4
|
+
import c from "shiki/langs/c.mjs";
|
|
5
|
+
import cpp from "shiki/langs/cpp.mjs";
|
|
6
|
+
import css from "shiki/langs/css.mjs";
|
|
7
|
+
import go from "shiki/langs/go.mjs";
|
|
8
|
+
import html from "shiki/langs/html.mjs";
|
|
9
|
+
import http from "shiki/langs/http.mjs";
|
|
10
|
+
import java from "shiki/langs/java.mjs";
|
|
11
|
+
import javascript from "shiki/langs/javascript.mjs";
|
|
12
|
+
import json from "shiki/langs/json.mjs";
|
|
13
|
+
import jsx from "shiki/langs/jsx.mjs";
|
|
14
|
+
import lua from "shiki/langs/lua.mjs";
|
|
15
|
+
import markdown from "shiki/langs/markdown.mjs";
|
|
16
|
+
import python from "shiki/langs/python.mjs";
|
|
17
|
+
import rust from "shiki/langs/rust.mjs";
|
|
18
|
+
import sql from "shiki/langs/sql.mjs";
|
|
19
|
+
import tsx from "shiki/langs/tsx.mjs";
|
|
20
|
+
import typescript from "shiki/langs/typescript.mjs";
|
|
21
|
+
import xml from "shiki/langs/xml.mjs";
|
|
22
|
+
import yaml from "shiki/langs/yaml.mjs";
|
|
23
|
+
import github_light from "shiki/themes/github-light.mjs";
|
|
24
|
+
const createShikiHighlighter = ()=>createHighlighterCore({
|
|
25
|
+
themes: [
|
|
26
|
+
github_light
|
|
27
|
+
],
|
|
28
|
+
langs: [
|
|
29
|
+
javascript,
|
|
30
|
+
typescript,
|
|
31
|
+
jsx,
|
|
32
|
+
tsx,
|
|
33
|
+
bash,
|
|
34
|
+
json,
|
|
35
|
+
html,
|
|
36
|
+
xml,
|
|
37
|
+
css,
|
|
38
|
+
python,
|
|
39
|
+
go,
|
|
40
|
+
sql,
|
|
41
|
+
yaml,
|
|
42
|
+
markdown,
|
|
43
|
+
lua,
|
|
44
|
+
rust,
|
|
45
|
+
java,
|
|
46
|
+
c,
|
|
47
|
+
cpp,
|
|
48
|
+
http
|
|
49
|
+
],
|
|
50
|
+
engine: createOnigurumaEngine(import("shiki/wasm"))
|
|
51
|
+
});
|
|
52
|
+
export { createShikiHighlighter };
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
+
export { loadHighlightJsAdapter } from './loadHighlightJsAdapter.js';
|
|
2
|
+
export { loadPrismAdapter } from './loadPrismAdapter.js';
|
|
3
|
+
export { loadShikiAdapter } from './loadShikiAdapter.js';
|
|
1
4
|
export { plainAdapter } from './plain.js';
|
|
2
5
|
export type { HighlightJsLanguage, HighlightResult, PlainLanguage, PrismLanguage, ShikiLanguage, SyntaxAdapter, Token, TokenType, } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Lazily load the Prism adapter for syntax highlighting.
|
|
5
|
-
* Lightweight, good for most use cases.
|
|
6
|
-
* Bundle size: ~15KB gzipped
|
|
7
|
-
*/
|
|
8
|
-
export declare const loadPrismAdapter: () => Promise<import("./types.js").SyntaxAdapter<import("./types.js").PrismLanguage>>;
|
|
9
|
-
/**
|
|
10
|
-
* Lazily load the Shiki adapter for syntax highlighting.
|
|
11
|
-
* High-quality highlighting with VS Code themes, supports more languages.
|
|
12
|
-
* Bundle size: ~200KB+ gzipped (includes WASM)
|
|
13
|
-
*/
|
|
14
|
-
export declare const loadShikiAdapter: () => Promise<import("./types.js").SyntaxAdapter<import("./types.js").ShikiLanguage>>;
|
|
15
|
-
/**
|
|
16
|
-
* Lazily load the highlight.js adapter for syntax highlighting.
|
|
17
|
-
* Well-established library, good language support.
|
|
18
|
-
* Bundle size: ~30KB gzipped (core + common languages)
|
|
19
|
-
*/
|
|
20
|
-
export declare const loadHighlightJsAdapter: () => Promise<import("./types.js").SyntaxAdapter<import("./types.js").HighlightJsLanguage>>;
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
const loadShikiAdapter = async ()=>{
|
|
6
|
-
const { shikiAdapter } = await import("./shiki.js");
|
|
7
|
-
return shikiAdapter;
|
|
8
|
-
};
|
|
9
|
-
const loadHighlightJsAdapter = async ()=>{
|
|
10
|
-
const { highlightJsAdapter } = await import("./highlightjs.js");
|
|
11
|
-
return highlightJsAdapter;
|
|
12
|
-
};
|
|
1
|
+
export { loadHighlightJsAdapter } from "./loadHighlightJsAdapter.js";
|
|
2
|
+
export { loadPrismAdapter } from "./loadPrismAdapter.js";
|
|
3
|
+
export { loadShikiAdapter } from "./loadShikiAdapter.js";
|
|
13
4
|
export { plainAdapter } from "./plain.js";
|
|
14
|
-
export { loadHighlightJsAdapter, loadPrismAdapter, loadShikiAdapter };
|
|
@@ -44,14 +44,7 @@ function mapScopeToTokenType(scopes) {
|
|
|
44
44
|
return 'plain';
|
|
45
45
|
}
|
|
46
46
|
async function getHighlighter() {
|
|
47
|
-
if (!highlighterPromise) highlighterPromise = import("
|
|
48
|
-
themes: [
|
|
49
|
-
'github-light'
|
|
50
|
-
],
|
|
51
|
-
langs: [
|
|
52
|
-
...SUPPORTED_LANGUAGES
|
|
53
|
-
]
|
|
54
|
-
}));
|
|
47
|
+
if (!highlighterPromise) highlighterPromise = import("./createShikiHighlighter.js").then(({ createShikiHighlighter })=>createShikiHighlighter());
|
|
55
48
|
return highlighterPromise;
|
|
56
49
|
}
|
|
57
50
|
const shikiAdapter = {
|
|
@@ -146,7 +146,7 @@ const DropdownMenu = (t0)=>{
|
|
|
146
146
|
const root = t8;
|
|
147
147
|
let t9;
|
|
148
148
|
if ($[36] !== root || $[37] !== testId) {
|
|
149
|
-
t9 = /*#__PURE__*/ jsx(DropdownMenuContext
|
|
149
|
+
t9 = /*#__PURE__*/ jsx(DropdownMenuContext, {
|
|
150
150
|
value: ctx,
|
|
151
151
|
children: /*#__PURE__*/ jsx(TestIdProvider, {
|
|
152
152
|
value: testId,
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Children, isValidElement } from "react";
|
|
4
4
|
import { Menu } from "@ark-ui/react/menu";
|
|
5
|
-
import { Portal } from "
|
|
5
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
6
6
|
import { cn } from "../../utils/cn.js";
|
|
7
7
|
import { useLayerZIndexRef } from "../../utils/syncLayerZIndex.js";
|
|
8
8
|
import { TestIdProvider, useTestId } from "../../utils/testId.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
4
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
4
5
|
import { Presence } from "@ark-ui/react/presence";
|
|
5
6
|
import { Check, X } from "../../icons/index.js";
|
|
6
|
-
import { Portal } from "../../lib/portal/Portal.js";
|
|
7
7
|
import { cn } from "../../utils/cn.js";
|
|
8
8
|
import { Button } from "../Button/index.js";
|
|
9
9
|
import { Textarea } from "../Textarea/index.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Children, isValidElement, useLayoutEffect, useRef } from "react";
|
|
4
|
-
import { Portal } from "
|
|
4
|
+
import { Portal } from "@zag-js/react";
|
|
5
5
|
import { cn } from "../../utils/cn.js";
|
|
6
6
|
import { useLayerZIndexRef } from "../../utils/syncLayerZIndex.js";
|
|
7
7
|
import { useTestId } from "../../utils/testId.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Popover, usePopoverContext } from "@ark-ui/react";
|
|
4
|
-
import { Portal } from "
|
|
4
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
5
5
|
import { cn } from "../../utils/cn.js";
|
|
6
6
|
import { useLayerZIndexRef } from "../../utils/syncLayerZIndex.js";
|
|
7
7
|
import { useTestId } from "../../utils/testId.js";
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { useEffect } from "react";
|
|
4
4
|
import { Dialog } from "@ark-ui/react/dialog";
|
|
5
|
-
import { Portal } from "
|
|
5
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
6
6
|
import { cn } from "../../utils/cn.js";
|
|
7
7
|
import { useTestId } from "../../utils/testId.js";
|
|
8
8
|
import { Overlay } from "../Overlay/index.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
3
4
|
import { Select } from "@ark-ui/react/select";
|
|
4
|
-
import { Portal } from "../../lib/portal/Portal.js";
|
|
5
5
|
import { cn } from "../../utils/cn.js";
|
|
6
6
|
import { useLayerZIndexRef } from "../../utils/syncLayerZIndex.js";
|
|
7
7
|
import { dropdownMenuClassNames } from "../DropdownMenu/index.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Children, isValidElement } from "react";
|
|
4
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
4
5
|
import { Presence } from "@ark-ui/react/presence";
|
|
5
|
-
import { Portal } from "../../../lib/portal/Portal.js";
|
|
6
6
|
import { useTestId } from "../../../utils/testId.js";
|
|
7
7
|
import { BulkBarSummary, BulkBarSummaryClear, BulkBarSummaryCount, BulkBarSummarySelectAll, BulkBarSummarySeparator } from "../../BulkBar/index.js";
|
|
8
8
|
import { HStack } from "../../Stack/index.js";
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { Children, isValidElement } from "react";
|
|
4
4
|
import { Popover } from "@ark-ui/react/popover";
|
|
5
|
-
import { Portal } from "
|
|
5
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
6
6
|
import { useTestId } from "../../../utils/testId.js";
|
|
7
7
|
import { bulkBarSurfaceClasses } from "../../BulkBar/classes.js";
|
|
8
8
|
import { HStack } from "../../Stack/index.js";
|
|
@@ -200,7 +200,7 @@ const TableInnerWindow = (t0)=>{
|
|
|
200
200
|
} else t17 = $[45];
|
|
201
201
|
let t18;
|
|
202
202
|
if ($[46] !== isEmpty || $[47] !== scrollRoot) {
|
|
203
|
-
t18 = !isEmpty && /*#__PURE__*/ jsx(WindowScrollRootContext
|
|
203
|
+
t18 = !isEmpty && /*#__PURE__*/ jsx(WindowScrollRootContext, {
|
|
204
204
|
value: scrollRoot,
|
|
205
205
|
children: /*#__PURE__*/ jsx(TableBody, {})
|
|
206
206
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
3
4
|
import { Toaster, createToaster } from "@ark-ui/react/toast";
|
|
4
|
-
import { Portal } from "../../lib/portal/Portal.js";
|
|
5
5
|
import { cn } from "../../utils/cn.js";
|
|
6
6
|
import { EXTENDED_TOAST_DURATION_MS, SIMPLE_TOAST_DURATION_MS, Toast, resolveToastVariant } from "./Toast.js";
|
|
7
7
|
const DEFAULT_TOAST_PRIORITY = {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { Portal } from "@ark-ui/react/portal";
|
|
3
4
|
import { Tooltip } from "@ark-ui/react/tooltip";
|
|
4
5
|
import { cva } from "class-variance-authority";
|
|
5
|
-
import { Portal } from "../../lib/portal/Portal.js";
|
|
6
6
|
import { cn } from "../../utils/cn.js";
|
|
7
7
|
import { hasNonTextEnd } from "../../utils/hasNonTextEnd.js";
|
|
8
8
|
import { useTestId } from "../../utils/testId.js";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
|
-
import { useTourContext } from "@ark-ui/react";
|
|
4
|
-
import { Portal } from "../../lib/portal/Portal.js";
|
|
3
|
+
import { Portal, useTourContext } from "@ark-ui/react";
|
|
5
4
|
import { TestIdProvider } from "../../utils/testId.js";
|
|
6
5
|
import { TourBody } from "./TourBody.js";
|
|
7
6
|
import { TourClose } from "./TourClose.js";
|
|
@@ -487,7 +487,7 @@ const WallyAssistant = (t0)=>{
|
|
|
487
487
|
onFeedback: onFeedback,
|
|
488
488
|
onCopy: onCopy,
|
|
489
489
|
onRetry: onRetry,
|
|
490
|
-
children: /*#__PURE__*/ jsx(AdapterContext
|
|
490
|
+
children: /*#__PURE__*/ jsx(AdapterContext, {
|
|
491
491
|
value: outerAdapter ?? LAZY_PRISM,
|
|
492
492
|
children: /*#__PURE__*/ jsxs(Chat, {
|
|
493
493
|
"aria-label": labels.region,
|
|
@@ -82,7 +82,7 @@ const ChatViewProvider = (t0)=>{
|
|
|
82
82
|
const value = t11;
|
|
83
83
|
let t12;
|
|
84
84
|
if ($[22] !== children || $[23] !== value) {
|
|
85
|
-
t12 = /*#__PURE__*/ jsx(ChatViewContext
|
|
85
|
+
t12 = /*#__PURE__*/ jsx(ChatViewContext, {
|
|
86
86
|
value: value,
|
|
87
87
|
children: children
|
|
88
88
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FC, HTMLAttributes, Ref } from 'react';
|
|
2
|
+
import type { TestableProps } from '../../utils/testId.js';
|
|
3
|
+
export interface WallySkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, TestableProps {
|
|
4
|
+
ref?: Ref<HTMLDivElement>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Shared loading surface for the host, remote and assistant runtime. Give its parent a height.
|
|
8
|
+
* The placeholders and mesh stay static so replacing one loading stage with another cannot
|
|
9
|
+
* restart an animation and flash. This non-interactive surface exposes one loading status.
|
|
10
|
+
*/
|
|
11
|
+
export declare const WallySkeleton: FC<WallySkeletonProps>;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { cn } from "../../utils/cn.js";
|
|
4
|
+
import { Chat, ChatBody, ChatFooter, ChatHeader, ChatHeaderActions, ChatHeaderTitle } from "../Chat/index.js";
|
|
5
|
+
import { Skeleton } from "../Skeleton/index.js";
|
|
6
|
+
const WallySkeleton = (t0)=>{
|
|
7
|
+
const $ = c(21);
|
|
8
|
+
let className;
|
|
9
|
+
let props;
|
|
10
|
+
let ref;
|
|
11
|
+
let testId;
|
|
12
|
+
if ($[0] !== t0) {
|
|
13
|
+
({ ref, className, "data-testid": testId, ...props } = t0);
|
|
14
|
+
$[0] = t0;
|
|
15
|
+
$[1] = className;
|
|
16
|
+
$[2] = props;
|
|
17
|
+
$[3] = ref;
|
|
18
|
+
$[4] = testId;
|
|
19
|
+
} else {
|
|
20
|
+
className = $[1];
|
|
21
|
+
props = $[2];
|
|
22
|
+
ref = $[3];
|
|
23
|
+
testId = $[4];
|
|
24
|
+
}
|
|
25
|
+
let t1;
|
|
26
|
+
if ($[5] !== className) {
|
|
27
|
+
t1 = cn("h-full min-h-0 w-full min-w-0 flex-1", className);
|
|
28
|
+
$[5] = className;
|
|
29
|
+
$[6] = t1;
|
|
30
|
+
} else t1 = $[6];
|
|
31
|
+
const t2 = testId && `${testId}--chat`;
|
|
32
|
+
let t3;
|
|
33
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
34
|
+
t3 = /*#__PURE__*/ jsx(ChatHeaderTitle, {
|
|
35
|
+
children: /*#__PURE__*/ jsx(Skeleton, {
|
|
36
|
+
width: "96px",
|
|
37
|
+
height: "16px"
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
$[7] = t3;
|
|
41
|
+
} else t3 = $[7];
|
|
42
|
+
let t4;
|
|
43
|
+
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
|
|
44
|
+
t4 = /*#__PURE__*/ jsxs(ChatHeader, {
|
|
45
|
+
children: [
|
|
46
|
+
t3,
|
|
47
|
+
/*#__PURE__*/ jsxs(ChatHeaderActions, {
|
|
48
|
+
children: [
|
|
49
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
50
|
+
width: "28px",
|
|
51
|
+
height: "28px"
|
|
52
|
+
}),
|
|
53
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
54
|
+
width: "28px",
|
|
55
|
+
height: "28px"
|
|
56
|
+
}),
|
|
57
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
58
|
+
width: "28px",
|
|
59
|
+
height: "28px"
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
})
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
$[8] = t4;
|
|
66
|
+
} else t4 = $[8];
|
|
67
|
+
let t5;
|
|
68
|
+
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
|
|
69
|
+
t5 = /*#__PURE__*/ jsxs("div", {
|
|
70
|
+
className: "flex w-full flex-col items-center gap-12",
|
|
71
|
+
children: [
|
|
72
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
73
|
+
width: "64px",
|
|
74
|
+
height: "64px",
|
|
75
|
+
rounded: "full"
|
|
76
|
+
}),
|
|
77
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
78
|
+
className: "max-w-[90%]",
|
|
79
|
+
width: "280px",
|
|
80
|
+
height: "24px"
|
|
81
|
+
})
|
|
82
|
+
]
|
|
83
|
+
});
|
|
84
|
+
$[9] = t5;
|
|
85
|
+
} else t5 = $[9];
|
|
86
|
+
let t6;
|
|
87
|
+
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
|
|
88
|
+
t6 = /*#__PURE__*/ jsx(ChatBody, {
|
|
89
|
+
children: /*#__PURE__*/ jsxs("div", {
|
|
90
|
+
className: "flex flex-col items-center gap-24 pt-103",
|
|
91
|
+
children: [
|
|
92
|
+
t5,
|
|
93
|
+
/*#__PURE__*/ jsxs("div", {
|
|
94
|
+
className: "flex w-full flex-col items-center gap-12",
|
|
95
|
+
children: [
|
|
96
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
97
|
+
className: "max-w-[85%]",
|
|
98
|
+
width: "240px",
|
|
99
|
+
height: "28px",
|
|
100
|
+
rounded: 12
|
|
101
|
+
}),
|
|
102
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
103
|
+
className: "max-w-[95%]",
|
|
104
|
+
width: "280px",
|
|
105
|
+
height: "28px",
|
|
106
|
+
rounded: 12
|
|
107
|
+
}),
|
|
108
|
+
/*#__PURE__*/ jsx(Skeleton, {
|
|
109
|
+
className: "max-w-[80%]",
|
|
110
|
+
width: "220px",
|
|
111
|
+
height: "28px",
|
|
112
|
+
rounded: 12
|
|
113
|
+
})
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
]
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
$[10] = t6;
|
|
120
|
+
} else t6 = $[10];
|
|
121
|
+
let t7;
|
|
122
|
+
if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
|
|
123
|
+
t7 = /*#__PURE__*/ jsx(Skeleton, {
|
|
124
|
+
width: "100%",
|
|
125
|
+
height: "92px",
|
|
126
|
+
rounded: 16
|
|
127
|
+
});
|
|
128
|
+
$[11] = t7;
|
|
129
|
+
} else t7 = $[11];
|
|
130
|
+
let t8;
|
|
131
|
+
if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
132
|
+
t8 = /*#__PURE__*/ jsxs(ChatFooter, {
|
|
133
|
+
children: [
|
|
134
|
+
t7,
|
|
135
|
+
/*#__PURE__*/ jsx("div", {
|
|
136
|
+
className: "flex justify-center pb-8",
|
|
137
|
+
children: /*#__PURE__*/ jsx(Skeleton, {
|
|
138
|
+
className: "max-w-[90%]",
|
|
139
|
+
width: "240px",
|
|
140
|
+
height: "12px"
|
|
141
|
+
})
|
|
142
|
+
})
|
|
143
|
+
]
|
|
144
|
+
});
|
|
145
|
+
$[12] = t8;
|
|
146
|
+
} else t8 = $[12];
|
|
147
|
+
let t9;
|
|
148
|
+
if ($[13] !== t2) {
|
|
149
|
+
t9 = /*#__PURE__*/ jsxs(Chat, {
|
|
150
|
+
background: "strong",
|
|
151
|
+
"aria-hidden": "true",
|
|
152
|
+
"data-testid": t2,
|
|
153
|
+
className: "[&_*]:animate-none! [&_[data-slot=skeleton]]:bg-bg-primary",
|
|
154
|
+
children: [
|
|
155
|
+
t4,
|
|
156
|
+
t6,
|
|
157
|
+
t8
|
|
158
|
+
]
|
|
159
|
+
});
|
|
160
|
+
$[13] = t2;
|
|
161
|
+
$[14] = t9;
|
|
162
|
+
} else t9 = $[14];
|
|
163
|
+
let t10;
|
|
164
|
+
if ($[15] !== props || $[16] !== ref || $[17] !== t1 || $[18] !== t9 || $[19] !== testId) {
|
|
165
|
+
t10 = /*#__PURE__*/ jsx("div", {
|
|
166
|
+
role: "status",
|
|
167
|
+
"aria-label": "Loading Wally",
|
|
168
|
+
"aria-busy": "true",
|
|
169
|
+
...props,
|
|
170
|
+
ref: ref,
|
|
171
|
+
"data-slot": "wally-skeleton",
|
|
172
|
+
"data-testid": testId,
|
|
173
|
+
className: t1,
|
|
174
|
+
children: t9
|
|
175
|
+
});
|
|
176
|
+
$[15] = props;
|
|
177
|
+
$[16] = ref;
|
|
178
|
+
$[17] = t1;
|
|
179
|
+
$[18] = t9;
|
|
180
|
+
$[19] = testId;
|
|
181
|
+
$[20] = t10;
|
|
182
|
+
} else t10 = $[20];
|
|
183
|
+
return t10;
|
|
184
|
+
};
|
|
185
|
+
WallySkeleton.displayName = "WallySkeleton";
|
|
186
|
+
export { WallySkeleton };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { WallySkeleton, type WallySkeletonProps } from './WallySkeleton.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { WallySkeleton } from "./WallySkeleton.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -113,4 +113,5 @@ export { UserMessage, UserMessageBubble, type UserMessageBubbleProps, type UserM
|
|
|
113
113
|
export { UtilityPage, type UtilityPageProps } from './components/UtilityPage/index.js';
|
|
114
114
|
export { ApprovalCardView, type ApprovalCardViewProps, ChainOfThoughtView, type ChainOfThoughtViewProps, type ChatApprovalOption, type ChatApprovalOptionKind, type ChatApprovalPart, type ChatApprovalResponse, type ChatApprovalStatus, type ChatAssistantMessage, type ChatAssistantPart, type ChatChainOfThoughtPart, type ChatContextItem, type ChatCustomPart, type ChatErrorPart, type ChatFeedback, type ChatIconKey, type ChatId, type ChatLabels, type ChatMarkdownProps, type ChatMessage, type ChatMessageActionNodes, ChatMessageView, type ChatMessageViewProps, type ChatMeta, type ChatOpen, type ChatPart, type ChatPartRenderContext, ChatPartView, type ChatPartViewProps, type ChatSnapshot, type ChatStatus, type ChatStep, type ChatStepKind, type ChatStepRenderContext, type ChatStepStatus, type ChatSuggestionItem, type ChatTextPart, type ChatToolPermission, type ChatUserMessage, type ChatUserPart, type ChatViewConfig, ChatViewProvider, type ChatViewProviderProps, type ChatViewState, copyTextOf, DEFAULT_CHAT_LABELS, deriveChatState, WallyAssistant, type WallyAssistantProps, } from './components/WallyAssistant/index.js';
|
|
115
115
|
export { WallyIcon, type WallyIconProps, type WallyIconSize, type WallyIconStyle, } from './components/WallyIcon/index.js';
|
|
116
|
+
export { WallySkeleton, type WallySkeletonProps } from './components/WallySkeleton/index.js';
|
|
116
117
|
export { type TestableProps, TestIdProvider, useTestId } from './utils/testId.js';
|
package/dist/index.js
CHANGED
|
@@ -102,4 +102,5 @@ export { UserMessage, UserMessageBubble, UserMessageShowMore } from "./component
|
|
|
102
102
|
export { UtilityPage } from "./components/UtilityPage/index.js";
|
|
103
103
|
export { ApprovalCardView, ChainOfThoughtView, ChatMessageView, ChatPartView, ChatViewProvider, DEFAULT_CHAT_LABELS, WallyAssistant, copyTextOf, deriveChatState } from "./components/WallyAssistant/index.js";
|
|
104
104
|
export { WallyIcon } from "./components/WallyIcon/index.js";
|
|
105
|
+
export { WallySkeleton } from "./components/WallySkeleton/index.js";
|
|
105
106
|
export { TestIdProvider, useTestId } from "./utils/testId.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.3.
|
|
3
|
-
"generatedAt": "2026-10-
|
|
2
|
+
"version": "4.3.4",
|
|
3
|
+
"generatedAt": "2026-10-30T11:34:31.521Z",
|
|
4
4
|
"components": [
|
|
5
5
|
{
|
|
6
6
|
"name": "Accordion",
|
|
@@ -35770,14 +35770,14 @@
|
|
|
35770
35770
|
"code": "import { loadShikiAdapter, CodeSnippetAdapterProvider, CodeSnippetCode, CodeSnippetContent, CodeSnippetLineNumbers, CodeSnippetRoot } from '@wallarm-org/design-system/CodeSnippet';\n\nexport const JSONWithShiki = () => (\n <CodeSnippetAdapterProvider adapter={loadShikiAdapter}>\n <CodeSnippetRoot code={jsonCode} language='json'>\n <CodeSnippetContent>\n <CodeSnippetLineNumbers />\n <CodeSnippetCode />\n </CodeSnippetContent>\n </CodeSnippetRoot>\n </CodeSnippetAdapterProvider>\n);",
|
|
35771
35771
|
"storyFile": "CodeSnippet/CodeSnippet.stories.tsx",
|
|
35772
35772
|
"storyTitle": "Data Display/CodeSnippet/CodeSnippet",
|
|
35773
|
-
"description": "Shiki, supplied through `CodeSnippetAdapterProvider
|
|
35773
|
+
"description": "Shiki, supplied through `CodeSnippetAdapterProvider`, uses VS Code-style grammars.\nThe adapter lazily initializes its supported languages and github-light theme with\nthe Oniguruma WASM engine on the first highlight call."
|
|
35774
35774
|
},
|
|
35775
35775
|
{
|
|
35776
35776
|
"name": "TypescriptWithPrism",
|
|
35777
35777
|
"code": "import { loadPrismAdapter, CodeSnippetAdapterProvider, CodeSnippetCode, CodeSnippetContent, CodeSnippetLineNumbers, CodeSnippetRoot } from '@wallarm-org/design-system/CodeSnippet';\n\nexport const TypescriptWithPrism = () => (\n <CodeSnippetAdapterProvider adapter={loadPrismAdapter}>\n <CodeSnippetRoot code={typescriptCode} language='typescript'>\n <CodeSnippetContent>\n <CodeSnippetLineNumbers />\n <CodeSnippetCode />\n </CodeSnippetContent>\n </CodeSnippetRoot>\n </CodeSnippetAdapterProvider>\n);",
|
|
35778
35778
|
"storyFile": "CodeSnippet/CodeSnippet.stories.tsx",
|
|
35779
35779
|
"storyTitle": "Data Display/CodeSnippet/CodeSnippet",
|
|
35780
|
-
"description": "Prism
|
|
35780
|
+
"description": "TypeScript highlighted with Prism. Its loader emits only the Prism adapter's\ndependencies; unused Shiki and highlight.js loaders are discarded by the consumer."
|
|
35781
35781
|
},
|
|
35782
35782
|
{
|
|
35783
35783
|
"name": "BashWithPrism",
|
|
@@ -35791,7 +35791,7 @@
|
|
|
35791
35791
|
"code": "import { loadHighlightJsAdapter, CodeSnippetAdapterProvider, CodeSnippetCode, CodeSnippetContent, CodeSnippetLineNumbers, CodeSnippetRoot } from '@wallarm-org/design-system/CodeSnippet';\n\nexport const HTMLWithHighlightJs = () => (\n <CodeSnippetAdapterProvider adapter={loadHighlightJsAdapter}>\n <CodeSnippetRoot code={htmlCode} language='html'>\n <CodeSnippetContent>\n <CodeSnippetLineNumbers />\n <CodeSnippetCode />\n </CodeSnippetContent>\n </CodeSnippetRoot>\n </CodeSnippetAdapterProvider>\n);",
|
|
35792
35792
|
"storyFile": "CodeSnippet/CodeSnippet.stories.tsx",
|
|
35793
35793
|
"storyTitle": "Data Display/CodeSnippet/CodeSnippet",
|
|
35794
|
-
"description": "highlight.js
|
|
35794
|
+
"description": "HTML highlighted with highlight.js. The adapter loads the library lazily and\nexposes the languages listed by its getSupportedLanguages() method."
|
|
35795
35795
|
},
|
|
35796
35796
|
{
|
|
35797
35797
|
"name": "HTTPRequestWithPrism",
|
|
@@ -138009,6 +138009,311 @@
|
|
|
138009
138009
|
"description": "`xs` to `xl` in both variants. Worth reading down the columns to see where the detail in the bare mark gives out and the badge stops helping."
|
|
138010
138010
|
}
|
|
138011
138011
|
]
|
|
138012
|
+
},
|
|
138013
|
+
{
|
|
138014
|
+
"name": "WallySkeleton",
|
|
138015
|
+
"description": "Shared loading surface for the host, remote and assistant runtime. Give its parent a height.\nThe placeholders and mesh stay static so replacing one loading stage with another cannot\nrestart an animation and flash. This non-interactive surface exposes one loading status.",
|
|
138016
|
+
"importPath": "@wallarm-org/design-system/WallySkeleton",
|
|
138017
|
+
"props": [
|
|
138018
|
+
{
|
|
138019
|
+
"name": "slot",
|
|
138020
|
+
"type": "string | undefined",
|
|
138021
|
+
"required": false
|
|
138022
|
+
},
|
|
138023
|
+
{
|
|
138024
|
+
"name": "title",
|
|
138025
|
+
"type": "string | undefined",
|
|
138026
|
+
"required": false
|
|
138027
|
+
},
|
|
138028
|
+
{
|
|
138029
|
+
"name": "defaultChecked",
|
|
138030
|
+
"type": "boolean | undefined",
|
|
138031
|
+
"required": false
|
|
138032
|
+
},
|
|
138033
|
+
{
|
|
138034
|
+
"name": "defaultValue",
|
|
138035
|
+
"type": "string | number | readonly string[] | undefined",
|
|
138036
|
+
"required": false
|
|
138037
|
+
},
|
|
138038
|
+
{
|
|
138039
|
+
"name": "suppressContentEditableWarning",
|
|
138040
|
+
"type": "boolean | undefined",
|
|
138041
|
+
"required": false
|
|
138042
|
+
},
|
|
138043
|
+
{
|
|
138044
|
+
"name": "suppressHydrationWarning",
|
|
138045
|
+
"type": "boolean | undefined",
|
|
138046
|
+
"required": false
|
|
138047
|
+
},
|
|
138048
|
+
{
|
|
138049
|
+
"name": "accessKey",
|
|
138050
|
+
"type": "string | undefined",
|
|
138051
|
+
"required": false
|
|
138052
|
+
},
|
|
138053
|
+
{
|
|
138054
|
+
"name": "autoCapitalize",
|
|
138055
|
+
"type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
|
|
138056
|
+
"required": false
|
|
138057
|
+
},
|
|
138058
|
+
{
|
|
138059
|
+
"name": "autoFocus",
|
|
138060
|
+
"type": "boolean | undefined",
|
|
138061
|
+
"required": false
|
|
138062
|
+
},
|
|
138063
|
+
{
|
|
138064
|
+
"name": "contentEditable",
|
|
138065
|
+
"type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
|
|
138066
|
+
"required": false
|
|
138067
|
+
},
|
|
138068
|
+
{
|
|
138069
|
+
"name": "contextMenu",
|
|
138070
|
+
"type": "string | undefined",
|
|
138071
|
+
"required": false
|
|
138072
|
+
},
|
|
138073
|
+
{
|
|
138074
|
+
"name": "dir",
|
|
138075
|
+
"type": "string | undefined",
|
|
138076
|
+
"required": false
|
|
138077
|
+
},
|
|
138078
|
+
{
|
|
138079
|
+
"name": "draggable",
|
|
138080
|
+
"type": "Booleanish | undefined",
|
|
138081
|
+
"required": false
|
|
138082
|
+
},
|
|
138083
|
+
{
|
|
138084
|
+
"name": "enterKeyHint",
|
|
138085
|
+
"type": "\"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
|
|
138086
|
+
"required": false
|
|
138087
|
+
},
|
|
138088
|
+
{
|
|
138089
|
+
"name": "hidden",
|
|
138090
|
+
"type": "boolean | undefined",
|
|
138091
|
+
"required": false
|
|
138092
|
+
},
|
|
138093
|
+
{
|
|
138094
|
+
"name": "id",
|
|
138095
|
+
"type": "string | undefined",
|
|
138096
|
+
"required": false
|
|
138097
|
+
},
|
|
138098
|
+
{
|
|
138099
|
+
"name": "lang",
|
|
138100
|
+
"type": "string | undefined",
|
|
138101
|
+
"required": false
|
|
138102
|
+
},
|
|
138103
|
+
{
|
|
138104
|
+
"name": "nonce",
|
|
138105
|
+
"type": "string | undefined",
|
|
138106
|
+
"required": false
|
|
138107
|
+
},
|
|
138108
|
+
{
|
|
138109
|
+
"name": "spellCheck",
|
|
138110
|
+
"type": "Booleanish | undefined",
|
|
138111
|
+
"required": false
|
|
138112
|
+
},
|
|
138113
|
+
{
|
|
138114
|
+
"name": "tabIndex",
|
|
138115
|
+
"type": "number | undefined",
|
|
138116
|
+
"required": false
|
|
138117
|
+
},
|
|
138118
|
+
{
|
|
138119
|
+
"name": "translate",
|
|
138120
|
+
"type": "\"yes\" | \"no\" | undefined",
|
|
138121
|
+
"required": false
|
|
138122
|
+
},
|
|
138123
|
+
{
|
|
138124
|
+
"name": "radioGroup",
|
|
138125
|
+
"type": "string | undefined",
|
|
138126
|
+
"required": false
|
|
138127
|
+
},
|
|
138128
|
+
{
|
|
138129
|
+
"name": "role",
|
|
138130
|
+
"type": "AriaRole | undefined",
|
|
138131
|
+
"required": false
|
|
138132
|
+
},
|
|
138133
|
+
{
|
|
138134
|
+
"name": "about",
|
|
138135
|
+
"type": "string | undefined",
|
|
138136
|
+
"required": false
|
|
138137
|
+
},
|
|
138138
|
+
{
|
|
138139
|
+
"name": "content",
|
|
138140
|
+
"type": "string | undefined",
|
|
138141
|
+
"required": false
|
|
138142
|
+
},
|
|
138143
|
+
{
|
|
138144
|
+
"name": "datatype",
|
|
138145
|
+
"type": "string | undefined",
|
|
138146
|
+
"required": false
|
|
138147
|
+
},
|
|
138148
|
+
{
|
|
138149
|
+
"name": "inlist",
|
|
138150
|
+
"type": "any",
|
|
138151
|
+
"required": false
|
|
138152
|
+
},
|
|
138153
|
+
{
|
|
138154
|
+
"name": "prefix",
|
|
138155
|
+
"type": "string | undefined",
|
|
138156
|
+
"required": false
|
|
138157
|
+
},
|
|
138158
|
+
{
|
|
138159
|
+
"name": "property",
|
|
138160
|
+
"type": "string | undefined",
|
|
138161
|
+
"required": false
|
|
138162
|
+
},
|
|
138163
|
+
{
|
|
138164
|
+
"name": "rel",
|
|
138165
|
+
"type": "string | undefined",
|
|
138166
|
+
"required": false
|
|
138167
|
+
},
|
|
138168
|
+
{
|
|
138169
|
+
"name": "resource",
|
|
138170
|
+
"type": "string | undefined",
|
|
138171
|
+
"required": false
|
|
138172
|
+
},
|
|
138173
|
+
{
|
|
138174
|
+
"name": "rev",
|
|
138175
|
+
"type": "string | undefined",
|
|
138176
|
+
"required": false
|
|
138177
|
+
},
|
|
138178
|
+
{
|
|
138179
|
+
"name": "typeof",
|
|
138180
|
+
"type": "string | undefined",
|
|
138181
|
+
"required": false
|
|
138182
|
+
},
|
|
138183
|
+
{
|
|
138184
|
+
"name": "vocab",
|
|
138185
|
+
"type": "string | undefined",
|
|
138186
|
+
"required": false
|
|
138187
|
+
},
|
|
138188
|
+
{
|
|
138189
|
+
"name": "autoCorrect",
|
|
138190
|
+
"type": "string | undefined",
|
|
138191
|
+
"required": false
|
|
138192
|
+
},
|
|
138193
|
+
{
|
|
138194
|
+
"name": "autoSave",
|
|
138195
|
+
"type": "string | undefined",
|
|
138196
|
+
"required": false
|
|
138197
|
+
},
|
|
138198
|
+
{
|
|
138199
|
+
"name": "color",
|
|
138200
|
+
"type": "string | undefined",
|
|
138201
|
+
"required": false
|
|
138202
|
+
},
|
|
138203
|
+
{
|
|
138204
|
+
"name": "itemProp",
|
|
138205
|
+
"type": "string | undefined",
|
|
138206
|
+
"required": false
|
|
138207
|
+
},
|
|
138208
|
+
{
|
|
138209
|
+
"name": "itemScope",
|
|
138210
|
+
"type": "boolean | undefined",
|
|
138211
|
+
"required": false
|
|
138212
|
+
},
|
|
138213
|
+
{
|
|
138214
|
+
"name": "itemType",
|
|
138215
|
+
"type": "string | undefined",
|
|
138216
|
+
"required": false
|
|
138217
|
+
},
|
|
138218
|
+
{
|
|
138219
|
+
"name": "itemID",
|
|
138220
|
+
"type": "string | undefined",
|
|
138221
|
+
"required": false
|
|
138222
|
+
},
|
|
138223
|
+
{
|
|
138224
|
+
"name": "itemRef",
|
|
138225
|
+
"type": "string | undefined",
|
|
138226
|
+
"required": false
|
|
138227
|
+
},
|
|
138228
|
+
{
|
|
138229
|
+
"name": "results",
|
|
138230
|
+
"type": "number | undefined",
|
|
138231
|
+
"required": false
|
|
138232
|
+
},
|
|
138233
|
+
{
|
|
138234
|
+
"name": "security",
|
|
138235
|
+
"type": "string | undefined",
|
|
138236
|
+
"required": false
|
|
138237
|
+
},
|
|
138238
|
+
{
|
|
138239
|
+
"name": "unselectable",
|
|
138240
|
+
"type": "\"off\" | \"on\" | undefined",
|
|
138241
|
+
"required": false
|
|
138242
|
+
},
|
|
138243
|
+
{
|
|
138244
|
+
"name": "popover",
|
|
138245
|
+
"type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
|
|
138246
|
+
"required": false
|
|
138247
|
+
},
|
|
138248
|
+
{
|
|
138249
|
+
"name": "popoverTargetAction",
|
|
138250
|
+
"type": "\"toggle\" | \"show\" | \"hide\" | undefined",
|
|
138251
|
+
"required": false
|
|
138252
|
+
},
|
|
138253
|
+
{
|
|
138254
|
+
"name": "popoverTarget",
|
|
138255
|
+
"type": "string | undefined",
|
|
138256
|
+
"required": false
|
|
138257
|
+
},
|
|
138258
|
+
{
|
|
138259
|
+
"name": "inert",
|
|
138260
|
+
"type": "boolean | undefined",
|
|
138261
|
+
"required": false,
|
|
138262
|
+
"description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert}"
|
|
138263
|
+
},
|
|
138264
|
+
{
|
|
138265
|
+
"name": "inputMode",
|
|
138266
|
+
"type": "\"none\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
|
|
138267
|
+
"required": false,
|
|
138268
|
+
"description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
|
|
138269
|
+
},
|
|
138270
|
+
{
|
|
138271
|
+
"name": "is",
|
|
138272
|
+
"type": "string | undefined",
|
|
138273
|
+
"required": false,
|
|
138274
|
+
"description": "Specify that a standard HTML element should behave like a defined custom built-in element"
|
|
138275
|
+
},
|
|
138276
|
+
{
|
|
138277
|
+
"name": "exportparts",
|
|
138278
|
+
"type": "string | undefined",
|
|
138279
|
+
"required": false,
|
|
138280
|
+
"description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
|
|
138281
|
+
},
|
|
138282
|
+
{
|
|
138283
|
+
"name": "part",
|
|
138284
|
+
"type": "string | undefined",
|
|
138285
|
+
"required": false,
|
|
138286
|
+
"description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
|
|
138287
|
+
},
|
|
138288
|
+
{
|
|
138289
|
+
"name": "data-testid",
|
|
138290
|
+
"type": "string | undefined",
|
|
138291
|
+
"required": false
|
|
138292
|
+
}
|
|
138293
|
+
],
|
|
138294
|
+
"variants": [],
|
|
138295
|
+
"subComponents": [],
|
|
138296
|
+
"examples": [
|
|
138297
|
+
{
|
|
138298
|
+
"name": "Default",
|
|
138299
|
+
"code": "import { WallySkeleton } from '@wallarm-org/design-system/WallySkeleton';\n\nexport const Default = () => (\n <div className='h-640 w-480 max-w-full'>\n <WallySkeleton data-testid='wally-loading' />\n </div>\n);",
|
|
138300
|
+
"storyFile": "WallySkeleton/WallySkeleton.stories.tsx",
|
|
138301
|
+
"storyTitle": "AI/WallySkeleton"
|
|
138302
|
+
},
|
|
138303
|
+
{
|
|
138304
|
+
"name": "Narrow",
|
|
138305
|
+
"code": "import { WallySkeleton } from '@wallarm-org/design-system/WallySkeleton';\n\nexport const Narrow = () => (\n <div className='h-640 w-320 max-w-full'>\n <WallySkeleton data-testid='wally-loading' />\n </div>\n);",
|
|
138306
|
+
"storyFile": "WallySkeleton/WallySkeleton.stories.tsx",
|
|
138307
|
+
"storyTitle": "AI/WallySkeleton"
|
|
138308
|
+
},
|
|
138309
|
+
{
|
|
138310
|
+
"name": "Handoff",
|
|
138311
|
+
"code": "import { useState } from 'react';\nimport { Button } from '@wallarm-org/design-system/Button';\nimport { WallySkeleton } from '@wallarm-org/design-system/WallySkeleton';\n\nexport const Handoff = () => {\n const [stage, setStage] = useState(0);\n\n return (\n <div className='flex flex-col gap-12'>\n <Button data-testid='next-stage' onClick={() => setStage(current => current + 1)}>\n Continue loading\n </Button>\n <div className='h-640 w-480 max-w-full'>\n <WallySkeleton key={stage} data-testid='wally-loading' />\n </div>\n </div>\n );\n};",
|
|
138312
|
+
"storyFile": "WallySkeleton/WallySkeleton.stories.tsx",
|
|
138313
|
+
"storyTitle": "AI/WallySkeleton",
|
|
138314
|
+
"description": "Continue loading remounts the skeleton, like replacing the host fallback with the remote’s own loading state. Its geometry, colors and background stay identical."
|
|
138315
|
+
}
|
|
138316
|
+
]
|
|
138012
138317
|
}
|
|
138013
138318
|
],
|
|
138014
138319
|
"tokens": [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wallarm-org/design-system",
|
|
3
|
-
"version": "4.4.0
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"description": "Core design system library with React components and Storybook documentation",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -70,10 +70,11 @@
|
|
|
70
70
|
"publish:local": "pnpm build && yalc publish --push",
|
|
71
71
|
"lint": "biome check",
|
|
72
72
|
"lint:fix": "biome check --fix",
|
|
73
|
-
"typecheck": "tsc -p tsconfig.app.json --noEmit --composite false --incremental false && tsc -p tsconfig.storybook.json --noEmit --composite false --incremental false && tsc -p tsconfig.figma.json --noEmit --composite false --incremental false && tsc -p tsconfig.e2e.json --noEmit --composite false --incremental false
|
|
73
|
+
"typecheck": "tsc -p tsconfig.app.json --noEmit --composite false --incremental false && tsc -p tsconfig.storybook.json --noEmit --composite false --incremental false && tsc -p tsconfig.figma.json --noEmit --composite false --incremental false && tsc -p tsconfig.e2e.json --noEmit --composite false --incremental false",
|
|
74
74
|
"test": "rstest watch",
|
|
75
75
|
"test:coverage": "rstest run --coverage",
|
|
76
76
|
"test:run": "rstest run",
|
|
77
|
+
"test:bundles": "tsx scripts/check-code-snippet-bundles.ts",
|
|
77
78
|
"storybook": "storybook dev --no-open -p 6006",
|
|
78
79
|
"build-storybook": "storybook build",
|
|
79
80
|
"e2e": "playwright test",
|
|
@@ -85,11 +86,7 @@
|
|
|
85
86
|
"e2e:docker:report": "playwright show-report ./playwright-report --port=9323",
|
|
86
87
|
"icons:sync": "tsx scripts/icons/sync.ts",
|
|
87
88
|
"code-connect:preview": "node --env-file-if-exists=../../.env.local node_modules/@figma/code-connect/bin/figma connect preview",
|
|
88
|
-
"code-connect:publish": "node --env-file-if-exists=../../.env.local node_modules/@figma/code-connect/bin/figma connect publish --exit-on-unreadable-files"
|
|
89
|
-
"claude-design:no-impact": "tsx claude-design/no-impact.ts",
|
|
90
|
-
"test:claude-design": "rstest run --config rstest.claude-design.config.ts",
|
|
91
|
-
"build:claude-design": "turbo run build --filter=@wallarm-org/design-system... && tsx claude-design/build.ts",
|
|
92
|
-
"claude-design:verify": "turbo run build --filter=@wallarm-org/design-system... && tsx claude-design/verify.ts"
|
|
89
|
+
"code-connect:publish": "node --env-file-if-exists=../../.env.local node_modules/@figma/code-connect/bin/figma connect publish --exit-on-unreadable-files"
|
|
93
90
|
},
|
|
94
91
|
"devDependencies": {
|
|
95
92
|
"@babel/core": "7.29.7",
|
|
@@ -111,7 +108,6 @@
|
|
|
111
108
|
"@testing-library/react": "catalog:",
|
|
112
109
|
"@testing-library/user-event": "catalog:",
|
|
113
110
|
"@types/babel__core": "7.20.5",
|
|
114
|
-
"@types/jsdom": "21.1.7",
|
|
115
111
|
"@types/luaparse": "0.2.13",
|
|
116
112
|
"@types/node": "catalog:",
|
|
117
113
|
"@types/prismjs": "1.26.6",
|
|
@@ -125,15 +121,11 @@
|
|
|
125
121
|
"@wallarm-org/tailwind-config": "workspace:*",
|
|
126
122
|
"@wallarm-org/typescript-config": "workspace:*",
|
|
127
123
|
"babel-plugin-react-compiler": "1.0.0",
|
|
128
|
-
"esbuild": "0.28.1",
|
|
129
124
|
"glob": "13.0.6",
|
|
130
125
|
"jsdom": "catalog:",
|
|
131
126
|
"postcss": "8.5.28",
|
|
132
127
|
"react": "catalog:",
|
|
133
|
-
"react-compiler-runtime": "1.0.0",
|
|
134
128
|
"react-dom": "catalog:",
|
|
135
|
-
"react-dom18": "npm:react-dom@18.3.1",
|
|
136
|
-
"react18": "npm:react@18.3.1",
|
|
137
129
|
"storybook": "catalog:",
|
|
138
130
|
"storybook-react-rsbuild": "3.6.0",
|
|
139
131
|
"tailwindcss": "catalog:",
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { c } from "react/compiler-runtime";
|
|
3
|
-
import { useContext } from "react";
|
|
4
|
-
import { Portal } from "@ark-ui/react/portal";
|
|
5
|
-
import { PortalContainerContext } from "./PortalContainerContext.js";
|
|
6
|
-
const Portal_Portal = (props)=>{
|
|
7
|
-
const $ = c(3);
|
|
8
|
-
const container = useContext(PortalContainerContext);
|
|
9
|
-
const t0 = props.container ?? container ?? void 0;
|
|
10
|
-
let t1;
|
|
11
|
-
if ($[0] !== props || $[1] !== t0) {
|
|
12
|
-
t1 = /*#__PURE__*/ jsx(Portal, {
|
|
13
|
-
...props,
|
|
14
|
-
container: t0
|
|
15
|
-
});
|
|
16
|
-
$[0] = props;
|
|
17
|
-
$[1] = t0;
|
|
18
|
-
$[2] = t1;
|
|
19
|
-
} else t1 = $[2];
|
|
20
|
-
return t1;
|
|
21
|
-
};
|
|
22
|
-
export { Portal_Portal as Portal };
|