@wallarm-org/design-system 0.50.1 → 0.50.2-rc-feature-shell.2

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 (52) hide show
  1. package/dist/components/AppShell/story-content/_storyConfigRenderer.d.ts +1 -1
  2. package/dist/components/AppShell/story-content/_storyConfigRenderer.js +15 -29
  3. package/dist/components/AppShell/story-content/_storyLib.js +1 -1
  4. package/dist/components/AppShell/story-content/_storyNavConfigs.d.ts +1 -1
  5. package/dist/components/AppShell/story-content/_storyNavConfigs.js +5 -0
  6. package/dist/components/NavPanel/NavPanelHeader.js +1 -1
  7. package/dist/components/Page/PageContent.js +1 -1
  8. package/dist/components/Page/PageHeader.js +1 -1
  9. package/dist/components/{ProductNav → RemoteShell}/HeaderActions.d.ts +1 -1
  10. package/dist/components/{ProductNav → RemoteShell}/NavItemsList.d.ts +1 -1
  11. package/dist/components/RemoteShell/NavPanelContent.d.ts +6 -0
  12. package/dist/components/RemoteShell/NavPanelContent.js +65 -0
  13. package/dist/components/RemoteShell/RemoteShell.d.ts +7 -0
  14. package/dist/components/RemoteShell/RemoteShell.js +109 -9
  15. package/dist/components/RemoteShell/RemoteShellBreadcrumb.js +39 -4
  16. package/dist/components/RemoteShell/RemoteShellContent.d.ts +1 -0
  17. package/dist/components/RemoteShell/RemoteShellContent.js +7 -3
  18. package/dist/components/RemoteShell/RemoteShellPanel.d.ts +4 -2
  19. package/dist/components/RemoteShell/RemoteShellPanel.js +76 -3
  20. package/dist/components/RemoteShell/index.d.ts +2 -0
  21. package/dist/components/RemoteShell/index.js +2 -1
  22. package/dist/components/{ProductNav/ProductNavContext.d.ts → RemoteShell/model/RemoteShellContext.d.ts} +3 -3
  23. package/dist/components/RemoteShell/model/RemoteShellContext.js +9 -0
  24. package/dist/components/RemoteShell/model/index.d.ts +5 -0
  25. package/dist/components/RemoteShell/model/index.js +5 -0
  26. package/dist/components/{ProductNav → RemoteShell/model}/matchNav.js +1 -1
  27. package/dist/components/{ProductNav → RemoteShell/model}/types.d.ts +2 -3
  28. package/dist/index.d.ts +1 -2
  29. package/dist/index.js +2 -3
  30. package/dist/metadata/components.json +35 -303
  31. package/package.json +1 -1
  32. package/dist/components/ProductNav/ProductNav.d.ts +0 -13
  33. package/dist/components/ProductNav/ProductNav.js +0 -109
  34. package/dist/components/ProductNav/ProductNavBreadcrumbs.d.ts +0 -2
  35. package/dist/components/ProductNav/ProductNavBreadcrumbs.js +0 -38
  36. package/dist/components/ProductNav/ProductNavContext.js +0 -9
  37. package/dist/components/ProductNav/ProductNavPanel.d.ts +0 -6
  38. package/dist/components/ProductNav/ProductNavPanel.js +0 -107
  39. package/dist/components/ProductNav/index.d.ts +0 -11
  40. package/dist/components/ProductNav/index.js +0 -10
  41. package/dist/components/ProductNav/useProductNav.d.ts +0 -16
  42. package/dist/components/ProductNav/useProductNav.js +0 -19
  43. /package/dist/components/{ProductNav → RemoteShell}/HeaderActions.js +0 -0
  44. /package/dist/components/{ProductNav → RemoteShell}/NavItemsList.js +0 -0
  45. /package/dist/components/{ProductNav → RemoteShell/model}/matchNav.d.ts +0 -0
  46. /package/dist/components/{ProductNav → RemoteShell/model}/navUtils.d.ts +0 -0
  47. /package/dist/components/{ProductNav → RemoteShell/model}/navUtils.js +0 -0
  48. /package/dist/components/{ProductNav → RemoteShell/model}/types.js +0 -0
  49. /package/dist/components/{ProductNav → RemoteShell/model}/useDrillTransition.d.ts +0 -0
  50. /package/dist/components/{ProductNav → RemoteShell/model}/useDrillTransition.js +0 -0
  51. /package/dist/components/{ProductNav → RemoteShell/model}/useLocationPathname.d.ts +0 -0
  52. /package/dist/components/{ProductNav → RemoteShell/model}/useLocationPathname.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import type { ComponentType } from 'react';
2
- import type { SvgIconProps } from '../../icons/SvgIcon';
2
+ import type { SvgIconProps } from '../../../icons/SvgIcon';
3
3
  export interface NavConfigHeaderAction {
4
4
  icon: ComponentType<SvgIconProps>;
5
5
  label: string;
@@ -8,6 +8,7 @@ export interface NavConfigHeaderAction {
8
8
  }
9
9
  export interface NavConfig {
10
10
  productLabel: string;
11
+ productPath: string;
11
12
  items: NavConfigNode[];
12
13
  headerActions?: NavConfigHeaderAction[];
13
14
  }
@@ -35,7 +36,6 @@ export interface NavConfigDrill {
35
36
  label: string;
36
37
  description?: string;
37
38
  }[];
38
- /** Render a visual divider after this item */
39
39
  dividerAfter?: boolean;
40
40
  }
41
41
  export interface NavConfigGroup {
@@ -45,7 +45,6 @@ export interface NavConfigGroup {
45
45
  children: NavConfigNode[];
46
46
  icon?: ComponentType<SvgIconProps>;
47
47
  defaultExpanded?: boolean;
48
- /** Render a visual divider after this item */
49
48
  dividerAfter?: boolean;
50
49
  }
51
50
  export interface NavConfigSectionHeader {
package/dist/index.d.ts CHANGED
@@ -47,10 +47,9 @@ export { OverflowTooltip, OverflowTooltipContent, type OverflowTooltipContentPro
47
47
  export { Page, PageActions, type PageActionsProps, PageContent, type PageContentProps, PageHeader, type PageHeaderProps, type PageHostContextValue, PageHostProvider, type PageLayoutOptions, type PageProps, PageTitle, type PageTitleProps, usePageHost, } from './components/Page';
48
48
  export { type CopyFormatData, formatAsFilter, ParameterPath, type ParameterPathProps, } from './components/ParameterPath';
49
49
  export { Popover, PopoverContent, PopoverTrigger } from './components/Popover';
50
- export { type BreadcrumbSegment, findDrillNode, findFirstLinkPath, type MatchNavResult, matchNav, type NavConfig, type NavConfigDrill, type NavConfigGroup, type NavConfigLink, type NavConfigNode, NavPanelSkeleton, type NavPanelSkeletonProps, type NavStackEntry, ProductNav, ProductNavBreadcrumbs, type ProductNavContextValue, ProductNavPanel, type ProductNavProps, type UseProductNavResult, useProductNav, useProductNavContext, } from './components/ProductNav';
51
50
  export { Progress, type ProgressColor, type ProgressProps, } from './components/Progress';
52
51
  export { Radio, RadioDescription, type RadioDescriptionProps, RadioGroup, type RadioGroupProps, RadioIndicator, RadioLabel, type RadioLabelProps, type RadioProps, } from './components/Radio';
53
- export { RemoteShell, RemoteShellBreadcrumb, type RemoteShellBreadcrumbProps, RemoteShellContent, type RemoteShellContentProps, RemoteShellPanel, type RemoteShellPanelProps, type RemoteShellProps, } from './components/RemoteShell';
52
+ export { type BreadcrumbSegment, findFirstLinkPath, type NavConfig, type NavConfigDrill, type NavConfigGroup, type NavConfigLink, type NavConfigNode, type NavStackEntry, pushPathname, RemoteShell, RemoteShellBreadcrumb, type RemoteShellBreadcrumbProps, RemoteShellContent, type RemoteShellContentProps, type RemoteShellContextValue, RemoteShellPanel, type RemoteShellPanelProps, type RemoteShellProps, useLocationPathname, useRemoteShellContext, } from './components/RemoteShell';
54
53
  export { getResponseCodeCategory, RESPONSE_CODE_COLOR, ResponseCode, type ResponseCodeCategory, type ResponseCodeProps, } from './components/ResponseCode';
55
54
  export { ScrollArea, ScrollAreaContent, type ScrollAreaContentProps, ScrollAreaCorner, type ScrollAreaProps, ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaViewport, type ScrollAreaViewportProps, } from './components/ScrollArea';
56
55
  export { SegmentedControl, SegmentedControlButton, type SegmentedControlButtonProps, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, SegmentedControlSeparator, type SegmentedControlSeparatorProps, } from './components/SegmentedControl';
package/dist/index.js CHANGED
@@ -36,10 +36,9 @@ import { OverflowTooltip, OverflowTooltipContent } from "./components/OverflowTo
36
36
  import { Page, PageActions, PageContent, PageHeader, PageHostProvider, PageTitle, usePageHost } from "./components/Page/index.js";
37
37
  import { ParameterPath, formatAsFilter } from "./components/ParameterPath/index.js";
38
38
  import { Popover, PopoverContent, PopoverTrigger } from "./components/Popover/index.js";
39
- import { NavPanelSkeleton, ProductNav, ProductNavBreadcrumbs, ProductNavPanel, findDrillNode, findFirstLinkPath, matchNav, useProductNav, useProductNavContext } from "./components/ProductNav/index.js";
40
39
  import { Progress } from "./components/Progress/index.js";
41
40
  import { Radio, RadioDescription, RadioGroup, RadioIndicator, RadioLabel } from "./components/Radio/index.js";
42
- import { RemoteShell, RemoteShellBreadcrumb, RemoteShellContent, RemoteShellPanel } from "./components/RemoteShell/index.js";
41
+ import { RemoteShell, RemoteShellBreadcrumb, RemoteShellContent, RemoteShellPanel, findFirstLinkPath, pushPathname, useLocationPathname, useRemoteShellContext } from "./components/RemoteShell/index.js";
43
42
  import { RESPONSE_CODE_COLOR, ResponseCode, getResponseCodeCategory } from "./components/ResponseCode/index.js";
44
43
  import { ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaScrollbar, ScrollAreaViewport } from "./components/ScrollArea/index.js";
45
44
  import { SegmentedControl, SegmentedControlButton, SegmentedControlItem, SegmentedControlSeparator } from "./components/SegmentedControl/index.js";
@@ -65,4 +64,4 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "./components/Tooltip/in
65
64
  import { TopHeader, TopHeaderActions, TopHeaderLogo } from "./components/TopHeader/index.js";
66
65
  import { Tour, beaconStepEffect, useTour, waitForStepEvent } from "./components/Tour/index.js";
67
66
  import { TestIdProvider, useTestId } from "./utils/testId.js";
68
- export { Accordion, AccordionActions, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertClose, AlertContent, AlertControls, AlertDescription, AlertIcon, AlertTitle, AppShell, AppShellHeader, AppShellRail, AppShellRemote, Attribute, AttributeActions, AttributeActionsContent, AttributeActionsItem, AttributeActionsTarget, AttributeLabel, AttributeLabelDescription, AttributeLabelInfo, AttributeValue, Badge, 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, NavPanelSkeleton, NavRail, NavRailBody, NavRailFooter, NavRailItem, NavRailSeparator, NavRailSkeleton, NumberInput, NumericBadge, OverflowTooltip, OverflowTooltipContent, Page, PageActions, PageContent, PageHeader, PageHostProvider, PageTitle, ParameterPath, Popover, PopoverContent, PopoverTrigger, ProductNav, ProductNavBreadcrumbs, ProductNavPanel, 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, findDrillNode, findFirstLinkPath, formatAsFilter, getLocalTimeZone, getResponseCodeCategory, matchNav, parseDate, parseDateTime, parseTime, parseZonedDateTime, proxyTypes, sourceLabels, toaster, today, useCalendarContext, useDateFormat, useDateRangeContext, useDrawerContext, usePageHost, useProductNav, useProductNavContext, useTestId, useTheme, useTour, waitForStepEvent };
67
+ export { Accordion, AccordionActions, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertClose, AlertContent, AlertControls, AlertDescription, AlertIcon, AlertTitle, AppShell, AppShellHeader, AppShellRail, AppShellRemote, Attribute, AttributeActions, AttributeActionsContent, AttributeActionsItem, AttributeActionsTarget, AttributeLabel, AttributeLabelDescription, AttributeLabelInfo, AttributeValue, Badge, 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, 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 };
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.50.0",
3
- "generatedAt": "2026-05-28T20:17:11.602Z",
2
+ "version": "0.50.1",
3
+ "generatedAt": "2026-06-01T01:08:11.830Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "Accordion",
@@ -32534,307 +32534,6 @@
32534
32534
  }
32535
32535
  ]
32536
32536
  },
32537
- {
32538
- "name": "ProductNav",
32539
- "importPath": "@wallarm-org/design-system/ProductNav",
32540
- "props": [
32541
- {
32542
- "name": "config",
32543
- "type": "NavConfig",
32544
- "required": true
32545
- },
32546
- {
32547
- "name": "basePath",
32548
- "type": "string | undefined",
32549
- "required": false,
32550
- "description": "URL prefix stripped before matching and prepended when navigating.\n Example: `\"/edge\"` turns URL `/edge/overview` into effective pathname `/overview`."
32551
- }
32552
- ],
32553
- "variants": [],
32554
- "subComponents": [
32555
- {
32556
- "name": "NavPanelSkeleton",
32557
- "props": [
32558
- {
32559
- "name": "count",
32560
- "type": "number | undefined",
32561
- "required": false
32562
- },
32563
- {
32564
- "name": "defaultChecked",
32565
- "type": "boolean | undefined",
32566
- "required": false
32567
- },
32568
- {
32569
- "name": "defaultValue",
32570
- "type": "string | number | readonly string[] | undefined",
32571
- "required": false
32572
- },
32573
- {
32574
- "name": "suppressContentEditableWarning",
32575
- "type": "boolean | undefined",
32576
- "required": false
32577
- },
32578
- {
32579
- "name": "suppressHydrationWarning",
32580
- "type": "boolean | undefined",
32581
- "required": false
32582
- },
32583
- {
32584
- "name": "accessKey",
32585
- "type": "string | undefined",
32586
- "required": false
32587
- },
32588
- {
32589
- "name": "autoCapitalize",
32590
- "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
32591
- "required": false
32592
- },
32593
- {
32594
- "name": "autoFocus",
32595
- "type": "boolean | undefined",
32596
- "required": false
32597
- },
32598
- {
32599
- "name": "contentEditable",
32600
- "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
32601
- "required": false
32602
- },
32603
- {
32604
- "name": "contextMenu",
32605
- "type": "string | undefined",
32606
- "required": false
32607
- },
32608
- {
32609
- "name": "dir",
32610
- "type": "string | undefined",
32611
- "required": false
32612
- },
32613
- {
32614
- "name": "draggable",
32615
- "type": "Booleanish | undefined",
32616
- "required": false
32617
- },
32618
- {
32619
- "name": "enterKeyHint",
32620
- "type": "\"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
32621
- "required": false
32622
- },
32623
- {
32624
- "name": "hidden",
32625
- "type": "boolean | undefined",
32626
- "required": false
32627
- },
32628
- {
32629
- "name": "id",
32630
- "type": "string | undefined",
32631
- "required": false
32632
- },
32633
- {
32634
- "name": "lang",
32635
- "type": "string | undefined",
32636
- "required": false
32637
- },
32638
- {
32639
- "name": "nonce",
32640
- "type": "string | undefined",
32641
- "required": false
32642
- },
32643
- {
32644
- "name": "slot",
32645
- "type": "string | undefined",
32646
- "required": false
32647
- },
32648
- {
32649
- "name": "spellCheck",
32650
- "type": "Booleanish | undefined",
32651
- "required": false
32652
- },
32653
- {
32654
- "name": "tabIndex",
32655
- "type": "number | undefined",
32656
- "required": false
32657
- },
32658
- {
32659
- "name": "title",
32660
- "type": "string | undefined",
32661
- "required": false
32662
- },
32663
- {
32664
- "name": "translate",
32665
- "type": "\"yes\" | \"no\" | undefined",
32666
- "required": false
32667
- },
32668
- {
32669
- "name": "radioGroup",
32670
- "type": "string | undefined",
32671
- "required": false
32672
- },
32673
- {
32674
- "name": "role",
32675
- "type": "AriaRole | undefined",
32676
- "required": false
32677
- },
32678
- {
32679
- "name": "about",
32680
- "type": "string | undefined",
32681
- "required": false
32682
- },
32683
- {
32684
- "name": "content",
32685
- "type": "string | undefined",
32686
- "required": false
32687
- },
32688
- {
32689
- "name": "datatype",
32690
- "type": "string | undefined",
32691
- "required": false
32692
- },
32693
- {
32694
- "name": "inlist",
32695
- "type": "any",
32696
- "required": false
32697
- },
32698
- {
32699
- "name": "prefix",
32700
- "type": "string | undefined",
32701
- "required": false
32702
- },
32703
- {
32704
- "name": "property",
32705
- "type": "string | undefined",
32706
- "required": false
32707
- },
32708
- {
32709
- "name": "rel",
32710
- "type": "string | undefined",
32711
- "required": false
32712
- },
32713
- {
32714
- "name": "resource",
32715
- "type": "string | undefined",
32716
- "required": false
32717
- },
32718
- {
32719
- "name": "rev",
32720
- "type": "string | undefined",
32721
- "required": false
32722
- },
32723
- {
32724
- "name": "typeof",
32725
- "type": "string | undefined",
32726
- "required": false
32727
- },
32728
- {
32729
- "name": "vocab",
32730
- "type": "string | undefined",
32731
- "required": false
32732
- },
32733
- {
32734
- "name": "autoCorrect",
32735
- "type": "string | undefined",
32736
- "required": false
32737
- },
32738
- {
32739
- "name": "autoSave",
32740
- "type": "string | undefined",
32741
- "required": false
32742
- },
32743
- {
32744
- "name": "color",
32745
- "type": "string | undefined",
32746
- "required": false
32747
- },
32748
- {
32749
- "name": "itemProp",
32750
- "type": "string | undefined",
32751
- "required": false
32752
- },
32753
- {
32754
- "name": "itemScope",
32755
- "type": "boolean | undefined",
32756
- "required": false
32757
- },
32758
- {
32759
- "name": "itemType",
32760
- "type": "string | undefined",
32761
- "required": false
32762
- },
32763
- {
32764
- "name": "itemID",
32765
- "type": "string | undefined",
32766
- "required": false
32767
- },
32768
- {
32769
- "name": "itemRef",
32770
- "type": "string | undefined",
32771
- "required": false
32772
- },
32773
- {
32774
- "name": "results",
32775
- "type": "number | undefined",
32776
- "required": false
32777
- },
32778
- {
32779
- "name": "security",
32780
- "type": "string | undefined",
32781
- "required": false
32782
- },
32783
- {
32784
- "name": "unselectable",
32785
- "type": "\"off\" | \"on\" | undefined",
32786
- "required": false
32787
- },
32788
- {
32789
- "name": "popover",
32790
- "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
32791
- "required": false
32792
- },
32793
- {
32794
- "name": "popoverTargetAction",
32795
- "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
32796
- "required": false
32797
- },
32798
- {
32799
- "name": "popoverTarget",
32800
- "type": "string | undefined",
32801
- "required": false
32802
- },
32803
- {
32804
- "name": "inert",
32805
- "type": "boolean | undefined",
32806
- "required": false,
32807
- "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
32808
- },
32809
- {
32810
- "name": "inputMode",
32811
- "type": "\"none\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
32812
- "required": false,
32813
- "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
32814
- },
32815
- {
32816
- "name": "is",
32817
- "type": "string | undefined",
32818
- "required": false,
32819
- "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
32820
- },
32821
- {
32822
- "name": "exportparts",
32823
- "type": "string | undefined",
32824
- "required": false,
32825
- "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
32826
- },
32827
- {
32828
- "name": "part",
32829
- "type": "string | undefined",
32830
- "required": false,
32831
- "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
32832
- }
32833
- ]
32834
- }
32835
- ],
32836
- "examples": []
32837
- },
32838
32537
  {
32839
32538
  "name": "Progress",
32840
32539
  "importPath": "@wallarm-org/design-system/Progress",
@@ -34144,6 +33843,18 @@
34144
33843
  "name": "RemoteShell",
34145
33844
  "importPath": "@wallarm-org/design-system/RemoteShell",
34146
33845
  "props": [
33846
+ {
33847
+ "name": "config",
33848
+ "type": "NavConfig",
33849
+ "required": true,
33850
+ "description": "Navigation config used to build nav state for sub-components."
33851
+ },
33852
+ {
33853
+ "name": "basePath",
33854
+ "type": "string | undefined",
33855
+ "required": false,
33856
+ "description": "URL prefix stripped before matching and prepended when navigating (e.g. `\"/edge\"`)."
33857
+ },
34147
33858
  {
34148
33859
  "name": "defaultChecked",
34149
33860
  "type": "boolean | undefined",
@@ -34695,6 +34406,11 @@
34695
34406
  {
34696
34407
  "name": "RemoteShellContent",
34697
34408
  "props": [
34409
+ {
34410
+ "name": "isLoading",
34411
+ "type": "boolean | undefined",
34412
+ "required": false
34413
+ },
34698
34414
  {
34699
34415
  "name": "defaultChecked",
34700
34416
  "type": "boolean | undefined",
@@ -34970,6 +34686,22 @@
34970
34686
  {
34971
34687
  "name": "RemoteShellPanel",
34972
34688
  "props": [
34689
+ {
34690
+ "name": "resizable",
34691
+ "type": "boolean | undefined",
34692
+ "required": false
34693
+ },
34694
+ {
34695
+ "name": "isLoading",
34696
+ "type": "boolean | undefined",
34697
+ "required": false
34698
+ },
34699
+ {
34700
+ "name": "loaderCount",
34701
+ "type": "number | undefined",
34702
+ "required": false,
34703
+ "defaultValue": "6"
34704
+ },
34973
34705
  {
34974
34706
  "name": "defaultChecked",
34975
34707
  "type": "boolean | undefined",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wallarm-org/design-system",
3
- "version": "0.50.1",
3
+ "version": "0.50.2-rc-feature-shell.2",
4
4
  "description": "Core design system library with React components and Storybook documentation",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -1,13 +0,0 @@
1
- import { type FC, type ReactNode } from 'react';
2
- import type { NavConfig } from './types';
3
- export interface ProductNavProps {
4
- config: NavConfig;
5
- /** URL prefix stripped before matching and prepended when navigating.
6
- * Example: `"/edge"` turns URL `/edge/overview` into effective pathname `/overview`. */
7
- basePath?: string;
8
- /** Custom navigation handler for router integration (React Router, Next.js, etc.).
9
- * Default: uses history.pushState to update the URL directly. */
10
- onNavigate?: (pathname: string) => void;
11
- children: ReactNode;
12
- }
13
- export declare const ProductNav: FC<ProductNavProps>;
@@ -1,109 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useMemo, useState } from "react";
3
- import { matchNav } from "./matchNav.js";
4
- import { findFirstLinkPath } from "./navUtils.js";
5
- import { ProductNavContextProvider } from "./ProductNavContext.js";
6
- import { pushPathname, useLocationPathname } from "./useLocationPathname.js";
7
- const ProductNav = ({ config, basePath, onNavigate, children })=>{
8
- const fullPathname = useLocationPathname();
9
- const pathname = basePath && fullPathname.startsWith(basePath) ? fullPathname.slice(basePath.length) || '/' : fullPathname;
10
- const setPathname = useCallback((next)=>{
11
- const fullPath = basePath ? `${basePath}${next}` : next;
12
- if (onNavigate) onNavigate(fullPath);
13
- else pushPathname(fullPath);
14
- }, [
15
- basePath,
16
- onNavigate
17
- ]);
18
- const { navStack, breadcrumbSegments, activeItemId } = useMemo(()=>matchNav(pathname, config), [
19
- pathname,
20
- config
21
- ]);
22
- const urlDrillLevel = navStack.length - 1;
23
- const [visualDrillLevel, setVisualDrillLevel] = useState(null);
24
- useEffect(()=>{
25
- setVisualDrillLevel(null);
26
- }, [
27
- pathname
28
- ]);
29
- const effectiveDrillLevel = visualDrillLevel ?? urlDrillLevel;
30
- const effectiveActiveItemId = effectiveDrillLevel < urlDrillLevel ? navStack[effectiveDrillLevel]?.activeItemId ?? activeItemId : activeItemId;
31
- const navigate = useCallback((path)=>{
32
- setVisualDrillLevel(null);
33
- const segments = pathname.replace(/^\/+|\/+$/g, '').split('/').filter(Boolean);
34
- const prefixSegments = segments.slice(0, 2 * effectiveDrillLevel);
35
- setPathname(`/${[
36
- ...prefixSegments,
37
- path
38
- ].join('/')}`);
39
- }, [
40
- effectiveDrillLevel,
41
- pathname,
42
- setPathname
43
- ]);
44
- const drillInto = useCallback((drill)=>{
45
- setVisualDrillLevel(null);
46
- const segments = pathname.replace(/^\/+|\/+$/g, '').split('/').filter(Boolean);
47
- const prefixSegments = segments.slice(0, 2 * effectiveDrillLevel);
48
- const defaultEntity = drill.entities?.[0]?.id ?? 'default';
49
- const firstChildPath = findFirstLinkPath(drill.children) ?? '';
50
- setPathname(`/${[
51
- ...prefixSegments,
52
- drill.path,
53
- defaultEntity,
54
- firstChildPath
55
- ].join('/')}`);
56
- }, [
57
- effectiveDrillLevel,
58
- pathname,
59
- setPathname
60
- ]);
61
- const goBack = useCallback(()=>{
62
- setVisualDrillLevel((prev)=>{
63
- const current = prev ?? urlDrillLevel;
64
- return Math.max(current - 1, 0);
65
- });
66
- }, [
67
- urlDrillLevel
68
- ]);
69
- const navigateTo = useCallback((href)=>{
70
- setVisualDrillLevel(null);
71
- if ('/' === href) {
72
- const firstPath = findFirstLinkPath(config.items) ?? '';
73
- setPathname(`/${firstPath}`);
74
- } else setPathname(href);
75
- }, [
76
- config.items,
77
- setPathname
78
- ]);
79
- const navCtxValue = useMemo(()=>({
80
- config,
81
- pathname,
82
- navStack,
83
- breadcrumbSegments,
84
- activeItemId,
85
- drillLevel: effectiveDrillLevel,
86
- effectiveActiveItemId,
87
- navigate,
88
- drillInto,
89
- goBack,
90
- navigateTo
91
- }), [
92
- config,
93
- pathname,
94
- navStack,
95
- breadcrumbSegments,
96
- activeItemId,
97
- effectiveDrillLevel,
98
- effectiveActiveItemId,
99
- navigate,
100
- drillInto,
101
- goBack,
102
- navigateTo
103
- ]);
104
- return /*#__PURE__*/ jsx(ProductNavContextProvider, {
105
- value: navCtxValue,
106
- children: children
107
- });
108
- };
109
- export { ProductNav };
@@ -1,2 +0,0 @@
1
- import type { FC } from 'react';
2
- export declare const ProductNavBreadcrumbs: FC;
@@ -1,38 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Breadcrumbs, BreadcrumbsItem, BreadcrumbsScopeSwitcher } from "../Breadcrumbs/index.js";
3
- import { useProductNavContext } from "./ProductNavContext.js";
4
- const ProductNavBreadcrumbs = ()=>{
5
- const { breadcrumbSegments, navigateTo } = useProductNavContext();
6
- return /*#__PURE__*/ jsx(Breadcrumbs, {
7
- "data-slot": "nav-breadcrumbs",
8
- children: breadcrumbSegments.map((segment, i)=>{
9
- const isLast = i === breadcrumbSegments.length - 1;
10
- if ('scope-switcher' === segment.type) {
11
- if (segment.scopeItems?.length && segment.paramValue) return /*#__PURE__*/ jsx(BreadcrumbsScopeSwitcher, {
12
- value: segment.paramValue,
13
- items: segment.scopeItems,
14
- onSelect: (item)=>navigateTo?.(item.href),
15
- children: segment.label
16
- }, i);
17
- return /*#__PURE__*/ jsx(BreadcrumbsItem, {
18
- children: segment.label
19
- }, i);
20
- }
21
- if ('link' === segment.type && !isLast) return /*#__PURE__*/ jsx(BreadcrumbsItem, {
22
- href: segment.href,
23
- onClick: (e)=>{
24
- if (navigateTo && segment.href) {
25
- e.preventDefault();
26
- navigateTo(segment.href);
27
- }
28
- },
29
- children: segment.label
30
- }, i);
31
- return /*#__PURE__*/ jsx(BreadcrumbsItem, {
32
- children: segment.label
33
- }, i);
34
- })
35
- });
36
- };
37
- ProductNavBreadcrumbs.displayName = 'ProductNavBreadcrumbs';
38
- export { ProductNavBreadcrumbs };
@@ -1,9 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- const ProductNavCtx = createContext(null);
3
- const ProductNavContextProvider = ProductNavCtx.Provider;
4
- function useProductNavContext() {
5
- const ctx = useContext(ProductNavCtx);
6
- if (!ctx) throw new Error('useProductNavContext must be used within a ProductNav provider');
7
- return ctx;
8
- }
9
- export { ProductNavContextProvider, useProductNavContext };
@@ -1,6 +0,0 @@
1
- import type { FC } from 'react';
2
- type ProductNavPanelProps = {
3
- resizable?: boolean;
4
- };
5
- export declare const ProductNavPanel: FC<ProductNavPanelProps>;
6
- export {};