@wallarm-org/design-system 0.6.0 → 0.6.1

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 (91) hide show
  1. package/dist/components/Checkmark/Checkmark.js +2 -2
  2. package/dist/components/Code/Code.d.ts +1 -1
  3. package/dist/components/Code/Code.js +2 -2
  4. package/dist/components/Country/Country.d.ts +17 -0
  5. package/dist/components/Country/Country.js +36 -0
  6. package/dist/components/Country/CountryContext.d.ts +9 -0
  7. package/dist/components/Country/CountryContext.js +8 -0
  8. package/dist/components/Country/CountryFlag.d.ts +6 -0
  9. package/dist/components/Country/CountryFlag.js +26 -0
  10. package/dist/components/Country/CountryName.d.ts +3 -0
  11. package/dist/components/Country/CountryName.js +26 -0
  12. package/dist/components/Country/countries.d.ts +1003 -0
  13. package/dist/components/Country/countries.js +1003 -0
  14. package/dist/components/Country/index.d.ts +4 -0
  15. package/dist/components/Country/index.js +4 -0
  16. package/dist/components/Country/types.d.ts +3 -0
  17. package/dist/components/Country/types.js +0 -0
  18. package/dist/components/DateTime/DateTime.d.ts +15 -0
  19. package/dist/components/DateTime/DateTime.js +121 -0
  20. package/dist/components/DateTime/index.d.ts +1 -0
  21. package/dist/components/DateTime/index.js +2 -0
  22. package/dist/components/DropdownMenu/DropdownMenuContent.d.ts +1 -1
  23. package/dist/components/DropdownMenu/DropdownMenuContent.js +28 -18
  24. package/dist/components/DropdownMenu/DropdownMenuFooter.d.ts +7 -0
  25. package/dist/components/DropdownMenu/DropdownMenuFooter.js +8 -0
  26. package/dist/components/DropdownMenu/index.d.ts +1 -0
  27. package/dist/components/DropdownMenu/index.js +2 -1
  28. package/dist/components/Flex/Flex.d.ts +1 -1
  29. package/dist/components/Ip/Ip.d.ts +9 -0
  30. package/dist/components/Ip/Ip.js +14 -0
  31. package/dist/components/Ip/IpAddress.d.ts +6 -0
  32. package/dist/components/Ip/IpAddress.js +21 -0
  33. package/dist/components/Ip/IpCountry.d.ts +6 -0
  34. package/dist/components/Ip/IpCountry.js +9 -0
  35. package/dist/components/Ip/IpList.d.ts +9 -0
  36. package/dist/components/Ip/IpList.js +52 -0
  37. package/dist/components/Ip/IpPort.d.ts +5 -0
  38. package/dist/components/Ip/IpPort.js +12 -0
  39. package/dist/components/Ip/IpProvider.d.ts +4 -0
  40. package/dist/components/Ip/IpProvider.js +12 -0
  41. package/dist/components/Ip/constants.d.ts +29 -0
  42. package/dist/components/Ip/constants.js +30 -0
  43. package/dist/components/Ip/index.d.ts +7 -0
  44. package/dist/components/Ip/index.js +8 -0
  45. package/dist/components/Ip/utils/checkHasCountry.d.ts +2 -0
  46. package/dist/components/Ip/utils/checkHasCountry.js +10 -0
  47. package/dist/components/Link/Link.d.ts +1 -0
  48. package/dist/components/Link/Link.js +7 -3
  49. package/dist/components/Link/classes.d.ts +2 -1
  50. package/dist/components/Link/classes.js +5 -1
  51. package/dist/components/OverflowTooltip/OverflowTooltip.js +1 -1
  52. package/dist/components/ScrollArea/ScrollAreaViewport.js +1 -1
  53. package/dist/components/SegmentedControl/SegmentedControlSeparator.d.ts +1 -1
  54. package/dist/components/Separator/Separator.d.ts +1 -1
  55. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  56. package/dist/components/Stack/Stack.d.ts +1 -1
  57. package/dist/components/Table/TableActionBar/TableActionBar.js +1 -1
  58. package/dist/components/Table/TableActionBar/TableActionBarSelection.js +6 -4
  59. package/dist/components/Table/TableBody/TableBodyCell.js +17 -5
  60. package/dist/components/Table/TableColGroup.js +1 -1
  61. package/dist/components/Table/TableContext/TableProvider.js +21 -8
  62. package/dist/components/Table/TableHeadCell.js +64 -17
  63. package/dist/components/Table/TableRow.js +1 -0
  64. package/dist/components/Table/TableRowExpanded.js +1 -1
  65. package/dist/components/Table/TableScrollHandler.js +2 -0
  66. package/dist/components/Table/TableSettingsMenu/TableSettingsMenu.js +46 -48
  67. package/dist/components/Table/TableSettingsMenu/TableSettingsMenuItem.js +2 -2
  68. package/dist/components/Table/classes.js +4 -4
  69. package/dist/components/Table/lib/constants.d.ts +7 -0
  70. package/dist/components/Table/lib/constants.js +13 -1
  71. package/dist/components/Table/lib/createExpandColumn.js +1 -1
  72. package/dist/components/Table/lib/index.d.ts +1 -1
  73. package/dist/components/Table/lib/index.js +2 -2
  74. package/dist/components/Table/mocks.d.ts +4 -7
  75. package/dist/components/Table/mocks.js +141 -171
  76. package/dist/components/Table/types.d.ts +18 -0
  77. package/dist/components/Text/Text.d.ts +1 -0
  78. package/dist/components/Text/Text.js +6 -2
  79. package/dist/components/Tour/TourSpotlight.d.ts +1 -1
  80. package/dist/icons/CheckboxIndeterminate.d.ts +3 -0
  81. package/dist/icons/CheckboxIndeterminate.js +16 -0
  82. package/dist/icons/index.d.ts +1 -0
  83. package/dist/icons/index.js +2 -1
  84. package/dist/index.d.ts +3 -0
  85. package/dist/index.js +4 -1
  86. package/dist/metadata/components.json +3054 -879
  87. package/dist/utils/abbreviateNumber.d.ts +14 -0
  88. package/dist/utils/abbreviateNumber.js +39 -0
  89. package/dist/utils/formatDateTime.d.ts +38 -0
  90. package/dist/utils/formatDateTime.js +46 -0
  91. package/package.json +4 -3
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.5.0",
3
- "generatedAt": "2026-03-05T11:22:14.251Z",
2
+ "version": "0.6.0",
3
+ "generatedAt": "2026-03-06T08:25:16.550Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "Alert",
@@ -8733,777 +8733,2031 @@
8733
8733
  ]
8734
8734
  },
8735
8735
  {
8736
- "name": "Dialog",
8737
- "importPath": "@wallarm-org/design-system/Dialog",
8738
- "props": [],
8739
- "variants": [],
8740
- "subComponents": [],
8741
- "examples": [
8736
+ "name": "Country",
8737
+ "importPath": "@wallarm-org/design-system/Country",
8738
+ "props": [
8742
8739
  {
8743
- "name": "Basic",
8744
- "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open Dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog Title</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n );\n}",
8745
- "description": "Basic uncontrolled dialog"
8740
+ "name": "slot",
8741
+ "type": "string | undefined",
8742
+ "required": false
8746
8743
  },
8747
8744
  {
8748
- "name": "WithFooter",
8749
- "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open Dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog's title</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n\n <DialogFooter>\n <DialogFooterControls>\n <Button variant='ghost' color='neutral' size='large'>\n Button\n </Button>\n <Button variant='primary' color='brand' size='large'>\n Button\n </Button>\n </DialogFooterControls>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
8750
- "description": "Minimal example"
8745
+ "name": "title",
8746
+ "type": "string | undefined",
8747
+ "required": false
8751
8748
  },
8752
8749
  {
8753
- "name": "WithFooterLeftActions",
8754
- "code": "() => (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open with Footer Actions</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Footer with Left Actions</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n\n <DialogFooter>\n <DialogFooterControls placement='left'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Remember choice</SwitchLabel>\n </Switch>\n </DialogFooterControls>\n\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n)",
8755
- "description": "With footer left actions"
8750
+ "name": "defaultChecked",
8751
+ "type": "boolean | undefined",
8752
+ "required": false
8756
8753
  },
8757
8754
  {
8758
- "name": "Sizes",
8759
- "code": "() => (\n <HStack gap={8} justify='center'>\n <Dialog width={DIALOG_SIZES.small}>\n <DialogTrigger asChild>\n <Button>Open Small ({DIALOG_SIZES.small}px)</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Small Dialog ({DIALOG_SIZES.small}px)</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Dialog width={DIALOG_SIZES.medium}>\n <DialogTrigger asChild>\n <Button>Open Medium ({DIALOG_SIZES.medium}px)</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Medium Dialog ({DIALOG_SIZES.medium}px)</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Dialog width={DIALOG_SIZES.large}>\n <DialogTrigger asChild>\n <Button>Open Large ({DIALOG_SIZES.large}px)</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Large Dialog ({DIALOG_SIZES.large}px)</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n </HStack>\n)",
8760
- "description": "Dialog with different sizes - Small"
8755
+ "name": "defaultValue",
8756
+ "type": "string | number | readonly string[] | undefined",
8757
+ "required": false
8761
8758
  },
8762
8759
  {
8763
- "name": "CustomSizes",
8764
- "code": "() => {\n return (\n <HStack gap={8} justify='center'>\n <Dialog width='50%'>\n <DialogTrigger asChild>\n <Button>50% Width</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>50% Width Dialog</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p>This dialog takes 50% of the viewport width.</p>\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Dialog width={1000}>\n <DialogTrigger asChild>\n <Button>1000px Width</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>1000px Width Dialog</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p>This dialog has a fixed width of 1000px.</p>\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n </HStack>\n );\n}",
8765
- "description": "Custom width with percentage"
8760
+ "name": "suppressContentEditableWarning",
8761
+ "type": "boolean | undefined",
8762
+ "required": false
8766
8763
  },
8767
8764
  {
8768
- "name": "Scrollable",
8769
- "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open Dialog with Scroll</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Scrollable Content</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='flex flex-col gap-16 py-12'>\n {Array.from({ length: 20 }).map((_, i) => (\n <ContentPlaceholder key={i} height={100} />\n ))}\n </div>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Close\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Confirm\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
8770
- "description": "Dialog with scrollable content"
8765
+ "name": "suppressHydrationWarning",
8766
+ "type": "boolean | undefined",
8767
+ "required": false
8771
8768
  },
8772
8769
  {
8773
- "name": "Controlled",
8774
- "code": "() => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <Button onClick={() => setOpen(true)}>Open Controlled Dialog</Button>\n\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Controlled Dialog</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p className='mb-16'>This dialog is controlled externally.</p>\n <ContentPlaceholder />\n </div>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Save Changes\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </>\n );\n}",
8775
- "description": "Controlled dialog with external state"
8770
+ "name": "accessKey",
8771
+ "type": "string | undefined",
8772
+ "required": false
8776
8773
  },
8777
8774
  {
8778
- "name": "NoClosableOnEsc",
8779
- "code": "() => {\n return (\n <Dialog closeOnEscape={false}>\n <DialogTrigger asChild>\n <Button>Open Dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog Title</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n );\n}",
8780
- "description": "No closable on ESC"
8775
+ "name": "autoCapitalize",
8776
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
8777
+ "required": false
8781
8778
  },
8782
8779
  {
8783
- "name": "NoOverlay",
8784
- "code": "() => {\n return (\n <VStack gap={12}>\n <Text>\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has\n been the industry's standard dummy text ever since the 1500s, when an unknown printer took a\n galley of type and scrambled it to make a type specimen book. It has survived not only five\n centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\n It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum\n passages, and more recently with desktop publishing software like Aldus PageMaker including\n versions of Lorem Ipsum. Why do we use it? It is a long established fact that a reader will\n be distracted by the readable content of a page when looking at its layout. The point of\n using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed\n to using 'Content here, content here', making it look like readable English. Many desktop\n publishing packages and web page editors now use Lorem Ipsum as their default model text,\n and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various\n versions have evolved over the years, sometimes by accident, sometimes on purpose (injected\n humour and the like).\n </Text>\n\n <Dialog overlay={false}>\n <DialogTrigger asChild>\n <Button>Open without Overlay</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>No Overlay</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p>This dialog has no overlay backdrop.</p>\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Text>\n Where does it come from? Contrary to popular belief, Lorem Ipsum is not simply random text.\n It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years\n old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up\n one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going\n through the cites of the word in classical literature, discovered the undoubtable source.\n Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The\n Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the\n theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem\n ipsum dolor sit amet..\", comes from a line in section 1.10.32. The standard chunk of Lorem\n Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and\n 1.10.33 from \"de Finibus Bonorum et Malorum\" by Cicero are also reproduced in their exact\n original form, accompanied by English versions from the 1914 translation by H. Rackham.\n </Text>\n </VStack>\n );\n}",
8785
- "description": "Without overlay"
8780
+ "name": "autoFocus",
8781
+ "type": "boolean | undefined",
8782
+ "required": false
8786
8783
  },
8787
8784
  {
8788
- "name": "WithNested",
8789
- "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>1st level dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>[Level 1] Main Dialog</DialogTitle>\n\n {/* Level 2 dialog */}\n <Dialog>\n <DialogTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 2nd level dialog\n </Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>[Level 2] Detail View</DialogTitle>\n {/* Level 3 dialog */}\n <Dialog>\n <DialogTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 3nd level dialog\n </Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>[Level 3] Deep Nested</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <VStack gap={12} align='start'>\n <Text>Level 3! Unlimited nesting works.</Text>\n <ContentPlaceholder height={150} />\n </VStack>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button size='large' variant='ghost' color='neutral'>\n Back\n </Button>\n </DialogClose>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </DialogHeader>\n\n <DialogBody>\n <VStack gap={12} align='start'>\n <Text>This is Level 2 dialog. Main dialog is pushed back.</Text>\n\n <ContentPlaceholder height={150} />\n </VStack>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Back\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </DialogHeader>\n\n <DialogBody>\n <VStack gap={12} align='start'>\n <Text>This is Level 1 dialog. Click above to open nested dialogs:</Text>\n\n <ContentPlaceholder height={150} />\n </VStack>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Save\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
8790
- "description": "Nested dialogs with push-back effect"
8785
+ "name": "contentEditable",
8786
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
8787
+ "required": false
8791
8788
  },
8792
8789
  {
8793
- "name": "WithTabs",
8794
- "code": "() => {\n const [activeTab, setActiveTab] = useState('tab1');\n\n return (\n <Dialog width={960}>\n <DialogTrigger asChild>\n <Button>Open Dialog with Tabs</Button>\n </DialogTrigger>\n\n <DialogContent>\n <Tabs value={activeTab} onChange={setActiveTab} asChild>\n <DialogHeader>\n <DialogTitle>Tabbed Content</DialogTitle>\n </DialogHeader>\n\n <TabsList>\n <TabsTrigger value='tab1'>General</TabsTrigger>\n <TabsTrigger value='tab2'>Settings</TabsTrigger>\n <TabsTrigger value='tab3'>Advanced</TabsTrigger>\n </TabsList>\n\n <DialogBody>\n <div className='pt-12'>\n <TabsContent value='tab1'>\n <h3 className='text-lg font-medium mb-8'>General Settings</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab2'>\n <h3 className='text-lg font-medium mb-8'>Configuration</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab3'>\n <h3 className='text-lg font-medium mb-8'>Advanced Options</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n </div>\n </DialogBody>\n </Tabs>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Apply Settings\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
8795
- "description": "With tabs"
8796
- }
8797
- ]
8798
- },
8799
- {
8800
- "name": "Drawer",
8801
- "importPath": "@wallarm-org/design-system/Drawer",
8802
- "props": [
8790
+ "name": "contextMenu",
8791
+ "type": "string | undefined",
8792
+ "required": false
8793
+ },
8803
8794
  {
8804
- "name": "open",
8805
- "type": "boolean | undefined",
8806
- "required": false,
8807
- "description": "Controlled open state"
8795
+ "name": "dir",
8796
+ "type": "string | undefined",
8797
+ "required": false
8808
8798
  },
8809
8799
  {
8810
- "name": "closeOnEscape",
8811
- "type": "boolean | undefined",
8812
- "required": false,
8813
- "description": "Whether ESC key closes the drawer (default: true)",
8814
- "defaultValue": "true"
8800
+ "name": "draggable",
8801
+ "type": "Booleanish | undefined",
8802
+ "required": false
8815
8803
  },
8816
8804
  {
8817
- "name": "closeOnOutsideClick",
8818
- "type": "boolean | undefined",
8819
- "required": false,
8820
- "description": "Whether clicking outside closes the drawer (default: true)",
8821
- "defaultValue": "true"
8805
+ "name": "enterKeyHint",
8806
+ "type": "\"search\" | \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"send\" | undefined",
8807
+ "required": false
8822
8808
  },
8823
8809
  {
8824
- "name": "overlay",
8810
+ "name": "hidden",
8825
8811
  "type": "boolean | undefined",
8826
- "required": false,
8827
- "description": "Overlay visibility (default: true)",
8828
- "defaultValue": "true"
8812
+ "required": false
8829
8813
  },
8830
8814
  {
8831
- "name": "width",
8832
- "type": "string | number | undefined",
8833
- "required": false,
8834
- "description": "Width - number for pixels, string for percentage (e.g., \"50%\")"
8815
+ "name": "id",
8816
+ "type": "string | undefined",
8817
+ "required": false
8835
8818
  },
8836
8819
  {
8837
- "name": "minWidth",
8838
- "type": "number | undefined",
8839
- "required": false,
8840
- "description": "Minimum width in pixels"
8820
+ "name": "lang",
8821
+ "type": "string | undefined",
8822
+ "required": false
8841
8823
  },
8842
8824
  {
8843
- "name": "maxWidth",
8844
- "type": "number | undefined",
8845
- "required": false,
8846
- "description": "Maximum width in pixels"
8847
- }
8848
- ],
8849
- "variants": [
8850
- {
8851
- "name": "isResizing",
8852
- "options": [
8853
- "true"
8854
- ]
8855
- }
8856
- ],
8857
- "subComponents": [
8858
- {
8859
- "name": "DrawerBody",
8860
- "props": []
8825
+ "name": "nonce",
8826
+ "type": "string | undefined",
8827
+ "required": false
8861
8828
  },
8862
8829
  {
8863
- "name": "DrawerClose",
8864
- "props": [
8865
- {
8866
- "name": "asChild",
8867
- "type": "boolean | undefined",
8868
- "required": false,
8869
- "description": "Render as child component",
8870
- "defaultValue": "false"
8871
- }
8872
- ]
8830
+ "name": "spellCheck",
8831
+ "type": "Booleanish | undefined",
8832
+ "required": false
8873
8833
  },
8874
8834
  {
8875
- "name": "DrawerContent",
8876
- "props": [
8877
- {
8878
- "name": "asChild",
8879
- "type": "boolean | undefined",
8880
- "required": false
8881
- }
8882
- ]
8835
+ "name": "tabIndex",
8836
+ "type": "number | undefined",
8837
+ "required": false
8883
8838
  },
8884
8839
  {
8885
- "name": "DrawerFooter",
8886
- "props": []
8840
+ "name": "translate",
8841
+ "type": "\"yes\" | \"no\" | undefined",
8842
+ "required": false
8887
8843
  },
8888
8844
  {
8889
- "name": "DrawerFooterControls",
8890
- "props": [
8891
- {
8892
- "name": "placement",
8893
- "type": "{ left: string; right: string; }",
8894
- "required": false,
8895
- "defaultValue": "right"
8896
- }
8897
- ]
8845
+ "name": "radioGroup",
8846
+ "type": "string | undefined",
8847
+ "required": false
8898
8848
  },
8899
8849
  {
8900
- "name": "DrawerHeader",
8901
- "props": []
8850
+ "name": "role",
8851
+ "type": "AriaRole | undefined",
8852
+ "required": false
8902
8853
  },
8903
8854
  {
8904
- "name": "DrawerPositioner",
8905
- "props": [
8906
- {
8907
- "name": "isResizing",
8908
- "type": "boolean",
8909
- "required": true
8910
- }
8911
- ]
8855
+ "name": "about",
8856
+ "type": "string | undefined",
8857
+ "required": false
8912
8858
  },
8913
8859
  {
8914
- "name": "DrawerTitle",
8915
- "props": []
8860
+ "name": "content",
8861
+ "type": "string | undefined",
8862
+ "required": false
8916
8863
  },
8917
8864
  {
8918
- "name": "DrawerTrigger",
8919
- "props": [
8920
- {
8921
- "name": "asChild",
8922
- "type": "boolean | undefined",
8923
- "required": false,
8924
- "description": "Render as child component",
8925
- "defaultValue": "false"
8926
- }
8927
- ]
8928
- }
8929
- ],
8930
- "examples": [
8865
+ "name": "datatype",
8866
+ "type": "string | undefined",
8867
+ "required": false
8868
+ },
8931
8869
  {
8932
- "name": "Basic",
8933
- "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open Drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Drawer Title</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}",
8934
- "description": "Basic uncontrolled drawer"
8870
+ "name": "inlist",
8871
+ "type": "any",
8872
+ "required": false
8935
8873
  },
8936
8874
  {
8937
- "name": "WithFooter",
8938
- "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open Drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Drawer's title</DrawerTitle>\n </DrawerHeader>\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n <DrawerFooter>\n <DrawerFooterControls>\n <Button variant='ghost' color='neutral' size='large'>\n Button\n </Button>\n <Button variant='primary' color='brand' size='large'>\n Button\n </Button>\n </DrawerFooterControls>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n}",
8939
- "description": "Minimal example"
8875
+ "name": "prefix",
8876
+ "type": "string | undefined",
8877
+ "required": false
8940
8878
  },
8941
8879
  {
8942
- "name": "WithFooterLeftActions",
8943
- "code": "() => (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open with Footer Actions</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Footer with Left Actions</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerFooterControls placement='left'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Remember choice</SwitchLabel>\n </Switch>\n </DrawerFooterControls>\n\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n)",
8944
- "description": "With footer left actions"
8880
+ "name": "property",
8881
+ "type": "string | undefined",
8882
+ "required": false
8945
8883
  },
8946
8884
  {
8947
- "name": "Sizes",
8948
- "code": "() => (\n <HStack gap={8} justify='center'>\n <Drawer width={DRAWER_SIZES.small}>\n <DrawerTrigger asChild>\n <Button>Open Small ({DRAWER_SIZES.small}px)</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Small Drawer ({DRAWER_SIZES.small}px)</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width={DRAWER_SIZES.medium}>\n <DrawerTrigger asChild>\n <Button>Open Medium ({DRAWER_SIZES.medium}px)</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Medium Drawer ({DRAWER_SIZES.medium}px)</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width={DRAWER_SIZES.large}>\n <DrawerTrigger asChild>\n <Button>Open Large ({DRAWER_SIZES.large}px)</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Large Drawer ({DRAWER_SIZES.large}px)</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </HStack>\n)",
8949
- "description": "Drawer with different sizes - Small"
8885
+ "name": "rel",
8886
+ "type": "string | undefined",
8887
+ "required": false
8950
8888
  },
8951
8889
  {
8952
- "name": "CustomSizes",
8953
- "code": "() => {\n return (\n <HStack gap={8} justify='center'>\n <Drawer width='50%'>\n <DrawerTrigger asChild>\n <Button>50% Width</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>50% Width Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p>This drawer takes 50% of the viewport width.</p>\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width={1000}>\n <DrawerTrigger asChild>\n <Button>1000px Width</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>1000px Width Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p>This drawer has a fixed width of 1000px.</p>\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </HStack>\n );\n}",
8954
- "description": "Custom width with percentage"
8890
+ "name": "resource",
8891
+ "type": "string | undefined",
8892
+ "required": false
8955
8893
  },
8956
8894
  {
8957
- "name": "Resizable",
8958
- "code": "() => {\n return (\n <VStack gap={12}>\n <Drawer width={800}>\n <DrawerTrigger asChild>\n <Button>Open Resizable Drawer (as number)</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerResizeHandle />\n <DrawerHeader>\n <DrawerTitle>Resizable Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>Drag the left edge to resize this drawer.</p>\n <ContentPlaceholder height={300} />\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width='900px'>\n <DrawerTrigger asChild>\n <Button>Open Resizable Drawer (900px)</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerResizeHandle />\n <DrawerHeader>\n <DrawerTitle>Resizable Drawer with \"900px\" width</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>Width is set as \"900px\" string. Drag the left edge to resize.</p>\n <ContentPlaceholder height={300} />\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width='50%'>\n <DrawerTrigger asChild>\n <Button>Open Resizable Drawer (50%)</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerResizeHandle />\n <DrawerHeader>\n <DrawerTitle>Resizable Drawer with 50% width</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>\n Width is set as \"50%\". Drag the left edge to resize - it will convert to pixels.\n </p>\n <ContentPlaceholder height={300} />\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </VStack>\n );\n}",
8959
- "description": "Resizable drawer"
8960
- },
8961
- {
8962
- "name": "Scrollable",
8963
- "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open Drawer with Scroll</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Scrollable Content</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='flex flex-col gap-16 py-12'>\n {Array.from({ length: 20 }).map((_, i) => (\n <ContentPlaceholder key={i} height={100} />\n ))}\n </div>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Close\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Confirm\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n}",
8964
- "description": "Drawer with scrollable content"
8965
- },
8966
- {
8967
- "name": "Controlled",
8968
- "code": "() => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <Button onClick={() => setOpen(true)}>Open Controlled Drawer</Button>\n\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Controlled Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>This drawer is controlled externally.</p>\n <ContentPlaceholder />\n </div>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Save Changes\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </>\n );\n}",
8969
- "description": "Controlled drawer with external state"
8970
- },
8971
- {
8972
- "name": "NoClosableOnEsc",
8973
- "code": "() => {\n return (\n <Drawer closeOnEscape={false}>\n <DrawerTrigger asChild>\n <Button>Open Drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Drawer Title</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}",
8974
- "description": "No closable on ESC"
8975
- },
8976
- {
8977
- "name": "NoOverlay",
8978
- "code": "() => {\n return (\n <Drawer overlay={false}>\n <DrawerTrigger asChild>\n <Button>Open without Overlay</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>No Overlay</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p>This drawer has no overlay backdrop.</p>\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}",
8979
- "description": "Without overlay"
8980
- },
8981
- {
8982
- "name": "WithNested",
8983
- "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>1st level drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>[Level 1] Main Drawer</DrawerTitle>\n\n {/* Level 2 drawer */}\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 2nd level drawer\n </Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>[Level 2] Detail View</DrawerTitle>\n {/* Level 3 drawer */}\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 3nd level drawer\n </Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>[Level 3] Deep Nested</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <VStack gap={12} align='start'>\n <Text>Level 3! Unlimited nesting works.</Text>\n <ContentPlaceholder height={150} />\n </VStack>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button size='large' variant='ghost' color='neutral'>\n Back\n </Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </DrawerHeader>\n\n <DrawerBody>\n <VStack gap={12} align='start'>\n <Text>\n This is Level 2 drawer. Main drawer is pushed back. You can go deeper:\n </Text>\n\n <ContentPlaceholder height={150} />\n </VStack>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Back\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </DrawerHeader>\n\n <DrawerBody>\n <VStack gap={12} align='start'>\n <Text>This is Level 1 drawer. Click below to open nested drawers:</Text>\n\n <ContentPlaceholder height={300} />\n </VStack>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Save\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n}",
8984
- "description": "Nested drawers with push-back effect"
8985
- },
8986
- {
8987
- "name": "WithTabs",
8988
- "code": "() => {\n const [activeTab, setActiveTab] = useState('tab1');\n\n return (\n <Drawer width={960}>\n <DrawerTrigger asChild>\n <Button>Open Drawer with Tabs</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <Tabs value={activeTab} onChange={setActiveTab} asChild>\n <DrawerHeader>\n <DrawerTitle>Tabbed Content</DrawerTitle>\n </DrawerHeader>\n\n <TabsList>\n <TabsTrigger value='tab1'>General</TabsTrigger>\n <TabsTrigger value='tab2'>Settings</TabsTrigger>\n <TabsTrigger value='tab3'>Advanced</TabsTrigger>\n </TabsList>\n\n <DrawerBody>\n <div className='pt-12'>\n <TabsContent value='tab1'>\n <h3 className='text-lg font-medium mb-8'>General Settings</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab2'>\n <h3 className='text-lg font-medium mb-8'>Configuration</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab3'>\n <h3 className='text-lg font-medium mb-8'>Advanced Options</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n </div>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Apply Settings\n </Button>\n </DrawerFooter>\n </Tabs>\n </DrawerContent>\n </Drawer>\n );\n}",
8989
- "description": "With tabs"
8990
- }
8991
- ]
8992
- },
8993
- {
8994
- "name": "DropdownMenu",
8995
- "importPath": "@wallarm-org/design-system/DropdownMenu",
8996
- "props": [],
8997
- "variants": [
8998
- {
8999
- "name": "variant",
9000
- "options": [
9001
- "default",
9002
- "brand",
9003
- "destructive"
9004
- ]
9005
- },
9006
- {
9007
- "name": "inset",
9008
- "options": [
9009
- "true"
9010
- ]
9011
- }
9012
- ],
9013
- "subComponents": [],
9014
- "examples": [
9015
- {
9016
- "name": "Basic",
9017
- "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n Open\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuItem>\n Profile\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>P</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Billing\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>B</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Settings\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>S</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Keyboard shortcuts super\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuGroup>\n <DropdownMenuItem>Team</DropdownMenuItem>\n <DropdownMenu>\n <DropdownMenuTriggerItem>Invite users</DropdownMenuTriggerItem>\n <DropdownMenuContent>\n <DropdownMenuItem>Email</DropdownMenuItem>\n <DropdownMenuItem>Message</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>More...</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n <DropdownMenuItem>\n New Team\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>T</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n <DropdownMenuItem>Support</DropdownMenuItem>\n <DropdownMenuItem disabled>API</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant='destructive'>\n Log out\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
9018
- },
9019
- {
9020
- "name": "Context",
9021
- "code": "() => (\n <DropdownMenu>\n <DropdownMenuContextTrigger asChild>\n <div className='flex items-center justify-center w-300 h-192 border border-border-primary border-dashed rounded-8'>\n Right click here\n </div>\n </DropdownMenuContextTrigger>\n <DropdownMenuContent>\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuItem>\n Profile\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>P</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Billing\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>B</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Settings\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>S</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Keyboard shortcuts super\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuGroup>\n <DropdownMenuItem>Team</DropdownMenuItem>\n <DropdownMenu>\n <DropdownMenuTriggerItem>Invite users</DropdownMenuTriggerItem>\n <DropdownMenuContent>\n <DropdownMenuItem>Email</DropdownMenuItem>\n <DropdownMenuItem>Message</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>More...</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n <DropdownMenuItem>\n New Team\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>T</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n <DropdownMenuItem>Support</DropdownMenuItem>\n <DropdownMenuItem disabled>API</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant='destructive'>\n Log out\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
9022
- },
9023
- {
9024
- "name": "WithDescriptions",
9025
- "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n <Plus />\n Add Widget\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Bar-volume chart</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Canvas</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Attacks heat-map</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem variant='brand'>\n <CirclePlus />\n <DropdownMenuItemText>Request custom widget</DropdownMenuItemText>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
9026
- },
9027
- {
9028
- "name": "WithIcons",
9029
- "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n <Plus />\n Add Widget\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <LayoutTemplate />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Bar-volume chart</DropdownMenuItemText>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Maximize />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Canvas</DropdownMenuItemText>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Earth />\n </DropdownMenuItemIcon>\n <DropdownMenuItemText>Attacks heat-map</DropdownMenuItemText>\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem variant='brand'>\n <CirclePlus />\n <DropdownMenuItemText>Request custom widget</DropdownMenuItemText>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
9030
- },
9031
- {
9032
- "name": "WithDescriptionAndIcons",
9033
- "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n <Plus />\n Add Widget\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <LayoutTemplate />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Bar-volume chart</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Maximize />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Canvas</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Earth />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Attacks heat-map</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem variant='brand'>\n <CirclePlus />\n <DropdownMenuItemText>Request custom widget</DropdownMenuItemText>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
9034
- }
9035
- ]
9036
- },
9037
- {
9038
- "name": "Field",
9039
- "importPath": "@wallarm-org/design-system/Field",
9040
- "props": [],
9041
- "variants": [
9042
- {
9043
- "name": "orientation",
9044
- "options": [
9045
- "vertical",
9046
- "horizontal",
9047
- "responsive"
9048
- ],
9049
- "defaultValue": "vertical"
9050
- }
9051
- ],
9052
- "subComponents": [],
9053
- "examples": [
9054
- {
9055
- "name": "Basic",
9056
- "code": "() => {\n const monthsCollection = createListCollection({\n items: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],\n });\n\n const yearsCollection = createListCollection({\n items: ['2025', '2026', '2027', '2028', '2029'],\n });\n\n return (\n <div className='min-w-320'>\n <form>\n <FieldGroup>\n <FieldSet>\n <FieldLegend>Payment Method</FieldLegend>\n\n <FieldDescription>All transactions are secure and encrypted</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>Name on Card</FieldLabel>\n <Input placeholder='Evil Rabbit' />\n </Field>\n <Field>\n <FieldLabel htmlFor='checkout-7j9-card-number-uw1'>Card Number</FieldLabel>\n <Input\n id='checkout-7j9-card-number-uw1'\n placeholder='1234 5678 9012 3456'\n required\n />\n <FieldDescription>Enter your 16-digit card number</FieldDescription>\n </Field>\n\n <HStack>\n <Field>\n <FieldLabel>Month</FieldLabel>\n <Select collection={monthsCollection}>\n <SelectButton placeholder='Month' />\n <SelectPositioner>\n <SelectContent>\n {monthsCollection.items.map(month => (\n <SelectOption key={month} item={month}>\n <SelectOptionText>{month}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>Year</FieldLabel>\n\n <Select collection={yearsCollection}>\n <SelectButton placeholder='Year' />\n\n <SelectPositioner>\n <SelectContent>\n {yearsCollection.items.map(year => (\n <SelectOption key={year} item={year}>\n <SelectOptionText>{year}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>CVV</FieldLabel>\n <Input placeholder='123' required />\n </Field>\n </HStack>\n\n <Field>\n <FieldLabel>Amount</FieldLabel>\n <NumberInput defaultValue='1000' />\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <FieldSeparator />\n\n <FieldSet>\n <FieldLegend>Billing Address</FieldLegend>\n\n <FieldDescription>\n The billing address associated with your payment method\n </FieldDescription>\n\n <FieldGroup>\n <Field orientation='horizontal'>\n <Checkbox defaultChecked>\n <CheckboxIndicator />\n <CheckboxLabel>Same as shipping address</CheckboxLabel>\n </Checkbox>\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <FieldSeparator />\n\n <FieldSet>\n <FieldLegend>Subscription Plan</FieldLegend>\n\n <FieldDescription>\n Yearly and lifetime plans offer significant savings.\n </FieldDescription>\n\n <Field>\n <RadioGroup defaultValue='monthly'>\n <Radio value='monthly'>\n <RadioIndicator />\n <RadioLabel>Monthly ($9.99/month)</RadioLabel>\n </Radio>\n <Radio value='yearly'>\n <RadioIndicator />\n <RadioLabel>Yearly ($99.99/year)</RadioLabel>\n </Radio>\n <Radio value='lifetime'>\n <RadioIndicator />\n <RadioLabel>Lifetime ($299.99)</RadioLabel>\n </Radio>\n </RadioGroup>\n </Field>\n </FieldSet>\n\n <FieldSeparator />\n\n <FieldSet>\n <FieldGroup>\n <Field orientation='horizontal'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Notice when delivered</SwitchLabel>\n </Switch>\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <FieldSet>\n <FieldGroup>\n <Field>\n <FieldLabel>Comments</FieldLabel>\n <Textarea placeholder='Add any additional comments' />\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <Field orientation='horizontal'>\n <Button type='submit'>Submit</Button>\n\n <Button variant='outline' color='neutral' type='button'>\n Cancel\n </Button>\n </Field>\n </FieldGroup>\n </form>\n </div>\n );\n}"
9057
- },
9058
- {
9059
- "name": "Inputs",
9060
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldGroup>\n <Field>\n <FieldLabel>Username</FieldLabel>\n <Input type='text' placeholder='Max Leiter' />\n <FieldDescription>Choose a unique username for your account.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Password</FieldLabel>\n <FieldDescription>Must be at least 8 characters long.</FieldDescription>\n <Input type='password' placeholder='********' />\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
9061
- },
9062
- {
9063
- "name": "Textareas",
9064
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldGroup>\n <Field>\n <FieldLabel>Feedback</FieldLabel>\n <Textarea placeholder='Your feedback helps us improve...' rows={4} />\n <FieldDescription>Share your thoughts about our service.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
9065
- },
9066
- {
9067
- "name": "Fieldset",
9068
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Profile</FieldLegend>\n <FieldDescription>This appears on invoices and emails.</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>\n Full name\n <FieldAction>Generate new</FieldAction>\n </FieldLabel>\n <Input autoComplete='off' placeholder='Evil Rabbit' />\n <FieldDescription>This appears on invoices and emails.</FieldDescription>\n </Field>\n <Field required>\n <FieldLabel>\n Username\n <FieldIndicator />\n </FieldLabel>\n <Input placeholder='@paveldurov' autoComplete='off' error />\n <FieldError>Choose another username.</FieldError>\n </Field>\n <Field>\n <FieldLabel>\n Message\n <Tooltip>\n <TooltipTrigger>\n <Info />\n </TooltipTrigger>\n <TooltipContent>Additional information</TooltipContent>\n </Tooltip>\n </FieldLabel>\n <Textarea placeholder='Your message...' />\n <FieldDescription>Enter your message.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
9069
- },
9070
- {
9071
- "name": "Switches",
9072
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Notification Settings</FieldLegend>\n <FieldDescription>Manage your notification preferences.</FieldDescription>\n\n <FieldGroup>\n <Field orientation='horizontal'>\n <Switch defaultChecked>\n <SwitchControl />\n <SwitchLabel>Email notifications</SwitchLabel>\n <SwitchDescription>Receive email alerts for important updates.</SwitchDescription>\n </Switch>\n </Field>\n\n <Field orientation='horizontal'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Push notifications</SwitchLabel>\n <SwitchDescription>Get push notifications on your device.</SwitchDescription>\n </Switch>\n </Field>\n\n <Field orientation='horizontal'>\n <Switch defaultChecked>\n <SwitchControl />\n <SwitchLabel>SMS notifications</SwitchLabel>\n <SwitchDescription>Receive text messages for critical alerts.</SwitchDescription>\n </Switch>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
9073
- },
9074
- {
9075
- "name": "Radios",
9076
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Delivery Method</FieldLegend>\n <FieldDescription>Choose how you want to receive your order.</FieldDescription>\n\n <Field>\n <RadioGroup defaultValue='standard'>\n <Radio value='standard'>\n <RadioIndicator />\n <RadioLabel>Standard Shipping (5-7 days)</RadioLabel>\n </Radio>\n <Radio value='express'>\n <RadioIndicator />\n <RadioLabel>Express Shipping (2-3 days)</RadioLabel>\n </Radio>\n <Radio value='overnight'>\n <RadioIndicator />\n <RadioLabel>Overnight Shipping (1 day)</RadioLabel>\n </Radio>\n <Radio value='pickup'>\n <RadioIndicator />\n <RadioLabel>In-store Pickup</RadioLabel>\n </Radio>\n </RadioGroup>\n\n <FieldDescription>Shipping costs will be calculated at checkout.</FieldDescription>\n </Field>\n </FieldSet>\n </div>\n)"
9077
- },
9078
- {
9079
- "name": "Checkboxes",
9080
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Terms and Preferences</FieldLegend>\n <FieldDescription>Select which terms you agree to.</FieldDescription>\n\n <FieldGroup>\n <Field orientation='horizontal'>\n <Checkbox defaultChecked>\n <CheckboxIndicator />\n <CheckboxLabel>I accept the terms and conditions</CheckboxLabel>\n <CheckboxDescription>You must agree to our terms to continue.</CheckboxDescription>\n </Checkbox>\n </Field>\n <Field orientation='horizontal'>\n <Checkbox>\n <CheckboxIndicator />\n <CheckboxLabel>Subscribe to newsletter</CheckboxLabel>\n <CheckboxDescription>Get weekly updates and exclusive offers.</CheckboxDescription>\n </Checkbox>\n </Field>\n <Field orientation='horizontal'>\n <Checkbox defaultChecked>\n <CheckboxIndicator />\n <CheckboxLabel>Share usage data</CheckboxLabel>\n <CheckboxDescription>Help us improve our services.</CheckboxDescription>\n </Checkbox>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
9081
- },
9082
- {
9083
- "name": "NumberInputs",
9084
- "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Product Details</FieldLegend>\n <FieldDescription>Configure your product quantity and pricing.</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>Quantity</FieldLabel>\n <NumberInput defaultValue='1' min={1} max={100} />\n <FieldDescription>Choose between 1 and 100 items.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Price per unit</FieldLabel>\n <NumberInput\n defaultValue='99.99'\n step={0.01}\n formatOptions={{ style: 'currency', currency: 'USD' }}\n />\n <FieldDescription>Set the price for each unit.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Discount percentage</FieldLabel>\n <NumberInput defaultValue='10' min={0} max={100} formatOptions={{ style: 'percent' }} />\n <FieldDescription>Apply a discount from 0% to 100%.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
9085
- },
9086
- {
9087
- "name": "Selects",
9088
- "code": "() => {\n const countriesCollection = createListCollection({\n items: [\n { value: 'us', label: 'United States' },\n { value: 'uk', label: 'United Kingdom' },\n { value: 'ca', label: 'Canada' },\n { value: 'au', label: 'Australia' },\n { value: 'fr', label: 'France' },\n { value: 'de', label: 'Germany' },\n { value: 'jp', label: 'Japan' },\n ],\n });\n\n const languagesCollection = createListCollection({\n items: [\n { value: 'en', label: 'English' },\n { value: 'es', label: 'Spanish' },\n { value: 'fr', label: 'French' },\n { value: 'de', label: 'German' },\n { value: 'it', label: 'Italian' },\n { value: 'pt', label: 'Portuguese' },\n { value: 'ru', label: 'Russian' },\n { value: 'zh', label: 'Chinese' },\n { value: 'ja', label: 'Japanese' },\n ],\n });\n\n const timezonesCollection = createListCollection({\n items: [\n { value: 'utc-8', label: 'Pacific Time (UTC-8)' },\n { value: 'utc-5', label: 'Eastern Time (UTC-5)' },\n { value: 'utc', label: 'UTC' },\n { value: 'utc+1', label: 'Central European Time (UTC+1)' },\n { value: 'utc+8', label: 'China Standard Time (UTC+8)' },\n { value: 'utc+9', label: 'Japan Standard Time (UTC+9)' },\n ],\n });\n\n return (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Regional Settings</FieldLegend>\n <FieldDescription>Configure your location and language preferences.</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>Country</FieldLabel>\n <Select collection={countriesCollection}>\n <SelectButton placeholder='Select a country' />\n <SelectPositioner>\n <SelectContent>\n {countriesCollection.items.map(country => (\n <SelectOption key={country.value} item={country}>\n <SelectOptionText>{country.label}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n <FieldDescription>Your country determines available features.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Language</FieldLabel>\n <Select collection={languagesCollection}>\n <SelectButton placeholder='Select a language' />\n <SelectPositioner>\n <SelectContent>\n {languagesCollection.items.map(language => (\n <SelectOption key={language.value} item={language}>\n <SelectOptionText>{language.label}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n <FieldDescription>Choose your preferred language.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Timezone</FieldLabel>\n <Select collection={timezonesCollection}>\n <SelectButton placeholder='Select a timezone' />\n <SelectPositioner>\n <SelectContent>\n {timezonesCollection.items.map(timezone => (\n <SelectOption key={timezone.value} item={timezone}>\n <SelectOptionText>{timezone.label}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n <FieldDescription>All times will be displayed in this timezone.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n );\n}"
9089
- }
9090
- ]
9091
- },
9092
- {
9093
- "name": "Flex",
9094
- "importPath": "@wallarm-org/design-system/Flex",
9095
- "props": [
9096
- {
9097
- "name": "defaultChecked",
9098
- "type": "boolean | undefined",
9099
- "required": false
9100
- },
9101
- {
9102
- "name": "defaultValue",
9103
- "type": "string | number | readonly string[] | undefined",
9104
- "required": false
9105
- },
9106
- {
9107
- "name": "suppressContentEditableWarning",
9108
- "type": "boolean | undefined",
9109
- "required": false
9110
- },
9111
- {
9112
- "name": "suppressHydrationWarning",
9113
- "type": "boolean | undefined",
9114
- "required": false
9115
- },
9116
- {
9117
- "name": "accessKey",
8895
+ "name": "rev",
9118
8896
  "type": "string | undefined",
9119
8897
  "required": false
9120
8898
  },
9121
8899
  {
9122
- "name": "autoCapitalize",
9123
- "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
9124
- "required": false
9125
- },
9126
- {
9127
- "name": "autoFocus",
9128
- "type": "boolean | undefined",
8900
+ "name": "typeof",
8901
+ "type": "string | undefined",
9129
8902
  "required": false
9130
8903
  },
9131
8904
  {
9132
- "name": "contentEditable",
9133
- "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
8905
+ "name": "vocab",
8906
+ "type": "string | undefined",
9134
8907
  "required": false
9135
8908
  },
9136
8909
  {
9137
- "name": "contextMenu",
8910
+ "name": "autoCorrect",
9138
8911
  "type": "string | undefined",
9139
8912
  "required": false
9140
8913
  },
9141
8914
  {
9142
- "name": "dir",
8915
+ "name": "autoSave",
9143
8916
  "type": "string | undefined",
9144
8917
  "required": false
9145
8918
  },
9146
8919
  {
9147
- "name": "draggable",
9148
- "type": "Booleanish | undefined",
8920
+ "name": "color",
8921
+ "type": "string | undefined",
9149
8922
  "required": false
9150
8923
  },
9151
8924
  {
9152
- "name": "enterKeyHint",
9153
- "type": "\"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
8925
+ "name": "itemProp",
8926
+ "type": "string | undefined",
9154
8927
  "required": false
9155
8928
  },
9156
8929
  {
9157
- "name": "hidden",
8930
+ "name": "itemScope",
9158
8931
  "type": "boolean | undefined",
9159
8932
  "required": false
9160
8933
  },
9161
8934
  {
9162
- "name": "id",
9163
- "type": "string | undefined",
9164
- "required": false
9165
- },
9166
- {
9167
- "name": "lang",
8935
+ "name": "itemType",
9168
8936
  "type": "string | undefined",
9169
8937
  "required": false
9170
8938
  },
9171
8939
  {
9172
- "name": "nonce",
8940
+ "name": "itemID",
9173
8941
  "type": "string | undefined",
9174
8942
  "required": false
9175
8943
  },
9176
8944
  {
9177
- "name": "slot",
8945
+ "name": "itemRef",
9178
8946
  "type": "string | undefined",
9179
8947
  "required": false
9180
8948
  },
9181
8949
  {
9182
- "name": "spellCheck",
9183
- "type": "Booleanish | undefined",
9184
- "required": false
9185
- },
9186
- {
9187
- "name": "tabIndex",
8950
+ "name": "results",
9188
8951
  "type": "number | undefined",
9189
8952
  "required": false
9190
8953
  },
9191
8954
  {
9192
- "name": "title",
8955
+ "name": "security",
9193
8956
  "type": "string | undefined",
9194
8957
  "required": false
9195
8958
  },
9196
8959
  {
9197
- "name": "translate",
9198
- "type": "\"yes\" | \"no\" | undefined",
9199
- "required": false
9200
- },
9201
- {
9202
- "name": "radioGroup",
9203
- "type": "string | undefined",
8960
+ "name": "unselectable",
8961
+ "type": "\"off\" | \"on\" | undefined",
9204
8962
  "required": false
9205
8963
  },
9206
8964
  {
9207
- "name": "role",
9208
- "type": "AriaRole | undefined",
8965
+ "name": "popover",
8966
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
9209
8967
  "required": false
9210
8968
  },
9211
8969
  {
9212
- "name": "about",
9213
- "type": "string | undefined",
8970
+ "name": "popoverTargetAction",
8971
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
9214
8972
  "required": false
9215
8973
  },
9216
8974
  {
9217
- "name": "content",
8975
+ "name": "popoverTarget",
9218
8976
  "type": "string | undefined",
9219
8977
  "required": false
9220
8978
  },
9221
8979
  {
9222
- "name": "datatype",
9223
- "type": "string | undefined",
9224
- "required": false
8980
+ "name": "inert",
8981
+ "type": "boolean | undefined",
8982
+ "required": false,
8983
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
9225
8984
  },
9226
8985
  {
9227
- "name": "inlist",
9228
- "type": "any",
9229
- "required": false
8986
+ "name": "inputMode",
8987
+ "type": "\"search\" | \"text\" | \"none\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
8988
+ "required": false,
8989
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
9230
8990
  },
9231
8991
  {
9232
- "name": "prefix",
8992
+ "name": "is",
9233
8993
  "type": "string | undefined",
9234
- "required": false
8994
+ "required": false,
8995
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
9235
8996
  },
9236
8997
  {
9237
- "name": "property",
8998
+ "name": "exportparts",
9238
8999
  "type": "string | undefined",
9239
- "required": false
9000
+ "required": false,
9001
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
9240
9002
  },
9241
9003
  {
9242
- "name": "rel",
9004
+ "name": "part",
9243
9005
  "type": "string | undefined",
9244
- "required": false
9006
+ "required": false,
9007
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
9245
9008
  },
9246
9009
  {
9247
- "name": "resource",
9248
- "type": "string | undefined",
9249
- "required": false
9250
- },
9251
- {
9252
- "name": "rev",
9253
- "type": "string | undefined",
9254
- "required": false
9255
- },
9256
- {
9257
- "name": "typeof",
9258
- "type": "string | undefined",
9259
- "required": false
9260
- },
9261
- {
9262
- "name": "vocab",
9263
- "type": "string | undefined",
9264
- "required": false
9265
- },
9266
- {
9267
- "name": "autoCorrect",
9268
- "type": "string | undefined",
9269
- "required": false
9270
- },
9271
- {
9272
- "name": "autoSave",
9273
- "type": "string | undefined",
9274
- "required": false
9275
- },
9276
- {
9277
- "name": "color",
9278
- "type": "string | undefined",
9279
- "required": false
9280
- },
9281
- {
9282
- "name": "itemProp",
9283
- "type": "string | undefined",
9284
- "required": false
9285
- },
9286
- {
9287
- "name": "itemScope",
9288
- "type": "boolean | undefined",
9289
- "required": false
9290
- },
9291
- {
9292
- "name": "itemType",
9293
- "type": "string | undefined",
9294
- "required": false
9295
- },
9296
- {
9297
- "name": "itemID",
9298
- "type": "string | undefined",
9299
- "required": false
9300
- },
9301
- {
9302
- "name": "itemRef",
9303
- "type": "string | undefined",
9304
- "required": false
9305
- },
9306
- {
9307
- "name": "results",
9308
- "type": "number | undefined",
9309
- "required": false
9310
- },
9311
- {
9312
- "name": "security",
9313
- "type": "string | undefined",
9314
- "required": false
9315
- },
9316
- {
9317
- "name": "unselectable",
9318
- "type": "\"off\" | \"on\" | undefined",
9319
- "required": false
9320
- },
9321
- {
9322
- "name": "popover",
9323
- "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
9324
- "required": false
9325
- },
9326
- {
9327
- "name": "popoverTargetAction",
9328
- "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
9329
- "required": false
9330
- },
9331
- {
9332
- "name": "popoverTarget",
9333
- "type": "string | undefined",
9334
- "required": false
9335
- },
9336
- {
9337
- "name": "inert",
9338
- "type": "boolean | undefined",
9339
- "required": false,
9340
- "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
9341
- },
9342
- {
9343
- "name": "inputMode",
9344
- "type": "\"none\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
9345
- "required": false,
9346
- "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
9347
- },
9348
- {
9349
- "name": "is",
9350
- "type": "string | undefined",
9351
- "required": false,
9352
- "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
9353
- },
9354
- {
9355
- "name": "exportparts",
9356
- "type": "string | undefined",
9357
- "required": false,
9358
- "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
9359
- },
9360
- {
9361
- "name": "part",
9362
- "type": "string | undefined",
9363
- "required": false,
9364
- "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
9365
- },
9366
- {
9367
- "name": "inline",
9368
- "type": "{ true: string; false: string; }",
9369
- "required": false,
9370
- "defaultValue": "false"
9371
- },
9372
- {
9373
- "name": "direction",
9374
- "type": "{ row: string; column: string; 'row-reverse': string; 'column-reverse': string; }",
9375
- "required": false,
9376
- "defaultValue": "row"
9377
- },
9378
- {
9379
- "name": "align",
9380
- "type": "{ start: string; center: string; end: string; stretch: string; baseline: string; }",
9381
- "required": false,
9382
- "defaultValue": "stretch"
9383
- },
9384
- {
9385
- "name": "justify",
9386
- "type": "{ start: string; center: string; end: string; between: string; around: string; evenly: string; }",
9387
- "required": false,
9388
- "defaultValue": "start"
9389
- },
9390
- {
9391
- "name": "wrap",
9392
- "type": "{ wrap: string; nowrap: string; reverse: string; }",
9010
+ "name": "size",
9011
+ "type": "{ small: string; medium: string; }",
9393
9012
  "required": false,
9394
- "defaultValue": "nowrap"
9395
- },
9396
- {
9397
- "name": "gap",
9398
- "type": "complex",
9399
- "required": false
9400
- },
9401
- {
9402
- "name": "grow",
9403
- "type": "{ true: string; false: string; }",
9404
- "required": false
9405
- },
9406
- {
9407
- "name": "shrink",
9408
- "type": "{ true: string; false: string; }",
9409
- "required": false
9410
- },
9411
- {
9412
- "name": "fullWidth",
9413
- "type": "{ true: string; }",
9414
- "required": false
9415
- },
9416
- {
9417
- "name": "basis",
9418
- "type": "complex",
9419
- "required": false
9013
+ "defaultValue": "medium"
9420
9014
  },
9421
9015
  {
9422
9016
  "name": "asChild",
9423
9017
  "type": "boolean | undefined",
9424
9018
  "required": false,
9425
9019
  "defaultValue": "false"
9020
+ },
9021
+ {
9022
+ "name": "code",
9023
+ "type": "\"AF\" | \"AX\" | \"AL\" | \"DZ\" | \"AS\" | \"AD\" | \"AO\" | \"AI\" | \"AG\" | \"AR\" | \"AM\" | \"AW\" | \"AU\" | \"AT\" | \"AZ\" | \"BS\" | \"BH\" | \"BD\" | \"BB\" | \"BY\" | \"BE\" | \"BZ\" | \"BJ\" | \"BM\" | \"BT\" | \"BO\" | \"BQ\" | \"BA\" | \"BW\" | \"BV\" | \"BR\" | \"IO\" | \"BN\" | \"BG\" | \"BF\" | \"BI\" | \"CV\" | \"KH\" | \"CM\" | \"CA\" | \"KY\" | \"CF\" | \"TD\" | \"CL\" | \"CN\" | \"CX\" | \"CC\" | \"CO\" | \"KM\" | \"CG\" | \"CD\" | \"CK\" | \"CR\" | \"CI\" | \"HR\" | \"CU\" | \"CW\" | \"CY\" | \"CZ\" | \"DK\" | \"DJ\" | \"DM\" | \"DO\" | \"DNO\" | \"EC\" | \"EG\" | \"SV\" | \"GQ\" | \"ER\" | \"EE\" | \"ET\" | \"FK\" | \"FO\" | \"FJ\" | \"FI\" | \"FR\" | \"GF\" | \"PF\" | \"TF\" | \"GA\" | \"GM\" | \"GE\" | \"DE\" | \"GH\" | \"GI\" | \"GR\" | \"GL\" | \"GD\" | \"GP\" | \"GU\" | \"GT\" | \"GG\" | \"GN\" | \"GW\" | \"GY\" | \"HT\" | \"HM\" | \"VA\" | \"HN\" | \"HK\" | \"HU\" | \"IS\" | \"IN\" | \"ID\" | \"IR\" | \"IQ\" | \"IE\" | \"IM\" | \"IL\" | \"IT\" | \"JM\" | \"JP\" | \"JE\" | \"JO\" | \"KZ\" | \"KE\" | \"KI\" | \"KP\" | \"KR\" | \"KW\" | \"KG\" | \"LA\" | \"LV\" | \"LB\" | \"LS\" | \"LR\" | \"LY\" | \"LI\" | \"LT\" | \"LHO\" | \"LU\" | \"MO\" | \"MK\" | \"MG\" | \"MW\" | \"MY\" | \"MV\" | \"ML\" | \"MT\" | \"MH\" | \"MQ\" | \"MR\" | \"MU\" | \"YT\" | \"MX\" | \"FM\" | \"MD\" | \"MC\" | \"MN\" | \"ME\" | \"MS\" | \"MA\" | \"MZ\" | \"MM\" | \"NA\" | \"NR\" | \"NP\" | \"NL\" | \"NC\" | \"NZ\" | \"NI\" | \"NE\" | \"NG\" | \"NU\" | \"NF\" | \"MP\" | \"NO\" | \"OM\" | \"PK\" | \"PW\" | \"PS\" | \"PA\" | \"PG\" | \"PY\" | \"PE\" | \"PH\" | \"PN\" | \"PL\" | \"PT\" | \"PR\" | \"QA\" | \"ROC\" | \"RE\" | \"RO\" | \"RU\" | \"RW\" | \"BL\" | \"SH\" | \"KN\" | \"LC\" | \"MF\" | \"PM\" | \"VC\" | \"WS\" | \"SM\" | \"ST\" | \"SA\" | \"SN\" | \"RS\" | \"SC\" | \"SL\" | \"SG\" | \"SX\" | \"SK\" | \"SI\" | \"SB\" | \"SO\" | \"ZA\" | \"GS\" | \"SS\" | \"ES\" | \"LK\" | \"SD\" | \"SR\" | \"SJ\" | \"SZ\" | \"SE\" | \"CH\" | \"SY\" | \"TW\" | \"TJ\" | \"TZ\" | \"TH\" | \"TL\" | \"TG\" | \"TK\" | \"TO\" | \"TT\" | \"TN\" | \"TR\" | \"TM\" | \"TC\" | \"TV\" | \"UG\" | \"UA\" | \"AE\" | \"GB\" | \"US\" | \"UY\" | \"UZ\" | \"VU\" | \"VE\" | \"VN\" | \"VG\" | \"VI\" | \"WF\" | \"EH\" | \"YE\" | \"ZM\" | \"ZW\"",
9024
+ "required": true
9426
9025
  }
9427
9026
  ],
9428
9027
  "variants": [
9429
9028
  {
9430
- "name": "inline",
9431
- "options": [
9432
- "true",
9433
- "false"
9434
- ]
9435
- },
9436
- {
9437
- "name": "direction",
9438
- "options": [
9439
- "row",
9440
- "column",
9441
- "row-reverse",
9442
- "column-reverse"
9443
- ]
9444
- },
9445
- {
9446
- "name": "align",
9447
- "options": [
9448
- "start",
9449
- "center",
9450
- "end",
9451
- "stretch",
9452
- "baseline"
9453
- ]
9454
- },
9455
- {
9456
- "name": "justify",
9457
- "options": [
9458
- "start",
9459
- "center",
9460
- "end",
9461
- "between",
9462
- "around",
9463
- "evenly"
9464
- ]
9465
- },
9466
- {
9467
- "name": "wrap",
9468
- "options": [
9469
- "wrap",
9470
- "nowrap",
9471
- "reverse"
9472
- ]
9473
- },
9474
- {
9475
- "name": "gap",
9029
+ "name": "size",
9476
9030
  "options": [
9477
- "1",
9478
- "2",
9479
- "4",
9480
- "6",
9481
- "8",
9482
- "12",
9483
- "16",
9484
- "20",
9485
- "24",
9486
- "28",
9487
- "32",
9488
- "36",
9489
- "40",
9490
- "44",
9491
- "48",
9492
- "56",
9493
- "64",
9494
- "80",
9495
- "96",
9496
- "112",
9497
- "128",
9498
- "144"
9031
+ "small",
9032
+ "medium"
9499
9033
  ]
9500
- },
9034
+ }
9035
+ ],
9036
+ "subComponents": [
9501
9037
  {
9502
- "name": "grow",
9503
- "options": [
9504
- "true",
9505
- "false"
9506
- ]
9038
+ "name": "CountryFlag",
9039
+ "props": [
9040
+ {
9041
+ "name": "slot",
9042
+ "type": "string | undefined",
9043
+ "required": false
9044
+ },
9045
+ {
9046
+ "name": "title",
9047
+ "type": "string | undefined",
9048
+ "required": false
9049
+ },
9050
+ {
9051
+ "name": "defaultChecked",
9052
+ "type": "boolean | undefined",
9053
+ "required": false
9054
+ },
9055
+ {
9056
+ "name": "defaultValue",
9057
+ "type": "string | number | readonly string[] | undefined",
9058
+ "required": false
9059
+ },
9060
+ {
9061
+ "name": "suppressContentEditableWarning",
9062
+ "type": "boolean | undefined",
9063
+ "required": false
9064
+ },
9065
+ {
9066
+ "name": "suppressHydrationWarning",
9067
+ "type": "boolean | undefined",
9068
+ "required": false
9069
+ },
9070
+ {
9071
+ "name": "accessKey",
9072
+ "type": "string | undefined",
9073
+ "required": false
9074
+ },
9075
+ {
9076
+ "name": "autoCapitalize",
9077
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
9078
+ "required": false
9079
+ },
9080
+ {
9081
+ "name": "autoFocus",
9082
+ "type": "boolean | undefined",
9083
+ "required": false
9084
+ },
9085
+ {
9086
+ "name": "contentEditable",
9087
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
9088
+ "required": false
9089
+ },
9090
+ {
9091
+ "name": "contextMenu",
9092
+ "type": "string | undefined",
9093
+ "required": false
9094
+ },
9095
+ {
9096
+ "name": "dir",
9097
+ "type": "string | undefined",
9098
+ "required": false
9099
+ },
9100
+ {
9101
+ "name": "draggable",
9102
+ "type": "Booleanish | undefined",
9103
+ "required": false
9104
+ },
9105
+ {
9106
+ "name": "enterKeyHint",
9107
+ "type": "\"search\" | \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"send\" | undefined",
9108
+ "required": false
9109
+ },
9110
+ {
9111
+ "name": "hidden",
9112
+ "type": "boolean | undefined",
9113
+ "required": false
9114
+ },
9115
+ {
9116
+ "name": "id",
9117
+ "type": "string | undefined",
9118
+ "required": false
9119
+ },
9120
+ {
9121
+ "name": "lang",
9122
+ "type": "string | undefined",
9123
+ "required": false
9124
+ },
9125
+ {
9126
+ "name": "nonce",
9127
+ "type": "string | undefined",
9128
+ "required": false
9129
+ },
9130
+ {
9131
+ "name": "spellCheck",
9132
+ "type": "Booleanish | undefined",
9133
+ "required": false
9134
+ },
9135
+ {
9136
+ "name": "tabIndex",
9137
+ "type": "number | undefined",
9138
+ "required": false
9139
+ },
9140
+ {
9141
+ "name": "translate",
9142
+ "type": "\"yes\" | \"no\" | undefined",
9143
+ "required": false
9144
+ },
9145
+ {
9146
+ "name": "radioGroup",
9147
+ "type": "string | undefined",
9148
+ "required": false
9149
+ },
9150
+ {
9151
+ "name": "role",
9152
+ "type": "AriaRole | undefined",
9153
+ "required": false
9154
+ },
9155
+ {
9156
+ "name": "about",
9157
+ "type": "string | undefined",
9158
+ "required": false
9159
+ },
9160
+ {
9161
+ "name": "content",
9162
+ "type": "string | undefined",
9163
+ "required": false
9164
+ },
9165
+ {
9166
+ "name": "datatype",
9167
+ "type": "string | undefined",
9168
+ "required": false
9169
+ },
9170
+ {
9171
+ "name": "inlist",
9172
+ "type": "any",
9173
+ "required": false
9174
+ },
9175
+ {
9176
+ "name": "prefix",
9177
+ "type": "string | undefined",
9178
+ "required": false
9179
+ },
9180
+ {
9181
+ "name": "property",
9182
+ "type": "string | undefined",
9183
+ "required": false
9184
+ },
9185
+ {
9186
+ "name": "rel",
9187
+ "type": "string | undefined",
9188
+ "required": false
9189
+ },
9190
+ {
9191
+ "name": "resource",
9192
+ "type": "string | undefined",
9193
+ "required": false
9194
+ },
9195
+ {
9196
+ "name": "rev",
9197
+ "type": "string | undefined",
9198
+ "required": false
9199
+ },
9200
+ {
9201
+ "name": "typeof",
9202
+ "type": "string | undefined",
9203
+ "required": false
9204
+ },
9205
+ {
9206
+ "name": "vocab",
9207
+ "type": "string | undefined",
9208
+ "required": false
9209
+ },
9210
+ {
9211
+ "name": "autoCorrect",
9212
+ "type": "string | undefined",
9213
+ "required": false
9214
+ },
9215
+ {
9216
+ "name": "autoSave",
9217
+ "type": "string | undefined",
9218
+ "required": false
9219
+ },
9220
+ {
9221
+ "name": "color",
9222
+ "type": "string | undefined",
9223
+ "required": false
9224
+ },
9225
+ {
9226
+ "name": "itemProp",
9227
+ "type": "string | undefined",
9228
+ "required": false
9229
+ },
9230
+ {
9231
+ "name": "itemScope",
9232
+ "type": "boolean | undefined",
9233
+ "required": false
9234
+ },
9235
+ {
9236
+ "name": "itemType",
9237
+ "type": "string | undefined",
9238
+ "required": false
9239
+ },
9240
+ {
9241
+ "name": "itemID",
9242
+ "type": "string | undefined",
9243
+ "required": false
9244
+ },
9245
+ {
9246
+ "name": "itemRef",
9247
+ "type": "string | undefined",
9248
+ "required": false
9249
+ },
9250
+ {
9251
+ "name": "results",
9252
+ "type": "number | undefined",
9253
+ "required": false
9254
+ },
9255
+ {
9256
+ "name": "security",
9257
+ "type": "string | undefined",
9258
+ "required": false
9259
+ },
9260
+ {
9261
+ "name": "unselectable",
9262
+ "type": "\"off\" | \"on\" | undefined",
9263
+ "required": false
9264
+ },
9265
+ {
9266
+ "name": "popover",
9267
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
9268
+ "required": false
9269
+ },
9270
+ {
9271
+ "name": "popoverTargetAction",
9272
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
9273
+ "required": false
9274
+ },
9275
+ {
9276
+ "name": "popoverTarget",
9277
+ "type": "string | undefined",
9278
+ "required": false
9279
+ },
9280
+ {
9281
+ "name": "inert",
9282
+ "type": "boolean | undefined",
9283
+ "required": false,
9284
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
9285
+ },
9286
+ {
9287
+ "name": "inputMode",
9288
+ "type": "\"search\" | \"text\" | \"none\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
9289
+ "required": false,
9290
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
9291
+ },
9292
+ {
9293
+ "name": "is",
9294
+ "type": "string | undefined",
9295
+ "required": false,
9296
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
9297
+ },
9298
+ {
9299
+ "name": "exportparts",
9300
+ "type": "string | undefined",
9301
+ "required": false,
9302
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
9303
+ },
9304
+ {
9305
+ "name": "part",
9306
+ "type": "string | undefined",
9307
+ "required": false,
9308
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
9309
+ },
9310
+ {
9311
+ "name": "crossOrigin",
9312
+ "type": "CrossOrigin",
9313
+ "required": false
9314
+ },
9315
+ {
9316
+ "name": "decoding",
9317
+ "type": "\"auto\" | \"async\" | \"sync\" | undefined",
9318
+ "required": false
9319
+ },
9320
+ {
9321
+ "name": "fetchPriority",
9322
+ "type": "\"auto\" | \"high\" | \"low\" | undefined",
9323
+ "required": false
9324
+ },
9325
+ {
9326
+ "name": "height",
9327
+ "type": "string | number | undefined",
9328
+ "required": false
9329
+ },
9330
+ {
9331
+ "name": "loading",
9332
+ "type": "\"eager\" | \"lazy\" | undefined",
9333
+ "required": false
9334
+ },
9335
+ {
9336
+ "name": "referrerPolicy",
9337
+ "type": "HTMLAttributeReferrerPolicy | undefined",
9338
+ "required": false
9339
+ },
9340
+ {
9341
+ "name": "sizes",
9342
+ "type": "string | undefined",
9343
+ "required": false
9344
+ },
9345
+ {
9346
+ "name": "srcSet",
9347
+ "type": "string | undefined",
9348
+ "required": false
9349
+ },
9350
+ {
9351
+ "name": "useMap",
9352
+ "type": "string | undefined",
9353
+ "required": false
9354
+ },
9355
+ {
9356
+ "name": "width",
9357
+ "type": "string | number | undefined",
9358
+ "required": false
9359
+ }
9360
+ ]
9361
+ },
9362
+ {
9363
+ "name": "CountryName",
9364
+ "props": [
9365
+ {
9366
+ "name": "defaultChecked",
9367
+ "type": "boolean | undefined",
9368
+ "required": false
9369
+ },
9370
+ {
9371
+ "name": "defaultValue",
9372
+ "type": "string | number | readonly string[] | undefined",
9373
+ "required": false
9374
+ },
9375
+ {
9376
+ "name": "suppressContentEditableWarning",
9377
+ "type": "boolean | undefined",
9378
+ "required": false
9379
+ },
9380
+ {
9381
+ "name": "suppressHydrationWarning",
9382
+ "type": "boolean | undefined",
9383
+ "required": false
9384
+ },
9385
+ {
9386
+ "name": "accessKey",
9387
+ "type": "string | undefined",
9388
+ "required": false
9389
+ },
9390
+ {
9391
+ "name": "autoCapitalize",
9392
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
9393
+ "required": false
9394
+ },
9395
+ {
9396
+ "name": "autoFocus",
9397
+ "type": "boolean | undefined",
9398
+ "required": false
9399
+ },
9400
+ {
9401
+ "name": "contentEditable",
9402
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
9403
+ "required": false
9404
+ },
9405
+ {
9406
+ "name": "contextMenu",
9407
+ "type": "string | undefined",
9408
+ "required": false
9409
+ },
9410
+ {
9411
+ "name": "dir",
9412
+ "type": "string | undefined",
9413
+ "required": false
9414
+ },
9415
+ {
9416
+ "name": "draggable",
9417
+ "type": "Booleanish | undefined",
9418
+ "required": false
9419
+ },
9420
+ {
9421
+ "name": "enterKeyHint",
9422
+ "type": "\"search\" | \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"send\" | undefined",
9423
+ "required": false
9424
+ },
9425
+ {
9426
+ "name": "hidden",
9427
+ "type": "boolean | undefined",
9428
+ "required": false
9429
+ },
9430
+ {
9431
+ "name": "id",
9432
+ "type": "string | undefined",
9433
+ "required": false
9434
+ },
9435
+ {
9436
+ "name": "lang",
9437
+ "type": "string | undefined",
9438
+ "required": false
9439
+ },
9440
+ {
9441
+ "name": "nonce",
9442
+ "type": "string | undefined",
9443
+ "required": false
9444
+ },
9445
+ {
9446
+ "name": "slot",
9447
+ "type": "string | undefined",
9448
+ "required": false
9449
+ },
9450
+ {
9451
+ "name": "spellCheck",
9452
+ "type": "Booleanish | undefined",
9453
+ "required": false
9454
+ },
9455
+ {
9456
+ "name": "tabIndex",
9457
+ "type": "number | undefined",
9458
+ "required": false
9459
+ },
9460
+ {
9461
+ "name": "title",
9462
+ "type": "string | undefined",
9463
+ "required": false
9464
+ },
9465
+ {
9466
+ "name": "translate",
9467
+ "type": "\"yes\" | \"no\" | undefined",
9468
+ "required": false
9469
+ },
9470
+ {
9471
+ "name": "radioGroup",
9472
+ "type": "string | undefined",
9473
+ "required": false
9474
+ },
9475
+ {
9476
+ "name": "role",
9477
+ "type": "AriaRole | undefined",
9478
+ "required": false
9479
+ },
9480
+ {
9481
+ "name": "about",
9482
+ "type": "string | undefined",
9483
+ "required": false
9484
+ },
9485
+ {
9486
+ "name": "content",
9487
+ "type": "string | undefined",
9488
+ "required": false
9489
+ },
9490
+ {
9491
+ "name": "datatype",
9492
+ "type": "string | undefined",
9493
+ "required": false
9494
+ },
9495
+ {
9496
+ "name": "inlist",
9497
+ "type": "any",
9498
+ "required": false
9499
+ },
9500
+ {
9501
+ "name": "prefix",
9502
+ "type": "string | undefined",
9503
+ "required": false
9504
+ },
9505
+ {
9506
+ "name": "property",
9507
+ "type": "string | undefined",
9508
+ "required": false
9509
+ },
9510
+ {
9511
+ "name": "rel",
9512
+ "type": "string | undefined",
9513
+ "required": false
9514
+ },
9515
+ {
9516
+ "name": "resource",
9517
+ "type": "string | undefined",
9518
+ "required": false
9519
+ },
9520
+ {
9521
+ "name": "rev",
9522
+ "type": "string | undefined",
9523
+ "required": false
9524
+ },
9525
+ {
9526
+ "name": "typeof",
9527
+ "type": "string | undefined",
9528
+ "required": false
9529
+ },
9530
+ {
9531
+ "name": "vocab",
9532
+ "type": "string | undefined",
9533
+ "required": false
9534
+ },
9535
+ {
9536
+ "name": "autoCorrect",
9537
+ "type": "string | undefined",
9538
+ "required": false
9539
+ },
9540
+ {
9541
+ "name": "autoSave",
9542
+ "type": "string | undefined",
9543
+ "required": false
9544
+ },
9545
+ {
9546
+ "name": "color",
9547
+ "type": "string | undefined",
9548
+ "required": false
9549
+ },
9550
+ {
9551
+ "name": "itemProp",
9552
+ "type": "string | undefined",
9553
+ "required": false
9554
+ },
9555
+ {
9556
+ "name": "itemScope",
9557
+ "type": "boolean | undefined",
9558
+ "required": false
9559
+ },
9560
+ {
9561
+ "name": "itemType",
9562
+ "type": "string | undefined",
9563
+ "required": false
9564
+ },
9565
+ {
9566
+ "name": "itemID",
9567
+ "type": "string | undefined",
9568
+ "required": false
9569
+ },
9570
+ {
9571
+ "name": "itemRef",
9572
+ "type": "string | undefined",
9573
+ "required": false
9574
+ },
9575
+ {
9576
+ "name": "results",
9577
+ "type": "number | undefined",
9578
+ "required": false
9579
+ },
9580
+ {
9581
+ "name": "security",
9582
+ "type": "string | undefined",
9583
+ "required": false
9584
+ },
9585
+ {
9586
+ "name": "unselectable",
9587
+ "type": "\"off\" | \"on\" | undefined",
9588
+ "required": false
9589
+ },
9590
+ {
9591
+ "name": "popover",
9592
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
9593
+ "required": false
9594
+ },
9595
+ {
9596
+ "name": "popoverTargetAction",
9597
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
9598
+ "required": false
9599
+ },
9600
+ {
9601
+ "name": "popoverTarget",
9602
+ "type": "string | undefined",
9603
+ "required": false
9604
+ },
9605
+ {
9606
+ "name": "inert",
9607
+ "type": "boolean | undefined",
9608
+ "required": false,
9609
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
9610
+ },
9611
+ {
9612
+ "name": "inputMode",
9613
+ "type": "\"search\" | \"text\" | \"none\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
9614
+ "required": false,
9615
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
9616
+ },
9617
+ {
9618
+ "name": "is",
9619
+ "type": "string | undefined",
9620
+ "required": false,
9621
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
9622
+ },
9623
+ {
9624
+ "name": "exportparts",
9625
+ "type": "string | undefined",
9626
+ "required": false,
9627
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
9628
+ },
9629
+ {
9630
+ "name": "part",
9631
+ "type": "string | undefined",
9632
+ "required": false,
9633
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
9634
+ }
9635
+ ]
9636
+ }
9637
+ ],
9638
+ "examples": [
9639
+ {
9640
+ "name": "Basic",
9641
+ "code": "args => (\n <Country code={args.code} size={args.size}>\n <CountryFlag />\n <CountryName />\n </Country>\n)"
9642
+ },
9643
+ {
9644
+ "name": "Sizes",
9645
+ "code": "() => (\n <HStack align='center' gap={16}>\n <Country code='US' size='small'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='US' size='medium'>\n <CountryFlag />\n <CountryName />\n </Country>\n </HStack>\n)"
9646
+ },
9647
+ {
9648
+ "name": "FlagOnly",
9649
+ "code": "() => (\n <HStack gap={8}>\n <Country code='US'>\n <CountryFlag />\n </Country>\n <Country code='GB'>\n <CountryFlag />\n </Country>\n <Country code='DE'>\n <CountryFlag />\n </Country>\n <Country code='FR'>\n <CountryFlag />\n </Country>\n <Country code='JP'>\n <CountryFlag />\n </Country>\n </HStack>\n)"
9650
+ },
9651
+ {
9652
+ "name": "NameOnly",
9653
+ "code": "() => (\n <VStack gap={4}>\n <Country code='US'>\n <CountryName />\n </Country>\n <Country code='GB'>\n <CountryName />\n </Country>\n <Country code='DE'>\n <CountryName />\n </Country>\n </VStack>\n)"
9654
+ },
9655
+ {
9656
+ "name": "Examples",
9657
+ "code": "() => (\n <VStack gap={8}>\n <Country code='US'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='GB'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='DE'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='FR'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='JP'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='RU'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='CN'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='BR'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='AU'>\n <CountryFlag />\n <CountryName />\n </Country>\n <Country code='CA'>\n <CountryFlag />\n <CountryName />\n </Country>\n </VStack>\n)"
9658
+ }
9659
+ ]
9660
+ },
9661
+ {
9662
+ "name": "DateTime",
9663
+ "importPath": "@wallarm-org/design-system/DateTime",
9664
+ "props": [
9665
+ {
9666
+ "name": "defaultChecked",
9667
+ "type": "boolean | undefined",
9668
+ "required": false
9669
+ },
9670
+ {
9671
+ "name": "defaultValue",
9672
+ "type": "string | number | readonly string[] | undefined",
9673
+ "required": false
9674
+ },
9675
+ {
9676
+ "name": "suppressContentEditableWarning",
9677
+ "type": "boolean | undefined",
9678
+ "required": false
9679
+ },
9680
+ {
9681
+ "name": "suppressHydrationWarning",
9682
+ "type": "boolean | undefined",
9683
+ "required": false
9684
+ },
9685
+ {
9686
+ "name": "accessKey",
9687
+ "type": "string | undefined",
9688
+ "required": false
9689
+ },
9690
+ {
9691
+ "name": "autoCapitalize",
9692
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
9693
+ "required": false
9694
+ },
9695
+ {
9696
+ "name": "autoFocus",
9697
+ "type": "boolean | undefined",
9698
+ "required": false
9699
+ },
9700
+ {
9701
+ "name": "contentEditable",
9702
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
9703
+ "required": false
9704
+ },
9705
+ {
9706
+ "name": "contextMenu",
9707
+ "type": "string | undefined",
9708
+ "required": false
9709
+ },
9710
+ {
9711
+ "name": "dir",
9712
+ "type": "string | undefined",
9713
+ "required": false
9714
+ },
9715
+ {
9716
+ "name": "draggable",
9717
+ "type": "Booleanish | undefined",
9718
+ "required": false
9719
+ },
9720
+ {
9721
+ "name": "enterKeyHint",
9722
+ "type": "\"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
9723
+ "required": false
9724
+ },
9725
+ {
9726
+ "name": "hidden",
9727
+ "type": "boolean | undefined",
9728
+ "required": false
9729
+ },
9730
+ {
9731
+ "name": "id",
9732
+ "type": "string | undefined",
9733
+ "required": false
9734
+ },
9735
+ {
9736
+ "name": "lang",
9737
+ "type": "string | undefined",
9738
+ "required": false
9739
+ },
9740
+ {
9741
+ "name": "nonce",
9742
+ "type": "string | undefined",
9743
+ "required": false
9744
+ },
9745
+ {
9746
+ "name": "slot",
9747
+ "type": "string | undefined",
9748
+ "required": false
9749
+ },
9750
+ {
9751
+ "name": "spellCheck",
9752
+ "type": "Booleanish | undefined",
9753
+ "required": false
9754
+ },
9755
+ {
9756
+ "name": "tabIndex",
9757
+ "type": "number | undefined",
9758
+ "required": false
9759
+ },
9760
+ {
9761
+ "name": "title",
9762
+ "type": "string | undefined",
9763
+ "required": false
9764
+ },
9765
+ {
9766
+ "name": "translate",
9767
+ "type": "\"yes\" | \"no\" | undefined",
9768
+ "required": false
9769
+ },
9770
+ {
9771
+ "name": "radioGroup",
9772
+ "type": "string | undefined",
9773
+ "required": false
9774
+ },
9775
+ {
9776
+ "name": "role",
9777
+ "type": "AriaRole | undefined",
9778
+ "required": false
9779
+ },
9780
+ {
9781
+ "name": "about",
9782
+ "type": "string | undefined",
9783
+ "required": false
9784
+ },
9785
+ {
9786
+ "name": "content",
9787
+ "type": "string | undefined",
9788
+ "required": false
9789
+ },
9790
+ {
9791
+ "name": "datatype",
9792
+ "type": "string | undefined",
9793
+ "required": false
9794
+ },
9795
+ {
9796
+ "name": "inlist",
9797
+ "type": "any",
9798
+ "required": false
9799
+ },
9800
+ {
9801
+ "name": "prefix",
9802
+ "type": "string | undefined",
9803
+ "required": false
9804
+ },
9805
+ {
9806
+ "name": "property",
9807
+ "type": "string | undefined",
9808
+ "required": false
9809
+ },
9810
+ {
9811
+ "name": "rel",
9812
+ "type": "string | undefined",
9813
+ "required": false
9814
+ },
9815
+ {
9816
+ "name": "resource",
9817
+ "type": "string | undefined",
9818
+ "required": false
9819
+ },
9820
+ {
9821
+ "name": "rev",
9822
+ "type": "string | undefined",
9823
+ "required": false
9824
+ },
9825
+ {
9826
+ "name": "typeof",
9827
+ "type": "string | undefined",
9828
+ "required": false
9829
+ },
9830
+ {
9831
+ "name": "vocab",
9832
+ "type": "string | undefined",
9833
+ "required": false
9834
+ },
9835
+ {
9836
+ "name": "autoCorrect",
9837
+ "type": "string | undefined",
9838
+ "required": false
9839
+ },
9840
+ {
9841
+ "name": "autoSave",
9842
+ "type": "string | undefined",
9843
+ "required": false
9844
+ },
9845
+ {
9846
+ "name": "color",
9847
+ "type": "string | undefined",
9848
+ "required": false
9849
+ },
9850
+ {
9851
+ "name": "itemProp",
9852
+ "type": "string | undefined",
9853
+ "required": false
9854
+ },
9855
+ {
9856
+ "name": "itemScope",
9857
+ "type": "boolean | undefined",
9858
+ "required": false
9859
+ },
9860
+ {
9861
+ "name": "itemType",
9862
+ "type": "string | undefined",
9863
+ "required": false
9864
+ },
9865
+ {
9866
+ "name": "itemID",
9867
+ "type": "string | undefined",
9868
+ "required": false
9869
+ },
9870
+ {
9871
+ "name": "itemRef",
9872
+ "type": "string | undefined",
9873
+ "required": false
9874
+ },
9875
+ {
9876
+ "name": "results",
9877
+ "type": "number | undefined",
9878
+ "required": false
9879
+ },
9880
+ {
9881
+ "name": "security",
9882
+ "type": "string | undefined",
9883
+ "required": false
9884
+ },
9885
+ {
9886
+ "name": "unselectable",
9887
+ "type": "\"off\" | \"on\" | undefined",
9888
+ "required": false
9889
+ },
9890
+ {
9891
+ "name": "popover",
9892
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
9893
+ "required": false
9894
+ },
9895
+ {
9896
+ "name": "popoverTargetAction",
9897
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
9898
+ "required": false
9899
+ },
9900
+ {
9901
+ "name": "popoverTarget",
9902
+ "type": "string | undefined",
9903
+ "required": false
9904
+ },
9905
+ {
9906
+ "name": "inert",
9907
+ "type": "boolean | undefined",
9908
+ "required": false,
9909
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
9910
+ },
9911
+ {
9912
+ "name": "inputMode",
9913
+ "type": "\"none\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
9914
+ "required": false,
9915
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
9916
+ },
9917
+ {
9918
+ "name": "is",
9919
+ "type": "string | undefined",
9920
+ "required": false,
9921
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
9922
+ },
9923
+ {
9924
+ "name": "exportparts",
9925
+ "type": "string | undefined",
9926
+ "required": false,
9927
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
9928
+ },
9929
+ {
9930
+ "name": "part",
9931
+ "type": "string | undefined",
9932
+ "required": false,
9933
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
9934
+ },
9935
+ {
9936
+ "name": "value",
9937
+ "type": "string | number | Date | null | undefined",
9938
+ "required": true,
9939
+ "description": "ISO string, Date object, or Unix timestamp (ms)"
9940
+ },
9941
+ {
9942
+ "name": "format",
9943
+ "type": "DateTimeFormat | undefined",
9944
+ "required": false,
9945
+ "description": "Display format. Default: 'relative'",
9946
+ "defaultValue": "relative"
9947
+ },
9948
+ {
9949
+ "name": "showSeconds",
9950
+ "type": "boolean | undefined",
9951
+ "required": false,
9952
+ "description": "Show seconds in tooltip absolute time. Default: true",
9953
+ "defaultValue": "true"
9954
+ }
9955
+ ],
9956
+ "variants": [],
9957
+ "subComponents": [],
9958
+ "examples": [
9959
+ {
9960
+ "name": "Relative",
9961
+ "code": "() => (\n <VStack gap={12} align='start'>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Just now\n </Text>\n <DateTime value={subSeconds(now, 10)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Minutes ago\n </Text>\n <DateTime value={subMinutes(now, 12)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Hours ago\n </Text>\n <DateTime value={subHours(now, 3)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Yesterday\n </Text>\n <DateTime value={subHours(now, 30)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Days ago\n </Text>\n <DateTime value={subDays(now, 5)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Weeks ago\n </Text>\n <DateTime value={subDays(now, 21)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Months ago\n </Text>\n <DateTime value={subMonths(now, 3)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Short date\n </Text>\n <DateTime value={subDays(now, 200)} format='relative' />\n </HStack>\n <HStack gap={16} align='center'>\n <Text size='sm' color='secondary' className='w-128'>\n Full date\n </Text>\n <DateTime value={subYears(now, 2)} format='relative' />\n </HStack>\n </VStack>\n)"
9962
+ },
9963
+ {
9964
+ "name": "DateFormat",
9965
+ "code": "() => (\n <VStack gap={12} align='start'>\n <DateTime value='2026-01-01T00:00:00' format='date' />\n <DateTime value='2026-02-11T14:32:07' format='date' />\n <DateTime value='2025-06-15T09:00:00' format='date' />\n </VStack>\n)"
9966
+ },
9967
+ {
9968
+ "name": "DatetimeFormat",
9969
+ "code": "() => (\n <VStack gap={12} align='start'>\n <DateTime value='2026-01-01T11:00:00' format='datetime' />\n <DateTime value='2026-02-11T14:32:07' format='datetime' />\n <DateTime value='2025-12-25T23:59:59' format='datetime' />\n </VStack>\n)"
9970
+ },
9971
+ {
9972
+ "name": "WithDescription",
9973
+ "code": "() => (\n <VStack gap={12} align='start'>\n <VStack>\n <DateTime value='2026-01-01T00:00:00' format='date' />\n <Text size='sm' color='secondary'>\n Created by admin\n </Text>\n </VStack>\n <VStack>\n <DateTime value='2026-02-11T14:32:07' format='date' />\n <Text size='sm' color='secondary'>\n Last modified\n </Text>\n </VStack>\n </VStack>\n)"
9974
+ },
9975
+ {
9976
+ "name": "NullValue",
9977
+ "code": "() => (\n <VStack gap={12} align='start'>\n <DateTime value={null} />\n <DateTime value={undefined} />\n </VStack>\n)"
9978
+ },
9979
+ {
9980
+ "name": "FutureDate",
9981
+ "code": "() => (\n <DateTime value={new Date(Date.now() + 5 * 60 * 1000)} format='relative' />\n)"
9982
+ }
9983
+ ]
9984
+ },
9985
+ {
9986
+ "name": "Dialog",
9987
+ "importPath": "@wallarm-org/design-system/Dialog",
9988
+ "props": [],
9989
+ "variants": [],
9990
+ "subComponents": [],
9991
+ "examples": [
9992
+ {
9993
+ "name": "Basic",
9994
+ "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open Dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog Title</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n );\n}",
9995
+ "description": "Basic uncontrolled dialog"
9996
+ },
9997
+ {
9998
+ "name": "WithFooter",
9999
+ "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open Dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog's title</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n\n <DialogFooter>\n <DialogFooterControls>\n <Button variant='ghost' color='neutral' size='large'>\n Button\n </Button>\n <Button variant='primary' color='brand' size='large'>\n Button\n </Button>\n </DialogFooterControls>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
10000
+ "description": "Minimal example"
10001
+ },
10002
+ {
10003
+ "name": "WithFooterLeftActions",
10004
+ "code": "() => (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open with Footer Actions</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Footer with Left Actions</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n\n <DialogFooter>\n <DialogFooterControls placement='left'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Remember choice</SwitchLabel>\n </Switch>\n </DialogFooterControls>\n\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n)",
10005
+ "description": "With footer left actions"
10006
+ },
10007
+ {
10008
+ "name": "Sizes",
10009
+ "code": "() => (\n <HStack gap={8} justify='center'>\n <Dialog width={DIALOG_SIZES.small}>\n <DialogTrigger asChild>\n <Button>Open Small ({DIALOG_SIZES.small}px)</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Small Dialog ({DIALOG_SIZES.small}px)</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Dialog width={DIALOG_SIZES.medium}>\n <DialogTrigger asChild>\n <Button>Open Medium ({DIALOG_SIZES.medium}px)</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Medium Dialog ({DIALOG_SIZES.medium}px)</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Dialog width={DIALOG_SIZES.large}>\n <DialogTrigger asChild>\n <Button>Open Large ({DIALOG_SIZES.large}px)</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Large Dialog ({DIALOG_SIZES.large}px)</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n </HStack>\n)",
10010
+ "description": "Dialog with different sizes - Small"
10011
+ },
10012
+ {
10013
+ "name": "CustomSizes",
10014
+ "code": "() => {\n return (\n <HStack gap={8} justify='center'>\n <Dialog width='50%'>\n <DialogTrigger asChild>\n <Button>50% Width</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>50% Width Dialog</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p>This dialog takes 50% of the viewport width.</p>\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Dialog width={1000}>\n <DialogTrigger asChild>\n <Button>1000px Width</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>1000px Width Dialog</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p>This dialog has a fixed width of 1000px.</p>\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n </HStack>\n );\n}",
10015
+ "description": "Custom width with percentage"
10016
+ },
10017
+ {
10018
+ "name": "Scrollable",
10019
+ "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>Open Dialog with Scroll</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Scrollable Content</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='flex flex-col gap-16 py-12'>\n {Array.from({ length: 20 }).map((_, i) => (\n <ContentPlaceholder key={i} height={100} />\n ))}\n </div>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Close\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Confirm\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
10020
+ "description": "Dialog with scrollable content"
10021
+ },
10022
+ {
10023
+ "name": "Controlled",
10024
+ "code": "() => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <Button onClick={() => setOpen(true)}>Open Controlled Dialog</Button>\n\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Controlled Dialog</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p className='mb-16'>This dialog is controlled externally.</p>\n <ContentPlaceholder />\n </div>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Save Changes\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </>\n );\n}",
10025
+ "description": "Controlled dialog with external state"
10026
+ },
10027
+ {
10028
+ "name": "NoClosableOnEsc",
10029
+ "code": "() => {\n return (\n <Dialog closeOnEscape={false}>\n <DialogTrigger asChild>\n <Button>Open Dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Dialog Title</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <ContentPlaceholder />\n </DialogBody>\n </DialogContent>\n </Dialog>\n );\n}",
10030
+ "description": "No closable on ESC"
10031
+ },
10032
+ {
10033
+ "name": "NoOverlay",
10034
+ "code": "() => {\n return (\n <VStack gap={12}>\n <Text>\n Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has\n been the industry's standard dummy text ever since the 1500s, when an unknown printer took a\n galley of type and scrambled it to make a type specimen book. It has survived not only five\n centuries, but also the leap into electronic typesetting, remaining essentially unchanged.\n It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum\n passages, and more recently with desktop publishing software like Aldus PageMaker including\n versions of Lorem Ipsum. Why do we use it? It is a long established fact that a reader will\n be distracted by the readable content of a page when looking at its layout. The point of\n using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed\n to using 'Content here, content here', making it look like readable English. Many desktop\n publishing packages and web page editors now use Lorem Ipsum as their default model text,\n and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various\n versions have evolved over the years, sometimes by accident, sometimes on purpose (injected\n humour and the like).\n </Text>\n\n <Dialog overlay={false}>\n <DialogTrigger asChild>\n <Button>Open without Overlay</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>No Overlay</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <div className='py-12'>\n <p>This dialog has no overlay backdrop.</p>\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n\n <Text>\n Where does it come from? Contrary to popular belief, Lorem Ipsum is not simply random text.\n It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years\n old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up\n one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going\n through the cites of the word in classical literature, discovered the undoubtable source.\n Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The\n Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the\n theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem\n ipsum dolor sit amet..\", comes from a line in section 1.10.32. The standard chunk of Lorem\n Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and\n 1.10.33 from \"de Finibus Bonorum et Malorum\" by Cicero are also reproduced in their exact\n original form, accompanied by English versions from the 1914 translation by H. Rackham.\n </Text>\n </VStack>\n );\n}",
10035
+ "description": "Without overlay"
10036
+ },
10037
+ {
10038
+ "name": "WithNested",
10039
+ "code": "() => {\n return (\n <Dialog>\n <DialogTrigger asChild>\n <Button>1st level dialog</Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>[Level 1] Main Dialog</DialogTitle>\n\n {/* Level 2 dialog */}\n <Dialog>\n <DialogTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 2nd level dialog\n </Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>[Level 2] Detail View</DialogTitle>\n {/* Level 3 dialog */}\n <Dialog>\n <DialogTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 3nd level dialog\n </Button>\n </DialogTrigger>\n\n <DialogContent>\n <DialogHeader>\n <DialogTitle>[Level 3] Deep Nested</DialogTitle>\n </DialogHeader>\n\n <DialogBody>\n <VStack gap={12} align='start'>\n <Text>Level 3! Unlimited nesting works.</Text>\n <ContentPlaceholder height={150} />\n </VStack>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button size='large' variant='ghost' color='neutral'>\n Back\n </Button>\n </DialogClose>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </DialogHeader>\n\n <DialogBody>\n <VStack gap={12} align='start'>\n <Text>This is Level 2 dialog. Main dialog is pushed back.</Text>\n\n <ContentPlaceholder height={150} />\n </VStack>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Back\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </DialogHeader>\n\n <DialogBody>\n <VStack gap={12} align='start'>\n <Text>This is Level 1 dialog. Click above to open nested dialogs:</Text>\n\n <ContentPlaceholder height={150} />\n </VStack>\n </DialogBody>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Save\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
10040
+ "description": "Nested dialogs with push-back effect"
10041
+ },
10042
+ {
10043
+ "name": "WithTabs",
10044
+ "code": "() => {\n const [activeTab, setActiveTab] = useState('tab1');\n\n return (\n <Dialog width={960}>\n <DialogTrigger asChild>\n <Button>Open Dialog with Tabs</Button>\n </DialogTrigger>\n\n <DialogContent>\n <Tabs value={activeTab} onChange={setActiveTab} asChild>\n <DialogHeader>\n <DialogTitle>Tabbed Content</DialogTitle>\n </DialogHeader>\n\n <TabsList>\n <TabsTrigger value='tab1'>General</TabsTrigger>\n <TabsTrigger value='tab2'>Settings</TabsTrigger>\n <TabsTrigger value='tab3'>Advanced</TabsTrigger>\n </TabsList>\n\n <DialogBody>\n <div className='pt-12'>\n <TabsContent value='tab1'>\n <h3 className='text-lg font-medium mb-8'>General Settings</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab2'>\n <h3 className='text-lg font-medium mb-8'>Configuration</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab3'>\n <h3 className='text-lg font-medium mb-8'>Advanced Options</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n </div>\n </DialogBody>\n </Tabs>\n\n <DialogFooter>\n <DialogClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DialogClose>\n <Button variant='primary' color='brand' size='large'>\n Apply Settings\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}",
10045
+ "description": "With tabs"
10046
+ }
10047
+ ]
10048
+ },
10049
+ {
10050
+ "name": "Drawer",
10051
+ "importPath": "@wallarm-org/design-system/Drawer",
10052
+ "props": [
10053
+ {
10054
+ "name": "open",
10055
+ "type": "boolean | undefined",
10056
+ "required": false,
10057
+ "description": "Controlled open state"
10058
+ },
10059
+ {
10060
+ "name": "closeOnEscape",
10061
+ "type": "boolean | undefined",
10062
+ "required": false,
10063
+ "description": "Whether ESC key closes the drawer (default: true)",
10064
+ "defaultValue": "true"
10065
+ },
10066
+ {
10067
+ "name": "closeOnOutsideClick",
10068
+ "type": "boolean | undefined",
10069
+ "required": false,
10070
+ "description": "Whether clicking outside closes the drawer (default: true)",
10071
+ "defaultValue": "true"
10072
+ },
10073
+ {
10074
+ "name": "overlay",
10075
+ "type": "boolean | undefined",
10076
+ "required": false,
10077
+ "description": "Overlay visibility (default: true)",
10078
+ "defaultValue": "true"
10079
+ },
10080
+ {
10081
+ "name": "width",
10082
+ "type": "string | number | undefined",
10083
+ "required": false,
10084
+ "description": "Width - number for pixels, string for percentage (e.g., \"50%\")"
10085
+ },
10086
+ {
10087
+ "name": "minWidth",
10088
+ "type": "number | undefined",
10089
+ "required": false,
10090
+ "description": "Minimum width in pixels"
10091
+ },
10092
+ {
10093
+ "name": "maxWidth",
10094
+ "type": "number | undefined",
10095
+ "required": false,
10096
+ "description": "Maximum width in pixels"
10097
+ }
10098
+ ],
10099
+ "variants": [
10100
+ {
10101
+ "name": "isResizing",
10102
+ "options": [
10103
+ "true"
10104
+ ]
10105
+ }
10106
+ ],
10107
+ "subComponents": [
10108
+ {
10109
+ "name": "DrawerBody",
10110
+ "props": []
10111
+ },
10112
+ {
10113
+ "name": "DrawerClose",
10114
+ "props": [
10115
+ {
10116
+ "name": "asChild",
10117
+ "type": "boolean | undefined",
10118
+ "required": false,
10119
+ "description": "Render as child component",
10120
+ "defaultValue": "false"
10121
+ }
10122
+ ]
10123
+ },
10124
+ {
10125
+ "name": "DrawerContent",
10126
+ "props": [
10127
+ {
10128
+ "name": "asChild",
10129
+ "type": "boolean | undefined",
10130
+ "required": false
10131
+ }
10132
+ ]
10133
+ },
10134
+ {
10135
+ "name": "DrawerFooter",
10136
+ "props": []
10137
+ },
10138
+ {
10139
+ "name": "DrawerFooterControls",
10140
+ "props": [
10141
+ {
10142
+ "name": "placement",
10143
+ "type": "{ left: string; right: string; }",
10144
+ "required": false,
10145
+ "defaultValue": "right"
10146
+ }
10147
+ ]
10148
+ },
10149
+ {
10150
+ "name": "DrawerHeader",
10151
+ "props": []
10152
+ },
10153
+ {
10154
+ "name": "DrawerPositioner",
10155
+ "props": [
10156
+ {
10157
+ "name": "isResizing",
10158
+ "type": "boolean",
10159
+ "required": true
10160
+ }
10161
+ ]
10162
+ },
10163
+ {
10164
+ "name": "DrawerTitle",
10165
+ "props": []
10166
+ },
10167
+ {
10168
+ "name": "DrawerTrigger",
10169
+ "props": [
10170
+ {
10171
+ "name": "asChild",
10172
+ "type": "boolean | undefined",
10173
+ "required": false,
10174
+ "description": "Render as child component",
10175
+ "defaultValue": "false"
10176
+ }
10177
+ ]
10178
+ }
10179
+ ],
10180
+ "examples": [
10181
+ {
10182
+ "name": "Basic",
10183
+ "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open Drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Drawer Title</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}",
10184
+ "description": "Basic uncontrolled drawer"
10185
+ },
10186
+ {
10187
+ "name": "WithFooter",
10188
+ "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open Drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Drawer's title</DrawerTitle>\n </DrawerHeader>\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n <DrawerFooter>\n <DrawerFooterControls>\n <Button variant='ghost' color='neutral' size='large'>\n Button\n </Button>\n <Button variant='primary' color='brand' size='large'>\n Button\n </Button>\n </DrawerFooterControls>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n}",
10189
+ "description": "Minimal example"
10190
+ },
10191
+ {
10192
+ "name": "WithFooterLeftActions",
10193
+ "code": "() => (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open with Footer Actions</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Footer with Left Actions</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerFooterControls placement='left'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Remember choice</SwitchLabel>\n </Switch>\n </DrawerFooterControls>\n\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n)",
10194
+ "description": "With footer left actions"
10195
+ },
10196
+ {
10197
+ "name": "Sizes",
10198
+ "code": "() => (\n <HStack gap={8} justify='center'>\n <Drawer width={DRAWER_SIZES.small}>\n <DrawerTrigger asChild>\n <Button>Open Small ({DRAWER_SIZES.small}px)</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Small Drawer ({DRAWER_SIZES.small}px)</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width={DRAWER_SIZES.medium}>\n <DrawerTrigger asChild>\n <Button>Open Medium ({DRAWER_SIZES.medium}px)</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Medium Drawer ({DRAWER_SIZES.medium}px)</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width={DRAWER_SIZES.large}>\n <DrawerTrigger asChild>\n <Button>Open Large ({DRAWER_SIZES.large}px)</Button>\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Large Drawer ({DRAWER_SIZES.large}px)</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </HStack>\n)",
10199
+ "description": "Drawer with different sizes - Small"
10200
+ },
10201
+ {
10202
+ "name": "CustomSizes",
10203
+ "code": "() => {\n return (\n <HStack gap={8} justify='center'>\n <Drawer width='50%'>\n <DrawerTrigger asChild>\n <Button>50% Width</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>50% Width Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p>This drawer takes 50% of the viewport width.</p>\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width={1000}>\n <DrawerTrigger asChild>\n <Button>1000px Width</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>1000px Width Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p>This drawer has a fixed width of 1000px.</p>\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </HStack>\n );\n}",
10204
+ "description": "Custom width with percentage"
10205
+ },
10206
+ {
10207
+ "name": "Resizable",
10208
+ "code": "() => {\n return (\n <VStack gap={12}>\n <Drawer width={800}>\n <DrawerTrigger asChild>\n <Button>Open Resizable Drawer (as number)</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerResizeHandle />\n <DrawerHeader>\n <DrawerTitle>Resizable Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>Drag the left edge to resize this drawer.</p>\n <ContentPlaceholder height={300} />\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width='900px'>\n <DrawerTrigger asChild>\n <Button>Open Resizable Drawer (900px)</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerResizeHandle />\n <DrawerHeader>\n <DrawerTitle>Resizable Drawer with \"900px\" width</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>Width is set as \"900px\" string. Drag the left edge to resize.</p>\n <ContentPlaceholder height={300} />\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n\n <Drawer width='50%'>\n <DrawerTrigger asChild>\n <Button>Open Resizable Drawer (50%)</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerResizeHandle />\n <DrawerHeader>\n <DrawerTitle>Resizable Drawer with 50% width</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>\n Width is set as \"50%\". Drag the left edge to resize - it will convert to pixels.\n </p>\n <ContentPlaceholder height={300} />\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n </VStack>\n );\n}",
10209
+ "description": "Resizable drawer"
10210
+ },
10211
+ {
10212
+ "name": "Scrollable",
10213
+ "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>Open Drawer with Scroll</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Scrollable Content</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='flex flex-col gap-16 py-12'>\n {Array.from({ length: 20 }).map((_, i) => (\n <ContentPlaceholder key={i} height={100} />\n ))}\n </div>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Close\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Confirm\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n}",
10214
+ "description": "Drawer with scrollable content"
10215
+ },
10216
+ {
10217
+ "name": "Controlled",
10218
+ "code": "() => {\n const [open, setOpen] = useState(false);\n\n return (\n <>\n <Button onClick={() => setOpen(true)}>Open Controlled Drawer</Button>\n\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Controlled Drawer</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p className='mb-16'>This drawer is controlled externally.</p>\n <ContentPlaceholder />\n </div>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Save Changes\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </>\n );\n}",
10219
+ "description": "Controlled drawer with external state"
10220
+ },
10221
+ {
10222
+ "name": "NoClosableOnEsc",
10223
+ "code": "() => {\n return (\n <Drawer closeOnEscape={false}>\n <DrawerTrigger asChild>\n <Button>Open Drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>Drawer Title</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <ContentPlaceholder fillHeight />\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}",
10224
+ "description": "No closable on ESC"
10225
+ },
10226
+ {
10227
+ "name": "NoOverlay",
10228
+ "code": "() => {\n return (\n <Drawer overlay={false}>\n <DrawerTrigger asChild>\n <Button>Open without Overlay</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>No Overlay</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <div className='py-12'>\n <p>This drawer has no overlay backdrop.</p>\n </div>\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}",
10229
+ "description": "Without overlay"
10230
+ },
10231
+ {
10232
+ "name": "WithNested",
10233
+ "code": "() => {\n return (\n <Drawer>\n <DrawerTrigger asChild>\n <Button>1st level drawer</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>[Level 1] Main Drawer</DrawerTitle>\n\n {/* Level 2 drawer */}\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 2nd level drawer\n </Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>[Level 2] Detail View</DrawerTitle>\n {/* Level 3 drawer */}\n <Drawer>\n <DrawerTrigger asChild>\n <Button variant='ghost' color='neutral' size='small'>\n <PanelRight />\n 3nd level drawer\n </Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <DrawerHeader>\n <DrawerTitle>[Level 3] Deep Nested</DrawerTitle>\n </DrawerHeader>\n\n <DrawerBody>\n <VStack gap={12} align='start'>\n <Text>Level 3! Unlimited nesting works.</Text>\n <ContentPlaceholder height={150} />\n </VStack>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button size='large' variant='ghost' color='neutral'>\n Back\n </Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </DrawerHeader>\n\n <DrawerBody>\n <VStack gap={12} align='start'>\n <Text>\n This is Level 2 drawer. Main drawer is pushed back. You can go deeper:\n </Text>\n\n <ContentPlaceholder height={150} />\n </VStack>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Back\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Apply\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n </DrawerHeader>\n\n <DrawerBody>\n <VStack gap={12} align='start'>\n <Text>This is Level 1 drawer. Click below to open nested drawers:</Text>\n\n <ContentPlaceholder height={300} />\n </VStack>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Save\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n );\n}",
10234
+ "description": "Nested drawers with push-back effect"
10235
+ },
10236
+ {
10237
+ "name": "WithTabs",
10238
+ "code": "() => {\n const [activeTab, setActiveTab] = useState('tab1');\n\n return (\n <Drawer width={960}>\n <DrawerTrigger asChild>\n <Button>Open Drawer with Tabs</Button>\n </DrawerTrigger>\n\n <DrawerContent>\n <Tabs value={activeTab} onChange={setActiveTab} asChild>\n <DrawerHeader>\n <DrawerTitle>Tabbed Content</DrawerTitle>\n </DrawerHeader>\n\n <TabsList>\n <TabsTrigger value='tab1'>General</TabsTrigger>\n <TabsTrigger value='tab2'>Settings</TabsTrigger>\n <TabsTrigger value='tab3'>Advanced</TabsTrigger>\n </TabsList>\n\n <DrawerBody>\n <div className='pt-12'>\n <TabsContent value='tab1'>\n <h3 className='text-lg font-medium mb-8'>General Settings</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab2'>\n <h3 className='text-lg font-medium mb-8'>Configuration</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n <TabsContent value='tab3'>\n <h3 className='text-lg font-medium mb-8'>Advanced Options</h3>\n <ContentPlaceholder height={300} />\n </TabsContent>\n </div>\n </DrawerBody>\n\n <DrawerFooter>\n <DrawerClose asChild>\n <Button variant='ghost' color='neutral' size='large'>\n Cancel\n </Button>\n </DrawerClose>\n <Button variant='primary' color='brand' size='large'>\n Apply Settings\n </Button>\n </DrawerFooter>\n </Tabs>\n </DrawerContent>\n </Drawer>\n );\n}",
10239
+ "description": "With tabs"
10240
+ }
10241
+ ]
10242
+ },
10243
+ {
10244
+ "name": "DropdownMenu",
10245
+ "importPath": "@wallarm-org/design-system/DropdownMenu",
10246
+ "props": [],
10247
+ "variants": [
10248
+ {
10249
+ "name": "variant",
10250
+ "options": [
10251
+ "default",
10252
+ "brand",
10253
+ "destructive"
10254
+ ]
10255
+ },
10256
+ {
10257
+ "name": "inset",
10258
+ "options": [
10259
+ "true"
10260
+ ]
10261
+ }
10262
+ ],
10263
+ "subComponents": [],
10264
+ "examples": [
10265
+ {
10266
+ "name": "Basic",
10267
+ "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n Open\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuItem>\n Profile\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>P</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Billing\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>B</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Settings\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>S</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Keyboard shortcuts super\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuGroup>\n <DropdownMenuItem>Team</DropdownMenuItem>\n <DropdownMenu>\n <DropdownMenuTriggerItem>Invite users</DropdownMenuTriggerItem>\n <DropdownMenuContent>\n <DropdownMenuItem>Email</DropdownMenuItem>\n <DropdownMenuItem>Message</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>More...</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n <DropdownMenuItem>\n New Team\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>T</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n <DropdownMenuItem>Support</DropdownMenuItem>\n <DropdownMenuItem disabled>API</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant='destructive'>\n Log out\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
10268
+ },
10269
+ {
10270
+ "name": "Context",
10271
+ "code": "() => (\n <DropdownMenu>\n <DropdownMenuContextTrigger asChild>\n <div className='flex items-center justify-center w-300 h-192 border border-border-primary border-dashed rounded-8'>\n Right click here\n </div>\n </DropdownMenuContextTrigger>\n <DropdownMenuContent>\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuGroup>\n <DropdownMenuItem>\n Profile\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>P</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Billing\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>B</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Settings\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>S</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem>\n Keyboard shortcuts super\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuGroup>\n <DropdownMenuItem>Team</DropdownMenuItem>\n <DropdownMenu>\n <DropdownMenuTriggerItem>Invite users</DropdownMenuTriggerItem>\n <DropdownMenuContent>\n <DropdownMenuItem>Email</DropdownMenuItem>\n <DropdownMenuItem>Message</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem>More...</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n <DropdownMenuItem>\n New Team\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>T</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n\n <DropdownMenuSeparator />\n\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n <DropdownMenuItem>Support</DropdownMenuItem>\n <DropdownMenuItem disabled>API</DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem variant='destructive'>\n Log out\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
10272
+ },
10273
+ {
10274
+ "name": "WithDescriptions",
10275
+ "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n <Plus />\n Add Widget\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Bar-volume chart</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Canvas</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Attacks heat-map</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem variant='brand'>\n <CirclePlus />\n <DropdownMenuItemText>Request custom widget</DropdownMenuItemText>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
10276
+ },
10277
+ {
10278
+ "name": "WithIcons",
10279
+ "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n <Plus />\n Add Widget\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <LayoutTemplate />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Bar-volume chart</DropdownMenuItemText>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Maximize />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Canvas</DropdownMenuItemText>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Earth />\n </DropdownMenuItemIcon>\n <DropdownMenuItemText>Attacks heat-map</DropdownMenuItemText>\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem variant='brand'>\n <CirclePlus />\n <DropdownMenuItemText>Request custom widget</DropdownMenuItemText>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
10280
+ },
10281
+ {
10282
+ "name": "WithDescriptionAndIcons",
10283
+ "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n <Plus />\n Add Widget\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <LayoutTemplate />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Bar-volume chart</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Maximize />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Canvas</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n </DropdownMenuItem>\n <DropdownMenuItem>\n <DropdownMenuItemIcon>\n <Earth />\n </DropdownMenuItemIcon>\n <DropdownMenuItemContent>\n <DropdownMenuItemText>Attacks heat-map</DropdownMenuItemText>\n <DropdownMenuItemDescription>Description</DropdownMenuItemDescription>\n </DropdownMenuItemContent>\n <DropdownMenuShortcut>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>Q</Kbd>\n </KbdGroup>\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n\n <DropdownMenuItem variant='brand'>\n <CirclePlus />\n <DropdownMenuItemText>Request custom widget</DropdownMenuItemText>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
10284
+ },
10285
+ {
10286
+ "name": "WithFooter",
10287
+ "code": "() => (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant='outline' color='neutral'>\n Open\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>Filter A</DropdownMenuItem>\n <DropdownMenuItem>Filter B</DropdownMenuItem>\n <DropdownMenuItem>Filter C</DropdownMenuItem>\n <DropdownMenuItem>Filter D</DropdownMenuItem>\n <DropdownMenuFooter>\n <span>Footer is WIP Hotkey</span>\n <span className='flex items-center gap-8'>\n <KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>⌘</Kbd>\n </KbdGroup>\n </span>\n </DropdownMenuFooter>\n </DropdownMenuContent>\n </DropdownMenu>\n)"
10288
+ }
10289
+ ]
10290
+ },
10291
+ {
10292
+ "name": "Field",
10293
+ "importPath": "@wallarm-org/design-system/Field",
10294
+ "props": [],
10295
+ "variants": [
10296
+ {
10297
+ "name": "orientation",
10298
+ "options": [
10299
+ "vertical",
10300
+ "horizontal",
10301
+ "responsive"
10302
+ ],
10303
+ "defaultValue": "vertical"
10304
+ }
10305
+ ],
10306
+ "subComponents": [],
10307
+ "examples": [
10308
+ {
10309
+ "name": "Basic",
10310
+ "code": "() => {\n const monthsCollection = createListCollection({\n items: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],\n });\n\n const yearsCollection = createListCollection({\n items: ['2025', '2026', '2027', '2028', '2029'],\n });\n\n return (\n <div className='min-w-320'>\n <form>\n <FieldGroup>\n <FieldSet>\n <FieldLegend>Payment Method</FieldLegend>\n\n <FieldDescription>All transactions are secure and encrypted</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>Name on Card</FieldLabel>\n <Input placeholder='Evil Rabbit' />\n </Field>\n <Field>\n <FieldLabel htmlFor='checkout-7j9-card-number-uw1'>Card Number</FieldLabel>\n <Input\n id='checkout-7j9-card-number-uw1'\n placeholder='1234 5678 9012 3456'\n required\n />\n <FieldDescription>Enter your 16-digit card number</FieldDescription>\n </Field>\n\n <HStack>\n <Field>\n <FieldLabel>Month</FieldLabel>\n <Select collection={monthsCollection}>\n <SelectButton placeholder='Month' />\n <SelectPositioner>\n <SelectContent>\n {monthsCollection.items.map(month => (\n <SelectOption key={month} item={month}>\n <SelectOptionText>{month}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>Year</FieldLabel>\n\n <Select collection={yearsCollection}>\n <SelectButton placeholder='Year' />\n\n <SelectPositioner>\n <SelectContent>\n {yearsCollection.items.map(year => (\n <SelectOption key={year} item={year}>\n <SelectOptionText>{year}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel>CVV</FieldLabel>\n <Input placeholder='123' required />\n </Field>\n </HStack>\n\n <Field>\n <FieldLabel>Amount</FieldLabel>\n <NumberInput defaultValue='1000' />\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <FieldSeparator />\n\n <FieldSet>\n <FieldLegend>Billing Address</FieldLegend>\n\n <FieldDescription>\n The billing address associated with your payment method\n </FieldDescription>\n\n <FieldGroup>\n <Field orientation='horizontal'>\n <Checkbox defaultChecked>\n <CheckboxIndicator />\n <CheckboxLabel>Same as shipping address</CheckboxLabel>\n </Checkbox>\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <FieldSeparator />\n\n <FieldSet>\n <FieldLegend>Subscription Plan</FieldLegend>\n\n <FieldDescription>\n Yearly and lifetime plans offer significant savings.\n </FieldDescription>\n\n <Field>\n <RadioGroup defaultValue='monthly'>\n <Radio value='monthly'>\n <RadioIndicator />\n <RadioLabel>Monthly ($9.99/month)</RadioLabel>\n </Radio>\n <Radio value='yearly'>\n <RadioIndicator />\n <RadioLabel>Yearly ($99.99/year)</RadioLabel>\n </Radio>\n <Radio value='lifetime'>\n <RadioIndicator />\n <RadioLabel>Lifetime ($299.99)</RadioLabel>\n </Radio>\n </RadioGroup>\n </Field>\n </FieldSet>\n\n <FieldSeparator />\n\n <FieldSet>\n <FieldGroup>\n <Field orientation='horizontal'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Notice when delivered</SwitchLabel>\n </Switch>\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <FieldSet>\n <FieldGroup>\n <Field>\n <FieldLabel>Comments</FieldLabel>\n <Textarea placeholder='Add any additional comments' />\n </Field>\n </FieldGroup>\n </FieldSet>\n\n <Field orientation='horizontal'>\n <Button type='submit'>Submit</Button>\n\n <Button variant='outline' color='neutral' type='button'>\n Cancel\n </Button>\n </Field>\n </FieldGroup>\n </form>\n </div>\n );\n}"
10311
+ },
10312
+ {
10313
+ "name": "Inputs",
10314
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldGroup>\n <Field>\n <FieldLabel>Username</FieldLabel>\n <Input type='text' placeholder='Max Leiter' />\n <FieldDescription>Choose a unique username for your account.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Password</FieldLabel>\n <FieldDescription>Must be at least 8 characters long.</FieldDescription>\n <Input type='password' placeholder='********' />\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
10315
+ },
10316
+ {
10317
+ "name": "Textareas",
10318
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldGroup>\n <Field>\n <FieldLabel>Feedback</FieldLabel>\n <Textarea placeholder='Your feedback helps us improve...' rows={4} />\n <FieldDescription>Share your thoughts about our service.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
10319
+ },
10320
+ {
10321
+ "name": "Fieldset",
10322
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Profile</FieldLegend>\n <FieldDescription>This appears on invoices and emails.</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>\n Full name\n <FieldAction>Generate new</FieldAction>\n </FieldLabel>\n <Input autoComplete='off' placeholder='Evil Rabbit' />\n <FieldDescription>This appears on invoices and emails.</FieldDescription>\n </Field>\n <Field required>\n <FieldLabel>\n Username\n <FieldIndicator />\n </FieldLabel>\n <Input placeholder='@paveldurov' autoComplete='off' error />\n <FieldError>Choose another username.</FieldError>\n </Field>\n <Field>\n <FieldLabel>\n Message\n <Tooltip>\n <TooltipTrigger>\n <Info />\n </TooltipTrigger>\n <TooltipContent>Additional information</TooltipContent>\n </Tooltip>\n </FieldLabel>\n <Textarea placeholder='Your message...' />\n <FieldDescription>Enter your message.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
10323
+ },
10324
+ {
10325
+ "name": "Switches",
10326
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Notification Settings</FieldLegend>\n <FieldDescription>Manage your notification preferences.</FieldDescription>\n\n <FieldGroup>\n <Field orientation='horizontal'>\n <Switch defaultChecked>\n <SwitchControl />\n <SwitchLabel>Email notifications</SwitchLabel>\n <SwitchDescription>Receive email alerts for important updates.</SwitchDescription>\n </Switch>\n </Field>\n\n <Field orientation='horizontal'>\n <Switch>\n <SwitchControl />\n <SwitchLabel>Push notifications</SwitchLabel>\n <SwitchDescription>Get push notifications on your device.</SwitchDescription>\n </Switch>\n </Field>\n\n <Field orientation='horizontal'>\n <Switch defaultChecked>\n <SwitchControl />\n <SwitchLabel>SMS notifications</SwitchLabel>\n <SwitchDescription>Receive text messages for critical alerts.</SwitchDescription>\n </Switch>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
10327
+ },
10328
+ {
10329
+ "name": "Radios",
10330
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Delivery Method</FieldLegend>\n <FieldDescription>Choose how you want to receive your order.</FieldDescription>\n\n <Field>\n <RadioGroup defaultValue='standard'>\n <Radio value='standard'>\n <RadioIndicator />\n <RadioLabel>Standard Shipping (5-7 days)</RadioLabel>\n </Radio>\n <Radio value='express'>\n <RadioIndicator />\n <RadioLabel>Express Shipping (2-3 days)</RadioLabel>\n </Radio>\n <Radio value='overnight'>\n <RadioIndicator />\n <RadioLabel>Overnight Shipping (1 day)</RadioLabel>\n </Radio>\n <Radio value='pickup'>\n <RadioIndicator />\n <RadioLabel>In-store Pickup</RadioLabel>\n </Radio>\n </RadioGroup>\n\n <FieldDescription>Shipping costs will be calculated at checkout.</FieldDescription>\n </Field>\n </FieldSet>\n </div>\n)"
10331
+ },
10332
+ {
10333
+ "name": "Checkboxes",
10334
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Terms and Preferences</FieldLegend>\n <FieldDescription>Select which terms you agree to.</FieldDescription>\n\n <FieldGroup>\n <Field orientation='horizontal'>\n <Checkbox defaultChecked>\n <CheckboxIndicator />\n <CheckboxLabel>I accept the terms and conditions</CheckboxLabel>\n <CheckboxDescription>You must agree to our terms to continue.</CheckboxDescription>\n </Checkbox>\n </Field>\n <Field orientation='horizontal'>\n <Checkbox>\n <CheckboxIndicator />\n <CheckboxLabel>Subscribe to newsletter</CheckboxLabel>\n <CheckboxDescription>Get weekly updates and exclusive offers.</CheckboxDescription>\n </Checkbox>\n </Field>\n <Field orientation='horizontal'>\n <Checkbox defaultChecked>\n <CheckboxIndicator />\n <CheckboxLabel>Share usage data</CheckboxLabel>\n <CheckboxDescription>Help us improve our services.</CheckboxDescription>\n </Checkbox>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
10335
+ },
10336
+ {
10337
+ "name": "NumberInputs",
10338
+ "code": "() => (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Product Details</FieldLegend>\n <FieldDescription>Configure your product quantity and pricing.</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>Quantity</FieldLabel>\n <NumberInput defaultValue='1' min={1} max={100} />\n <FieldDescription>Choose between 1 and 100 items.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Price per unit</FieldLabel>\n <NumberInput\n defaultValue='99.99'\n step={0.01}\n formatOptions={{ style: 'currency', currency: 'USD' }}\n />\n <FieldDescription>Set the price for each unit.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Discount percentage</FieldLabel>\n <NumberInput defaultValue='10' min={0} max={100} formatOptions={{ style: 'percent' }} />\n <FieldDescription>Apply a discount from 0% to 100%.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n)"
10339
+ },
10340
+ {
10341
+ "name": "Selects",
10342
+ "code": "() => {\n const countriesCollection = createListCollection({\n items: [\n { value: 'us', label: 'United States' },\n { value: 'uk', label: 'United Kingdom' },\n { value: 'ca', label: 'Canada' },\n { value: 'au', label: 'Australia' },\n { value: 'fr', label: 'France' },\n { value: 'de', label: 'Germany' },\n { value: 'jp', label: 'Japan' },\n ],\n });\n\n const languagesCollection = createListCollection({\n items: [\n { value: 'en', label: 'English' },\n { value: 'es', label: 'Spanish' },\n { value: 'fr', label: 'French' },\n { value: 'de', label: 'German' },\n { value: 'it', label: 'Italian' },\n { value: 'pt', label: 'Portuguese' },\n { value: 'ru', label: 'Russian' },\n { value: 'zh', label: 'Chinese' },\n { value: 'ja', label: 'Japanese' },\n ],\n });\n\n const timezonesCollection = createListCollection({\n items: [\n { value: 'utc-8', label: 'Pacific Time (UTC-8)' },\n { value: 'utc-5', label: 'Eastern Time (UTC-5)' },\n { value: 'utc', label: 'UTC' },\n { value: 'utc+1', label: 'Central European Time (UTC+1)' },\n { value: 'utc+8', label: 'China Standard Time (UTC+8)' },\n { value: 'utc+9', label: 'Japan Standard Time (UTC+9)' },\n ],\n });\n\n return (\n <div className='min-w-320'>\n <FieldSet>\n <FieldLegend>Regional Settings</FieldLegend>\n <FieldDescription>Configure your location and language preferences.</FieldDescription>\n\n <FieldGroup>\n <Field>\n <FieldLabel>Country</FieldLabel>\n <Select collection={countriesCollection}>\n <SelectButton placeholder='Select a country' />\n <SelectPositioner>\n <SelectContent>\n {countriesCollection.items.map(country => (\n <SelectOption key={country.value} item={country}>\n <SelectOptionText>{country.label}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n <FieldDescription>Your country determines available features.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Language</FieldLabel>\n <Select collection={languagesCollection}>\n <SelectButton placeholder='Select a language' />\n <SelectPositioner>\n <SelectContent>\n {languagesCollection.items.map(language => (\n <SelectOption key={language.value} item={language}>\n <SelectOptionText>{language.label}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n <FieldDescription>Choose your preferred language.</FieldDescription>\n </Field>\n <Field>\n <FieldLabel>Timezone</FieldLabel>\n <Select collection={timezonesCollection}>\n <SelectButton placeholder='Select a timezone' />\n <SelectPositioner>\n <SelectContent>\n {timezonesCollection.items.map(timezone => (\n <SelectOption key={timezone.value} item={timezone}>\n <SelectOptionText>{timezone.label}</SelectOptionText>\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n <FieldDescription>All times will be displayed in this timezone.</FieldDescription>\n </Field>\n </FieldGroup>\n </FieldSet>\n </div>\n );\n}"
10343
+ }
10344
+ ]
10345
+ },
10346
+ {
10347
+ "name": "Flex",
10348
+ "importPath": "@wallarm-org/design-system/Flex",
10349
+ "props": [
10350
+ {
10351
+ "name": "defaultChecked",
10352
+ "type": "boolean | undefined",
10353
+ "required": false
10354
+ },
10355
+ {
10356
+ "name": "defaultValue",
10357
+ "type": "string | number | readonly string[] | undefined",
10358
+ "required": false
10359
+ },
10360
+ {
10361
+ "name": "suppressContentEditableWarning",
10362
+ "type": "boolean | undefined",
10363
+ "required": false
10364
+ },
10365
+ {
10366
+ "name": "suppressHydrationWarning",
10367
+ "type": "boolean | undefined",
10368
+ "required": false
10369
+ },
10370
+ {
10371
+ "name": "accessKey",
10372
+ "type": "string | undefined",
10373
+ "required": false
10374
+ },
10375
+ {
10376
+ "name": "autoCapitalize",
10377
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
10378
+ "required": false
10379
+ },
10380
+ {
10381
+ "name": "autoFocus",
10382
+ "type": "boolean | undefined",
10383
+ "required": false
10384
+ },
10385
+ {
10386
+ "name": "contentEditable",
10387
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
10388
+ "required": false
10389
+ },
10390
+ {
10391
+ "name": "contextMenu",
10392
+ "type": "string | undefined",
10393
+ "required": false
10394
+ },
10395
+ {
10396
+ "name": "dir",
10397
+ "type": "string | undefined",
10398
+ "required": false
10399
+ },
10400
+ {
10401
+ "name": "draggable",
10402
+ "type": "Booleanish | undefined",
10403
+ "required": false
10404
+ },
10405
+ {
10406
+ "name": "enterKeyHint",
10407
+ "type": "\"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"search\" | \"send\" | undefined",
10408
+ "required": false
10409
+ },
10410
+ {
10411
+ "name": "hidden",
10412
+ "type": "boolean | undefined",
10413
+ "required": false
10414
+ },
10415
+ {
10416
+ "name": "id",
10417
+ "type": "string | undefined",
10418
+ "required": false
10419
+ },
10420
+ {
10421
+ "name": "lang",
10422
+ "type": "string | undefined",
10423
+ "required": false
10424
+ },
10425
+ {
10426
+ "name": "nonce",
10427
+ "type": "string | undefined",
10428
+ "required": false
10429
+ },
10430
+ {
10431
+ "name": "slot",
10432
+ "type": "string | undefined",
10433
+ "required": false
10434
+ },
10435
+ {
10436
+ "name": "spellCheck",
10437
+ "type": "Booleanish | undefined",
10438
+ "required": false
10439
+ },
10440
+ {
10441
+ "name": "tabIndex",
10442
+ "type": "number | undefined",
10443
+ "required": false
10444
+ },
10445
+ {
10446
+ "name": "title",
10447
+ "type": "string | undefined",
10448
+ "required": false
10449
+ },
10450
+ {
10451
+ "name": "translate",
10452
+ "type": "\"yes\" | \"no\" | undefined",
10453
+ "required": false
10454
+ },
10455
+ {
10456
+ "name": "radioGroup",
10457
+ "type": "string | undefined",
10458
+ "required": false
10459
+ },
10460
+ {
10461
+ "name": "role",
10462
+ "type": "AriaRole | undefined",
10463
+ "required": false
10464
+ },
10465
+ {
10466
+ "name": "about",
10467
+ "type": "string | undefined",
10468
+ "required": false
10469
+ },
10470
+ {
10471
+ "name": "content",
10472
+ "type": "string | undefined",
10473
+ "required": false
10474
+ },
10475
+ {
10476
+ "name": "datatype",
10477
+ "type": "string | undefined",
10478
+ "required": false
10479
+ },
10480
+ {
10481
+ "name": "inlist",
10482
+ "type": "any",
10483
+ "required": false
10484
+ },
10485
+ {
10486
+ "name": "prefix",
10487
+ "type": "string | undefined",
10488
+ "required": false
10489
+ },
10490
+ {
10491
+ "name": "property",
10492
+ "type": "string | undefined",
10493
+ "required": false
10494
+ },
10495
+ {
10496
+ "name": "rel",
10497
+ "type": "string | undefined",
10498
+ "required": false
10499
+ },
10500
+ {
10501
+ "name": "resource",
10502
+ "type": "string | undefined",
10503
+ "required": false
10504
+ },
10505
+ {
10506
+ "name": "rev",
10507
+ "type": "string | undefined",
10508
+ "required": false
10509
+ },
10510
+ {
10511
+ "name": "typeof",
10512
+ "type": "string | undefined",
10513
+ "required": false
10514
+ },
10515
+ {
10516
+ "name": "vocab",
10517
+ "type": "string | undefined",
10518
+ "required": false
10519
+ },
10520
+ {
10521
+ "name": "autoCorrect",
10522
+ "type": "string | undefined",
10523
+ "required": false
10524
+ },
10525
+ {
10526
+ "name": "autoSave",
10527
+ "type": "string | undefined",
10528
+ "required": false
10529
+ },
10530
+ {
10531
+ "name": "color",
10532
+ "type": "string | undefined",
10533
+ "required": false
10534
+ },
10535
+ {
10536
+ "name": "itemProp",
10537
+ "type": "string | undefined",
10538
+ "required": false
10539
+ },
10540
+ {
10541
+ "name": "itemScope",
10542
+ "type": "boolean | undefined",
10543
+ "required": false
10544
+ },
10545
+ {
10546
+ "name": "itemType",
10547
+ "type": "string | undefined",
10548
+ "required": false
10549
+ },
10550
+ {
10551
+ "name": "itemID",
10552
+ "type": "string | undefined",
10553
+ "required": false
10554
+ },
10555
+ {
10556
+ "name": "itemRef",
10557
+ "type": "string | undefined",
10558
+ "required": false
10559
+ },
10560
+ {
10561
+ "name": "results",
10562
+ "type": "number | undefined",
10563
+ "required": false
10564
+ },
10565
+ {
10566
+ "name": "security",
10567
+ "type": "string | undefined",
10568
+ "required": false
10569
+ },
10570
+ {
10571
+ "name": "unselectable",
10572
+ "type": "\"off\" | \"on\" | undefined",
10573
+ "required": false
10574
+ },
10575
+ {
10576
+ "name": "popover",
10577
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
10578
+ "required": false
10579
+ },
10580
+ {
10581
+ "name": "popoverTargetAction",
10582
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
10583
+ "required": false
10584
+ },
10585
+ {
10586
+ "name": "popoverTarget",
10587
+ "type": "string | undefined",
10588
+ "required": false
10589
+ },
10590
+ {
10591
+ "name": "inert",
10592
+ "type": "boolean | undefined",
10593
+ "required": false,
10594
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
10595
+ },
10596
+ {
10597
+ "name": "inputMode",
10598
+ "type": "\"none\" | \"search\" | \"text\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
10599
+ "required": false,
10600
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
10601
+ },
10602
+ {
10603
+ "name": "is",
10604
+ "type": "string | undefined",
10605
+ "required": false,
10606
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
10607
+ },
10608
+ {
10609
+ "name": "exportparts",
10610
+ "type": "string | undefined",
10611
+ "required": false,
10612
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
10613
+ },
10614
+ {
10615
+ "name": "part",
10616
+ "type": "string | undefined",
10617
+ "required": false,
10618
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
10619
+ },
10620
+ {
10621
+ "name": "inline",
10622
+ "type": "{ true: string; false: string; }",
10623
+ "required": false,
10624
+ "defaultValue": "false"
10625
+ },
10626
+ {
10627
+ "name": "direction",
10628
+ "type": "{ row: string; column: string; 'row-reverse': string; 'column-reverse': string; }",
10629
+ "required": false,
10630
+ "defaultValue": "row"
10631
+ },
10632
+ {
10633
+ "name": "align",
10634
+ "type": "{ start: string; center: string; end: string; stretch: string; baseline: string; }",
10635
+ "required": false,
10636
+ "defaultValue": "stretch"
10637
+ },
10638
+ {
10639
+ "name": "justify",
10640
+ "type": "{ start: string; center: string; end: string; between: string; around: string; evenly: string; }",
10641
+ "required": false,
10642
+ "defaultValue": "start"
10643
+ },
10644
+ {
10645
+ "name": "wrap",
10646
+ "type": "{ wrap: string; nowrap: string; reverse: string; }",
10647
+ "required": false,
10648
+ "defaultValue": "nowrap"
10649
+ },
10650
+ {
10651
+ "name": "gap",
10652
+ "type": "complex",
10653
+ "required": false
10654
+ },
10655
+ {
10656
+ "name": "grow",
10657
+ "type": "{ true: string; false: string; }",
10658
+ "required": false
10659
+ },
10660
+ {
10661
+ "name": "shrink",
10662
+ "type": "{ true: string; false: string; }",
10663
+ "required": false
10664
+ },
10665
+ {
10666
+ "name": "fullWidth",
10667
+ "type": "{ true: string; }",
10668
+ "required": false
10669
+ },
10670
+ {
10671
+ "name": "basis",
10672
+ "type": "complex",
10673
+ "required": false
10674
+ },
10675
+ {
10676
+ "name": "asChild",
10677
+ "type": "boolean | undefined",
10678
+ "required": false,
10679
+ "defaultValue": "false"
10680
+ }
10681
+ ],
10682
+ "variants": [
10683
+ {
10684
+ "name": "inline",
10685
+ "options": [
10686
+ "true",
10687
+ "false"
10688
+ ]
10689
+ },
10690
+ {
10691
+ "name": "direction",
10692
+ "options": [
10693
+ "row",
10694
+ "column",
10695
+ "row-reverse",
10696
+ "column-reverse"
10697
+ ]
10698
+ },
10699
+ {
10700
+ "name": "align",
10701
+ "options": [
10702
+ "start",
10703
+ "center",
10704
+ "end",
10705
+ "stretch",
10706
+ "baseline"
10707
+ ]
10708
+ },
10709
+ {
10710
+ "name": "justify",
10711
+ "options": [
10712
+ "start",
10713
+ "center",
10714
+ "end",
10715
+ "between",
10716
+ "around",
10717
+ "evenly"
10718
+ ]
10719
+ },
10720
+ {
10721
+ "name": "wrap",
10722
+ "options": [
10723
+ "wrap",
10724
+ "nowrap",
10725
+ "reverse"
10726
+ ]
10727
+ },
10728
+ {
10729
+ "name": "gap",
10730
+ "options": [
10731
+ "1",
10732
+ "2",
10733
+ "4",
10734
+ "6",
10735
+ "8",
10736
+ "12",
10737
+ "16",
10738
+ "20",
10739
+ "24",
10740
+ "28",
10741
+ "32",
10742
+ "36",
10743
+ "40",
10744
+ "44",
10745
+ "48",
10746
+ "56",
10747
+ "64",
10748
+ "80",
10749
+ "96",
10750
+ "112",
10751
+ "128",
10752
+ "144"
10753
+ ]
10754
+ },
10755
+ {
10756
+ "name": "grow",
10757
+ "options": [
10758
+ "true",
10759
+ "false"
10760
+ ]
9507
10761
  },
9508
10762
  {
9509
10763
  "name": "shrink",
@@ -9557,326 +10811,677 @@
9557
10811
  "examples": [
9558
10812
  {
9559
10813
  "name": "Basic",
9560
- "code": "({ ...args }) => (\n <Flex {...args} gap={4}>\n <Box>A</Box>\n <Box>B</Box>\n <Box>C</Box>\n </Flex>\n)"
10814
+ "code": "({ ...args }) => (\n <Flex {...args} gap={4}>\n <Box>A</Box>\n <Box>B</Box>\n <Box>C</Box>\n </Flex>\n)"
10815
+ },
10816
+ {
10817
+ "name": "Direction",
10818
+ "code": "({ ...args }) => (\n <Flex direction='column' gap={8}>\n <VStack>\n <Heading>Row (default)</Heading>\n <Flex {...args} direction='row' gap={2}>\n <Box className='h-32 py-2 px-4 text-sm'>1</Box>\n <Box className='h-32 py-2 px-4 text-sm'>2</Box>\n <Box className='h-32 py-2 px-4 text-sm'>3</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Column</Heading>\n <Flex {...args} direction='column' gap={2}>\n <Box className='h-32 py-2 px-4 text-sm'>1</Box>\n <Box className='h-32 py-2 px-4 text-sm'>2</Box>\n <Box className='h-32 py-2 px-4 text-sm'>3</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Row Reverse</Heading>\n <Flex {...args} direction='row-reverse' gap={2}>\n <Box className='h-32 py-2 px-4 text-sm'>1</Box>\n <Box className='h-32 py-2 px-4 text-sm'>2</Box>\n <Box className='h-32 py-2 px-4 text-sm'>3</Box>\n </Flex>\n </VStack>\n </Flex>\n)"
10819
+ },
10820
+ {
10821
+ "name": "Alignment",
10822
+ "code": "({ ...args }) => (\n <Flex direction='column' gap={8}>\n <VStack>\n <Heading>Justify Start (default)</Heading>\n <Flex {...args} justify='start' fullWidth>\n <Box className='h-16 w-16 text-xs'>A</Box>\n <Box className='h-16 w-16 text-xs'>B</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Justify Center</Heading>\n <Flex {...args} justify='center' fullWidth>\n <Box className='h-16 w-16 text-xs'>A</Box>\n <Box className='h-16 w-16 text-xs'>B</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Justify Between</Heading>\n <Flex {...args} justify='between' fullWidth>\n <Box className='h-16 w-16 text-xs'>A</Box>\n <Box className='h-16 w-16 text-xs'>B</Box>\n </Flex>\n </VStack>\n </Flex>\n)"
10823
+ },
10824
+ {
10825
+ "name": "Wrap",
10826
+ "code": "({ ...args }) => (\n <VStack>\n <Heading>Wrap enabled (container: 24rem)</Heading>\n <Flex {...args} wrap='wrap' gap={2} fullWidth>\n {new Array(40).fill(null).map((_, index) => {\n const key = `${index + 1}`;\n\n return (\n <Box className='h-20 w-20 text-xs' key={key}>\n {key}\n </Box>\n );\n })}\n </Flex>\n </VStack>\n)"
10827
+ },
10828
+ {
10829
+ "name": "GrowShrink",
10830
+ "code": "({ ...args }) => (\n <Flex direction='column' gap={8}>\n <VStack>\n <Heading>Grow: items expand to fill space</Heading>\n <Flex {...args} fullWidth>\n <Box className='h-16 flex-1 text-xs'>Flex-1</Box>\n <Box className='h-16 flex-1 text-xs'>Flex-1</Box>\n <Box className='h-16 text-xs'>Fixed</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Shrink: items shrink when needed</Heading>\n <Flex {...args} fullWidth>\n <Box className='h-16 flex-shrink text-xs'>Shrinkable long content</Box>\n <Box className='h-16 flex-shrink-0 text-xs'>No shrink</Box>\n </Flex>\n </VStack>\n </Flex>\n)"
10831
+ }
10832
+ ]
10833
+ },
10834
+ {
10835
+ "name": "Heading",
10836
+ "importPath": "@wallarm-org/design-system/Heading",
10837
+ "props": [
10838
+ {
10839
+ "name": "size",
10840
+ "type": "{ sm: string; md: string; lg: string; xl: string; '2xl': string; '3xl': string; '4xl': string; '5xl': string; '6xl': string; '7xl': string; }",
10841
+ "required": false,
10842
+ "defaultValue": "xl"
10843
+ },
10844
+ {
10845
+ "name": "weight",
10846
+ "type": "{ light: string; regular: string; medium: string; bold: string; }",
10847
+ "required": false,
10848
+ "defaultValue": "bold"
10849
+ },
10850
+ {
10851
+ "name": "color",
10852
+ "type": "{ primary: string; 'primary-alt': string; secondary: string; 'secondary-alt': string; inherit: string; }",
10853
+ "required": false,
10854
+ "defaultValue": "inherit"
10855
+ },
10856
+ {
10857
+ "name": "align",
10858
+ "type": "{ left: string; center: string; right: string; }",
10859
+ "required": false
10860
+ },
10861
+ {
10862
+ "name": "grow",
10863
+ "type": "{ true: string; }",
10864
+ "required": false,
10865
+ "defaultValue": "false"
10866
+ },
10867
+ {
10868
+ "name": "truncate",
10869
+ "type": "{ true: string; }",
10870
+ "required": false,
10871
+ "defaultValue": "false"
10872
+ },
10873
+ {
10874
+ "name": "asChild",
10875
+ "type": "boolean | undefined",
10876
+ "required": false,
10877
+ "defaultValue": "false"
10878
+ },
10879
+ {
10880
+ "name": "lineClamp",
10881
+ "type": "number | undefined",
10882
+ "required": false
10883
+ },
10884
+ {
10885
+ "name": "as",
10886
+ "type": "C | undefined",
10887
+ "required": false,
10888
+ "defaultValue": "h1"
10889
+ }
10890
+ ],
10891
+ "variants": [
10892
+ {
10893
+ "name": "size",
10894
+ "options": [
10895
+ "sm",
10896
+ "md",
10897
+ "lg",
10898
+ "xl",
10899
+ "2xl",
10900
+ "3xl",
10901
+ "4xl",
10902
+ "5xl",
10903
+ "6xl",
10904
+ "7xl"
10905
+ ]
10906
+ },
10907
+ {
10908
+ "name": "weight",
10909
+ "options": [
10910
+ "light",
10911
+ "regular",
10912
+ "medium",
10913
+ "bold"
10914
+ ]
10915
+ },
10916
+ {
10917
+ "name": "color",
10918
+ "options": [
10919
+ "primary",
10920
+ "primary-alt",
10921
+ "secondary",
10922
+ "secondary-alt",
10923
+ "inherit"
10924
+ ]
10925
+ },
10926
+ {
10927
+ "name": "align",
10928
+ "options": [
10929
+ "left",
10930
+ "center",
10931
+ "right"
10932
+ ]
10933
+ },
10934
+ {
10935
+ "name": "grow",
10936
+ "options": [
10937
+ "true"
10938
+ ]
10939
+ },
10940
+ {
10941
+ "name": "truncate",
10942
+ "options": [
10943
+ "true"
10944
+ ]
10945
+ }
10946
+ ],
10947
+ "subComponents": [],
10948
+ "examples": [
10949
+ {
10950
+ "name": "Basic",
10951
+ "code": "({ ...args }) => (\n <Heading {...args}>Default Heading</Heading>\n)"
9561
10952
  },
9562
10953
  {
9563
- "name": "Direction",
9564
- "code": "({ ...args }) => (\n <Flex direction='column' gap={8}>\n <VStack>\n <Heading>Row (default)</Heading>\n <Flex {...args} direction='row' gap={2}>\n <Box className='h-32 py-2 px-4 text-sm'>1</Box>\n <Box className='h-32 py-2 px-4 text-sm'>2</Box>\n <Box className='h-32 py-2 px-4 text-sm'>3</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Column</Heading>\n <Flex {...args} direction='column' gap={2}>\n <Box className='h-32 py-2 px-4 text-sm'>1</Box>\n <Box className='h-32 py-2 px-4 text-sm'>2</Box>\n <Box className='h-32 py-2 px-4 text-sm'>3</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Row Reverse</Heading>\n <Flex {...args} direction='row-reverse' gap={2}>\n <Box className='h-32 py-2 px-4 text-sm'>1</Box>\n <Box className='h-32 py-2 px-4 text-sm'>2</Box>\n <Box className='h-32 py-2 px-4 text-sm'>3</Box>\n </Flex>\n </VStack>\n </Flex>\n)"
10954
+ "name": "Sizes",
10955
+ "code": "({ ...args }) => (\n <VStack align='start'>\n <Heading {...args} size='sm'>\n Small Heading\n </Heading>\n <Heading {...args} size='md'>\n Medium Heading\n </Heading>\n <Heading {...args} size='lg'>\n Large Heading\n </Heading>\n <Heading {...args} size='xl'>\n Extra Large Heading\n </Heading>\n <Heading {...args} size='2xl'>\n 2XL Heading\n </Heading>\n <Heading {...args} size='3xl'>\n 3XL Heading\n </Heading>\n <Heading {...args} size='4xl'>\n 4XL Heading\n </Heading>\n <Heading {...args} size='5xl'>\n 5XL Heading\n </Heading>\n <Heading {...args} size='6xl'>\n 6XL Heading\n </Heading>\n <Heading {...args} size='7xl'>\n 7XL Heading\n </Heading>\n </VStack>\n)"
9565
10956
  },
9566
10957
  {
9567
- "name": "Alignment",
9568
- "code": "({ ...args }) => (\n <Flex direction='column' gap={8}>\n <VStack>\n <Heading>Justify Start (default)</Heading>\n <Flex {...args} justify='start' fullWidth>\n <Box className='h-16 w-16 text-xs'>A</Box>\n <Box className='h-16 w-16 text-xs'>B</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Justify Center</Heading>\n <Flex {...args} justify='center' fullWidth>\n <Box className='h-16 w-16 text-xs'>A</Box>\n <Box className='h-16 w-16 text-xs'>B</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Justify Between</Heading>\n <Flex {...args} justify='between' fullWidth>\n <Box className='h-16 w-16 text-xs'>A</Box>\n <Box className='h-16 w-16 text-xs'>B</Box>\n </Flex>\n </VStack>\n </Flex>\n)"
10958
+ "name": "Weights",
10959
+ "code": "({ ...args }) => (\n <VStack align='start'>\n <Heading {...args} size='3xl' weight='light'>\n Light Weight Heading\n </Heading>\n <Heading {...args} size='3xl' weight='regular'>\n Regular Weight Heading\n </Heading>\n <Heading {...args} size='3xl' weight='medium'>\n Medium Weight Heading\n </Heading>\n <Heading {...args} size='3xl' weight='bold'>\n Bold Weight Heading\n </Heading>\n </VStack>\n)"
9569
10960
  },
9570
10961
  {
9571
- "name": "Wrap",
9572
- "code": "({ ...args }) => (\n <VStack>\n <Heading>Wrap enabled (container: 24rem)</Heading>\n <Flex {...args} wrap='wrap' gap={2} fullWidth>\n {new Array(40).fill(null).map((_, index) => {\n const key = `${index + 1}`;\n\n return (\n <Box className='h-20 w-20 text-xs' key={key}>\n {key}\n </Box>\n );\n })}\n </Flex>\n </VStack>\n)"
10962
+ "name": "AsChild",
10963
+ "code": "({ ...args }) => (\n <Heading {...args} size='4xl' weight='bold' asChild>\n <h2>Custom H2 Element with AsChild</h2>\n </Heading>\n)"
9573
10964
  },
9574
10965
  {
9575
- "name": "GrowShrink",
9576
- "code": "({ ...args }) => (\n <Flex direction='column' gap={8}>\n <VStack>\n <Heading>Grow: items expand to fill space</Heading>\n <Flex {...args} fullWidth>\n <Box className='h-16 flex-1 text-xs'>Flex-1</Box>\n <Box className='h-16 flex-1 text-xs'>Flex-1</Box>\n <Box className='h-16 text-xs'>Fixed</Box>\n </Flex>\n </VStack>\n\n <VStack>\n <Heading>Shrink: items shrink when needed</Heading>\n <Flex {...args} fullWidth>\n <Box className='h-16 flex-shrink text-xs'>Shrinkable long content</Box>\n <Box className='h-16 flex-shrink-0 text-xs'>No shrink</Box>\n </Flex>\n </VStack>\n </Flex>\n)"
10966
+ "name": "PolymorphicElements",
10967
+ "code": "({ ...args }) => (\n <VStack align='start'>\n <Heading {...args} as='h1' size='4xl'>\n H1 Heading\n </Heading>\n <Heading {...args} as='h2' size='3xl'>\n H2 Heading\n </Heading>\n <Heading {...args} as='h3' size='2xl'>\n H3 Heading\n </Heading>\n <Heading {...args} as='h4' size='xl'>\n H4 Heading\n </Heading>\n <Heading {...args} as='h5' size='lg'>\n H5 Heading\n </Heading>\n <Heading {...args} as='h6' size='md'>\n H6 Heading\n </Heading>\n </VStack>\n)"
10968
+ },
10969
+ {
10970
+ "name": "AsSpan",
10971
+ "code": "({ ...args }) => (\n <Text>\n This is a paragraph with{' '}\n <Heading {...args} as='span' size='lg' weight='bold'>\n inline heading text\n </Heading>{' '}\n using span element.\n </Text>\n)"
10972
+ },
10973
+ {
10974
+ "name": "AsDiv",
10975
+ "code": "({ ...args }) => (\n <Heading {...args} as='div' size='2xl' weight='medium'>\n This heading is rendered as a div element\n </Heading>\n)"
9577
10976
  }
9578
10977
  ]
9579
10978
  },
9580
10979
  {
9581
- "name": "Heading",
9582
- "importPath": "@wallarm-org/design-system/Heading",
10980
+ "name": "Input",
10981
+ "importPath": "@wallarm-org/design-system/Input",
9583
10982
  "props": [
9584
10983
  {
9585
- "name": "size",
9586
- "type": "{ sm: string; md: string; lg: string; xl: string; '2xl': string; '3xl': string; '4xl': string; '5xl': string; '6xl': string; '7xl': string; }",
9587
- "required": false,
9588
- "defaultValue": "xl"
10984
+ "name": "accept",
10985
+ "type": "string | undefined",
10986
+ "required": false
9589
10987
  },
9590
10988
  {
9591
- "name": "weight",
9592
- "type": "{ light: string; regular: string; medium: string; bold: string; }",
10989
+ "name": "alt",
10990
+ "type": "string | undefined",
10991
+ "required": false
10992
+ },
10993
+ {
10994
+ "name": "autoComplete",
10995
+ "type": "HTMLInputAutoCompleteAttribute | undefined",
10996
+ "required": false
10997
+ },
10998
+ {
10999
+ "name": "capture",
11000
+ "type": "boolean | \"user\" | \"environment\" | undefined",
11001
+ "required": false
11002
+ },
11003
+ {
11004
+ "name": "checked",
11005
+ "type": "boolean | undefined",
11006
+ "required": false
11007
+ },
11008
+ {
11009
+ "name": "disabled",
11010
+ "type": "boolean | undefined",
9593
11011
  "required": false,
9594
- "defaultValue": "bold"
11012
+ "defaultValue": "false"
11013
+ },
11014
+ {
11015
+ "name": "form",
11016
+ "type": "string | undefined",
11017
+ "required": false
11018
+ },
11019
+ {
11020
+ "name": "formAction",
11021
+ "type": "string | ((formData: FormData) => void | Promise<void>) | undefined",
11022
+ "required": false
11023
+ },
11024
+ {
11025
+ "name": "formEncType",
11026
+ "type": "string | undefined",
11027
+ "required": false
11028
+ },
11029
+ {
11030
+ "name": "formMethod",
11031
+ "type": "string | undefined",
11032
+ "required": false
11033
+ },
11034
+ {
11035
+ "name": "formNoValidate",
11036
+ "type": "boolean | undefined",
11037
+ "required": false
11038
+ },
11039
+ {
11040
+ "name": "formTarget",
11041
+ "type": "string | undefined",
11042
+ "required": false
11043
+ },
11044
+ {
11045
+ "name": "height",
11046
+ "type": "string | number | undefined",
11047
+ "required": false
11048
+ },
11049
+ {
11050
+ "name": "list",
11051
+ "type": "string | undefined",
11052
+ "required": false
11053
+ },
11054
+ {
11055
+ "name": "max",
11056
+ "type": "string | number | undefined",
11057
+ "required": false
11058
+ },
11059
+ {
11060
+ "name": "maxLength",
11061
+ "type": "number | undefined",
11062
+ "required": false
11063
+ },
11064
+ {
11065
+ "name": "min",
11066
+ "type": "string | number | undefined",
11067
+ "required": false
11068
+ },
11069
+ {
11070
+ "name": "minLength",
11071
+ "type": "number | undefined",
11072
+ "required": false
11073
+ },
11074
+ {
11075
+ "name": "multiple",
11076
+ "type": "boolean | undefined",
11077
+ "required": false
11078
+ },
11079
+ {
11080
+ "name": "name",
11081
+ "type": "string | undefined",
11082
+ "required": false
11083
+ },
11084
+ {
11085
+ "name": "pattern",
11086
+ "type": "string | undefined",
11087
+ "required": false
11088
+ },
11089
+ {
11090
+ "name": "placeholder",
11091
+ "type": "string | undefined",
11092
+ "required": false
11093
+ },
11094
+ {
11095
+ "name": "readOnly",
11096
+ "type": "boolean | undefined",
11097
+ "required": false
11098
+ },
11099
+ {
11100
+ "name": "required",
11101
+ "type": "boolean | undefined",
11102
+ "required": false
11103
+ },
11104
+ {
11105
+ "name": "size",
11106
+ "type": "number | undefined",
11107
+ "required": false
11108
+ },
11109
+ {
11110
+ "name": "src",
11111
+ "type": "string | undefined",
11112
+ "required": false
11113
+ },
11114
+ {
11115
+ "name": "step",
11116
+ "type": "string | number | undefined",
11117
+ "required": false
11118
+ },
11119
+ {
11120
+ "name": "type",
11121
+ "type": "HTMLInputTypeAttribute | undefined",
11122
+ "required": false
11123
+ },
11124
+ {
11125
+ "name": "value",
11126
+ "type": "string | number | readonly string[] | undefined",
11127
+ "required": false
11128
+ },
11129
+ {
11130
+ "name": "width",
11131
+ "type": "string | number | undefined",
11132
+ "required": false
11133
+ },
11134
+ {
11135
+ "name": "defaultChecked",
11136
+ "type": "boolean | undefined",
11137
+ "required": false
11138
+ },
11139
+ {
11140
+ "name": "defaultValue",
11141
+ "type": "string | number | readonly string[] | undefined",
11142
+ "required": false
11143
+ },
11144
+ {
11145
+ "name": "suppressContentEditableWarning",
11146
+ "type": "boolean | undefined",
11147
+ "required": false
11148
+ },
11149
+ {
11150
+ "name": "suppressHydrationWarning",
11151
+ "type": "boolean | undefined",
11152
+ "required": false
11153
+ },
11154
+ {
11155
+ "name": "accessKey",
11156
+ "type": "string | undefined",
11157
+ "required": false
11158
+ },
11159
+ {
11160
+ "name": "autoCapitalize",
11161
+ "type": "\"off\" | \"on\" | (string & {}) | \"none\" | \"sentences\" | \"words\" | \"characters\" | undefined",
11162
+ "required": false
11163
+ },
11164
+ {
11165
+ "name": "autoFocus",
11166
+ "type": "boolean | undefined",
11167
+ "required": false
11168
+ },
11169
+ {
11170
+ "name": "contentEditable",
11171
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
11172
+ "required": false
11173
+ },
11174
+ {
11175
+ "name": "contextMenu",
11176
+ "type": "string | undefined",
11177
+ "required": false
11178
+ },
11179
+ {
11180
+ "name": "dir",
11181
+ "type": "string | undefined",
11182
+ "required": false
11183
+ },
11184
+ {
11185
+ "name": "draggable",
11186
+ "type": "Booleanish | undefined",
11187
+ "required": false
11188
+ },
11189
+ {
11190
+ "name": "enterKeyHint",
11191
+ "type": "\"search\" | \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"send\" | undefined",
11192
+ "required": false
11193
+ },
11194
+ {
11195
+ "name": "hidden",
11196
+ "type": "boolean | undefined",
11197
+ "required": false
9595
11198
  },
9596
11199
  {
9597
- "name": "color",
9598
- "type": "{ primary: string; 'primary-alt': string; secondary: string; 'secondary-alt': string; inherit: string; }",
9599
- "required": false,
9600
- "defaultValue": "inherit"
11200
+ "name": "id",
11201
+ "type": "string | undefined",
11202
+ "required": false
9601
11203
  },
9602
11204
  {
9603
- "name": "align",
9604
- "type": "{ left: string; center: string; right: string; }",
11205
+ "name": "lang",
11206
+ "type": "string | undefined",
9605
11207
  "required": false
9606
11208
  },
9607
11209
  {
9608
- "name": "grow",
9609
- "type": "{ true: string; }",
9610
- "required": false,
9611
- "defaultValue": "false"
11210
+ "name": "nonce",
11211
+ "type": "string | undefined",
11212
+ "required": false
9612
11213
  },
9613
11214
  {
9614
- "name": "truncate",
9615
- "type": "{ true: string; }",
9616
- "required": false,
9617
- "defaultValue": "false"
11215
+ "name": "slot",
11216
+ "type": "string | undefined",
11217
+ "required": false
9618
11218
  },
9619
11219
  {
9620
- "name": "asChild",
9621
- "type": "boolean | undefined",
9622
- "required": false,
9623
- "defaultValue": "false"
11220
+ "name": "spellCheck",
11221
+ "type": "Booleanish | undefined",
11222
+ "required": false
9624
11223
  },
9625
11224
  {
9626
- "name": "lineClamp",
11225
+ "name": "tabIndex",
9627
11226
  "type": "number | undefined",
9628
11227
  "required": false
9629
11228
  },
9630
11229
  {
9631
- "name": "as",
9632
- "type": "C | undefined",
9633
- "required": false,
9634
- "defaultValue": "h1"
9635
- }
9636
- ],
9637
- "variants": [
9638
- {
9639
- "name": "size",
9640
- "options": [
9641
- "sm",
9642
- "md",
9643
- "lg",
9644
- "xl",
9645
- "2xl",
9646
- "3xl",
9647
- "4xl",
9648
- "5xl",
9649
- "6xl",
9650
- "7xl"
9651
- ]
11230
+ "name": "title",
11231
+ "type": "string | undefined",
11232
+ "required": false
9652
11233
  },
9653
11234
  {
9654
- "name": "weight",
9655
- "options": [
9656
- "light",
9657
- "regular",
9658
- "medium",
9659
- "bold"
9660
- ]
11235
+ "name": "translate",
11236
+ "type": "\"yes\" | \"no\" | undefined",
11237
+ "required": false
9661
11238
  },
9662
11239
  {
9663
- "name": "color",
9664
- "options": [
9665
- "primary",
9666
- "primary-alt",
9667
- "secondary",
9668
- "secondary-alt",
9669
- "inherit"
9670
- ]
11240
+ "name": "radioGroup",
11241
+ "type": "string | undefined",
11242
+ "required": false
9671
11243
  },
9672
11244
  {
9673
- "name": "align",
9674
- "options": [
9675
- "left",
9676
- "center",
9677
- "right"
9678
- ]
11245
+ "name": "role",
11246
+ "type": "AriaRole | undefined",
11247
+ "required": false
9679
11248
  },
9680
11249
  {
9681
- "name": "grow",
9682
- "options": [
9683
- "true"
9684
- ]
11250
+ "name": "about",
11251
+ "type": "string | undefined",
11252
+ "required": false
9685
11253
  },
9686
11254
  {
9687
- "name": "truncate",
9688
- "options": [
9689
- "true"
9690
- ]
9691
- }
9692
- ],
9693
- "subComponents": [],
9694
- "examples": [
9695
- {
9696
- "name": "Basic",
9697
- "code": "({ ...args }) => (\n <Heading {...args}>Default Heading</Heading>\n)"
11255
+ "name": "content",
11256
+ "type": "string | undefined",
11257
+ "required": false
9698
11258
  },
9699
11259
  {
9700
- "name": "Sizes",
9701
- "code": "({ ...args }) => (\n <VStack align='start'>\n <Heading {...args} size='sm'>\n Small Heading\n </Heading>\n <Heading {...args} size='md'>\n Medium Heading\n </Heading>\n <Heading {...args} size='lg'>\n Large Heading\n </Heading>\n <Heading {...args} size='xl'>\n Extra Large Heading\n </Heading>\n <Heading {...args} size='2xl'>\n 2XL Heading\n </Heading>\n <Heading {...args} size='3xl'>\n 3XL Heading\n </Heading>\n <Heading {...args} size='4xl'>\n 4XL Heading\n </Heading>\n <Heading {...args} size='5xl'>\n 5XL Heading\n </Heading>\n <Heading {...args} size='6xl'>\n 6XL Heading\n </Heading>\n <Heading {...args} size='7xl'>\n 7XL Heading\n </Heading>\n </VStack>\n)"
11260
+ "name": "datatype",
11261
+ "type": "string | undefined",
11262
+ "required": false
9702
11263
  },
9703
11264
  {
9704
- "name": "Weights",
9705
- "code": "({ ...args }) => (\n <VStack align='start'>\n <Heading {...args} size='3xl' weight='light'>\n Light Weight Heading\n </Heading>\n <Heading {...args} size='3xl' weight='regular'>\n Regular Weight Heading\n </Heading>\n <Heading {...args} size='3xl' weight='medium'>\n Medium Weight Heading\n </Heading>\n <Heading {...args} size='3xl' weight='bold'>\n Bold Weight Heading\n </Heading>\n </VStack>\n)"
11265
+ "name": "inlist",
11266
+ "type": "any",
11267
+ "required": false
9706
11268
  },
9707
11269
  {
9708
- "name": "AsChild",
9709
- "code": "({ ...args }) => (\n <Heading {...args} size='4xl' weight='bold' asChild>\n <h2>Custom H2 Element with AsChild</h2>\n </Heading>\n)"
11270
+ "name": "prefix",
11271
+ "type": "string | undefined",
11272
+ "required": false
9710
11273
  },
9711
11274
  {
9712
- "name": "PolymorphicElements",
9713
- "code": "({ ...args }) => (\n <VStack align='start'>\n <Heading {...args} as='h1' size='4xl'>\n H1 Heading\n </Heading>\n <Heading {...args} as='h2' size='3xl'>\n H2 Heading\n </Heading>\n <Heading {...args} as='h3' size='2xl'>\n H3 Heading\n </Heading>\n <Heading {...args} as='h4' size='xl'>\n H4 Heading\n </Heading>\n <Heading {...args} as='h5' size='lg'>\n H5 Heading\n </Heading>\n <Heading {...args} as='h6' size='md'>\n H6 Heading\n </Heading>\n </VStack>\n)"
11275
+ "name": "property",
11276
+ "type": "string | undefined",
11277
+ "required": false
9714
11278
  },
9715
11279
  {
9716
- "name": "AsSpan",
9717
- "code": "({ ...args }) => (\n <Text>\n This is a paragraph with{' '}\n <Heading {...args} as='span' size='lg' weight='bold'>\n inline heading text\n </Heading>{' '}\n using span element.\n </Text>\n)"
11280
+ "name": "rel",
11281
+ "type": "string | undefined",
11282
+ "required": false
9718
11283
  },
9719
11284
  {
9720
- "name": "AsDiv",
9721
- "code": "({ ...args }) => (\n <Heading {...args} as='div' size='2xl' weight='medium'>\n This heading is rendered as a div element\n </Heading>\n)"
9722
- }
9723
- ]
9724
- },
9725
- {
9726
- "name": "Input",
9727
- "importPath": "@wallarm-org/design-system/Input",
9728
- "props": [
9729
- {
9730
- "name": "accept",
11285
+ "name": "resource",
9731
11286
  "type": "string | undefined",
9732
11287
  "required": false
9733
11288
  },
9734
11289
  {
9735
- "name": "alt",
11290
+ "name": "rev",
9736
11291
  "type": "string | undefined",
9737
11292
  "required": false
9738
11293
  },
9739
11294
  {
9740
- "name": "autoComplete",
9741
- "type": "HTMLInputAutoCompleteAttribute | undefined",
11295
+ "name": "typeof",
11296
+ "type": "string | undefined",
9742
11297
  "required": false
9743
11298
  },
9744
11299
  {
9745
- "name": "capture",
9746
- "type": "boolean | \"user\" | \"environment\" | undefined",
11300
+ "name": "vocab",
11301
+ "type": "string | undefined",
9747
11302
  "required": false
9748
11303
  },
9749
11304
  {
9750
- "name": "checked",
9751
- "type": "boolean | undefined",
11305
+ "name": "autoCorrect",
11306
+ "type": "string | undefined",
9752
11307
  "required": false
9753
11308
  },
9754
11309
  {
9755
- "name": "disabled",
9756
- "type": "boolean | undefined",
9757
- "required": false,
9758
- "defaultValue": "false"
11310
+ "name": "autoSave",
11311
+ "type": "string | undefined",
11312
+ "required": false
9759
11313
  },
9760
11314
  {
9761
- "name": "form",
11315
+ "name": "color",
9762
11316
  "type": "string | undefined",
9763
11317
  "required": false
9764
11318
  },
9765
11319
  {
9766
- "name": "formAction",
9767
- "type": "string | ((formData: FormData) => void | Promise<void>) | undefined",
11320
+ "name": "itemProp",
11321
+ "type": "string | undefined",
9768
11322
  "required": false
9769
11323
  },
9770
11324
  {
9771
- "name": "formEncType",
9772
- "type": "string | undefined",
11325
+ "name": "itemScope",
11326
+ "type": "boolean | undefined",
9773
11327
  "required": false
9774
11328
  },
9775
11329
  {
9776
- "name": "formMethod",
11330
+ "name": "itemType",
9777
11331
  "type": "string | undefined",
9778
11332
  "required": false
9779
11333
  },
9780
11334
  {
9781
- "name": "formNoValidate",
9782
- "type": "boolean | undefined",
11335
+ "name": "itemID",
11336
+ "type": "string | undefined",
9783
11337
  "required": false
9784
11338
  },
9785
11339
  {
9786
- "name": "formTarget",
11340
+ "name": "itemRef",
9787
11341
  "type": "string | undefined",
9788
11342
  "required": false
9789
11343
  },
9790
11344
  {
9791
- "name": "height",
9792
- "type": "string | number | undefined",
11345
+ "name": "results",
11346
+ "type": "number | undefined",
9793
11347
  "required": false
9794
11348
  },
9795
11349
  {
9796
- "name": "list",
11350
+ "name": "security",
9797
11351
  "type": "string | undefined",
9798
11352
  "required": false
9799
11353
  },
9800
11354
  {
9801
- "name": "max",
9802
- "type": "string | number | undefined",
11355
+ "name": "unselectable",
11356
+ "type": "\"off\" | \"on\" | undefined",
9803
11357
  "required": false
9804
11358
  },
9805
11359
  {
9806
- "name": "maxLength",
9807
- "type": "number | undefined",
11360
+ "name": "popover",
11361
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
9808
11362
  "required": false
9809
11363
  },
9810
11364
  {
9811
- "name": "min",
9812
- "type": "string | number | undefined",
11365
+ "name": "popoverTargetAction",
11366
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
9813
11367
  "required": false
9814
11368
  },
9815
11369
  {
9816
- "name": "minLength",
9817
- "type": "number | undefined",
11370
+ "name": "popoverTarget",
11371
+ "type": "string | undefined",
9818
11372
  "required": false
9819
11373
  },
9820
11374
  {
9821
- "name": "multiple",
9822
- "type": "boolean | undefined",
9823
- "required": false
11375
+ "name": "inert",
11376
+ "type": "boolean | undefined",
11377
+ "required": false,
11378
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
11379
+ },
11380
+ {
11381
+ "name": "inputMode",
11382
+ "type": "\"email\" | \"tel\" | \"search\" | \"text\" | \"url\" | \"none\" | \"numeric\" | \"decimal\" | undefined",
11383
+ "required": false,
11384
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
11385
+ },
11386
+ {
11387
+ "name": "is",
11388
+ "type": "string | undefined",
11389
+ "required": false,
11390
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
11391
+ },
11392
+ {
11393
+ "name": "exportparts",
11394
+ "type": "string | undefined",
11395
+ "required": false,
11396
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
11397
+ },
11398
+ {
11399
+ "name": "part",
11400
+ "type": "string | undefined",
11401
+ "required": false,
11402
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
11403
+ },
11404
+ {
11405
+ "name": "error",
11406
+ "type": "{ true: string; false: string[]; }",
11407
+ "required": false,
11408
+ "defaultValue": "false"
11409
+ }
11410
+ ],
11411
+ "variants": [
11412
+ {
11413
+ "name": "error",
11414
+ "options": [
11415
+ "true",
11416
+ "false"
11417
+ ]
11418
+ }
11419
+ ],
11420
+ "subComponents": [],
11421
+ "examples": [
11422
+ {
11423
+ "name": "Basic",
11424
+ "code": "<Input />"
9824
11425
  },
9825
11426
  {
9826
- "name": "name",
9827
- "type": "string | undefined",
9828
- "required": false
11427
+ "name": "Focused",
11428
+ "code": "<Input />"
9829
11429
  },
9830
11430
  {
9831
- "name": "pattern",
9832
- "type": "string | undefined",
9833
- "required": false
11431
+ "name": "Disabled",
11432
+ "code": "<Input disabled />"
9834
11433
  },
9835
11434
  {
9836
- "name": "placeholder",
9837
- "type": "string | undefined",
9838
- "required": false
11435
+ "name": "WithValue",
11436
+ "code": "<Input value=\"Some value...\" />"
9839
11437
  },
9840
11438
  {
9841
- "name": "readOnly",
9842
- "type": "boolean | undefined",
9843
- "required": false
9844
- },
11439
+ "name": "WithError",
11440
+ "code": "<Input error />"
11441
+ }
11442
+ ]
11443
+ },
11444
+ {
11445
+ "name": "InputGroup",
11446
+ "importPath": "@wallarm-org/design-system/InputGroup",
11447
+ "props": [],
11448
+ "variants": [],
11449
+ "subComponents": [],
11450
+ "examples": [
9845
11451
  {
9846
- "name": "required",
9847
- "type": "boolean | undefined",
9848
- "required": false
11452
+ "name": "Basic",
11453
+ "code": "() => (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end'>\n <Info />\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon variant='outline'>\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' value='wallarm/user-settings' />\n <InputGroupAddon variant='outline' align='inline-end'>\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n)"
9849
11454
  },
9850
11455
  {
9851
- "name": "size",
9852
- "type": "number | undefined",
9853
- "required": false
11456
+ "name": "Disabled",
11457
+ "code": "() => (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' disabled />\n <InputGroupAddon align='inline-end'>\n <Info />\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon>\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' value='wallarm/user-settings' disabled />\n <InputGroupAddon align='inline-end'>\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n)"
9854
11458
  },
9855
11459
  {
9856
- "name": "src",
9857
- "type": "string | undefined",
9858
- "required": false
11460
+ "name": "WithError",
11461
+ "code": "() => (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' error />\n <InputGroupAddon align='inline-end'>\n <Info />\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon>\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' value='wallarm/user-settings' error />\n <InputGroupAddon align='inline-end'>\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n)"
9859
11462
  },
9860
11463
  {
9861
- "name": "step",
9862
- "type": "string | number | undefined",
9863
- "required": false
11464
+ "name": "WithLoader",
11465
+ "code": "() => (\n <InputGroup>\n <InputGroupInput placeholder='Searching...' disabled />\n <InputGroupAddon align='inline-end'>\n <Loader size='md' />\n </InputGroupAddon>\n </InputGroup>\n)"
9864
11466
  },
9865
11467
  {
9866
- "name": "type",
9867
- "type": "HTMLInputTypeAttribute | undefined",
9868
- "required": false
11468
+ "name": "WithKbd",
11469
+ "code": "() => (\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Search' />\n <InputGroupAddon align='inline-end'>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </InputGroupAddon>\n </InputGroup>\n)"
9869
11470
  },
9870
11471
  {
9871
- "name": "value",
9872
- "type": "string | number | readonly string[] | undefined",
9873
- "required": false
11472
+ "name": "WithTooltip",
11473
+ "code": "() => (\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end'>\n <Tooltip>\n <TooltipTrigger asChild>\n <Info />\n </TooltipTrigger>\n <TooltipContent>Get more info</TooltipContent>\n </Tooltip>\n </InputGroupAddon>\n </InputGroup>\n)"
9874
11474
  },
9875
11475
  {
9876
- "name": "width",
9877
- "type": "string | number | undefined",
9878
- "required": false
9879
- },
11476
+ "name": "WithSelect",
11477
+ "code": "() => {\n const collection = createListCollection({\n items: [\n {\n label: 'React',\n value: 'react',\n icon: LayoutGrid,\n category: 'Frontend',\n },\n {\n label: 'Vue',\n value: 'vue',\n icon: LayoutTemplate,\n category: 'Frontend',\n },\n {\n label: 'Angular',\n value: 'angular',\n icon: Search,\n category: 'Frontend',\n },\n ],\n });\n\n return (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon variant='outline'>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n\n <InputGroupInput placeholder='Enter' />\n </InputGroup>\n\n <InputGroup>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end' variant='outline'>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n\n <InputGroupInput placeholder='Enter' />\n </InputGroup>\n\n <InputGroup>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end'>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n );\n}"
11478
+ }
11479
+ ]
11480
+ },
11481
+ {
11482
+ "name": "Ip",
11483
+ "importPath": "@wallarm-org/design-system/Ip",
11484
+ "props": [
9880
11485
  {
9881
11486
  "name": "defaultChecked",
9882
11487
  "type": "boolean | undefined",
@@ -9904,7 +11509,7 @@
9904
11509
  },
9905
11510
  {
9906
11511
  "name": "autoCapitalize",
9907
- "type": "\"off\" | \"on\" | (string & {}) | \"none\" | \"sentences\" | \"words\" | \"characters\" | undefined",
11512
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
9908
11513
  "required": false
9909
11514
  },
9910
11515
  {
@@ -10125,7 +11730,7 @@
10125
11730
  },
10126
11731
  {
10127
11732
  "name": "inputMode",
10128
- "type": "\"email\" | \"tel\" | \"search\" | \"text\" | \"url\" | \"none\" | \"numeric\" | \"decimal\" | undefined",
11733
+ "type": "\"search\" | \"text\" | \"none\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
10129
11734
  "required": false,
10130
11735
  "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
10131
11736
  },
@@ -10142,85 +11747,623 @@
10142
11747
  "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
10143
11748
  },
10144
11749
  {
10145
- "name": "part",
10146
- "type": "string | undefined",
10147
- "required": false,
10148
- "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
11750
+ "name": "part",
11751
+ "type": "string | undefined",
11752
+ "required": false,
11753
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
11754
+ },
11755
+ {
11756
+ "name": "asChild",
11757
+ "type": "boolean | undefined",
11758
+ "required": false,
11759
+ "defaultValue": "false"
11760
+ }
11761
+ ],
11762
+ "variants": [],
11763
+ "subComponents": [
11764
+ {
11765
+ "name": "IpAddress",
11766
+ "props": []
11767
+ },
11768
+ {
11769
+ "name": "IpCountry",
11770
+ "props": [
11771
+ {
11772
+ "name": "code",
11773
+ "type": "\"AF\" | \"AX\" | \"AL\" | \"DZ\" | \"AS\" | \"AD\" | \"AO\" | \"AI\" | \"AG\" | \"AR\" | \"AM\" | \"AW\" | \"AU\" | \"AT\" | \"AZ\" | \"BS\" | \"BH\" | \"BD\" | \"BB\" | \"BY\" | \"BE\" | \"BZ\" | \"BJ\" | \"BM\" | \"BT\" | \"BO\" | \"BQ\" | \"BA\" | \"BW\" | \"BV\" | \"BR\" | \"IO\" | \"BN\" | \"BG\" | \"BF\" | \"BI\" | \"CV\" | \"KH\" | \"CM\" | \"CA\" | \"KY\" | \"CF\" | \"TD\" | \"CL\" | \"CN\" | \"CX\" | \"CC\" | \"CO\" | \"KM\" | \"CG\" | \"CD\" | \"CK\" | \"CR\" | \"CI\" | \"HR\" | \"CU\" | \"CW\" | \"CY\" | \"CZ\" | \"DK\" | \"DJ\" | \"DM\" | \"DO\" | \"DNO\" | \"EC\" | \"EG\" | \"SV\" | \"GQ\" | \"ER\" | \"EE\" | \"ET\" | \"FK\" | \"FO\" | \"FJ\" | \"FI\" | \"FR\" | \"GF\" | \"PF\" | \"TF\" | \"GA\" | \"GM\" | \"GE\" | \"DE\" | \"GH\" | \"GI\" | \"GR\" | \"GL\" | \"GD\" | \"GP\" | \"GU\" | \"GT\" | \"GG\" | \"GN\" | \"GW\" | \"GY\" | \"HT\" | \"HM\" | \"VA\" | \"HN\" | \"HK\" | \"HU\" | \"IS\" | \"IN\" | \"ID\" | \"IR\" | \"IQ\" | \"IE\" | \"IM\" | \"IL\" | \"IT\" | \"JM\" | \"JP\" | \"JE\" | \"JO\" | \"KZ\" | \"KE\" | \"KI\" | \"KP\" | \"KR\" | \"KW\" | \"KG\" | \"LA\" | \"LV\" | \"LB\" | \"LS\" | \"LR\" | \"LY\" | \"LI\" | \"LT\" | \"LHO\" | \"LU\" | \"MO\" | \"MK\" | \"MG\" | \"MW\" | \"MY\" | \"MV\" | \"ML\" | \"MT\" | \"MH\" | \"MQ\" | \"MR\" | \"MU\" | \"YT\" | \"MX\" | \"FM\" | \"MD\" | \"MC\" | \"MN\" | \"ME\" | \"MS\" | \"MA\" | \"MZ\" | \"MM\" | \"NA\" | \"NR\" | \"NP\" | \"NL\" | \"NC\" | \"NZ\" | \"NI\" | \"NE\" | \"NG\" | \"NU\" | \"NF\" | \"MP\" | \"NO\" | \"OM\" | \"PK\" | \"PW\" | \"PS\" | \"PA\" | \"PG\" | \"PY\" | \"PE\" | \"PH\" | \"PN\" | \"PL\" | \"PT\" | \"PR\" | \"QA\" | \"ROC\" | \"RE\" | \"RO\" | \"RU\" | \"RW\" | \"BL\" | \"SH\" | \"KN\" | \"LC\" | \"MF\" | \"PM\" | \"VC\" | \"WS\" | \"SM\" | \"ST\" | \"SA\" | \"SN\" | \"RS\" | \"SC\" | \"SL\" | \"SG\" | \"SX\" | \"SK\" | \"SI\" | \"SB\" | \"SO\" | \"ZA\" | \"GS\" | \"SS\" | \"ES\" | \"LK\" | \"SD\" | \"SR\" | \"SJ\" | \"SZ\" | \"SE\" | \"CH\" | \"SY\" | \"TW\" | \"TJ\" | \"TZ\" | \"TH\" | \"TL\" | \"TG\" | \"TK\" | \"TO\" | \"TT\" | \"TN\" | \"TR\" | \"TM\" | \"TC\" | \"TV\" | \"UG\" | \"UA\" | \"AE\" | \"GB\" | \"US\" | \"UY\" | \"UZ\" | \"VU\" | \"VE\" | \"VN\" | \"VG\" | \"VI\" | \"WF\" | \"EH\" | \"YE\" | \"ZM\" | \"ZW\"",
11774
+ "required": true
11775
+ }
11776
+ ]
11777
+ },
11778
+ {
11779
+ "name": "IpList",
11780
+ "props": [
11781
+ {
11782
+ "name": "defaultChecked",
11783
+ "type": "boolean | undefined",
11784
+ "required": false
11785
+ },
11786
+ {
11787
+ "name": "defaultValue",
11788
+ "type": "string | number | readonly string[] | undefined",
11789
+ "required": false
11790
+ },
11791
+ {
11792
+ "name": "suppressContentEditableWarning",
11793
+ "type": "boolean | undefined",
11794
+ "required": false
11795
+ },
11796
+ {
11797
+ "name": "suppressHydrationWarning",
11798
+ "type": "boolean | undefined",
11799
+ "required": false
11800
+ },
11801
+ {
11802
+ "name": "accessKey",
11803
+ "type": "string | undefined",
11804
+ "required": false
11805
+ },
11806
+ {
11807
+ "name": "autoCapitalize",
11808
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
11809
+ "required": false
11810
+ },
11811
+ {
11812
+ "name": "autoFocus",
11813
+ "type": "boolean | undefined",
11814
+ "required": false
11815
+ },
11816
+ {
11817
+ "name": "contentEditable",
11818
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
11819
+ "required": false
11820
+ },
11821
+ {
11822
+ "name": "contextMenu",
11823
+ "type": "string | undefined",
11824
+ "required": false
11825
+ },
11826
+ {
11827
+ "name": "dir",
11828
+ "type": "string | undefined",
11829
+ "required": false
11830
+ },
11831
+ {
11832
+ "name": "draggable",
11833
+ "type": "Booleanish | undefined",
11834
+ "required": false
11835
+ },
11836
+ {
11837
+ "name": "enterKeyHint",
11838
+ "type": "\"search\" | \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"send\" | undefined",
11839
+ "required": false
11840
+ },
11841
+ {
11842
+ "name": "hidden",
11843
+ "type": "boolean | undefined",
11844
+ "required": false
11845
+ },
11846
+ {
11847
+ "name": "id",
11848
+ "type": "string | undefined",
11849
+ "required": false
11850
+ },
11851
+ {
11852
+ "name": "lang",
11853
+ "type": "string | undefined",
11854
+ "required": false
11855
+ },
11856
+ {
11857
+ "name": "nonce",
11858
+ "type": "string | undefined",
11859
+ "required": false
11860
+ },
11861
+ {
11862
+ "name": "slot",
11863
+ "type": "string | undefined",
11864
+ "required": false
11865
+ },
11866
+ {
11867
+ "name": "spellCheck",
11868
+ "type": "Booleanish | undefined",
11869
+ "required": false
11870
+ },
11871
+ {
11872
+ "name": "tabIndex",
11873
+ "type": "number | undefined",
11874
+ "required": false
11875
+ },
11876
+ {
11877
+ "name": "title",
11878
+ "type": "string | undefined",
11879
+ "required": false
11880
+ },
11881
+ {
11882
+ "name": "translate",
11883
+ "type": "\"yes\" | \"no\" | undefined",
11884
+ "required": false
11885
+ },
11886
+ {
11887
+ "name": "radioGroup",
11888
+ "type": "string | undefined",
11889
+ "required": false
11890
+ },
11891
+ {
11892
+ "name": "role",
11893
+ "type": "AriaRole | undefined",
11894
+ "required": false
11895
+ },
11896
+ {
11897
+ "name": "about",
11898
+ "type": "string | undefined",
11899
+ "required": false
11900
+ },
11901
+ {
11902
+ "name": "content",
11903
+ "type": "string | undefined",
11904
+ "required": false
11905
+ },
11906
+ {
11907
+ "name": "datatype",
11908
+ "type": "string | undefined",
11909
+ "required": false
11910
+ },
11911
+ {
11912
+ "name": "inlist",
11913
+ "type": "any",
11914
+ "required": false
11915
+ },
11916
+ {
11917
+ "name": "prefix",
11918
+ "type": "string | undefined",
11919
+ "required": false
11920
+ },
11921
+ {
11922
+ "name": "property",
11923
+ "type": "string | undefined",
11924
+ "required": false
11925
+ },
11926
+ {
11927
+ "name": "rel",
11928
+ "type": "string | undefined",
11929
+ "required": false
11930
+ },
11931
+ {
11932
+ "name": "resource",
11933
+ "type": "string | undefined",
11934
+ "required": false
11935
+ },
11936
+ {
11937
+ "name": "rev",
11938
+ "type": "string | undefined",
11939
+ "required": false
11940
+ },
11941
+ {
11942
+ "name": "typeof",
11943
+ "type": "string | undefined",
11944
+ "required": false
11945
+ },
11946
+ {
11947
+ "name": "vocab",
11948
+ "type": "string | undefined",
11949
+ "required": false
11950
+ },
11951
+ {
11952
+ "name": "autoCorrect",
11953
+ "type": "string | undefined",
11954
+ "required": false
11955
+ },
11956
+ {
11957
+ "name": "autoSave",
11958
+ "type": "string | undefined",
11959
+ "required": false
11960
+ },
11961
+ {
11962
+ "name": "color",
11963
+ "type": "string | undefined",
11964
+ "required": false
11965
+ },
11966
+ {
11967
+ "name": "itemProp",
11968
+ "type": "string | undefined",
11969
+ "required": false
11970
+ },
11971
+ {
11972
+ "name": "itemScope",
11973
+ "type": "boolean | undefined",
11974
+ "required": false
11975
+ },
11976
+ {
11977
+ "name": "itemType",
11978
+ "type": "string | undefined",
11979
+ "required": false
11980
+ },
11981
+ {
11982
+ "name": "itemID",
11983
+ "type": "string | undefined",
11984
+ "required": false
11985
+ },
11986
+ {
11987
+ "name": "itemRef",
11988
+ "type": "string | undefined",
11989
+ "required": false
11990
+ },
11991
+ {
11992
+ "name": "results",
11993
+ "type": "number | undefined",
11994
+ "required": false
11995
+ },
11996
+ {
11997
+ "name": "security",
11998
+ "type": "string | undefined",
11999
+ "required": false
12000
+ },
12001
+ {
12002
+ "name": "unselectable",
12003
+ "type": "\"off\" | \"on\" | undefined",
12004
+ "required": false
12005
+ },
12006
+ {
12007
+ "name": "popover",
12008
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
12009
+ "required": false
12010
+ },
12011
+ {
12012
+ "name": "popoverTargetAction",
12013
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
12014
+ "required": false
12015
+ },
12016
+ {
12017
+ "name": "popoverTarget",
12018
+ "type": "string | undefined",
12019
+ "required": false
12020
+ },
12021
+ {
12022
+ "name": "inert",
12023
+ "type": "boolean | undefined",
12024
+ "required": false,
12025
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
12026
+ },
12027
+ {
12028
+ "name": "inputMode",
12029
+ "type": "\"search\" | \"text\" | \"none\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
12030
+ "required": false,
12031
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
12032
+ },
12033
+ {
12034
+ "name": "is",
12035
+ "type": "string | undefined",
12036
+ "required": false,
12037
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
12038
+ },
12039
+ {
12040
+ "name": "exportparts",
12041
+ "type": "string | undefined",
12042
+ "required": false,
12043
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
12044
+ },
12045
+ {
12046
+ "name": "part",
12047
+ "type": "string | undefined",
12048
+ "required": false,
12049
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
12050
+ },
12051
+ {
12052
+ "name": "asChild",
12053
+ "type": "boolean | undefined",
12054
+ "required": false,
12055
+ "defaultValue": "false"
12056
+ }
12057
+ ]
12058
+ },
12059
+ {
12060
+ "name": "IpPort",
12061
+ "props": []
10149
12062
  },
10150
12063
  {
10151
- "name": "error",
10152
- "type": "{ true: string; false: string[]; }",
10153
- "required": false,
10154
- "defaultValue": "false"
10155
- }
10156
- ],
10157
- "variants": [
10158
- {
10159
- "name": "error",
10160
- "options": [
10161
- "true",
10162
- "false"
12064
+ "name": "IpProvider",
12065
+ "props": [
12066
+ {
12067
+ "name": "slot",
12068
+ "type": "string | undefined",
12069
+ "required": false
12070
+ },
12071
+ {
12072
+ "name": "title",
12073
+ "type": "string | undefined",
12074
+ "required": false
12075
+ },
12076
+ {
12077
+ "name": "variant",
12078
+ "type": "{ default: string; dotted: string; }",
12079
+ "required": false
12080
+ },
12081
+ {
12082
+ "name": "isIconOnly",
12083
+ "type": "{ true: string; }",
12084
+ "required": false
12085
+ },
12086
+ {
12087
+ "name": "muted",
12088
+ "type": "{ true: string; false: string; }",
12089
+ "required": false
12090
+ },
12091
+ {
12092
+ "name": "textVariant",
12093
+ "type": "{ default: string; code: string; }",
12094
+ "required": false
12095
+ },
12096
+ {
12097
+ "name": "defaultChecked",
12098
+ "type": "boolean | undefined",
12099
+ "required": false
12100
+ },
12101
+ {
12102
+ "name": "defaultValue",
12103
+ "type": "string | number | readonly string[] | undefined",
12104
+ "required": false
12105
+ },
12106
+ {
12107
+ "name": "suppressContentEditableWarning",
12108
+ "type": "boolean | undefined",
12109
+ "required": false
12110
+ },
12111
+ {
12112
+ "name": "suppressHydrationWarning",
12113
+ "type": "boolean | undefined",
12114
+ "required": false
12115
+ },
12116
+ {
12117
+ "name": "accessKey",
12118
+ "type": "string | undefined",
12119
+ "required": false
12120
+ },
12121
+ {
12122
+ "name": "autoCapitalize",
12123
+ "type": "\"off\" | \"none\" | \"on\" | \"sentences\" | \"words\" | \"characters\" | (string & {}) | undefined",
12124
+ "required": false
12125
+ },
12126
+ {
12127
+ "name": "autoFocus",
12128
+ "type": "boolean | undefined",
12129
+ "required": false
12130
+ },
12131
+ {
12132
+ "name": "contentEditable",
12133
+ "type": "Booleanish | \"inherit\" | \"plaintext-only\" | undefined",
12134
+ "required": false
12135
+ },
12136
+ {
12137
+ "name": "contextMenu",
12138
+ "type": "string | undefined",
12139
+ "required": false
12140
+ },
12141
+ {
12142
+ "name": "dir",
12143
+ "type": "string | undefined",
12144
+ "required": false
12145
+ },
12146
+ {
12147
+ "name": "draggable",
12148
+ "type": "Booleanish | undefined",
12149
+ "required": false
12150
+ },
12151
+ {
12152
+ "name": "enterKeyHint",
12153
+ "type": "\"search\" | \"enter\" | \"done\" | \"go\" | \"next\" | \"previous\" | \"send\" | undefined",
12154
+ "required": false
12155
+ },
12156
+ {
12157
+ "name": "hidden",
12158
+ "type": "boolean | undefined",
12159
+ "required": false
12160
+ },
12161
+ {
12162
+ "name": "id",
12163
+ "type": "string | undefined",
12164
+ "required": false
12165
+ },
12166
+ {
12167
+ "name": "lang",
12168
+ "type": "string | undefined",
12169
+ "required": false
12170
+ },
12171
+ {
12172
+ "name": "nonce",
12173
+ "type": "string | undefined",
12174
+ "required": false
12175
+ },
12176
+ {
12177
+ "name": "spellCheck",
12178
+ "type": "Booleanish | undefined",
12179
+ "required": false
12180
+ },
12181
+ {
12182
+ "name": "tabIndex",
12183
+ "type": "number | undefined",
12184
+ "required": false
12185
+ },
12186
+ {
12187
+ "name": "translate",
12188
+ "type": "\"yes\" | \"no\" | undefined",
12189
+ "required": false
12190
+ },
12191
+ {
12192
+ "name": "radioGroup",
12193
+ "type": "string | undefined",
12194
+ "required": false
12195
+ },
12196
+ {
12197
+ "name": "role",
12198
+ "type": "AriaRole | undefined",
12199
+ "required": false
12200
+ },
12201
+ {
12202
+ "name": "about",
12203
+ "type": "string | undefined",
12204
+ "required": false
12205
+ },
12206
+ {
12207
+ "name": "content",
12208
+ "type": "string | undefined",
12209
+ "required": false
12210
+ },
12211
+ {
12212
+ "name": "datatype",
12213
+ "type": "string | undefined",
12214
+ "required": false
12215
+ },
12216
+ {
12217
+ "name": "inlist",
12218
+ "type": "any",
12219
+ "required": false
12220
+ },
12221
+ {
12222
+ "name": "prefix",
12223
+ "type": "string | undefined",
12224
+ "required": false
12225
+ },
12226
+ {
12227
+ "name": "property",
12228
+ "type": "string | undefined",
12229
+ "required": false
12230
+ },
12231
+ {
12232
+ "name": "rel",
12233
+ "type": "string | undefined",
12234
+ "required": false
12235
+ },
12236
+ {
12237
+ "name": "resource",
12238
+ "type": "string | undefined",
12239
+ "required": false
12240
+ },
12241
+ {
12242
+ "name": "rev",
12243
+ "type": "string | undefined",
12244
+ "required": false
12245
+ },
12246
+ {
12247
+ "name": "typeof",
12248
+ "type": "string | undefined",
12249
+ "required": false
12250
+ },
12251
+ {
12252
+ "name": "vocab",
12253
+ "type": "string | undefined",
12254
+ "required": false
12255
+ },
12256
+ {
12257
+ "name": "autoCorrect",
12258
+ "type": "string | undefined",
12259
+ "required": false
12260
+ },
12261
+ {
12262
+ "name": "autoSave",
12263
+ "type": "string | undefined",
12264
+ "required": false
12265
+ },
12266
+ {
12267
+ "name": "itemProp",
12268
+ "type": "string | undefined",
12269
+ "required": false
12270
+ },
12271
+ {
12272
+ "name": "itemScope",
12273
+ "type": "boolean | undefined",
12274
+ "required": false
12275
+ },
12276
+ {
12277
+ "name": "itemType",
12278
+ "type": "string | undefined",
12279
+ "required": false
12280
+ },
12281
+ {
12282
+ "name": "itemID",
12283
+ "type": "string | undefined",
12284
+ "required": false
12285
+ },
12286
+ {
12287
+ "name": "itemRef",
12288
+ "type": "string | undefined",
12289
+ "required": false
12290
+ },
12291
+ {
12292
+ "name": "results",
12293
+ "type": "number | undefined",
12294
+ "required": false
12295
+ },
12296
+ {
12297
+ "name": "security",
12298
+ "type": "string | undefined",
12299
+ "required": false
12300
+ },
12301
+ {
12302
+ "name": "unselectable",
12303
+ "type": "\"off\" | \"on\" | undefined",
12304
+ "required": false
12305
+ },
12306
+ {
12307
+ "name": "popover",
12308
+ "type": "\"\" | \"auto\" | \"manual\" | \"hint\" | undefined",
12309
+ "required": false
12310
+ },
12311
+ {
12312
+ "name": "popoverTargetAction",
12313
+ "type": "\"toggle\" | \"show\" | \"hide\" | undefined",
12314
+ "required": false
12315
+ },
12316
+ {
12317
+ "name": "popoverTarget",
12318
+ "type": "string | undefined",
12319
+ "required": false
12320
+ },
12321
+ {
12322
+ "name": "inert",
12323
+ "type": "boolean | undefined",
12324
+ "required": false,
12325
+ "description": "@see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert"
12326
+ },
12327
+ {
12328
+ "name": "inputMode",
12329
+ "type": "\"search\" | \"text\" | \"none\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined",
12330
+ "required": false,
12331
+ "description": "Hints at the type of data that might be entered by the user while editing the element or its contents"
12332
+ },
12333
+ {
12334
+ "name": "is",
12335
+ "type": "string | undefined",
12336
+ "required": false,
12337
+ "description": "Specify that a standard HTML element should behave like a defined custom built-in element"
12338
+ },
12339
+ {
12340
+ "name": "exportparts",
12341
+ "type": "string | undefined",
12342
+ "required": false,
12343
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts}"
12344
+ },
12345
+ {
12346
+ "name": "part",
12347
+ "type": "string | undefined",
12348
+ "required": false,
12349
+ "description": "@see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part}"
12350
+ },
12351
+ {
12352
+ "name": "asChild",
12353
+ "type": "boolean | undefined",
12354
+ "required": false
12355
+ }
10163
12356
  ]
10164
12357
  }
10165
12358
  ],
10166
- "subComponents": [],
10167
- "examples": [
10168
- {
10169
- "name": "Basic",
10170
- "code": "<Input />"
10171
- },
10172
- {
10173
- "name": "Focused",
10174
- "code": "<Input />"
10175
- },
10176
- {
10177
- "name": "Disabled",
10178
- "code": "<Input disabled />"
10179
- },
10180
- {
10181
- "name": "WithValue",
10182
- "code": "<Input value=\"Some value...\" />"
10183
- },
10184
- {
10185
- "name": "WithError",
10186
- "code": "<Input error />"
10187
- }
10188
- ]
10189
- },
10190
- {
10191
- "name": "InputGroup",
10192
- "importPath": "@wallarm-org/design-system/InputGroup",
10193
- "props": [],
10194
- "variants": [],
10195
- "subComponents": [],
10196
12359
  "examples": [
10197
12360
  {
10198
12361
  "name": "Basic",
10199
- "code": "() => (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end'>\n <Info />\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon variant='outline'>\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' value='wallarm/user-settings' />\n <InputGroupAddon variant='outline' align='inline-end'>\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n)"
10200
- },
10201
- {
10202
- "name": "Disabled",
10203
- "code": "() => (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' disabled />\n <InputGroupAddon align='inline-end'>\n <Info />\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon>\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' value='wallarm/user-settings' disabled />\n <InputGroupAddon align='inline-end'>\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n)"
10204
- },
10205
- {
10206
- "name": "WithError",
10207
- "code": "() => (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' error />\n <InputGroupAddon align='inline-end'>\n <Info />\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon>\n <InputGroupText>https://</InputGroupText>\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' value='wallarm/user-settings' error />\n <InputGroupAddon align='inline-end'>\n <InputGroupText>.com</InputGroupText>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n)"
10208
- },
10209
- {
10210
- "name": "WithLoader",
10211
- "code": "() => (\n <InputGroup>\n <InputGroupInput placeholder='Searching...' disabled />\n <InputGroupAddon align='inline-end'>\n <Loader size='md' />\n </InputGroupAddon>\n </InputGroup>\n)"
10212
- },
10213
- {
10214
- "name": "WithKbd",
10215
- "code": "() => (\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Search' />\n <InputGroupAddon align='inline-end'>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n </InputGroupAddon>\n </InputGroup>\n)"
10216
- },
10217
- {
10218
- "name": "WithTooltip",
10219
- "code": "() => (\n <InputGroup>\n <InputGroupAddon>\n <Search />\n </InputGroupAddon>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end'>\n <Tooltip>\n <TooltipTrigger asChild>\n <Info />\n </TooltipTrigger>\n <TooltipContent>Get more info</TooltipContent>\n </Tooltip>\n </InputGroupAddon>\n </InputGroup>\n)"
12362
+ "code": "() => (\n <div className='flex items-center gap-12'>\n <VStack gap={8} align='end'>\n <Text size='sm'>Basic:</Text>\n <Text size='sm'>With country flag:</Text>\n <Text size='sm'>With port:</Text>\n <Text size='sm'>With provider:</Text>\n <Text size='sm'>IPv6:</Text>\n </VStack>\n <VStack gap={8} align='start' style={{ maxWidth: '200px' }}>\n <Ip>\n <IpAddress>8.8.8.8</IpAddress>\n </Ip>\n <Ip>\n <IpCountry code='US' />\n <IpAddress>1.1.1.1</IpAddress>\n </Ip>\n <Ip>\n <IpCountry code='DE' />\n <IpAddress>77.88.8.8</IpAddress>\n <IpPort>:8080</IpPort>\n </Ip>\n <Ip>\n <IpCountry code='NL' />\n <IpAddress>20.33.0.0</IpAddress>\n <IpProvider>Azure</IpProvider>\n </Ip>\n <Ip>\n <IpCountry code='JP' />\n <IpAddress>2001:0db8:85a3:0000:0000:8a2e:0370:7334</IpAddress>\n <IpProvider>GCP</IpProvider>\n </Ip>\n </VStack>\n </div>\n)"
10220
12363
  },
10221
12364
  {
10222
- "name": "WithSelect",
10223
- "code": "() => {\n const collection = createListCollection({\n items: [\n {\n label: 'React',\n value: 'react',\n icon: LayoutGrid,\n category: 'Frontend',\n },\n {\n label: 'Vue',\n value: 'vue',\n icon: LayoutTemplate,\n category: 'Frontend',\n },\n {\n label: 'Angular',\n value: 'angular',\n icon: Search,\n category: 'Frontend',\n },\n ],\n });\n\n return (\n <VStack gap={12}>\n <InputGroup>\n <InputGroupAddon variant='outline'>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n\n <InputGroupInput placeholder='Enter' />\n </InputGroup>\n\n <InputGroup>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end' variant='outline'>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n </InputGroup>\n\n <InputGroup>\n <InputGroupAddon>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n\n <InputGroupInput placeholder='Enter' />\n </InputGroup>\n\n <InputGroup>\n <InputGroupInput placeholder='Enter' />\n <InputGroupAddon align='inline-end'>\n <Select collection={collection}>\n <SelectButton />\n\n <SelectPositioner>\n <SelectContent>\n {collection.items.map(skill => (\n <SelectOption key={skill.value} item={skill}>\n <SelectOptionText>{skill.label}</SelectOptionText>\n <SelectOptionIndicator />\n </SelectOption>\n ))}\n </SelectContent>\n </SelectPositioner>\n </Select>\n </InputGroupAddon>\n </InputGroup>\n </VStack>\n );\n}"
12365
+ "name": "MultipleAddresses",
12366
+ "code": "() => (\n <VStack gap={12}>\n <IpList>\n <Ip>\n <IpCountry code='US' />\n <IpAddress>8.8.8.8</IpAddress>\n </Ip>\n <Ip>\n <IpCountry code='AU' />\n <IpAddress>1.1.1.1</IpAddress>\n </Ip>\n <Ip>\n <IpCountry code='DE' />\n <IpAddress>77.88.8.8</IpAddress>\n </Ip>\n </IpList>\n <IpList>\n <Ip>\n <IpCountry code='NL' />\n <IpAddress>52.94.76.0</IpAddress>\n </Ip>\n <Ip>\n <IpCountry code='NL' />\n <IpAddress>20.33.0.0</IpAddress>\n </Ip>\n <Ip>\n <IpCountry code='AZ' />\n <IpAddress>35.190.0.0</IpAddress>\n <IpProvider>GCP</IpProvider>\n </Ip>\n <Ip>\n <IpCountry code='US' />\n <IpAddress>169.55.0.0</IpAddress>\n <IpProvider>IBM Cloud</IpProvider>\n </Ip>\n <Ip>\n <IpAddress>88.198.0.0</IpAddress>\n <IpPort>:8080</IpPort>\n </Ip>\n </IpList>\n <IpList>\n <Ip>\n <IpAddress>10.0.0.1</IpAddress>\n <IpPort>:8080</IpPort>\n <IpProvider>Tor</IpProvider>\n </Ip>\n <Ip>\n <IpAddress>10.0.0.2</IpAddress>\n <IpPort>:443</IpPort>\n <IpProvider>VPN</IpProvider>\n </Ip>\n </IpList>\n </VStack>\n)"
10224
12367
  }
10225
12368
  ]
10226
12369
  },
@@ -10584,6 +12727,12 @@
10584
12727
  "required": false,
10585
12728
  "defaultValue": "regular"
10586
12729
  },
12730
+ {
12731
+ "name": "disabled",
12732
+ "type": "{ true: string; }",
12733
+ "required": false,
12734
+ "defaultValue": "false"
12735
+ },
10587
12736
  {
10588
12737
  "name": "asChild",
10589
12738
  "type": "boolean | undefined",
@@ -10597,7 +12746,8 @@
10597
12746
  "options": [
10598
12747
  "default",
10599
12748
  "alt",
10600
- "muted"
12749
+ "muted",
12750
+ "table"
10601
12751
  ]
10602
12752
  },
10603
12753
  {
@@ -10616,6 +12766,12 @@
10616
12766
  "regular",
10617
12767
  "medium"
10618
12768
  ]
12769
+ },
12770
+ {
12771
+ "name": "disabled",
12772
+ "options": [
12773
+ "true"
12774
+ ]
10619
12775
  }
10620
12776
  ],
10621
12777
  "subComponents": [],
@@ -18320,6 +20476,10 @@
18320
20476
  "name": "ColumnResizing",
18321
20477
  "code": "() => {\n const [columnSizing, setColumnSizing] = useState<TableColumnSizingState>({});\n\n return (\n <Table\n data={securityEvents}\n columns={securityColumns}\n getRowId={row => row.id}\n columnSizing={columnSizing}\n onColumnSizingChange={setColumnSizing}\n />\n );\n}"
18322
20478
  },
20479
+ {
20480
+ "name": "ColumnResizingWithPinning",
20481
+ "code": "() => {\n const [columnSizing, setColumnSizing] = useState<TableColumnSizingState>({});\n const [columnPinning, setColumnPinning] = useState<TableColumnPinningState>({\n left: ['objectName'],\n });\n\n return (\n <Table\n className='max-w-800'\n data={securityEvents}\n columns={securityColumns}\n getRowId={row => row.id}\n columnSizing={columnSizing}\n onColumnSizingChange={setColumnSizing}\n columnPinning={columnPinning}\n onColumnPinningChange={setColumnPinning}\n />\n );\n}"
20482
+ },
18323
20483
  {
18324
20484
  "name": "ColumnPinning",
18325
20485
  "code": "() => {\n const [columnPinning, setColumnPinning] = useState<TableColumnPinningState>({\n left: ['objectName'],\n });\n\n return (\n <Table\n className='max-w-800'\n data={securityEvents}\n columns={securityColumns}\n getRowId={row => row.id}\n columnPinning={columnPinning}\n onColumnPinningChange={setColumnPinning}\n />\n );\n}"
@@ -18368,6 +20528,10 @@
18368
20528
  "name": "InfiniteScrollWindow",
18369
20529
  "code": "() => {\n const { data, isFetching, hasMore, totalItems, fetchNextPage } = useInfiniteData();\n\n return (\n <VStack gap={8}>\n <Text size='sm' color='secondary'>\n Loaded {data.length} of {totalItems} rows {isFetching && '— loading...'}\n {!hasMore && ' — all loaded'}\n </Text>\n <Table\n data={data}\n columns={securityColumns}\n getRowId={row => row.id}\n virtualized='window'\n isLoading={isFetching}\n onEndReached={fetchNextPage}\n onEndReachedThreshold={300}\n />\n </VStack>\n );\n}"
18370
20530
  },
20531
+ {
20532
+ "name": "HeaderColumnDescription",
20533
+ "code": "() => {\n const [sorting, setSorting] = useState<TableSortingState>([]);\n\n const columns = useMemo<TableColumnDef<(typeof securityEvents)[number]>[]>(\n () =>\n securityColumns.map(col => {\n const key = 'accessorKey' in col ? col.accessorKey : undefined;\n if (key === 'objectName') {\n return {\n ...col,\n meta: {\n ...col.meta,\n description: { type: 'text' as const, content: 'Target resource' },\n },\n };\n }\n if (key === 'sourceIp') {\n return {\n ...col,\n meta: {\n ...col.meta,\n description: { type: 'tooltip' as const, content: 'Request origin IP' },\n },\n };\n }\n if (key === 'requests') {\n return {\n ...col,\n meta: { ...col.meta, description: { type: 'tooltip' as const, content: 'Total hits' } },\n };\n }\n if (key === 'parameter') {\n return {\n ...col,\n meta: {\n ...col.meta,\n description: { type: 'text' as const, content: 'Affected param' },\n },\n };\n }\n return col;\n }),\n [],\n );\n\n return (\n <Table\n data={securityEvents}\n columns={columns}\n getRowId={row => row.id}\n sorting={sorting}\n onSortingChange={setSorting}\n />\n );\n}"
20534
+ },
18371
20535
  {
18372
20536
  "name": "FullFeatured",
18373
20537
  "code": "() => {\n const data = useMemo(() => createLargeGroupedData(12, 50), []);\n\n const [sorting, setSorting] = useState<TableSortingState>([{ id: 'lastEdited', desc: true }]);\n const [rowSelection, setRowSelection] = useState<TableRowSelectionState>({});\n const [columnSizing, setColumnSizing] = useState<TableColumnSizingState>({});\n const [columnPinning, setColumnPinning] = useState<TableColumnPinningState>({\n left: ['objectName'],\n });\n const [columnOrder, setColumnOrder] = useState<string[]>([]);\n const [columnVisibility, setColumnVisibility] = useState<TableVisibilityState>({});\n const [expanded, setExpanded] = useState<TableExpandedState>({\n 'group-0': true,\n 'group-1': true,\n });\n\n return (\n <Table<SecurityHeaderEntry>\n className='h-500'\n data={data}\n columns={fullFeaturedColumns}\n getRowId={row => row.id}\n getSubRows={row => row.children}\n // Grouping\n expanded={expanded}\n onExpandedChange={setExpanded}\n // Sorting\n sorting={sorting}\n onSortingChange={setSorting}\n // Row selection\n rowSelection={rowSelection}\n onRowSelectionChange={setRowSelection}\n // Column resizing\n columnSizing={columnSizing}\n onColumnSizingChange={setColumnSizing}\n // Column pinning\n columnPinning={columnPinning}\n onColumnPinningChange={setColumnPinning}\n // Column DnD ordering\n columnOrder={columnOrder}\n onColumnOrderChange={setColumnOrder}\n // Column visibility + settings\n columnVisibility={columnVisibility}\n onColumnVisibilityChange={setColumnVisibility}\n defaultColumnVisibility={{}}\n defaultColumnOrder={headerColumnIds}\n // Virtual scrolling\n virtualized='container'\n >\n <TableActionBar>\n <Button variant='ghost' color='neutral-alt' onClick={() => alert('Copy clicked')}>\n <Copy /> Duplicate\n </Button>\n <Button color='brand' onClick={() => alert('Delete clicked')}>\n <Trash2 /> Delete\n </Button>\n </TableActionBar>\n </Table>\n );\n}"
@@ -19074,6 +21238,11 @@
19074
21238
  "required": false,
19075
21239
  "defaultValue": "false"
19076
21240
  },
21241
+ {
21242
+ "name": "decoration",
21243
+ "type": "{ dashed: string; }",
21244
+ "required": false
21245
+ },
19077
21246
  {
19078
21247
  "name": "asChild",
19079
21248
  "type": "boolean | undefined",
@@ -19138,6 +21307,12 @@
19138
21307
  "true",
19139
21308
  "false"
19140
21309
  ]
21310
+ },
21311
+ {
21312
+ "name": "decoration",
21313
+ "options": [
21314
+ "dashed"
21315
+ ]
19141
21316
  }
19142
21317
  ],
19143
21318
  "subComponents": [],