@wallarm-org/design-system 0.58.0-rc-feature-AS-1085.4 → 0.58.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.
@@ -5,8 +5,8 @@ import { GameHud } from "./GameHud.js";
5
5
  import { createSweepEngine, resolveOptions, useGameKeyboard } from "./module/index.js";
6
6
  const GATE_TARGET = 5;
7
7
  const AnimatedBackground = (props)=>{
8
- const { ref, texture, paused, game = false, excludeCardSize, className, ...rest } = props;
9
- const internalRef = useRef(null);
8
+ const { ref, texture, paused, game = false, excludeCardSize, className, children, ...rest } = props;
9
+ const canvasRef = useRef(null);
10
10
  const engineRef = useRef(null);
11
11
  const reducedMotionRef = useRef(null);
12
12
  const options = resolveOptions(props);
@@ -35,7 +35,7 @@ const AnimatedBackground = (props)=>{
35
35
  const accuracy = faced > 0 ? Math.round(stats.stopped / faced * 100) : 100;
36
36
  const hasStartedRoundRef = useRef(false);
37
37
  useEffect(()=>{
38
- const canvas = internalRef.current;
38
+ const canvas = canvasRef.current;
39
39
  if (!canvas) return;
40
40
  const engine = createSweepEngine(canvas, optionsRef.current);
41
41
  engineRef.current = engine;
@@ -119,7 +119,7 @@ const AnimatedBackground = (props)=>{
119
119
  useGameKeyboard(engineRef, game, armed, roundOver, hasStartedRoundRef);
120
120
  const onPointerDown = useCallback((e)=>{
121
121
  if (!game) return;
122
- const canvas = internalRef.current;
122
+ const canvas = canvasRef.current;
123
123
  if (!canvas) return;
124
124
  const rect = canvas.getBoundingClientRect();
125
125
  const x = e.clientX - rect.left;
@@ -131,30 +131,53 @@ const AnimatedBackground = (props)=>{
131
131
  const handleTryAgain = useCallback(()=>{
132
132
  engineRef.current?.startRound();
133
133
  }, []);
134
- return /*#__PURE__*/ jsxs(Fragment, {
134
+ const gameHud = gameActive && /*#__PURE__*/ jsx(GameHud, {
135
+ caught: caught,
136
+ armed: armed,
137
+ roundOver: roundOver,
138
+ stats: stats,
139
+ accuracy: accuracy,
140
+ faced: faced,
141
+ catchKey: catchKey,
142
+ gateTarget: GATE_TARGET,
143
+ onTryAgain: handleTryAgain
144
+ });
145
+ if (null == children) return /*#__PURE__*/ jsxs(Fragment, {
135
146
  children: [
136
147
  /*#__PURE__*/ jsx("canvas", {
148
+ "data-slot": "animated-background",
137
149
  ...rest,
138
150
  ref: (node)=>{
139
- internalRef.current = node;
151
+ canvasRef.current = node;
140
152
  if ('function' == typeof ref) ref(node);
141
153
  else if (ref) ref.current = node;
142
154
  },
143
- "data-slot": "animated-background",
144
155
  "aria-hidden": "true",
145
156
  className: cn('h-full w-full pointer-events-none', gameActive && 'pointer-events-auto', className),
146
157
  onPointerDown: gameActive ? onPointerDown : void 0
147
158
  }),
148
- gameActive && /*#__PURE__*/ jsx(GameHud, {
149
- caught: caught,
150
- armed: armed,
151
- roundOver: roundOver,
152
- stats: stats,
153
- accuracy: accuracy,
154
- faced: faced,
155
- catchKey: catchKey,
156
- gateTarget: GATE_TARGET,
157
- onTryAgain: handleTryAgain
159
+ gameHud
160
+ ]
161
+ });
162
+ return /*#__PURE__*/ jsxs("div", {
163
+ "data-slot": "animated-background",
164
+ ...rest,
165
+ ref: ref,
166
+ className: cn('relative', className),
167
+ children: [
168
+ /*#__PURE__*/ jsx("canvas", {
169
+ ref: canvasRef,
170
+ "aria-hidden": "true",
171
+ className: cn('absolute inset-0 h-full w-full pointer-events-none', gameActive && 'pointer-events-auto'),
172
+ onPointerDown: gameActive ? onPointerDown : void 0
173
+ }),
174
+ gameHud,
175
+ /*#__PURE__*/ jsx("div", {
176
+ className: "pointer-events-none absolute inset-0 z-10 flex items-center justify-center",
177
+ children: /*#__PURE__*/ jsx("div", {
178
+ className: "pointer-events-auto",
179
+ children: children
180
+ })
158
181
  })
159
182
  ]
160
183
  });
@@ -1,7 +1,9 @@
1
- import type { CanvasHTMLAttributes, Ref } from 'react';
1
+ import type { HTMLAttributes, ReactNode, Ref } from 'react';
2
2
  export type Texture = 'clean' | 'halftone';
3
- export interface AnimatedBackgroundProps extends Omit<CanvasHTMLAttributes<HTMLCanvasElement>, 'children'> {
4
- ref?: Ref<HTMLCanvasElement>;
3
+ export interface AnimatedBackgroundProps extends HTMLAttributes<HTMLDivElement> {
4
+ ref?: Ref<HTMLDivElement>;
5
+ /** Content rendered centered above the animated canvas. */
6
+ children?: ReactNode;
5
7
  /** Variant A (`clean`) vs Variant B (`halftone`). */
6
8
  texture?: Texture;
7
9
  /** Grid cell size in px. */
@@ -0,0 +1,10 @@
1
+ import type { FC, HTMLAttributes, ReactNode, Ref } from 'react';
2
+ import type { TestableProps } from '../../utils/testId';
3
+ export interface UtilityPageProps extends HTMLAttributes<HTMLDivElement>, TestableProps {
4
+ ref?: Ref<HTMLDivElement>;
5
+ title: string;
6
+ subtitle: string;
7
+ description: string;
8
+ children?: ReactNode;
9
+ }
10
+ export declare const UtilityPage: FC<UtilityPageProps>;
@@ -0,0 +1,48 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/cn.js";
3
+ import { AnimatedBackground } from "../AnimatedBackground/index.js";
4
+ import { Logo } from "../Logo/index.js";
5
+ const UtilityPage = ({ ref, title, subtitle, description, className, children, ...props })=>/*#__PURE__*/ jsx(AnimatedBackground, {
6
+ ...props,
7
+ ref: ref,
8
+ "data-slot": "utility-page",
9
+ className: cn('min-h-screen w-full bg-component-app-shell-bg', className),
10
+ children: /*#__PURE__*/ jsxs("div", {
11
+ className: "flex w-[482px] flex-col items-center gap-32 rounded-12 border-1 border-border-primary-light bg-bg-surface-1 px-48 pt-32 pb-80 shadow-xs",
12
+ children: [
13
+ /*#__PURE__*/ jsx(Logo, {
14
+ type: "full",
15
+ size: "lg",
16
+ className: "self-start mb-32"
17
+ }),
18
+ /*#__PURE__*/ jsxs("div", {
19
+ className: "w-full flex flex-col items-start gap-12",
20
+ children: [
21
+ /*#__PURE__*/ jsx("h1", {
22
+ className: "font-mono text-6xl font-medium text-text-primary",
23
+ children: title
24
+ }),
25
+ /*#__PURE__*/ jsxs("div", {
26
+ className: "flex flex-col items-start gap-4",
27
+ children: [
28
+ /*#__PURE__*/ jsx("p", {
29
+ className: "text-lg font-medium text-text-primary",
30
+ children: subtitle
31
+ }),
32
+ /*#__PURE__*/ jsx("p", {
33
+ className: "text-sm text-text-secondary",
34
+ children: description
35
+ })
36
+ ]
37
+ })
38
+ ]
39
+ }),
40
+ children && /*#__PURE__*/ jsx("div", {
41
+ className: "w-full flex flex-col gap-8",
42
+ children: children
43
+ })
44
+ ]
45
+ })
46
+ });
47
+ UtilityPage.displayName = 'UtilityPage';
48
+ export { UtilityPage };
@@ -0,0 +1 @@
1
+ export { UtilityPage, type UtilityPageProps } from './UtilityPage';
@@ -0,0 +1,2 @@
1
+ import { UtilityPage } from "./UtilityPage.js";
2
+ export { UtilityPage };
package/dist/index.d.ts CHANGED
@@ -77,4 +77,5 @@ export { ToggleButton, type ToggleButtonProps, } from './components/ToggleButton
77
77
  export { Tooltip, TooltipContent, type TooltipProps, TooltipTrigger, } from './components/Tooltip';
78
78
  export { TopHeader, TopHeaderActions, type TopHeaderActionsProps, TopHeaderLogo, type TopHeaderLogoProps, type TopHeaderProps, } from './components/TopHeader';
79
79
  export { type BeaconStepEffectOptions, beaconStepEffect, Tour, type TourProps, type TourStatusChangeDetails, type TourStepAction, type TourStepChangeDetails, type TourStepChangeDetailsExtended, type TourStepDetails, type TourStepEffectArgs, useTour, type WaitForStepEventOptions, waitForStepEvent, } from './components/Tour';
80
+ export { UtilityPage, type UtilityPageProps } from './components/UtilityPage';
80
81
  export { type TestableProps, TestIdProvider, useTestId } from './utils/testId';
package/dist/index.js CHANGED
@@ -66,5 +66,6 @@ import { ToggleButton } from "./components/ToggleButton/index.js";
66
66
  import { Tooltip, TooltipContent, TooltipTrigger } from "./components/Tooltip/index.js";
67
67
  import { TopHeader, TopHeaderActions, TopHeaderLogo } from "./components/TopHeader/index.js";
68
68
  import { Tour, beaconStepEffect, useTour, waitForStepEvent } from "./components/Tour/index.js";
69
+ import { UtilityPage } from "./components/UtilityPage/index.js";
69
70
  import { TestIdProvider, useTestId } from "./utils/testId.js";
70
- export { Accordion, AccordionActions, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertClose, AlertContent, AlertControls, AlertDescription, AlertIcon, AlertTitle, AnimatedBackground, AppShell, AppShellHeader, AppShellRail, AppShellRemote, Attribute, AttributeActions, AttributeActionsContent, AttributeActionsItem, AttributeActionsTarget, AttributeLabel, AttributeLabelDescription, AttributeLabelInfo, AttributeValue, Badge, Banner, BannerClose, BannerContent, BannerControls, BannerDescription, BannerLink, BannerTitle, Breadcrumbs, BreadcrumbsEllipsis, BreadcrumbsItem, BreadcrumbsScopeSwitcher, BreadcrumbsSeparator, Button, Calendar, CalendarApplyButton, CalendarBody, CalendarContent, CalendarDate, CalendarDateTime, CalendarDayName, CalendarFooter, CalendarFooterControls, CalendarGrid, CalendarGrids, CalendarHeader, CalendarInputHeader, CalendarKeyboardHints, CalendarPresetItem, CalendarPresets, CalendarProvider, CalendarResetButton, CalendarTrigger, Card, CardContent, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxDescription, CheckboxGroup, CheckboxIndicator, CheckboxLabel, Code, Country, CountryFlag, CountryName, DAY_NAMES, DEFAULT_RANGE_PRESETS, DEFAULT_SINGLE_PRESETS, DateFormatProvider, DateInput, DateRangeEndValue, DateRangeInput, DateRangeProvider, DateRangeSeparator, DateRangeStartValue, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, DrawerFooterControls, DrawerHeader, DrawerPositioner, DrawerResizeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuContextTrigger, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuInput, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemDescription, DropdownMenuItemIcon, DropdownMenuItemText, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, DropdownMenuTriggerItem, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterInput, FilterInputChip, FilterInputFieldMenu, FilterInputOperatorMenu, Flex, FormatDateTime, HStack, HTTP_METHODS, HTTP_METHOD_COLOR, Heading, HttpMethod, Input, InputGroup, InputGroupAddon, InputGroupText, Ip, IpAddress, IpCountry, IpList, IpPort, IpProvider, Kbd, KbdGroup, Link, Loader, Logo, MONTH_NAMES, NavRail, NavRailBody, NavRailFooter, NavRailItem, NavRailSeparator, NavRailSkeleton, NumberInput, NumericBadge, OTPInput, OverflowTooltip, OverflowTooltipContent, Page, PageActions, PageContent, PageHeader, PageHostProvider, PageTitle, ParameterPath, Popover, PopoverContent, PopoverTrigger, Progress, RESPONSE_CODE_COLOR, Radio, RadioDescription, RadioGroup, RadioIndicator, RadioLabel, RemoteShell, RemoteShellBreadcrumb, RemoteShellContent, RemoteShellPanel, ResponseCode, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaViewport, SegmentedControl, SegmentedControlButton, SegmentedControlItem, SegmentedControlSeparator, SegmentedTabs, SegmentedTabsButton, SegmentedTabsContent, SegmentedTabsList, SegmentedTabsSeparator, SegmentedTabsTrigger, SegmentedTabsTriggerButton, Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, Selection, SelectionAll, SelectionBulkBar, SelectionItem, Separator, Skeleton, SplashScreen, SplitButton, Stack, Switch, SwitchControl, SwitchDescription, SwitchLabel, Table, TableActionBar, TableEmptyState, TableSettingsMenu, Tabs, TabsButton, TabsContent, TabsLineActions, TabsList, TabsSeparator, TabsTrigger, Tag, TagClose, TestIdProvider, Text, Textarea, ThemeProvider, Time, TimeInput, Toast, ToastActions, Toaster, ToggleButton, Tooltip, TooltipContent, TooltipTrigger, TopHeader, TopHeaderActions, TopHeaderLogo, Tour, VStack, ZonedDateTime, beaconStepEffect, cardVariants, createTableColumnHelper, datacenters, drawerContentVariants, drawerPositionerVariants, findFirstLinkPath, formatAsFilter, getLocalTimeZone, getResponseCodeCategory, parseDate, parseDateTime, parseTime, parseZonedDateTime, proxyTypes, pushPathname, sourceLabels, toaster, today, useCalendarContext, useDateFormat, useDateRangeContext, useDrawerContext, useLocationPathname, usePageHost, useRemoteShellContext, useTestId, useTheme, useTour, waitForStepEvent };
71
+ export { Accordion, AccordionActions, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertClose, AlertContent, AlertControls, AlertDescription, AlertIcon, AlertTitle, AnimatedBackground, AppShell, AppShellHeader, AppShellRail, AppShellRemote, Attribute, AttributeActions, AttributeActionsContent, AttributeActionsItem, AttributeActionsTarget, AttributeLabel, AttributeLabelDescription, AttributeLabelInfo, AttributeValue, Badge, Banner, BannerClose, BannerContent, BannerControls, BannerDescription, BannerLink, BannerTitle, Breadcrumbs, BreadcrumbsEllipsis, BreadcrumbsItem, BreadcrumbsScopeSwitcher, BreadcrumbsSeparator, Button, Calendar, CalendarApplyButton, CalendarBody, CalendarContent, CalendarDate, CalendarDateTime, CalendarDayName, CalendarFooter, CalendarFooterControls, CalendarGrid, CalendarGrids, CalendarHeader, CalendarInputHeader, CalendarKeyboardHints, CalendarPresetItem, CalendarPresets, CalendarProvider, CalendarResetButton, CalendarTrigger, Card, CardContent, CardFooter, CardHeader, CardTitle, Checkbox, CheckboxDescription, CheckboxGroup, CheckboxIndicator, CheckboxLabel, Code, Country, CountryFlag, CountryName, DAY_NAMES, DEFAULT_RANGE_PRESETS, DEFAULT_SINGLE_PRESETS, DateFormatProvider, DateInput, DateRangeEndValue, DateRangeInput, DateRangeProvider, DateRangeSeparator, DateRangeStartValue, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, DrawerFooterControls, DrawerHeader, DrawerPositioner, DrawerResizeHandle, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuContextTrigger, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuInput, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemDescription, DropdownMenuItemIcon, DropdownMenuItemText, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, DropdownMenuTriggerItem, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterInput, FilterInputChip, FilterInputFieldMenu, FilterInputOperatorMenu, Flex, FormatDateTime, HStack, HTTP_METHODS, HTTP_METHOD_COLOR, Heading, HttpMethod, Input, InputGroup, InputGroupAddon, InputGroupText, Ip, IpAddress, IpCountry, IpList, IpPort, IpProvider, Kbd, KbdGroup, Link, Loader, Logo, MONTH_NAMES, NavRail, NavRailBody, NavRailFooter, NavRailItem, NavRailSeparator, NavRailSkeleton, NumberInput, NumericBadge, OTPInput, OverflowTooltip, OverflowTooltipContent, Page, PageActions, PageContent, PageHeader, PageHostProvider, PageTitle, ParameterPath, Popover, PopoverContent, PopoverTrigger, Progress, RESPONSE_CODE_COLOR, Radio, RadioDescription, RadioGroup, RadioIndicator, RadioLabel, RemoteShell, RemoteShellBreadcrumb, RemoteShellContent, RemoteShellPanel, ResponseCode, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaViewport, SegmentedControl, SegmentedControlButton, SegmentedControlItem, SegmentedControlSeparator, SegmentedTabs, SegmentedTabsButton, SegmentedTabsContent, SegmentedTabsList, SegmentedTabsSeparator, SegmentedTabsTrigger, SegmentedTabsTriggerButton, Select, SelectButton, SelectClearTrigger, SelectContent, SelectFooter, SelectGroup, SelectGroupLabel, SelectHeader, SelectInput, SelectOption, SelectOptionDescription, SelectOptionIndicator, SelectOptionText, SelectPositioner, SelectSearchInput, SelectSeparator, Selection, SelectionAll, SelectionBulkBar, SelectionItem, Separator, Skeleton, SplashScreen, SplitButton, Stack, Switch, SwitchControl, SwitchDescription, SwitchLabel, Table, TableActionBar, TableEmptyState, TableSettingsMenu, Tabs, TabsButton, TabsContent, TabsLineActions, TabsList, TabsSeparator, TabsTrigger, Tag, TagClose, TestIdProvider, Text, Textarea, ThemeProvider, Time, TimeInput, Toast, ToastActions, Toaster, ToggleButton, Tooltip, TooltipContent, TooltipTrigger, TopHeader, TopHeaderActions, TopHeaderLogo, Tour, UtilityPage, VStack, ZonedDateTime, beaconStepEffect, cardVariants, createTableColumnHelper, datacenters, drawerContentVariants, drawerPositionerVariants, findFirstLinkPath, formatAsFilter, getLocalTimeZone, getResponseCodeCategory, parseDate, parseDateTime, parseTime, parseZonedDateTime, proxyTypes, pushPathname, sourceLabels, toaster, today, useCalendarContext, useDateFormat, useDateRangeContext, useDrawerContext, useLocationPathname, usePageHost, useRemoteShellContext, useTestId, useTheme, useTour, waitForStepEvent };
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.57.0",
3
- "generatedAt": "2026-06-11T11:08:58.087Z",
2
+ "version": "0.57.1",
3
+ "generatedAt": "2026-06-11T17:00:57.573Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "Accordion",
@@ -3431,16 +3431,6 @@
3431
3431
  "required": false,
3432
3432
  "description": "Card dimensions for spawn-exclusion when game is enabled."
3433
3433
  },
3434
- {
3435
- "name": "height",
3436
- "type": "string | number | undefined",
3437
- "required": false
3438
- },
3439
- {
3440
- "name": "width",
3441
- "type": "string | number | undefined",
3442
- "required": false
3443
- },
3444
3434
  {
3445
3435
  "name": "defaultChecked",
3446
3436
  "type": "boolean | undefined",
@@ -3717,11 +3707,11 @@
3717
3707
  "examples": [
3718
3708
  {
3719
3709
  "name": "Halftone",
3720
- "code": "() => (\n <div className='h-[500px] w-full'>\n <AnimatedBackground />\n </div>\n)"
3710
+ "code": "() => (\n <AnimatedBackground className='h-[500px] w-full' />\n)"
3721
3711
  },
3722
3712
  {
3723
3713
  "name": "WithCard",
3724
- "code": "() => (\n <div className='relative h-screen w-screen'>\n <AnimatedBackground game excludeCardSize={{ width: 300, height: 200 }} />\n\n <Card className='absolute top-1/2 left-1/2 -translate-1/2 w-[300px] h-[200px]'>\n <CardHeader>\n <CardTitle>Sign In</CardTitle>\n </CardHeader>\n <CardContent>\n <p className='text-sm text-text-secondary'>\n Decorative background renders behind interactive content.\n </p>\n </CardContent>\n </Card>\n </div>\n)"
3714
+ "code": "() => (\n <AnimatedBackground\n className='h-screen w-screen'\n game\n excludeCardSize={{ width: 300, height: 200 }}\n >\n <Card className='w-[300px] h-[200px]'>\n <CardHeader>\n <CardTitle>Sign In</CardTitle>\n </CardHeader>\n <CardContent>\n <p className='text-sm text-text-secondary'>\n Decorative background renders behind interactive content.\n </p>\n </CardContent>\n </Card>\n </AnimatedBackground>\n)"
3725
3715
  }
3726
3716
  ]
3727
3717
  },
@@ -58261,6 +58251,312 @@
58261
58251
  "code": "() => {\n const nameRef = useRef<HTMLInputElement>(null);\n const emailRef = useRef<HTMLInputElement>(null);\n const termsRef = useRef<HTMLLabelElement>(null);\n\n const steps: TourStepDetails[] = [\n {\n id: 'enter-name',\n type: 'tooltip',\n title: 'Enter Your Name',\n description: 'Type your name in the input field to continue (at least 2 characters).',\n target: () => nameRef.current,\n placement: 'bottom-start',\n effect: args =>\n waitForStepEvent('input', args, {\n predicate: el => (el as HTMLInputElement).value.trim().length >= 2,\n delay: 1500,\n }),\n },\n {\n id: 'enter-email',\n type: 'tooltip',\n title: 'Enter Your Email',\n description: 'Now enter a valid email address.',\n target: () => emailRef.current,\n placement: 'bottom-start',\n effect: args =>\n waitForStepEvent('input', args, {\n predicate: el => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test((el as HTMLInputElement).value);\n },\n delay: 1500,\n }),\n },\n {\n id: 'check-terms',\n type: 'tooltip',\n title: 'Accept Terms',\n description: 'Check the checkbox to accept the terms.',\n target: () => termsRef.current,\n placement: 'bottom-start',\n effect: args =>\n waitForStepEvent(\n 'change',\n {\n ...args,\n target: () => termsRef.current?.querySelector<HTMLInputElement>('input') ?? null,\n },\n {\n predicate: el => el.checked,\n },\n ),\n },\n {\n id: 'complete',\n type: 'dialog',\n title: 'Form Complete!',\n description: 'You have successfully filled out the form',\n meta: {\n mediaSrc: './tour-cat.jpg',\n mediaAlt: 'Completion',\n },\n },\n ];\n\n const tour = useTour({ closeOnInteractOutside: false, steps });\n\n return (\n <div className='w-600 p-32'>\n <VStack gap={24} align='stretch'>\n <Text size='sm' color='secondary'>\n To continue a step, user has to complete the highlighted action. Once the action is\n performed, the tour will automatically move forward.\n </Text>\n\n <FieldSet>\n <Field>\n <FieldLabel>Name</FieldLabel>\n <Input ref={nameRef} placeholder='Enter your name' />\n </Field>\n <Field>\n <FieldLabel>Email</FieldLabel>\n <Input ref={emailRef} type='email' placeholder='Enter your email' />\n </Field>\n\n <Checkbox ref={termsRef}>\n <CheckboxIndicator />\n <CheckboxLabel>I accept the terms and conditions</CheckboxLabel>\n </Checkbox>\n </FieldSet>\n\n <Button\n data-testid='tour-start'\n variant='primary'\n color='brand'\n size='large'\n onClick={() => tour.start()}\n >\n Interactive tour with inputs\n </Button>\n </VStack>\n\n <Tour tour={tour} />\n </div>\n );\n}"
58262
58252
  }
58263
58253
  ]
58254
+ },
58255
+ {
58256
+ "name": "UtilityPage",
58257
+ "importPath": "@wallarm-org/design-system/UtilityPage",
58258
+ "props": [
58259
+ {
58260
+ "name": "title",
58261
+ "type": "string",
58262
+ "required": true
58263
+ },
58264
+ {
58265
+ "name": "subtitle",
58266
+ "type": "string",
58267
+ "required": true
58268
+ },
58269
+ {
58270
+ "name": "description",
58271
+ "type": "string",
58272
+ "required": true
58273
+ },
58274
+ {
58275
+ "name": "defaultChecked",
58276
+ "type": "boolean | undefined",
58277
+ "required": false
58278
+ },
58279
+ {
58280
+ "name": "defaultValue",
58281
+ "type": "string | number | readonly string[] | undefined",
58282
+ "required": false
58283
+ },
58284
+ {
58285
+ "name": "suppressContentEditableWarning",
58286
+ "type": "boolean | undefined",
58287
+ "required": false
58288
+ },
58289
+ {
58290
+ "name": "suppressHydrationWarning",
58291
+ "type": "boolean | undefined",
58292
+ "required": false
58293
+ },
58294
+ {
58295
+ "name": "accessKey",
58296
+ "type": "string | undefined",
58297
+ "required": false
58298
+ },
58299
+ {
58300
+ "name": "autoCapitalize",
58301
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
58302
+ "required": false
58303
+ },
58304
+ {
58305
+ "name": "autoFocus",
58306
+ "type": "boolean | undefined",
58307
+ "required": false
58308
+ },
58309
+ {
58310
+ "name": "contentEditable",
58311
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
58312
+ "required": false
58313
+ },
58314
+ {
58315
+ "name": "contextMenu",
58316
+ "type": "string | undefined",
58317
+ "required": false
58318
+ },
58319
+ {
58320
+ "name": "dir",
58321
+ "type": "string | undefined",
58322
+ "required": false
58323
+ },
58324
+ {
58325
+ "name": "draggable",
58326
+ "type": "Booleanish | undefined",
58327
+ "required": false
58328
+ },
58329
+ {
58330
+ "name": "enterKeyHint",
58331
+ "type": "\"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
58332
+ "required": false
58333
+ },
58334
+ {
58335
+ "name": "hidden",
58336
+ "type": "boolean | undefined",
58337
+ "required": false
58338
+ },
58339
+ {
58340
+ "name": "id",
58341
+ "type": "string | undefined",
58342
+ "required": false
58343
+ },
58344
+ {
58345
+ "name": "lang",
58346
+ "type": "string | undefined",
58347
+ "required": false
58348
+ },
58349
+ {
58350
+ "name": "nonce",
58351
+ "type": "string | undefined",
58352
+ "required": false
58353
+ },
58354
+ {
58355
+ "name": "slot",
58356
+ "type": "string | undefined",
58357
+ "required": false
58358
+ },
58359
+ {
58360
+ "name": "spellCheck",
58361
+ "type": "Booleanish | undefined",
58362
+ "required": false
58363
+ },
58364
+ {
58365
+ "name": "tabIndex",
58366
+ "type": "number | undefined",
58367
+ "required": false
58368
+ },
58369
+ {
58370
+ "name": "translate",
58371
+ "type": "\"yes\" | \"no\" | undefined",
58372
+ "required": false
58373
+ },
58374
+ {
58375
+ "name": "radioGroup",
58376
+ "type": "string | undefined",
58377
+ "required": false
58378
+ },
58379
+ {
58380
+ "name": "role",
58381
+ "type": "AriaRole | undefined",
58382
+ "required": false
58383
+ },
58384
+ {
58385
+ "name": "about",
58386
+ "type": "string | undefined",
58387
+ "required": false
58388
+ },
58389
+ {
58390
+ "name": "content",
58391
+ "type": "string | undefined",
58392
+ "required": false
58393
+ },
58394
+ {
58395
+ "name": "datatype",
58396
+ "type": "string | undefined",
58397
+ "required": false
58398
+ },
58399
+ {
58400
+ "name": "inlist",
58401
+ "type": "any",
58402
+ "required": false
58403
+ },
58404
+ {
58405
+ "name": "prefix",
58406
+ "type": "string | undefined",
58407
+ "required": false
58408
+ },
58409
+ {
58410
+ "name": "property",
58411
+ "type": "string | undefined",
58412
+ "required": false
58413
+ },
58414
+ {
58415
+ "name": "rel",
58416
+ "type": "string | undefined",
58417
+ "required": false
58418
+ },
58419
+ {
58420
+ "name": "resource",
58421
+ "type": "string | undefined",
58422
+ "required": false
58423
+ },
58424
+ {
58425
+ "name": "rev",
58426
+ "type": "string | undefined",
58427
+ "required": false
58428
+ },
58429
+ {
58430
+ "name": "typeof",
58431
+ "type": "string | undefined",
58432
+ "required": false
58433
+ },
58434
+ {
58435
+ "name": "vocab",
58436
+ "type": "string | undefined",
58437
+ "required": false
58438
+ },
58439
+ {
58440
+ "name": "autoCorrect",
58441
+ "type": "string | undefined",
58442
+ "required": false
58443
+ },
58444
+ {
58445
+ "name": "autoSave",
58446
+ "type": "string | undefined",
58447
+ "required": false
58448
+ },
58449
+ {
58450
+ "name": "color",
58451
+ "type": "string | undefined",
58452
+ "required": false
58453
+ },
58454
+ {
58455
+ "name": "itemProp",
58456
+ "type": "string | undefined",
58457
+ "required": false
58458
+ },
58459
+ {
58460
+ "name": "itemScope",
58461
+ "type": "boolean | undefined",
58462
+ "required": false
58463
+ },
58464
+ {
58465
+ "name": "itemType",
58466
+ "type": "string | undefined",
58467
+ "required": false
58468
+ },
58469
+ {
58470
+ "name": "itemID",
58471
+ "type": "string | undefined",
58472
+ "required": false
58473
+ },
58474
+ {
58475
+ "name": "itemRef",
58476
+ "type": "string | undefined",
58477
+ "required": false
58478
+ },
58479
+ {
58480
+ "name": "results",
58481
+ "type": "number | undefined",
58482
+ "required": false
58483
+ },
58484
+ {
58485
+ "name": "security",
58486
+ "type": "string | undefined",
58487
+ "required": false
58488
+ },
58489
+ {
58490
+ "name": "unselectable",
58491
+ "type": "\"off\" | \"on\" | undefined",
58492
+ "required": false
58493
+ },
58494
+ {
58495
+ "name": "popover",
58496
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
58497
+ "required": false
58498
+ },
58499
+ {
58500
+ "name": "popoverTargetAction",
58501
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
58502
+ "required": false
58503
+ },
58504
+ {
58505
+ "name": "popoverTarget",
58506
+ "type": "string | undefined",
58507
+ "required": false
58508
+ },
58509
+ {
58510
+ "name": "inert",
58511
+ "type": "boolean | undefined",
58512
+ "required": false,
58513
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
58514
+ },
58515
+ {
58516
+ "name": "inputMode",
58517
+ "type": "\"none\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
58518
+ "required": false,
58519
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
58520
+ },
58521
+ {
58522
+ "name": "is",
58523
+ "type": "string | undefined",
58524
+ "required": false,
58525
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
58526
+ },
58527
+ {
58528
+ "name": "exportparts",
58529
+ "type": "string | undefined",
58530
+ "required": false,
58531
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
58532
+ },
58533
+ {
58534
+ "name": "part",
58535
+ "type": "string | undefined",
58536
+ "required": false,
58537
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
58538
+ }
58539
+ ],
58540
+ "variants": [],
58541
+ "subComponents": [],
58542
+ "examples": [
58543
+ {
58544
+ "name": "Error404",
58545
+ "code": "args => (\n <UtilityPage {...args}>\n <Button variant='primary' color='brand' size='large'>\n Take me home\n </Button>\n </UtilityPage>\n)"
58546
+ },
58547
+ {
58548
+ "name": "Error403",
58549
+ "code": "args => (\n <UtilityPage {...args}>\n <Button variant='primary' color='brand' size='large'>\n Take me home\n </Button>\n </UtilityPage>\n)"
58550
+ },
58551
+ {
58552
+ "name": "Error500",
58553
+ "code": "args => (\n <UtilityPage {...args}>\n <Button variant='primary' color='brand' size='large'>\n Take me home\n </Button>\n <Button variant='secondary' color='neutral' size='large'>\n Still broken? Check status <ArrowRight />\n </Button>\n </UtilityPage>\n)"
58554
+ },
58555
+ {
58556
+ "name": "Offline",
58557
+ "code": "args => (\n <UtilityPage {...args}>\n <Button variant='primary' color='brand' size='large'>\n Try again\n </Button>\n </UtilityPage>\n)"
58558
+ }
58559
+ ]
58264
58560
  }
58265
58561
  ],
58266
58562
  "tokens": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallarm-org/design-system",
3
- "version": "0.58.0-rc-feature-AS-1085.4",
3
+ "version": "0.58.0",
4
4
  "description": "Core design system library with React components and Storybook documentation",
5
5
  "publishConfig": {
6
6
  "access": "public",