@wallarm-org/claude-design 4.14.0 → 4.16.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.
Files changed (41) hide show
  1. package/dist/SETUP.md +7 -7
  2. package/dist/UPDATE.md +9 -9
  3. package/dist/project/components/AppShell/stories.js +1 -1
  4. package/dist/project/components/AppShell/stories.md +2 -2
  5. package/dist/project/components/ApprovalCard/README.md +30 -1
  6. package/dist/project/components/ApprovalCard/stories.js +2 -2
  7. package/dist/project/components/Attribute/README.md +48 -0
  8. package/dist/project/components/Attribute/stories.js +2 -2
  9. package/dist/project/components/Avatar/README.md +46 -1
  10. package/dist/project/components/Avatar/stories.js +1 -1
  11. package/dist/project/components/ChainOfThought/README.md +38 -0
  12. package/dist/project/components/ChainOfThought/stories.js +1 -1
  13. package/dist/project/components/Chat/README.md +2 -2
  14. package/dist/project/components/Drawer/README.md +73 -0
  15. package/dist/project/components/Drawer/stories.js +1 -1
  16. package/dist/project/components/DropdownMenu/README.md +64 -1
  17. package/dist/project/components/DropdownMenu/stories.js +1 -1
  18. package/dist/project/components/FilterDropdown/README.md +1014 -0
  19. package/dist/project/components/FilterDropdown/stories.js +1 -1
  20. package/dist/project/components/FilterInput/README.md +6 -0
  21. package/dist/project/components/FilterInput/stories.js +1 -1
  22. package/dist/project/components/FilterInput/stories.md +25 -0
  23. package/dist/project/components/NotificationCenter/stories.md +2 -2
  24. package/dist/project/components/RemoteShell/README.md +2 -2
  25. package/dist/project/components/SearchModal/README.md +4 -4
  26. package/dist/project/components/SearchModal/stories.js +1 -1
  27. package/dist/project/components/Select/README.md +47 -0
  28. package/dist/project/components/Select/stories.js +1 -1
  29. package/dist/project/components/Table/README.md +8 -0
  30. package/dist/project/components/Table/stories.js +2 -2
  31. package/dist/project/components/Table/stories.md +117 -0
  32. package/dist/project/components/Tag/README.md +45 -0
  33. package/dist/project/components/Tag/stories.js +1 -1
  34. package/dist/project/components/Timeline/README.md +75 -0
  35. package/dist/project/components/Timeline/stories.js +1 -1
  36. package/dist/project/components/bundle.css +16 -0
  37. package/dist/project/components/bundle.js +11 -11
  38. package/dist/project/components/index.d.ts +73 -5
  39. package/dist/project/design-system.json +4 -4
  40. package/dist/project/tokens.json +2 -2
  41. package/package.json +2 -2
@@ -1642,6 +1642,41 @@ export { AttributeLabelDescription, type AttributeLabelDescriptionProps, } from
1642
1642
  export { AttributeLabelInfo, type AttributeLabelInfoProps } from './AttributeLabelInfo.js';
1643
1643
  export { AttributeValue, type AttributeValueProps } from './AttributeValue.js';
1644
1644
 
1645
+ // components/Avatar/AgentItem.d.ts
1646
+ import type { FC, HTMLAttributes, Ref } from 'react';
1647
+ import type { AgentCharacterId, AgentLook } from '../../lib/agent-characters/data.gen.js';
1648
+ import { type TestableProps } from '../../utils/testId.js';
1649
+ import { type AgentGlyphState } from '../AgentGlyph/index.js';
1650
+ type AgentItemLook = {
1651
+ agent: AgentCharacterId;
1652
+ look?: never;
1653
+ } | {
1654
+ look: AgentLook;
1655
+ agent?: never;
1656
+ };
1657
+ /** 16–24 px draw the flat glyph, 40 px and up the 3D character (D1). */
1658
+ export type AgentItemSize = 16 | 20 | 24 | 40 | 48 | 56;
1659
+ export type AgentItemProps = HTMLAttributes<HTMLSpanElement> & TestableProps & AgentItemLook & {
1660
+ ref?: Ref<HTMLSpanElement>;
1661
+ /** 20 beside text-sm (table rows, attributes), 16 beside text-xs (D3); 40 and up for cards that show the agent. */
1662
+ size?: AgentItemSize;
1663
+ state?: AgentGlyphState;
1664
+ hasApplications?: boolean;
1665
+ coverage?: 'full' | 'partial';
1666
+ /** 3D sizes only: animated, as in an Overview row. */
1667
+ live?: boolean;
1668
+ /** 3D sizes only: the agent's uid, keeping its timing distinct from its neighbours. Defaults to `agent`. */
1669
+ seed?: string;
1670
+ };
1671
+ /**
1672
+ * The agent user item: the agent's character, its name and an optional description, with no plate (agents stand as
1673
+ * silhouettes). Takes the same `AvatarContent` / `AvatarName` / `AvatarDescription` children as a person's
1674
+ * `Avatar`, so a place swaps a person for an agent by swapping the root. The gap is measured from the body, not
1675
+ * the character's box, so every agent sits as close to its name as a person's plate does.
1676
+ */
1677
+ export declare const AgentItem: FC<AgentItemProps>;
1678
+ export {};
1679
+
1645
1680
  // components/Avatar/Avatar.d.ts
1646
1681
  import { type ButtonHTMLAttributes, type FC, type HTMLAttributes, type Ref } from 'react';
1647
1682
  import { Avatar as ArkAvatar } from '@ark-ui/react/avatar';
@@ -1759,6 +1794,9 @@ export declare const avatarFallbackVariants: (props?: ({
1759
1794
  initials?: boolean | null | undefined;
1760
1795
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
1761
1796
  export declare const avatarOverlayClassNames: string;
1797
+ export declare const agentItemVariants: (props?: ({
1798
+ size?: 16 | 20 | 24 | 40 | 48 | 56 | null | undefined;
1799
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
1762
1800
  export declare const avatarContentClassNames: string;
1763
1801
  export declare const avatarNameVariants: (props?: ({
1764
1802
  size?: "lg" | "md" | "sm" | null | undefined;
@@ -1768,6 +1806,7 @@ export declare const avatarDescriptionVariants: (props?: ({
1768
1806
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
1769
1807
 
1770
1808
  // components/Avatar/index.d.ts
1809
+ export { AgentItem, type AgentItemProps, type AgentItemSize } from './AgentItem.js';
1771
1810
  export { Avatar, type AvatarProps, type AvatarStatusChangeDetails } from './Avatar.js';
1772
1811
  export { AvatarContent, type AvatarContentProps } from './AvatarContent.js';
1773
1812
  export { AvatarDescription, type AvatarDescriptionProps } from './AvatarDescription.js';
@@ -3034,7 +3073,7 @@ import { type ButtonHTMLAttributes, type FC, type Ref } from 'react';
3034
3073
  import { type TestableProps } from '../../utils/testId.js';
3035
3074
  /**
3036
3075
  * The app-header button that opens Wally (Figma 101:1034): a ghost small icon `Button` with the
3037
- * mascot and an "Ask Wally" tooltip. It holds no open state — wire `onClick`/`aria-expanded`
3076
+ * Wally glyph at 24 px and an "Ask Wally" tooltip. It holds no open state — wire `onClick`/`aria-expanded`
3038
3077
  * yourself, or wrap it in `<DrawerTrigger asChild>`.
3039
3078
  */
3040
3079
  export interface ChatTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'color'>, TestableProps {
@@ -8488,10 +8527,15 @@ export interface FilterDropdownOptionProps<T extends CollectionItem = Collection
8488
8527
  item: T;
8489
8528
  /** Secondary text at the right end of the row, such as a count. */
8490
8529
  hint?: ReactNode;
8530
+ /**
8531
+ * Leading element before the text, such as an agent's 16 px `AgentGlyph`. It keeps its own size:
8532
+ * the row does not resize it.
8533
+ */
8534
+ icon?: ReactNode;
8491
8535
  /** Row text. Defaults to the item's label from the collection. */
8492
8536
  children?: ReactNode;
8493
8537
  }
8494
- export declare function FilterDropdownOption<T extends CollectionItem>({ item, hint, children, 'data-testid': testIdProp, ...props }: FilterDropdownOptionProps<T>): import("react").JSX.Element;
8538
+ export declare function FilterDropdownOption<T extends CollectionItem>({ item, hint, icon, children, 'data-testid': testIdProp, ...props }: FilterDropdownOptionProps<T>): import("react").JSX.Element;
8495
8539
  export declare namespace FilterDropdownOption {
8496
8540
  var displayName: string;
8497
8541
  }
@@ -8530,6 +8574,7 @@ export declare namespace FilterDropdownSelected {
8530
8574
 
8531
8575
  // components/FilterDropdown/FilterDropdownTrigger.d.ts
8532
8576
  import { type ButtonHTMLAttributes, type FC, type ReactNode, type Ref } from 'react';
8577
+ import type { CollectionItem } from '@ark-ui/react/collection';
8533
8578
  import { type TestableProps } from '../../utils/testId.js';
8534
8579
  export interface FilterDropdownTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, TestableProps {
8535
8580
  ref?: Ref<HTMLButtonElement>;
@@ -8538,6 +8583,11 @@ export interface FilterDropdownTriggerProps extends Omit<ButtonHTMLAttributes<HT
8538
8583
  * derived from the value and is not overridable.
8539
8584
  */
8540
8585
  children?: ReactNode;
8586
+ /**
8587
+ * Single mode: a leading element for the picked item, such as the agent's 16 px `AgentGlyph`
8588
+ * before its name. Not called while unset or in multi mode.
8589
+ */
8590
+ renderIcon?: (item: CollectionItem) => ReactNode;
8541
8591
  }
8542
8592
  /**
8543
8593
  * The 36px trigger. Dashed while unset, solid once set; reads «All …» / the value in single mode
@@ -9489,7 +9539,7 @@ export interface FilterInputOperatorMenuProps extends TestableProps {
9489
9539
  export declare const FilterInputOperatorMenu: FC<FilterInputOperatorMenuProps>;
9490
9540
 
9491
9541
  // components/FilterInput/FilterInputMenu/FilterInputValueMenu/FilterInputValueMenu.d.ts
9492
- import type { FC, RefObject } from 'react';
9542
+ import type { FC, ReactNode, RefObject } from 'react';
9493
9543
  import type { BadgeColor } from '../../../Badge/index.js';
9494
9544
  export interface ValueOption {
9495
9545
  /**
@@ -9504,6 +9554,8 @@ export interface ValueOption {
9504
9554
  };
9505
9555
  /** Muted secondary line rendered beneath the bold `label`. Display-only. */
9506
9556
  description?: string;
9557
+ /** Leading element of the row (an agent glyph). Display-only. */
9558
+ icon?: ReactNode;
9507
9559
  /**
9508
9560
  * Nested sub-values. When present this option is a group: a section header at
9509
9561
  * the top level, or a submenu trigger when nested. Only leaves are committed.
@@ -11664,6 +11716,11 @@ export interface FieldValueOption {
11664
11716
  * share a label (two `request-id` rows with different paths).
11665
11717
  */
11666
11718
  description?: string;
11719
+ /**
11720
+ * Leading element of the value row, e.g. an agent's `<AgentGlyph size={16} />`.
11721
+ * Display-only: the chip still shows the `label` alone.
11722
+ */
11723
+ icon?: ReactNode;
11667
11724
  /**
11668
11725
  * Nested sub-values. When present, this option is a **group** (no own
11669
11726
  * `value`): a section header at the top level, or a submenu trigger when
@@ -15636,7 +15693,7 @@ export type { SelectDataItem } from './types.js';
15636
15693
  export { type UseSelectSearchOptions, type UseSelectSearchResult, useSelectSearch, } from './useSelectSearch.js';
15637
15694
 
15638
15695
  // components/Select/types.d.ts
15639
- import type { FC } from 'react';
15696
+ import type { FC, ReactNode } from 'react';
15640
15697
  import type { SvgIconProps } from '../../icons/index.js';
15641
15698
  export interface SelectDataItem {
15642
15699
  value: string;
@@ -15645,6 +15702,11 @@ export interface SelectDataItem {
15645
15702
  description?: string;
15646
15703
  category?: string;
15647
15704
  icon?: FC<SvgIconProps>;
15705
+ /**
15706
+ * A leading element that is not an icon component, such as an agent's `AgentGlyph` (size 20 beside the
15707
+ * text-sm option and trigger). The trigger and `SelectInput` chips show it in place of `icon`.
15708
+ */
15709
+ leading?: ReactNode;
15648
15710
  }
15649
15711
 
15650
15712
  // components/Select/useSelectSearch.d.ts
@@ -26056,7 +26118,7 @@ export { ApprovalCard, ApprovalCardActions, type ApprovalCardActionsProps, Appro
26056
26118
  export { AppShell, AppShellAside, type AppShellAsideProps, AppShellHeader, type AppShellHeaderProps, type AppShellProps, AppShellRail, type AppShellRailProps, AppShellRemote, type AppShellRemoteProps, } from './components/AppShell/index.js';
26057
26119
  export { AssistantMessage, AssistantMessageContent, type AssistantMessageContentProps, AssistantMessageError, type AssistantMessageErrorProps, AssistantMessageLoader, type AssistantMessageLoaderProps, type AssistantMessageProps, } from './components/AssistantMessage/index.js';
26058
26120
  export { Attribute, AttributeActions, AttributeActionsContent, type AttributeActionsContentProps, AttributeActionsItem, type AttributeActionsItemProps, type AttributeActionsProps, AttributeActionsTarget, type AttributeActionsTargetProps, AttributeLabel, AttributeLabelDescription, type AttributeLabelDescriptionProps, AttributeLabelInfo, type AttributeLabelInfoProps, type AttributeLabelProps, type AttributeProps, AttributeValue, type AttributeValueProps, } from './components/Attribute/index.js';
26059
- export { Avatar, AvatarContent, type AvatarContentProps, AvatarDescription, type AvatarDescriptionProps, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, AvatarName, type AvatarNameProps, AvatarOverlay, type AvatarOverlayProps, type AvatarProps, type AvatarStatusChangeDetails, } from './components/Avatar/index.js';
26121
+ export { AgentItem, type AgentItemProps, type AgentItemSize, Avatar, AvatarContent, type AvatarContentProps, AvatarDescription, type AvatarDescriptionProps, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, AvatarName, type AvatarNameProps, AvatarOverlay, type AvatarOverlayProps, type AvatarProps, type AvatarStatusChangeDetails, } from './components/Avatar/index.js';
26060
26122
  export { Badge, type BadgeProps } from './components/Badge/index.js';
26061
26123
  export { Banner, BannerClose, type BannerCloseProps, BannerContent, type BannerContentProps, BannerControls, type BannerControlsProps, BannerDescription, type BannerDescriptionProps, BannerIcon, type BannerIconProps, BannerLink, type BannerLinkProps, type BannerProps, BannerTitle, type BannerTitleProps, type BannerVariant, } from './components/Banner/index.js';
26062
26124
  export { Breadcrumbs, BreadcrumbsEllipsis, type BreadcrumbsEllipsisProps, BreadcrumbsItem, type BreadcrumbsItemProps, type BreadcrumbsProps, BreadcrumbsScopeSwitcher, type BreadcrumbsScopeSwitcherProps, BreadcrumbsSeparator, type BreadcrumbsSeparatorProps, type ScopeSwitcherItem, } from './components/Breadcrumbs/index.js';
@@ -26609,6 +26671,10 @@ export declare function optY(c: {
26609
26671
  export declare const optPx: (c: {
26610
26672
  shape: string;
26611
26673
  }, size: number) => number;
26674
+ /** The px between the character's box and its body on each side, so a name can keep its gap from the body. */
26675
+ export declare const insetPx: (c: {
26676
+ shape: string;
26677
+ }, size: number) => number;
26612
26678
 
26613
26679
  // lib/agent-characters/glyph.d.ts
26614
26680
  import { type StateId } from './eyes.js';
@@ -26657,6 +26723,8 @@ export declare function lookIssues(look: Look, { isWally, others }: {
26657
26723
  * `propPool`: no prop by default (P10), since a custom agent's job is not known.
26658
26724
  */
26659
26725
  export declare function defaultLook(agentId: string, others?: readonly Look[], propPool?: readonly AgentPropId[]): AgentLook;
26726
+ /** A preset's look; any other id (or none) gets its deterministic default look, never Wally's coral. */
26727
+ export declare const lookOf: (id: string | undefined) => AgentLook | import("./data.gen.js").AgentPreset;
26660
26728
  export {};
26661
26729
 
26662
26730
  // lib/agent-characters/motion.d.ts
@@ -3,7 +3,7 @@
3
3
  "layout": "files",
4
4
  "createdOnFiles": {
5
5
  "v": 1,
6
- "at": "2026-11-12T12:36:55Z"
6
+ "at": "2026-11-12T15:14:43Z"
7
7
  },
8
8
  "title": "Wallarm Design System",
9
9
  "namespace": "WallarmDS",
@@ -28,8 +28,8 @@
28
28
  },
29
29
  "lastChange": {
30
30
  "by": "Wallarm",
31
- "at": "2026-11-12T12:36:55Z",
32
- "via": "GitHub · wallarm/design-system@119e4227",
33
- "note": "v4.14.0: 532 colors, 120 component guides, 582 icons."
31
+ "at": "2026-11-12T15:14:43Z",
32
+ "via": "GitHub · wallarm/design-system@2ce8d267",
33
+ "note": "v4.16.0: 532 colors, 120 component guides, 582 icons."
34
34
  }
35
35
  }
@@ -5187,7 +5187,7 @@
5187
5187
  "meta": {
5188
5188
  "source": "github",
5189
5189
  "repo": "wallarm/design-system",
5190
- "ref": "v4.14.0@119e422794b5b720e0f3593d81ab15b384ac479b",
5190
+ "ref": "v4.16.0@2ce8d26725b6e28c610a3e060b62bac79211cf36",
5191
5191
  "package": "packages/design-system",
5192
5192
  "paths": {
5193
5193
  "tokens": [
@@ -5230,6 +5230,6 @@
5230
5230
  "src/theme/fonts/GeistMono-Variable.woff2"
5231
5231
  ]
5232
5232
  },
5233
- "synced": "2026-11-12T12:36:55Z"
5233
+ "synced": "2026-11-12T15:14:43Z"
5234
5234
  }
5235
5235
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallarm-org/claude-design",
3
- "version": "4.14.0",
3
+ "version": "4.16.0",
4
4
  "description": "Installs Wallarm Design System in Claude Design: `npx -y @wallarm-org/claude-design@latest export`",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -51,8 +51,8 @@
51
51
  "tsx": "4.23.15",
52
52
  "tw-animate-css": "1.4.0",
53
53
  "typescript": "7.0.2",
54
+ "@wallarm-org/design-system": "4.16.0",
54
55
  "@wallarm-org/mcp-core": "0.1.0",
55
- "@wallarm-org/design-system": "4.14.0",
56
56
  "@wallarm-org/typescript-config": "0.0.0"
57
57
  },
58
58
  "scripts": {