@redis-ui/components 43.0.2 → 43.2.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 (85) hide show
  1. package/dist/HighlightedIcon/HighlightedIcon.cjs +26 -0
  2. package/dist/HighlightedIcon/HighlightedIcon.d.ts +3 -0
  3. package/dist/HighlightedIcon/HighlightedIcon.js +26 -0
  4. package/dist/HighlightedIcon/HighlightedIcon.style.cjs +49 -0
  5. package/dist/HighlightedIcon/HighlightedIcon.style.d.ts +5 -0
  6. package/dist/HighlightedIcon/HighlightedIcon.style.js +47 -0
  7. package/dist/HighlightedIcon/HighlightedIcon.types.d.ts +8 -0
  8. package/dist/HighlightedIcon/index.d.ts +3 -0
  9. package/dist/Stepper/Stepper.cjs +14 -5
  10. package/dist/Stepper/Stepper.d.ts +2 -0
  11. package/dist/Stepper/Stepper.js +14 -5
  12. package/dist/Stepper/Stepper.utils.cjs +12 -0
  13. package/dist/Stepper/Stepper.utils.d.ts +2 -0
  14. package/dist/Stepper/Stepper.utils.js +12 -0
  15. package/dist/Stepper/components/Compose/Compose.d.ts +1 -0
  16. package/dist/Stepper/components/Step/Step.cjs +2 -0
  17. package/dist/Stepper/components/Step/Step.d.ts +1 -0
  18. package/dist/Stepper/components/Step/Step.js +2 -0
  19. package/dist/Stepper/components/Step/components/Compose/Compose.cjs +2 -9
  20. package/dist/Stepper/components/Step/components/Compose/Compose.js +2 -9
  21. package/dist/Stepper/components/Step/components/Separator/Separator.cjs +15 -0
  22. package/dist/Stepper/components/Step/components/Separator/Separator.d.ts +3 -0
  23. package/dist/Stepper/components/Step/components/Separator/Separator.js +15 -0
  24. package/dist/Stepper/components/Step/components/Separator/Separator.style.cjs +24 -0
  25. package/dist/Stepper/components/Step/components/Separator/Separator.style.d.ts +1 -0
  26. package/dist/Stepper/components/Step/components/Separator/Separator.style.js +22 -0
  27. package/dist/Stepper/components/Step/components/Separator/Separator.types.d.ts +5 -0
  28. package/dist/index.cjs +4 -0
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.js +74 -70
  31. package/package.json +2 -2
  32. package/skills/redis-ui-components/SKILL.md +0 -2
  33. package/skills/redis-ui-components/references/ActionIconButton.md +96 -0
  34. package/skills/redis-ui-components/references/AppBar.md +161 -0
  35. package/skills/redis-ui-components/references/AppSelectionMenu.md +184 -0
  36. package/skills/redis-ui-components/references/AutoCompleteSelect.md +193 -0
  37. package/skills/redis-ui-components/references/Badge.md +77 -0
  38. package/skills/redis-ui-components/references/Banner.md +563 -0
  39. package/skills/redis-ui-components/references/BoxSelectionGroup.md +487 -0
  40. package/skills/redis-ui-components/references/Breadcrumbs.md +214 -0
  41. package/skills/redis-ui-components/references/ButtonGroup.md +126 -0
  42. package/skills/redis-ui-components/references/Card.md +56 -0
  43. package/skills/redis-ui-components/references/Checkbox.md +171 -0
  44. package/skills/redis-ui-components/references/Chip.md +154 -0
  45. package/skills/redis-ui-components/references/ChipList.md +307 -0
  46. package/skills/redis-ui-components/references/CopyToClipboardButton.md +47 -0
  47. package/skills/redis-ui-components/references/CountryFlag.md +57 -0
  48. package/skills/redis-ui-components/references/Drawer.md +298 -0
  49. package/skills/redis-ui-components/references/Filters.md +162 -0
  50. package/skills/redis-ui-components/references/FormField.md +678 -0
  51. package/skills/redis-ui-components/references/IconButton.md +63 -0
  52. package/skills/redis-ui-components/references/Input.md +295 -0
  53. package/skills/redis-ui-components/references/KeyValueList.md +501 -0
  54. package/skills/redis-ui-components/references/Label.md +238 -0
  55. package/skills/redis-ui-components/references/Link.md +402 -0
  56. package/skills/redis-ui-components/references/Loader.md +100 -0
  57. package/skills/redis-ui-components/references/Menu.md +988 -0
  58. package/skills/redis-ui-components/references/MidBar.md +358 -0
  59. package/skills/redis-ui-components/references/Modal.md +525 -0
  60. package/skills/redis-ui-components/references/MoreInfoIcon.md +119 -0
  61. package/skills/redis-ui-components/references/MultiSelect.md +558 -0
  62. package/skills/redis-ui-components/references/NumericInput.md +322 -0
  63. package/skills/redis-ui-components/references/Overflow.md +127 -0
  64. package/skills/redis-ui-components/references/Pagination.md +151 -0
  65. package/skills/redis-ui-components/references/PasswordInput.md +262 -0
  66. package/skills/redis-ui-components/references/Popover.md +868 -0
  67. package/skills/redis-ui-components/references/ProfileIcon.md +65 -0
  68. package/skills/redis-ui-components/references/ProgressBar.md +103 -0
  69. package/skills/redis-ui-components/references/QuantityCounter.md +555 -0
  70. package/skills/redis-ui-components/references/RadioGroup.md +265 -0
  71. package/skills/redis-ui-components/references/ScreenReaderAnnounce.md +147 -0
  72. package/skills/redis-ui-components/references/SearchBar.md +242 -0
  73. package/skills/redis-ui-components/references/SearchInput.md +213 -0
  74. package/skills/redis-ui-components/references/Section.md +349 -0
  75. package/skills/redis-ui-components/references/SideBar.md +468 -0
  76. package/skills/redis-ui-components/references/Slider.md +398 -0
  77. package/skills/redis-ui-components/references/Stepper.md +288 -0
  78. package/skills/redis-ui-components/references/Switch.md +193 -0
  79. package/skills/redis-ui-components/references/Tabs.md +383 -0
  80. package/skills/redis-ui-components/references/TextArea.md +139 -0
  81. package/skills/redis-ui-components/references/TextButton.md +217 -0
  82. package/skills/redis-ui-components/references/Toast.md +399 -0
  83. package/skills/redis-ui-components/references/ToggleButton.md +163 -0
  84. package/skills/redis-ui-components/references/Tooltip.md +636 -0
  85. package/skills/redis-ui-components/references/Typography.md +323 -0
package/dist/index.js CHANGED
@@ -1132,66 +1132,68 @@ import { SelfContained } from "./Helpers/SelfContained.js";
1132
1132
  import { RestylableElement } from "./Helpers/RestylableElement.js";
1133
1133
  import { PopperProvider, usePopperContext } from "./Helpers/contexts/Popper/Popper.context.js";
1134
1134
  import { useScrollable } from "./Helpers/hooks/useScrollable.js";
1135
- import { default as default26 } from "./Inputs/Input/Input.js";
1136
- import { default as default27 } from "./Inputs/NumericInput/NumericInput.js";
1137
- import { default as default28 } from "./Inputs/PasswordInput/PasswordInput.js";
1138
- import { default as default29 } from "./Inputs/SearchInput/SearchInput.js";
1139
- import { default as default30 } from "./Inputs/TextArea/TextArea.js";
1140
- import { default as default31 } from "./Inputs/QuantityCounter/QuantityCounter.js";
1135
+ import { default as default26 } from "./HighlightedIcon/HighlightedIcon.js";
1136
+ import * as HighlightedIcon_style from "./HighlightedIcon/HighlightedIcon.style.js";
1137
+ import { default as default27 } from "./Inputs/Input/Input.js";
1138
+ import { default as default28 } from "./Inputs/NumericInput/NumericInput.js";
1139
+ import { default as default29 } from "./Inputs/PasswordInput/PasswordInput.js";
1140
+ import { default as default30 } from "./Inputs/SearchInput/SearchInput.js";
1141
+ import { default as default31 } from "./Inputs/TextArea/TextArea.js";
1142
+ import { default as default32 } from "./Inputs/QuantityCounter/QuantityCounter.js";
1141
1143
  import { getClosestDivisibleNumber } from "./Inputs/hooks/numericInput/numericInput.utils.js";
1142
1144
  import { ContextProvider, useInputValueApi, useInputValueProps } from "./Inputs/components/Context/InputValue.context.js";
1143
1145
  import { ErrorContentProvider, FieldDisabledProvider, FieldDisabledTransProvider, useErrorContent, useFieldDisabled } from "./Inputs/components/Context/Field.context.js";
1144
- import { default as default32 } from "./FormField/FormField.js";
1146
+ import { default as default33 } from "./FormField/FormField.js";
1145
1147
  import { FieldAdditionTextIdProvider, FieldAdditionTextIdTransProvider, FieldReadonlyProvider, FieldReadonlyTransProvider, FieldRequiredProvider, FieldRequiredTransProvider, FieldStatusProvider, FieldStatusTransProvider, useFieldAdditionTextId, useFieldReadonly, useFieldRequired, useFieldStatus } from "./FormField/FormField.context.js";
1146
1148
  import { KeyValueList } from "./KeyValueList/KeyValueList.js";
1147
1149
  import { useKeyValueList } from "./KeyValueList/hooks/useKeyValueList.js";
1148
- import { default as default33 } from "./Label/Label.js";
1150
+ import { default as default34 } from "./Label/Label.js";
1149
1151
  import { FlexItem } from "./Layouts/FlexItem/FlexItem.js";
1150
1152
  import { FlexGroup } from "./Layouts/FlexGroup/FlexGroup.js";
1151
1153
  import { FlexSplit } from "./Layouts/FlexSplit/FlexSplit.js";
1152
1154
  import { FlexDivider } from "./Layouts/FlexDivider/FlexDivider.js";
1153
- import { default as default34 } from "./Link/Link.js";
1155
+ import { default as default35 } from "./Link/Link.js";
1154
1156
  import { LinkStyler } from "./Link/LinkStyler/LinkStyler.js";
1155
- import { default as default35 } from "./Loader/Loader.js";
1156
- import { default as default36 } from "./Menu/Menu.js";
1157
- import { default as default37 } from "./MidBar/MidBar.js";
1158
- import { default as default38 } from "./Modal/Modal.js";
1159
- import { default as default39 } from "./MoreInfoIcon/MoreInfoIcon.js";
1160
- import { default as default40 } from "./MultiSelect/MultiSelect.js";
1157
+ import { default as default36 } from "./Loader/Loader.js";
1158
+ import { default as default37 } from "./Menu/Menu.js";
1159
+ import { default as default38 } from "./MidBar/MidBar.js";
1160
+ import { default as default39 } from "./Modal/Modal.js";
1161
+ import { default as default40 } from "./MoreInfoIcon/MoreInfoIcon.js";
1162
+ import { default as default41 } from "./MultiSelect/MultiSelect.js";
1161
1163
  import { useMultiSelectContext } from "./MultiSelect/components/Context/Context.js";
1162
1164
  import { Overflow } from "./Overflow/Overflow.js";
1163
1165
  import { usePaginationContext } from "./Pagination/Pagination.context.js";
1164
1166
  import { Pagination } from "./Pagination/Pagination.js";
1165
- import { default as default41 } from "./Popover/Popover.js";
1166
- import { default as default42 } from "./RadioGroup/RadioGroup.js";
1167
+ import { default as default42 } from "./Popover/Popover.js";
1168
+ import { default as default43 } from "./RadioGroup/RadioGroup.js";
1167
1169
  import { ScreenReaderAnnounce } from "./ScreenReaderAnnounce/ScreenReaderAnnounce.js";
1168
- import { default as default43 } from "./SearchBar/SearchBar.js";
1169
- import { default as default44 } from "./Section/Section.js";
1170
- import { default as default45 } from "./Section/components/Header/components/CategoryValueList/CategoryValueList.js";
1171
- import { default as default46 } from "./Select/Select.js";
1170
+ import { default as default44 } from "./SearchBar/SearchBar.js";
1171
+ import { default as default45 } from "./Section/Section.js";
1172
+ import { default as default46 } from "./Section/components/Header/components/CategoryValueList/CategoryValueList.js";
1173
+ import { default as default47 } from "./Select/Select.js";
1172
1174
  import { useSelectContext } from "./Select/components/Context/Context.js";
1173
- import { default as default47 } from "./SideBar/SideBar.js";
1174
- import { default as default48 } from "./Skeleton/Skeleton.js";
1175
- import { default as default49 } from "./Stepper/Stepper.js";
1175
+ import { default as default48 } from "./SideBar/SideBar.js";
1176
+ import { default as default49 } from "./Skeleton/Skeleton.js";
1177
+ import { default as default50 } from "./Stepper/Stepper.js";
1176
1178
  import { StepperStepState } from "./Stepper/components/Step/Step.types.js";
1177
- import { default as default50 } from "./Switch/Switch.js";
1178
- import { default as default51 } from "./TableHeading/TableHeading.js";
1179
- import { default as default52 } from "./Tabs/Tabs.js";
1179
+ import { default as default51 } from "./Switch/Switch.js";
1180
+ import { default as default52 } from "./TableHeading/TableHeading.js";
1181
+ import { default as default53 } from "./Tabs/Tabs.js";
1180
1182
  import { ThemeModeSwitch } from "./ThemeModeSwitch/ThemeModeSwitch.js";
1181
1183
  import { useThemeModeSwitch } from "./ThemeModeSwitch/useThemeModeSwitch.js";
1182
1184
  import { useToastParams } from "./Toast/core/context.js";
1183
- import { default as default53 } from "./Toast/Toast.js";
1184
- import { default as default54 } from "./Toast/Toaster.js";
1185
+ import { default as default54 } from "./Toast/Toast.js";
1186
+ import { default as default55 } from "./Toast/Toaster.js";
1185
1187
  import { toast } from "./Toast/core/core.js";
1186
- import { default as default55 } from "./Tooltip/Tooltip.js";
1187
- import { default as default56 } from "./Tooltip/Provider/Provider.js";
1188
- import { default as default57 } from "./Tooltip/components/TooltipCard/TooltipCard.js";
1189
- import { default as default58 } from "./TreeView/TreeView.js";
1190
- import { default as default59 } from "./Typography/Typography.js";
1188
+ import { default as default56 } from "./Tooltip/Tooltip.js";
1189
+ import { default as default57 } from "./Tooltip/Provider/Provider.js";
1190
+ import { default as default58 } from "./Tooltip/components/TooltipCard/TooltipCard.js";
1191
+ import { default as default59 } from "./TreeView/TreeView.js";
1192
+ import { default as default60 } from "./Typography/Typography.js";
1191
1193
  import { useEllipsisTooltip } from "./Typography/hooks/useEllipsisTooltip.js";
1192
1194
  import { typographyColors } from "./Typography/Typography.types.js";
1193
1195
  import { ProgressBar } from "./ProgressBar/ProgressBar.js";
1194
- import { default as default60 } from "./ProfileIcon/ProfileIcon.js";
1196
+ import { default as default61 } from "./ProfileIcon/ProfileIcon.js";
1195
1197
  import * as ProfileIcon_style from "./ProfileIcon/ProfileIcon.style.js";
1196
1198
  import { Slider } from "./Slider/Slider.js";
1197
1199
  export {
@@ -1211,7 +1213,7 @@ export {
1211
1213
  Button_style as ButtonStyles,
1212
1214
  IconButton_style as ButtonWithIconStyles,
1213
1215
  default17 as Card,
1214
- default45 as CategoryValueList,
1216
+ default46 as CategoryValueList,
1215
1217
  default18 as Checkbox,
1216
1218
  default19 as Chip,
1217
1219
  ChipContainer,
@@ -1237,62 +1239,64 @@ export {
1237
1239
  FlexGroup,
1238
1240
  FlexItem,
1239
1241
  FlexSplit,
1240
- default32 as FormField,
1242
+ default33 as FormField,
1243
+ default26 as HighlightedIcon,
1244
+ HighlightedIcon_style as HighlightedIconStyles,
1241
1245
  default12 as IconButton,
1242
- default26 as Input,
1246
+ default27 as Input,
1243
1247
  KeyValueList,
1244
- default33 as Label,
1245
- default34 as Link,
1248
+ default34 as Label,
1249
+ default35 as Link,
1246
1250
  LinkStyler,
1247
- default35 as Loader,
1248
- default36 as Menu,
1249
- default37 as MidBar,
1250
- default38 as Modal,
1251
- default39 as MoreInfoIcon,
1251
+ default36 as Loader,
1252
+ default37 as Menu,
1253
+ default38 as MidBar,
1254
+ default39 as Modal,
1255
+ default40 as MoreInfoIcon,
1252
1256
  default9 as MultiBoxSelectionGroup,
1253
- default40 as MultiSelect,
1254
- default27 as NumericInput,
1257
+ default41 as MultiSelect,
1258
+ default28 as NumericInput,
1255
1259
  Overflow,
1256
1260
  Pagination,
1257
- default28 as PasswordInput,
1258
- default41 as Popover,
1261
+ default29 as PasswordInput,
1262
+ default42 as Popover,
1259
1263
  PopperProvider,
1260
- default60 as ProfileIcon,
1264
+ default61 as ProfileIcon,
1261
1265
  ProfileIcon_style as ProfileIconStyles,
1262
1266
  ProgressBar,
1263
- default31 as QuantityCounter,
1264
- default42 as RadioGroup,
1267
+ default32 as QuantityCounter,
1268
+ default43 as RadioGroup,
1265
1269
  default23 as RangeDatePicker,
1266
1270
  RestylableElement,
1267
1271
  ScreenReaderAnnounce,
1268
- default43 as SearchBar,
1269
- default29 as SearchInput,
1270
- default44 as Section,
1271
- default46 as Select,
1272
+ default44 as SearchBar,
1273
+ default30 as SearchInput,
1274
+ default45 as Section,
1275
+ default47 as Select,
1272
1276
  SelfContained,
1273
1277
  SharedIdProvider,
1274
1278
  SharedIdTransProvider,
1275
- default47 as SideBar,
1276
- default48 as Skeleton,
1279
+ default48 as SideBar,
1280
+ default49 as Skeleton,
1277
1281
  Slider,
1278
- default49 as Stepper,
1282
+ default50 as Stepper,
1279
1283
  StepperStepState,
1280
- default50 as Switch,
1281
- default51 as TableHeading,
1282
- default52 as Tabs,
1283
- default30 as TextArea,
1284
+ default51 as Switch,
1285
+ default52 as TableHeading,
1286
+ default53 as Tabs,
1287
+ default31 as TextArea,
1284
1288
  default11 as TextButton,
1285
1289
  TextButton_style as TextButtonStyles,
1286
1290
  ThemeModeSwitch,
1287
- default53 as Toast,
1288
- default54 as Toaster,
1291
+ default54 as Toast,
1292
+ default55 as Toaster,
1289
1293
  default14 as ToggleButton,
1290
1294
  ToggleButton_style as ToggleButtonStyles,
1291
- default55 as Tooltip,
1292
- default57 as TooltipCard,
1293
- default56 as TooltipProvider,
1294
- default58 as TreeView,
1295
- default59 as Typography,
1295
+ default56 as Tooltip,
1296
+ default58 as TooltipCard,
1297
+ default57 as TooltipProvider,
1298
+ default59 as TreeView,
1299
+ default60 as Typography,
1296
1300
  actionIconButtonSizes,
1297
1301
  badgeVariants,
1298
1302
  bannerVariants,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@redis-ui/components",
3
3
  "license": "UNLICENSED",
4
- "version": "43.0.2",
4
+ "version": "43.2.1",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "repository": "git@github.com:redislabsdev/redis-ui.git",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@redis-ui/icons": "^6.8.5",
32
- "@redis-ui/styles": "^14.13.0",
32
+ "@redis-ui/styles": "^14.15.0",
33
33
  "react": "^17.0.0 || ^18.0.0",
34
34
  "react-dom": "^17.0.0 || ^18.0.0",
35
35
  "styled-components": "^5.0.0"
@@ -66,7 +66,6 @@ Always check the relevant component reference before using a component. The refe
66
66
  - [RadioGroup](./references/RadioGroup.md)
67
67
  - [Switch](./references/Switch.md)
68
68
  - [FormField](./references/FormField.md)
69
- - [DatePicker](./references/DatePicker.md)
70
69
 
71
70
  ### Layout
72
71
 
@@ -105,7 +104,6 @@ Always check the relevant component reference before using a component. The refe
105
104
  - [Link](./references/Link.md)
106
105
  - [Loader](./references/Loader.md)
107
106
  - [ProgressBar](./references/ProgressBar.md)
108
- - [Skeleton](./references/Skeleton.md)
109
107
  - [Typography](./references/Typography.md)
110
108
  - [MoreInfoIcon](./references/MoreInfoIcon.md)
111
109
 
@@ -0,0 +1,96 @@
1
+ # ActionIconButton
2
+
3
+ Button with only an icon and a circular background. Use it for compact icon-only actions.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { ActionIconButton } from '@redislabsdev/redis-ui-components';
9
+ ```
10
+
11
+ > If you use the examples below, also import the icon from:
12
+ >
13
+ > ```tsx
14
+ > import { ActiveActiveIcon } from '@redislabsdev/redis-ui-icons';
15
+ > ```
16
+
17
+ ## Props
18
+
19
+ | Prop | Type | Default | Description |
20
+ |------|------|---------|-------------|
21
+ | icon | `IconType` | required | Icon to render inside the button. |
22
+ | variant | `'primary' \| 'secondary'` | `'primary'` | Visual style for the button background and foreground. |
23
+ | size | `'L' \| 'M' \| 'S' \| 'XS'` | `'M'` | Button size. |
24
+ | native button attributes | `ButtonHTMLAttributes<HTMLButtonElement>` | `type="button"` | All standard button props such as `disabled`, `onClick`, `aria-*`, and `title`. |
25
+
26
+ ## Examples
27
+
28
+ ### Basic Usage
29
+
30
+ ```tsx
31
+ import { ActionIconButton } from '@redislabsdev/redis-ui-components';
32
+ import { ActiveActiveIcon } from '@redislabsdev/redis-ui-icons';
33
+
34
+ <ActionIconButton size="L" disabled={false} icon={ActiveActiveIcon} />;
35
+ ```
36
+
37
+ ### Sizes
38
+
39
+ > 4 sizes are supported with `M` being the default.
40
+
41
+ ```tsx
42
+ import { ActionIconButton } from '@redislabsdev/redis-ui-components';
43
+ import { ActiveActiveIcon } from '@redislabsdev/redis-ui-icons';
44
+
45
+ <>
46
+ <ActionIconButton size="XS" icon={ActiveActiveIcon} />
47
+ <ActionIconButton size="S" icon={ActiveActiveIcon} />
48
+ <ActionIconButton size="M" icon={ActiveActiveIcon} />
49
+ <ActionIconButton size="L" icon={ActiveActiveIcon} />
50
+ </>
51
+ ```
52
+
53
+ ### Variants
54
+
55
+ > 2 variants are supported, `primary` and `secondary`. The default is `primary`.
56
+
57
+ ```tsx
58
+ import { ActionIconButton, FormField } from '@redislabsdev/redis-ui-components';
59
+ import { ActiveActiveIcon } from '@redislabsdev/redis-ui-icons';
60
+
61
+ <>
62
+ <FormField label="primary">
63
+ <ActionIconButton variant="primary" size="L" icon={ActiveActiveIcon} />
64
+ </FormField>
65
+ <FormField label="secondary">
66
+ <ActionIconButton variant="secondary" size="L" icon={ActiveActiveIcon} />
67
+ </FormField>
68
+ </>
69
+ ```
70
+
71
+ ### Disabled
72
+
73
+ > ActionIconButton can be disabled by setting the `disabled` prop to `true`.
74
+ >
75
+ > This will disable any hover styles and prevent click events from firing.
76
+
77
+ ```tsx
78
+ import { ActionIconButton, FormField } from '@redislabsdev/redis-ui-components';
79
+ import { ActiveActiveIcon } from '@redislabsdev/redis-ui-icons';
80
+
81
+ <>
82
+ <FormField label="primary">
83
+ <ActionIconButton variant="primary" size="L" icon={ActiveActiveIcon} disabled />
84
+ </FormField>
85
+ <FormField label="secondary">
86
+ <ActionIconButton variant="secondary" size="L" icon={ActiveActiveIcon} disabled />
87
+ </FormField>
88
+ </>
89
+ ```
90
+
91
+ ## Notes
92
+
93
+ - `ActionIconButton` is icon-only and should be used for compact actions with no text label.
94
+ - 4 sizes are supported with `M` being the default.
95
+ - 2 variants are supported, `primary` and `secondary`, with `primary` as the default.
96
+ - Setting `disabled` to `true` disables hover styles and prevents click events from firing.
@@ -0,0 +1,161 @@
1
+ # AppBar
2
+
3
+ A top-level application bar for header content, actions, and account controls. It supports a default and alert variant and exposes left/right containers plus a separator for compound layouts.
4
+
5
+ ## Import
6
+ ```tsx
7
+ import { AppBar } from '@redislabsdev/redis-ui-components';
8
+ ```
9
+
10
+ ## Props
11
+ | Prop | Type | Default | Description |
12
+ |------|------|---------|-------------|
13
+ | children | `React.ReactNode` | required | Content rendered inside the bar |
14
+ | variant | `'default' \| 'alert'` | `'default'` | Visual variant for the bar background and text color |
15
+
16
+ The component also extends all native `HTMLAttributes<HTMLDivElement>` props.
17
+
18
+ ## Sub-components
19
+
20
+ - `AppBar.LeftContainer` - Flexible left-aligned container for primary content.
21
+ - `AppBar.RightContainer` - Flexible right-aligned container for actions and account controls.
22
+ - `AppBar.Separator` - Visual divider used between items inside the bar.
23
+
24
+ ### AppBar.LeftContainer Props
25
+ | Prop | Type | Default | Description |
26
+ |------|------|---------|-------------|
27
+ | children | `React.ReactNode` | required | Content rendered inside the left container |
28
+
29
+ `AppBar.LeftContainer` also extends all native `HTMLAttributes<HTMLDivElement>` props.
30
+
31
+ ### AppBar.RightContainer Props
32
+ | Prop | Type | Default | Description |
33
+ |------|------|---------|-------------|
34
+ | children | `React.ReactNode` | required | Content rendered inside the right container |
35
+
36
+ `AppBar.RightContainer` also extends all native `HTMLAttributes<HTMLDivElement>` props.
37
+
38
+ ### AppBar.Separator Props
39
+
40
+ `AppBar.Separator` is a styled `div` with no custom props. It accepts standard `HTMLDivElement` attributes from the underlying styled element.
41
+
42
+ ## Examples
43
+
44
+ ### Basic Usage
45
+ ```tsx
46
+ import { AppBar } from '@redislabsdev/redis-ui-components';
47
+
48
+ <AppBar variant="default">
49
+ <AppBar.LeftContainer>Left container</AppBar.LeftContainer>
50
+ <AppBar.RightContainer>
51
+ <AppBar.Separator />
52
+ Right container
53
+ </AppBar.RightContainer>
54
+ </AppBar>
55
+ ```
56
+
57
+ ### Variant
58
+ > `AppBar` has additional variant. Set `"alert"` value to the `variant` prop to see it.
59
+ ```tsx
60
+ import { AppBar, AppSelectionMenu, ProfileIcon, Typography } from '@redislabsdev/redis-ui-components';
61
+ import { items } from '../AppSelectionMenu/AppSelectionMenu.data';
62
+
63
+ <AppBar variant="alert">
64
+ <AppBar.LeftContainer>
65
+ <Typography.Body component="span">Super user</Typography.Body>
66
+ </AppBar.LeftContainer>
67
+ <AppBar.RightContainer>
68
+ <AppSelectionMenu items={items} />
69
+ <AppBar.Separator />
70
+ <ProfileIcon size="L" email="john.smith@redis.com" fullName="John Smith" />
71
+ </AppBar.RightContainer>
72
+ </AppBar>
73
+ ```
74
+
75
+ ### ComplexBar
76
+ > Complex example of application AppBar with most of the features.
77
+ > For details on the use of parts, please refer to the relevant documents.
78
+ ```tsx
79
+ import React from 'react';
80
+ import { AppBar, AppSelectionMenu, Menu, ProfileIcon, Typography } from '@redislabsdev/redis-ui-components';
81
+ import { EditIcon, SignoutIcon } from '@redislabsdev/redis-ui-icons';
82
+ import { items } from '../AppSelectionMenu/AppSelectionMenu.data';
83
+ import * as S from './AppBarStory.style';
84
+
85
+ const USER_NAME = 'John Smith';
86
+ const EMAIL = 'john.smith@redis.com';
87
+ const ACCOUNT_NAME = 'RedisLabsTeam-PM Account';
88
+
89
+ const UserMenu = () => {
90
+ const [isOpen, setIsOpen] = React.useState(false);
91
+
92
+ return (
93
+ <Menu open={isOpen} onOpenChange={() => setIsOpen(!isOpen)}>
94
+ <Menu.Trigger>
95
+ <span>
96
+ <S.TriggerToggleButton pressed={isOpen}>
97
+ <S.AccountName size="S">{USER_NAME}</S.AccountName>
98
+ <S.ActiveAccount>
99
+ <Typography.Body>{ACCOUNT_NAME}</Typography.Body>
100
+ <Menu.Trigger.Arrow customColor="currentColor" />
101
+ </S.ActiveAccount>
102
+ </S.TriggerToggleButton>
103
+ </span>
104
+ </Menu.Trigger>
105
+ <S.MenuContent>
106
+ <Menu.Content.Label text="Account" />
107
+ <Menu.Content.Item selected text={`${ACCOUNT_NAME} #93194`} />
108
+ <Menu.Content.Item text="Another Account #7619234" />
109
+ <Menu.Content.Item text="Other Account #761329" />
110
+ <Menu.Content.Item text="Red_redis Account #681900" />
111
+ <Menu.Content.Separator />
112
+ <Menu.Content.Item
113
+ onClick={() => {}}
114
+ text={USER_NAME}
115
+ subHead="User profile"
116
+ icon={EditIcon}
117
+ />
118
+ <Menu.Content.Separator />
119
+ <Menu.Content.Item subHead="Logout" icon={SignoutIcon} />
120
+ <Menu.Content.DropdownArrow />
121
+ </S.MenuContent>
122
+ </Menu>
123
+ );
124
+ };
125
+
126
+ <AppBar>
127
+ <AppBar.LeftContainer>
128
+ <Typography.Body component="span">Super user</Typography.Body>
129
+ </AppBar.LeftContainer>
130
+ <AppBar.RightContainer>
131
+ <AppSelectionMenu items={items} />
132
+ <AppBar.Separator />
133
+ <UserMenu />
134
+ <ProfileIcon size="L" email={EMAIL} fullName={USER_NAME} />
135
+ </AppBar.RightContainer>
136
+ </AppBar>
137
+ ```
138
+
139
+ ### Compose
140
+ > Building blocks for composing custom `AppBar`.
141
+ ```tsx
142
+ import { AppBar, AppSelectionMenu, ProfileIcon, Typography } from '@redislabsdev/redis-ui-components';
143
+
144
+ <AppBar>
145
+ <AppBar.LeftContainer>
146
+ {isSuperUser && <Typography.Body component="span">Super user</Typography.Body>}
147
+ </AppBar.LeftContainer>
148
+ <AppBar.RightContainer>
149
+ <AppSelectionMenu items={items} />
150
+ <AppBar.Separator />
151
+ <CustomMenu />
152
+ <ProfileIcon size="L" email={email} fullName={fullName} />
153
+ </AppBar.RightContainer>
154
+ </AppBar>
155
+ ```
156
+
157
+ ## Notes
158
+ - `AppBar` renders with `variant="default"` unless `variant="alert"` is provided.
159
+ - `AppBar.LeftContainer` is the flexible, growing side of the bar; `AppBar.RightContainer` is intended for trailing actions and account controls.
160
+ - `AppBar.Separator` is a presentational divider with no custom props.
161
+ - The package also exports `AppBarStyles` for low-level styling, but the public usage pattern is the compound `AppBar` API.