@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.
- package/dist/HighlightedIcon/HighlightedIcon.cjs +26 -0
- package/dist/HighlightedIcon/HighlightedIcon.d.ts +3 -0
- package/dist/HighlightedIcon/HighlightedIcon.js +26 -0
- package/dist/HighlightedIcon/HighlightedIcon.style.cjs +49 -0
- package/dist/HighlightedIcon/HighlightedIcon.style.d.ts +5 -0
- package/dist/HighlightedIcon/HighlightedIcon.style.js +47 -0
- package/dist/HighlightedIcon/HighlightedIcon.types.d.ts +8 -0
- package/dist/HighlightedIcon/index.d.ts +3 -0
- package/dist/Stepper/Stepper.cjs +14 -5
- package/dist/Stepper/Stepper.d.ts +2 -0
- package/dist/Stepper/Stepper.js +14 -5
- package/dist/Stepper/Stepper.utils.cjs +12 -0
- package/dist/Stepper/Stepper.utils.d.ts +2 -0
- package/dist/Stepper/Stepper.utils.js +12 -0
- package/dist/Stepper/components/Compose/Compose.d.ts +1 -0
- package/dist/Stepper/components/Step/Step.cjs +2 -0
- package/dist/Stepper/components/Step/Step.d.ts +1 -0
- package/dist/Stepper/components/Step/Step.js +2 -0
- package/dist/Stepper/components/Step/components/Compose/Compose.cjs +2 -9
- package/dist/Stepper/components/Step/components/Compose/Compose.js +2 -9
- package/dist/Stepper/components/Step/components/Separator/Separator.cjs +15 -0
- package/dist/Stepper/components/Step/components/Separator/Separator.d.ts +3 -0
- package/dist/Stepper/components/Step/components/Separator/Separator.js +15 -0
- package/dist/Stepper/components/Step/components/Separator/Separator.style.cjs +24 -0
- package/dist/Stepper/components/Step/components/Separator/Separator.style.d.ts +1 -0
- package/dist/Stepper/components/Step/components/Separator/Separator.style.js +22 -0
- package/dist/Stepper/components/Step/components/Separator/Separator.types.d.ts +5 -0
- package/dist/index.cjs +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +74 -70
- package/package.json +2 -2
- package/skills/redis-ui-components/SKILL.md +0 -2
- package/skills/redis-ui-components/references/ActionIconButton.md +96 -0
- package/skills/redis-ui-components/references/AppBar.md +161 -0
- package/skills/redis-ui-components/references/AppSelectionMenu.md +184 -0
- package/skills/redis-ui-components/references/AutoCompleteSelect.md +193 -0
- package/skills/redis-ui-components/references/Badge.md +77 -0
- package/skills/redis-ui-components/references/Banner.md +563 -0
- package/skills/redis-ui-components/references/BoxSelectionGroup.md +487 -0
- package/skills/redis-ui-components/references/Breadcrumbs.md +214 -0
- package/skills/redis-ui-components/references/ButtonGroup.md +126 -0
- package/skills/redis-ui-components/references/Card.md +56 -0
- package/skills/redis-ui-components/references/Checkbox.md +171 -0
- package/skills/redis-ui-components/references/Chip.md +154 -0
- package/skills/redis-ui-components/references/ChipList.md +307 -0
- package/skills/redis-ui-components/references/CopyToClipboardButton.md +47 -0
- package/skills/redis-ui-components/references/CountryFlag.md +57 -0
- package/skills/redis-ui-components/references/Drawer.md +298 -0
- package/skills/redis-ui-components/references/Filters.md +162 -0
- package/skills/redis-ui-components/references/FormField.md +678 -0
- package/skills/redis-ui-components/references/IconButton.md +63 -0
- package/skills/redis-ui-components/references/Input.md +295 -0
- package/skills/redis-ui-components/references/KeyValueList.md +501 -0
- package/skills/redis-ui-components/references/Label.md +238 -0
- package/skills/redis-ui-components/references/Link.md +402 -0
- package/skills/redis-ui-components/references/Loader.md +100 -0
- package/skills/redis-ui-components/references/Menu.md +988 -0
- package/skills/redis-ui-components/references/MidBar.md +358 -0
- package/skills/redis-ui-components/references/Modal.md +525 -0
- package/skills/redis-ui-components/references/MoreInfoIcon.md +119 -0
- package/skills/redis-ui-components/references/MultiSelect.md +558 -0
- package/skills/redis-ui-components/references/NumericInput.md +322 -0
- package/skills/redis-ui-components/references/Overflow.md +127 -0
- package/skills/redis-ui-components/references/Pagination.md +151 -0
- package/skills/redis-ui-components/references/PasswordInput.md +262 -0
- package/skills/redis-ui-components/references/Popover.md +868 -0
- package/skills/redis-ui-components/references/ProfileIcon.md +65 -0
- package/skills/redis-ui-components/references/ProgressBar.md +103 -0
- package/skills/redis-ui-components/references/QuantityCounter.md +555 -0
- package/skills/redis-ui-components/references/RadioGroup.md +265 -0
- package/skills/redis-ui-components/references/ScreenReaderAnnounce.md +147 -0
- package/skills/redis-ui-components/references/SearchBar.md +242 -0
- package/skills/redis-ui-components/references/SearchInput.md +213 -0
- package/skills/redis-ui-components/references/Section.md +349 -0
- package/skills/redis-ui-components/references/SideBar.md +468 -0
- package/skills/redis-ui-components/references/Slider.md +398 -0
- package/skills/redis-ui-components/references/Stepper.md +288 -0
- package/skills/redis-ui-components/references/Switch.md +193 -0
- package/skills/redis-ui-components/references/Tabs.md +383 -0
- package/skills/redis-ui-components/references/TextArea.md +139 -0
- package/skills/redis-ui-components/references/TextButton.md +217 -0
- package/skills/redis-ui-components/references/Toast.md +399 -0
- package/skills/redis-ui-components/references/ToggleButton.md +163 -0
- package/skills/redis-ui-components/references/Tooltip.md +636 -0
- 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 "./
|
|
1136
|
-
import
|
|
1137
|
-
import { default as
|
|
1138
|
-
import { default as
|
|
1139
|
-
import { default as
|
|
1140
|
-
import { default as
|
|
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
|
|
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
|
|
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
|
|
1155
|
+
import { default as default35 } from "./Link/Link.js";
|
|
1154
1156
|
import { LinkStyler } from "./Link/LinkStyler/LinkStyler.js";
|
|
1155
|
-
import { default as
|
|
1156
|
-
import { default as
|
|
1157
|
-
import { default as
|
|
1158
|
-
import { default as
|
|
1159
|
-
import { default as
|
|
1160
|
-
import { default as
|
|
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
|
|
1166
|
-
import { default as
|
|
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
|
|
1169
|
-
import { default as
|
|
1170
|
-
import { default as
|
|
1171
|
-
import { default as
|
|
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
|
|
1174
|
-
import { default as
|
|
1175
|
-
import { default as
|
|
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
|
|
1178
|
-
import { default as
|
|
1179
|
-
import { default as
|
|
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
|
|
1184
|
-
import { default as
|
|
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
|
|
1187
|
-
import { default as
|
|
1188
|
-
import { default as
|
|
1189
|
-
import { default as
|
|
1190
|
-
import { default as
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
1242
|
+
default33 as FormField,
|
|
1243
|
+
default26 as HighlightedIcon,
|
|
1244
|
+
HighlightedIcon_style as HighlightedIconStyles,
|
|
1241
1245
|
default12 as IconButton,
|
|
1242
|
-
|
|
1246
|
+
default27 as Input,
|
|
1243
1247
|
KeyValueList,
|
|
1244
|
-
|
|
1245
|
-
|
|
1248
|
+
default34 as Label,
|
|
1249
|
+
default35 as Link,
|
|
1246
1250
|
LinkStyler,
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
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
|
-
|
|
1254
|
-
|
|
1257
|
+
default41 as MultiSelect,
|
|
1258
|
+
default28 as NumericInput,
|
|
1255
1259
|
Overflow,
|
|
1256
1260
|
Pagination,
|
|
1257
|
-
|
|
1258
|
-
|
|
1261
|
+
default29 as PasswordInput,
|
|
1262
|
+
default42 as Popover,
|
|
1259
1263
|
PopperProvider,
|
|
1260
|
-
|
|
1264
|
+
default61 as ProfileIcon,
|
|
1261
1265
|
ProfileIcon_style as ProfileIconStyles,
|
|
1262
1266
|
ProgressBar,
|
|
1263
|
-
|
|
1264
|
-
|
|
1267
|
+
default32 as QuantityCounter,
|
|
1268
|
+
default43 as RadioGroup,
|
|
1265
1269
|
default23 as RangeDatePicker,
|
|
1266
1270
|
RestylableElement,
|
|
1267
1271
|
ScreenReaderAnnounce,
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
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
|
-
|
|
1276
|
-
|
|
1279
|
+
default48 as SideBar,
|
|
1280
|
+
default49 as Skeleton,
|
|
1277
1281
|
Slider,
|
|
1278
|
-
|
|
1282
|
+
default50 as Stepper,
|
|
1279
1283
|
StepperStepState,
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
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
|
-
|
|
1288
|
-
|
|
1291
|
+
default54 as Toast,
|
|
1292
|
+
default55 as Toaster,
|
|
1289
1293
|
default14 as ToggleButton,
|
|
1290
1294
|
ToggleButton_style as ToggleButtonStyles,
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
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.
|
|
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.
|
|
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.
|