Skip to content
Open
Show file tree
Hide file tree
Changes from 148 commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
d377072
add redis-ui
pd-redis May 7, 2025
3a3696b
add forms/button
pd-redis May 7, 2025
ba385ab
run format
pd-redis May 7, 2025
049a991
add icons
pd-redis May 7, 2025
3c3b65f
add general export
pd-redis May 7, 2025
1832c1a
re-export icons from ui-icons
pd-redis May 7, 2025
e5ed77b
add theme config in themeContext.tsx
pd-redis May 7, 2025
8026a6c
make SecondaryButton.tsx outlined by default
pd-redis May 7, 2025
36e23a1
add EmptyButton.tsx
pd-redis May 7, 2025
e2a9bfe
add key panels
pd-redis May 7, 2025
f580b98
icon button added
pd-redis May 7, 2025
192aa1f
edit json icons
pd-redis May 7, 2025
e9358e0
analysis page
pd-redis May 8, 2025
f1051e2
update font size
pd-redis May 8, 2025
31da78e
DatetimeForm.tsx
pd-redis May 8, 2025
40cbb55
CloudSettings.tsx
pd-redis May 8, 2025
75db002
add play and play filled icons
pd-redis May 8, 2025
52771a4
QueryCardHeader.tsx
pd-redis May 8, 2025
d07d5d2
QueryActions.tsx
pd-redis May 8, 2025
eee47b2
InternalPage.tsx
pd-redis May 8, 2025
aaaa43b
Merge branch 'main' into fe/feature/RI-7039-replace-eui
pd-redis May 12, 2025
6301a55
move all icon imports
pd-redis May 12, 2025
05ef986
checkpoint
pd-redis May 12, 2025
88bfbe9
add db dialog
pd-redis May 12, 2025
4966145
notifications
pd-redis May 12, 2025
226baf2
remove unused imports
pd-redis May 12, 2025
1acb93a
fix ZSetDetails.tsx overflow
pd-redis May 12, 2025
e836924
command helper
pd-redis May 12, 2025
f744afc
refactor window controls
pd-redis May 12, 2025
0f0e74f
checkpoint
pd-redis May 12, 2025
a02015d
stream
pd-redis May 12, 2025
5c04afc
monitor, browser search, connection
pd-redis May 13, 2025
321112b
InstanceHeader.tsx, WbNoResultsMessage.tsx
pd-redis May 13, 2025
735ad96
rdi
pd-redis May 13, 2025
42a16fb
InlineItemEditor.tsx
pd-redis May 13, 2025
6803376
rdi
pd-redis May 13, 2025
4e1f2d3
Merge branch 'main' into fe/feature/RI-7039-replace-eui
pd-redis May 14, 2025
c4045c9
NotFoundErrorPage.tsx
pd-redis May 14, 2025
4937213
update to public packages
pd-redis May 14, 2025
f33e3da
ensure color is supported
pd-redis May 14, 2025
d4ef6ef
connectivity screens
pd-redis May 14, 2025
85ab56d
ConnectivityOptions.tsx
pd-redis May 14, 2025
47ab453
Recommendations.tsx
pd-redis May 14, 2025
0d1e8ee
update vite config
KrumTy May 15, 2025
38a54bb
update jest config
KrumTy May 15, 2025
88c342b
OnboardingStartPopover.tsx
pd-redis May 14, 2025
5775639
CodeButtonBlock.tsx
pd-redis May 15, 2025
b58bb78
RunConfirmationPopover.tsx
pd-redis May 15, 2025
b916a2a
UploadTutorialForm.tsx
pd-redis May 15, 2025
03855eb
RedisUploadButton.tsx
pd-redis May 15, 2025
eaa652e
BulkUpload.tsx
pd-redis May 15, 2025
e78731f
FilterNotAvailable.tsx
pd-redis May 15, 2025
e098586
ModuleNotLoadedButton.tsx
pd-redis May 15, 2025
12f628a
ModuleNotLoadedMinimalized.tsx
pd-redis May 15, 2025
f976c0c
MonacoEditor.tsx
pd-redis May 15, 2025
8c831cb
CloudCapiUnAuthorizedErrorContent.tsx
pd-redis May 15, 2025
822c0e9
InfiniteMessages.tsx
pd-redis May 15, 2025
d24f422
OAuthConnectFreeDb.tsx, RdiDeployErrorContent.tsx, Link.tsx
pd-redis May 15, 2025
78f808d
OAuthSelectAccountDialog.tsx
pd-redis May 15, 2025
51a6f74
OAuthSelectPlan.tsx
pd-redis May 15, 2025
c311f89
OAuthSignInButton.tsx
pd-redis May 15, 2025
12a402b
OAuthAutodiscovery.tsx
pd-redis May 15, 2025
02aa2aa
OAuthCreateDb.tsx
pd-redis May 15, 2025
4893c44
OAuthSsoForm.tsx
pd-redis May 15, 2025
355db6c
InternalLink.tsx, OnboardingTour.tsx
pd-redis May 15, 2025
96a592a
VoteOption.tsx
pd-redis May 15, 2025
f043f43
ScanMore.tsx
pd-redis May 15, 2025
4817dfc
ChatForm.tsx, ErrorMessage.tsx, ExpertChatHeader.tsx
pd-redis May 15, 2025
1d6d38a
RestartChat.tsx
pd-redis May 15, 2025
7ef621e
DeleteTutorialButton.tsx
pd-redis May 15, 2025
3b897fa
PopoverRunAnalyze.tsx
pd-redis May 15, 2025
ba26fac
CopilotTrigger.tsx
pd-redis May 15, 2025
6db7083
RedisCloudDatabasesResult.tsx
pd-redis May 15, 2025
960bcc9
RedisCloudDatabases.tsx
pd-redis May 16, 2025
ba662a9
RedisCloudSubscriptions.tsx
pd-redis May 16, 2025
ee882ea
SentinelDatabasesResult.tsx, SentinelDatabasesResultPage.tsx
pd-redis May 16, 2025
79e5e29
SentinelDatabases.tsx
pd-redis May 16, 2025
ecefce7
BulkDeleteFooter.tsx
pd-redis May 16, 2025
93c5de6
BulkDeleteSummaryButton.tsx
pd-redis May 16, 2025
c9aeaf9
CreateRedisearchIndex.tsx
pd-redis May 16, 2025
c2df435
RI-7051: Replace EuiFieldPassword with PasswordInput (#4552)
KrumTy May 20, 2025
97b2d46
fix Config.spec.tsx
pd-redis May 28, 2025
901d5ec
fic AddKeyList.spec.tsx, AddKeyList.tsx, RdiDeployErrorContent.tsx, R…
pd-redis May 28, 2025
7de2983
fic SentinelDatabasesResultPage.tsx
pd-redis May 28, 2025
6553188
RI-7053: replace EuiFlyout with Drawer (#4582)
KrumTy May 28, 2025
ffda0f7
RI-7054: replace EuiFormRow with FormField (#4585)
KrumTy May 28, 2025
839830c
RI-7052: replace EuiFieldSearch with SearchInput (#4586)
KrumTy May 28, 2025
66a4de2
RI-7056 replace eui health (#4593)
pd-redis May 29, 2025
4f09c94
RI-7045: replace EuiCallOut
pd-redis May 29, 2025
b3ba28e
RI-7044 , RI-7043: EuiButtonEmpty, EuiButtonIcon
pd-redis May 29, 2025
a4ca899
RI-7046: replace EuiCheckbox
pd-redis Jun 4, 2025
5f12ecf
RI-7047: replace eui combo box
pd-redis Jun 4, 2025
0c385bd
RI-7041: replace eui badge
pd-redis Jun 4, 2025
e98b604
RI-7055: replace eui global toast
pd-redis Jun 5, 2025
5fc5800
RI-7070: RI-7072 replace eui text, eui colortext
pd-redis Jun 5, 2025
84a3d21
RI-7050 replace EUI field number with NumericInput (#4607)
dantovska Jun 6, 2025
0b87f59
RI-7048, RI-7049: replace eui menu with redis menu (#4611)
dantovska Jun 9, 2025
4cb33d0
RI-7071: Replace EuiTextArea with TextArea (#4619)
KrumTy Jun 9, 2025
1469bda
replace euitext with colortext
pd-redis Jun 10, 2025
662ee58
RI-7073 replace eui title
pd-redis Jun 10, 2025
bf3ddfe
RI-7068: replace EuiSwitch with SwitchInput (#4622)
KrumTy Jun 16, 2025
384bdff
[RI-7069]: Replace EuiTabs with Tabs (#4625)
KrumTy Jun 16, 2025
62f8a72
RI-7059: Replace EUI Link with Redis Link (#4620)
dantovska Jun 24, 2025
01d6ef4
RI-7060: Replace EUI Loading Spinner with Redis Loader (#4631)
dantovska Jun 24, 2025
debba5d
[RI-7058] Replace EuiInMemoryTable with Table (#4640)
KrumTy Jun 30, 2025
face974
RI-7179: replace eui tour step
pd-redis Jun 30, 2025
1320c70
RI-7063: replace EuiPanel with Card (#4655)
KrumTy Jul 1, 2025
e075507
RI-7066: replace eui radio group and eui SuperSelect, RI-7067 (#4645)
pd-redis Jul 2, 2025
7f0bbd4
remove cx
pd-redis Jul 2, 2025
bd05295
[RI-7074] Replace EuiToolTip with RiTooltip (#4659)
KrumTy Jul 4, 2025
c7bb583
Merge branch 'main' into fe/feature/RI-7039-replace-eui
pd-redis Jul 8, 2025
59650e0
fix errors after main merge
pd-redis Jul 9, 2025
6d9f45f
RI-7040: replace eui accordion
pd-redis Jul 9, 2025
f93a9a7
[RI-7064] Replace EuiPopover with RiPopover (#4671)
KrumTy Jul 10, 2025
e3f0b73
[RI-7074] revert anchorClassName prop usage for RiTooltip (#4710)
KrumTy Jul 10, 2025
0dd6e01
RI-7065: Replace EUI Progress with custom Progress Bar Loader (#4663)
dantovska Jul 13, 2025
483390b
RI-7062: Replace EUI sidebar with Redis SideBar (#4660)
dantovska Jul 14, 2025
4c6983b
Fe/feature/ri 7039 replace eui build fix 2 (#4721)
Jul 15, 2025
a7f885d
RI-7040: replace eui icon
pd-redis Jul 17, 2025
b993a06
[RI-7040] RiIcon refactor (#4727)
KrumTy Jul 18, 2025
9508198
RI-7226: fix RiTooltip when content is empty (#4742)
KrumTy Jul 22, 2025
65736aa
electron upgraded from 33.* to 36.* (#4740)
Jul 22, 2025
2e64134
RI-7212: replace EuiFormFieldset with FormFieldset (#4739)
KrumTy Jul 22, 2025
f08ae61
RI-7226: fix RiTooltip when title/content is empty (#4747)
KrumTy Jul 22, 2025
8416742
RI-7236 replace settings icon (#4745)
dantovska Jul 25, 2025
5c86907
RI-7211: replace eui form
pd-redis Jul 25, 2025
030f3f0
RI-7208 replace eui collapsible nav group
pd-redis Jul 25, 2025
907799f
Remove unused PageBreadcrumbs component (#4746)
pd-redis Jul 25, 2025
a061b08
RI-7228 - key details - space is missing between Add / Cancel (#4761)
Jul 28, 2025
5d79c26
add playground
pd-redis Jul 28, 2025
42e9f44
improve styles
pd-redis Jul 28, 2025
6f299db
add some formatted theme output
pd-redis Jul 28, 2025
b7f9784
Merge branch 'refs/heads/main' into playground
pd-redis Oct 9, 2025
39f44b7
add storybook to project
pd-redis Oct 10, 2025
9cbbaf1
add button stories
pd-redis Oct 10, 2025
aebbb0d
add playground page
pd-redis Oct 10, 2025
a1bde87
change base of the buttons stories
pd-redis Oct 10, 2025
219ab51
add AutoRefresh.stories.tsx
pd-redis Oct 10, 2025
eda6306
add AnalyticsTabs.stories.tsx
pd-redis Oct 10, 2025
62b099d
add BottomGroupComponents.stories.tsx, BottomGroupMinimized.stories.tsx
pd-redis Oct 10, 2025
f2cff8a
add chart stories
pd-redis Oct 10, 2025
17d8991
more stories
pd-redis Oct 10, 2025
24534e1
move playground files to stories
pd-redis Oct 14, 2025
f17bd58
add icon search
pd-redis Oct 14, 2025
0b084fd
add color search
pd-redis Oct 14, 2025
86df9b6
fix ts issues
pd-redis Oct 14, 2025
03d428e
revert some changes
pd-redis Oct 14, 2025
4aede66
example DatabasesListWrapper.stories.tsx added
pd-redis Oct 15, 2025
a05dfa3
revert msw, update storybook versions
pd-redis Oct 16, 2025
8fc9907
Merge branch 'main' into playground
pd-redis Oct 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module.exports = {
node: true,
browser: true,
},
extends: ['airbnb-typescript', 'prettier', 'plugin:prettier/recommended'],
extends: ['airbnb-typescript', 'prettier', 'plugin:prettier/recommended', 'plugin:storybook/recommended'],
plugins: ['@typescript-eslint', 'import', 'prettier'],
parser: '@typescript-eslint/parser',
rules: {
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,6 @@ static/

.env*
.npmrc

*storybook.log
storybook-static
28 changes: 28 additions & 0 deletions .storybook/RootStoryLayout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import React, { FC, PropsWithChildren } from 'react'
import { StoryContext } from '@storybook/react-vite'

export interface Parameters {
storyLayout?: FC<PropsWithChildren<{ storyContext: StoryContext }>>
}

/**
* Note: for use in Storybook preview config
*
* Define parameters.storyLayout as React component, and it will be used as root layout of the story
*/
export const RootStoryLayout = ({
children,
storyContext,
}: Required<PropsWithChildren<{ storyContext: StoryContext }>>) => {
const { storyLayout } = storyContext.parameters
if (!storyLayout) {
return <>{children}</>
}
if (React.isValidElement(storyLayout)) {
// @ts-ignore
return React.cloneElement(storyLayout, { storyContext }, children)
}

const StoryLayout = storyLayout
return <StoryLayout storyContext={storyContext}>{children}</StoryLayout>
}
16 changes: 16 additions & 0 deletions .storybook/Story.context.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { createContext, useContext } from 'react'
import { StoryContext } from '@storybook/react-vite'

const Context = createContext<StoryContext | null>(null)

export const StoryContextProvider = Context.Provider

export const useStoryContext = () => {
const context = useContext(Context)
if (!context)
throw new Error('useStoryContext must be used within StoryContextProvider')
return context
}

export const useStoryParameter = <T>(parameterKey: string): T | undefined =>
useStoryContext().parameters[parameterKey]
13 changes: 13 additions & 0 deletions .storybook/helpers/styles.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import styled from 'styled-components'
import { Theme } from 'uiSrc/components/base/theme/types'

export const StyledContainer = styled.div`
padding: 50px;
height: max-content;
overflow: hidden;
overflow-y: auto;
background-color: ${({ theme }: { theme: Theme }) =>
theme.semantic.color.background.neutral100};
border: 2px solid
${({ theme }: { theme: Theme }) => theme.semantic.color.border.neutral500};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, we use Redis UI to style Stroybook as well 😀

`
27 changes: 27 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import type { StorybookConfig } from '@storybook/react-vite'
import { mergeConfig } from 'vite'
import vc from './vite.config'

const config: StorybookConfig = {
async viteFinal(inlineConfig) {
// return the customized config
return mergeConfig(inlineConfig, vc)
},
stories: [
'../stories/**/*.mdx',
'../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)',
'../redisinsight/ui/src/**/*.stories.@(js|jsx|mjs|ts|tsx)',
'../redisinsight/ui/src/**/*.mdx',
],
addons: [
'@storybook/addon-a11y',
'@storybook/addon-docs',
'@storybook/addon-links',
'@storybook/addon-themes',
],
framework: {
name: '@storybook/react-vite',
options: {},
},
}
export default config
46 changes: 46 additions & 0 deletions .storybook/preview-head.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<script>
window.global = window;
</script>
<style>
:root {
/*
Insert global variables here:
colors, sizes, fonts, etc.
*/
}

body {
min-height: 100vh;
}

.sbdocs-wrapper div:has(>div>.toc-wrapper){
width:14rem;
}

.sbdocs-wrapper div:has(>.toc-wrapper){
width:fit-content;
margin-right:1rem;
}

.sbdocs-wrapper .toc-wrapper .toc-list-item {
padding-block: 5px;
}

.sb-errordisplay pre code {
background-color: transparent;
}

.docblock-argstable [type='checkbox'][role='switch'] {
display: none;
}

pre:has(.docblock-source), pre.prismjs{
max-height: none; /*fix code block scroll*/
}

.docblock-source [data-radix-scroll-area-viewport],
.docs-story + div [data-radix-scroll-area-viewport]{
max-height: 80vh; /*add max height of code block*/
}

</style>
88 changes: 88 additions & 0 deletions .storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import React from 'react'
import type { Parameters, Preview } from '@storybook/react-vite'
import { withThemeFromJSXProvider } from '@storybook/addon-themes'
import {
createGlobalStyle,
ThemeProvider as StyledThemeProvider,
} from 'styled-components'
import { CommonStyles, themeDark, themeLight, themeOld } from '@redis-ui/styles'
import 'modern-normalize/modern-normalize.css'
import '@redis-ui/styles/normalized-styles.css'
import '@redis-ui/styles/fonts.css'
import { RootStoryLayout } from './RootStoryLayout'
import { StoryContextProvider } from './Story.context'
import { useStoryContext } from 'storybook/internal/preview-api'
import { TooltipProvider } from '@redis-ui/components'
import { type Theme } from 'uiSrc/components/base/theme/types'
// import { store } from 'uiSrc/utils/test-utils'
import { Provider } from 'react-redux'
import { store } from 'uiSrc/slices/store'
import Router from 'uiSrc/Router'

const parameters: Parameters = {
parameters: {
layout: 'centered',
},
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
disableSaveFromUI: true,
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
expanded: true,
sort: 'requiredFirst',
exclude: ['theme'],
},
docs: {
toc: true,
controls: {
sort: 'requiredFirst',
},
},
options: {
storySort: {
method: 'alphabetical',
order: ['Getting Started', 'Playground', '*'],
},
},
}

const GlobalStoryStyles = createGlobalStyle`
.sb-show-main, .docs-story {
background: ${({ theme }: { theme: Theme }) => theme.globals.body.bgColor};
color: ${({ theme }: { theme: Theme }) => theme.globals.body.textColor};
}
`

const preview: Preview = {
parameters,
decorators: [
(Story) => (
<StoryContextProvider value={useStoryContext()}>
<Router>
<Provider store={store}>
<TooltipProvider>
<RootStoryLayout storyContext={useStoryContext()}>
<CommonStyles />
<Story />
</RootStoryLayout>
</TooltipProvider>
</Provider>
</Router>
</StoryContextProvider>
),
withThemeFromJSXProvider({
themes: {
light: themeLight,
dark: themeDark,
obsolete: themeOld,
},
defaultTheme: 'light',
Provider: StyledThemeProvider,
GlobalStyles: GlobalStoryStyles,
}),
],
}

export default preview
20 changes: 20 additions & 0 deletions .storybook/redis-theme.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { create } from '@storybook/theming/create';

export default create({
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where do we use this? I don't see the Redis title/logo/colors anywhere. I have changed all the values below, and still I see the default Storybook UI, so I think this file is not loaded properly.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is within the canvas if anywhere. I copied it from redis-ui storybook setup

base: 'light',

brandTitle: 'Redis UI',
brandUrl: 'https://github.com/redislabsdev/redis-ui',
brandImage: 'logo.svg',
brandTarget: '_blank',

colorPrimary: '#001D2D',
colorSecondary: '#FF4438',

// UI
appBg: '#001D2D',

// Toolbar default and active colors
barBg: '#F0F0F0',
textMutedColor: '#5C707A'
});
11 changes: 11 additions & 0 deletions .storybook/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"jsx": "react",
"types": ["node", "vite/client"],
"module": "ESNext"
},
"include": [
"./**/*"
]
}
Loading
Loading