Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
663a539
Button component
ohansFavour May 27, 2025
55d6574
Install and configure radix ui
ohansFavour May 27, 2025
c57fb41
💇‍♀️: Update layout styles
ohansFavour May 27, 2025
fb5f26f
➕ : Update CHANGELOG.md
ohansFavour May 27, 2025
d16278e
💇‍♀️: Use Inter font
ohansFavour May 28, 2025
ab0dc44
🛠 Add cursor rules
ohansFavour Jun 2, 2025
b197b72
💇‍♀️: Create Section Container
ohansFavour Jun 2, 2025
704dc9e
💇‍♀️: Create Page container
ohansFavour Jun 2, 2025
50b8285
Update main layout padding
ohansFavour Jun 2, 2025
a4b92d9
Rename sectionContainer => paper
ohansFavour Jun 2, 2025
c5be68e
Create Modal component
ohansFavour Jun 2, 2025
9379ad4
➕ create callout component
ohansFavour Jun 2, 2025
6a491b5
✍️ Update variable list
ohansFavour Jun 2, 2025
64c7be1
🚧 WIP: User list
ohansFavour Jun 10, 2025
095fb64
➕ Add filter icon to list of images
ohansFavour Jun 10, 2025
10fc30a
✅ User List design complete
ohansFavour Jun 10, 2025
97831ff
🚧 WIP: User Management page user list
ohansFavour Jun 10, 2025
7f874b3
🚧 WIP: Users list
ohansFavour Jun 18, 2025
8ed94de
WIP: Create User
ohansFavour Sep 19, 2025
4b5daa0
Update build
ohansFavour Sep 19, 2025
ad1e446
Create Passwordless user
ohansFavour Sep 19, 2025
161adf1
Create User UI
ohansFavour Sep 19, 2025
ee14229
Update Create User Logic
ohansFavour Sep 19, 2025
af0d096
✅: Complete User List Page
ohansFavour Sep 19, 2025
99b6719
WIP: User Details
ohansFavour Sep 22, 2025
a50ab1a
✅ UI: User detail modals
ohansFavour Sep 24, 2025
4f2e38f
✅ User Roles
ohansFavour Sep 24, 2025
f71c118
✅ user metadata
ohansFavour Sep 24, 2025
d2db39d
✅ Roles and Permissions
ohansFavour Sep 25, 2025
f380e94
🚧 WIP: Tenant Details
ohansFavour Sep 26, 2025
668386d
✅ Providers
ohansFavour Sep 29, 2025
389484c
WIP: 🚧 User management tab integration
ohansFavour Oct 1, 2025
8b155e3
✅ User list table body + header
ohansFavour Oct 2, 2025
838a9ea
✅ User list pagination
ohansFavour Oct 2, 2025
28812f8
🛠: Add Max height to table body
ohansFavour Oct 2, 2025
76161a3
✅ : User creation flow
ohansFavour Oct 4, 2025
33e6999
🚧WIP (User Details): Restructure file structure
ohansFavour Oct 4, 2025
9eb9e23
🚧 WIP: Restructure user details
ohansFavour Oct 4, 2025
2293fe1
🚧 WIP: User details
ohansFavour Oct 4, 2025
e4e9cc1
🚧 WIP: User details: header
ohansFavour Oct 4, 2025
1b1f844
🚧 WIP: User login methods
ohansFavour Oct 4, 2025
6416085
✅ Complete: Login methods tab
ohansFavour Oct 5, 2025
f5e0ab4
🛠: Fix bugs in login methods
ohansFavour Oct 5, 2025
a2386df
✅ Complete: User details Sessions tab
ohansFavour Oct 5, 2025
0820796
✅ User Metadata
ohansFavour Oct 5, 2025
5180b79
✅ User details: Roles
ohansFavour Oct 6, 2025
f1e1424
🚧 WIP: Roles-and-Permissions
ohansFavour Oct 6, 2025
5c81061
🚧 WIP: Roles details
ohansFavour Oct 6, 2025
0ab737c
✅ Roles and Permissions: Add role complete
ohansFavour Oct 6, 2025
ebcb32c
🚧 WIP: Role details
ohansFavour Oct 6, 2025
20e655d
🚧 WIP: Role details: Permissions
ohansFavour Oct 6, 2025
ebd197d
✅ Permissions tab complete
ohansFavour Oct 6, 2025
71c6208
✅ : Roles - and - Permissions complete
ohansFavour Oct 6, 2025
a5a3d9f
🚧 WIP: Tenant Management
ohansFavour Oct 6, 2025
54f100e
✅: Tenant list complete
ohansFavour Oct 6, 2025
bab91ba
✅Tenant Management: Core configuration complete
ohansFavour Oct 7, 2025
64c68ef
💇‍♀️: Make config modal checkbox aligned
ohansFavour Oct 7, 2025
b19dbd3
🚧 WIP: tenant details: providers
ohansFavour Oct 7, 2025
c58806c
🚧 wip: providers tab
ohansFavour Oct 7, 2025
83460a5
🛠 Fix styles in provider tab
ohansFavour Oct 7, 2025
9431af8
🚧 WIP: Login Methods (primary + secondary)
ohansFavour Oct 8, 2025
061033f
✅ Complete login methods preview
ohansFavour Oct 8, 2025
7eb98c7
💇‍♀️ improve code structure: Supertokens Preview
ohansFavour Oct 8, 2025
866aeb4
✅ Secondary factors complete
ohansFavour Oct 8, 2025
38cb978
🛠 Fix UI bugs in tenants details page
ohansFavour Oct 9, 2025
41305a1
🚧 WIP: Tenant Details - Providers
ohansFavour Oct 9, 2025
5ec296e
🚧 WIP: tenant details: providers
ohansFavour Oct 9, 2025
16a6686
🚧 WIP: Provider Configuration
ohansFavour Oct 9, 2025
37af0bc
Merge pull request #161 from supertokens/provider-changes
ohansFavour Oct 9, 2025
1164c4a
✨ Chore: Change default tenant details tab
ohansFavour Oct 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
135 changes: 135 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Cursor and Code Style Guidelines

## File Structure

### Directory Organization

- `src/`: Main source code directory
- `api/`: API service layer and network calls
- `ui/`: React components and UI logic
- `components/`: Reusable UI components
- `pages/`: Page-level components
- `styles/`: Global styles and themes
- `utils/`: Utility functions and helpers
- `constants.ts`: Global constants
- `version.ts`: Version information

- `docs/`: Documentation files
- `server/`: Backend server code
- `build/`: Production build output

### Required File Header

All source files must begin with the following copyright header:
/\* Copyright (c) 2024, VRAI Labs and/or its affiliates. All rights reserved.

- This software is licensed under the Apache License, Version 2.0 (the
- "License") as published by the Apache Software Foundation.
- You may not use this file except in compliance with the License. You may
- obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- License for the specific language governing permissions and limitations
- under the License.
\*/

## BEM Styling Guidelines

### Naming Convention

- Block: Standalone component (e.g., `section-container`)
- Element: Parts of a block (prefixed with `__`) (e.g., `section-container__header`)
- Modifier: Variations (prefixed with `--`) (e.g., `section-container--large`)

### Rules

1. Use kebab-case for all BEM classes
2. Never nest BEM elements (no `block__element1__element2`)
3. Keep modifiers simple and boolean-like
4. Use semantic class names

### Example

```scss
.section-container {
// Block styles
&__header {
// Element styles
}
&--large {
// Modifier styles
}
}
```

## TypeScript Component Guidelines

### Component Structure

1. Use functional components with explicit type definitions
2. Props interface must be defined above component
3. Export components as default when they're the main export
4. Use React.FC for functional components with children

### Example

```typescript
interface SectionContainerProps {
children: React.ReactNode;
className?: string;
variant?: "default" | "large";
}

export default function SectionContainer({ children, className, variant = "default" }: SectionContainerProps) {
const baseClass = "section-container";
const modifierClass = variant !== "default" ? `${baseClass}--${variant}` : "";
const combinedClass = [baseClass, modifierClass, className].filter(Boolean).join(" ");

return <div className={combinedClass}>{children}</div>;
}
```

## Best Practices

### General

1. Use meaningful variable and function names
2. Keep components focused and single-responsibility
3. Implement proper error boundaries
4. Use proper TypeScript types (avoid `any`)
5. Document complex logic with JSDoc comments

### Styling

1. Use CSS variables for theming
2. Implement responsive design using mixins
3. Follow mobile-first approach
4. Use semantic HTML elements

### Performance

1. Implement proper memoization (useMemo, useCallback)
2. Lazy load components when appropriate
3. Optimize re-renders
4. Use proper key props in lists

### Accessibility

1. Use proper ARIA attributes
2. Ensure keyboard navigation
3. Maintain proper color contrast
4. Support screen readers

## Code Review Checklist

- [ ] Copyright header present
- [ ] BEM naming conventions followed
- [ ] TypeScript types properly defined
- [ ] Props interface documented
- [ ] Responsive design implemented
- [ ] Accessibility requirements met
- [ ] Performance optimizations in place
- [ ] Code properly formatted
- [ ] No unused imports or variables
- [ ] Tests written and passing
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"editor.trimAutoWhitespace": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
"source.organizeImports": "never"
},
"files.exclude": {
"**/.DS_Store": true,
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [unreleased]

## [0.14.0]

- Redesigns the dashboard UI and improves user experience

## [0.13.0]

- Adds support for SAML metadata
Expand Down
37 changes: 31 additions & 6 deletions build/asset-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,48 +16,73 @@
"static/media/auth-method.svg": "/static/media/auth-method.svg",
"static/media/provider-okta.svg": "/static/media/provider-okta.svg",
"static/media/no-tenants.svg": "/static/media/no-tenants.svg",
"static/media/totp.svg": "/static/media/totp.svg",
"static/media/logo.svg": "/static/media/logo.svg",
"static/media/plus-square.svg": "/static/media/plus-square.svg",
"static/media/roles-and-permissions.svg": "/static/media/roles-and-permissions.svg",
"static/media/sort-descending.svg": "/static/media/sort-descending.svg",
"static/media/no-results.svg": "/static/media/no-results.svg",
"static/media/sort-ascending.svg": "/static/media/sort-ascending.svg",
"static/media/question-mark.svg": "/static/media/question-mark.svg",
"static/media/key-shield.svg": "/static/media/key-shield.svg",
"static/media/help-circle.svg": "/static/media/help-circle.svg",
"static/media/info-icon.svg": "/static/media/info-icon.svg",
"static/media/email.svg": "/static/media/email.svg",
"static/media/user-managment.svg": "/static/media/user-managment.svg",
"static/media/otp-phone.svg": "/static/media/otp-phone.svg",
"static/media/tenant-management.svg": "/static/media/tenant-management.svg",
"static/media/tenant.svg": "/static/media/tenant.svg",
"static/media/lock.svg": "/static/media/lock.svg",
"static/media/checkmark-green.svg": "/static/media/checkmark-green.svg",
"static/media/roles-and-permissions.svg": "/static/media/roles-and-permissions.svg",
"static/media/plus.svg": "/static/media/plus.svg",
"static/media/green-check.svg": "/static/media/green-check.svg",
"static/media/tenant-management.svg": "/static/media/tenant-management.svg",
"static/media/close-inactive.svg": "/static/media/close-inactive.svg",
"static/media/close-active.svg": "/static/media/close-active.svg",
"static/media/permissions.svg": "/static/media/permissions.svg",
"static/media/google.png": "/static/media/google.png",
"static/media/permission.svg": "/static/media/permission.svg",
"static/media/clear.svg": "/static/media/clear.svg",
"static/media/provider-apple.svg": "/static/media/provider-apple.svg",
"static/media/provider-discord.svg": "/static/media/provider-discord.svg",
"static/media/edit-unfilled.svg": "/static/media/edit-unfilled.svg",
"static/media/provider-linkedin.svg": "/static/media/provider-linkedin.svg",
"static/media/search.png": "/static/media/search.png",
"static/media/otp-email.svg": "/static/media/otp-email.svg",
"static/media/gitlab.png": "/static/media/gitlab.png",
"static/media/phone-no.svg": "/static/media/phone-no.svg",
"static/media/provider-google.svg": "/static/media/provider-google.svg",
"static/media/github.png": "/static/media/github.png",
"static/media/error-icon.svg": "/static/media/error-icon.svg",
"static/media/no-users-graphic.svg": "/static/media/no-users-graphic.svg",
"static/media/unlink-login-method.png": "/static/media/unlink-login-method.png",
"static/media/user-management.svg": "/static/media/user-management.svg",
"static/media/user.svg": "/static/media/user.svg",
"static/media/discord.png": "/static/media/discord.png",
"static/media/filter-icon.svg": "/static/media/filter-icon.svg",
"static/media/eye-stroke.svg": "/static/media/eye-stroke.svg",
"static/media/apple.svg": "/static/media/apple.svg",
"static/media/people-restricted.svg": "/static/media/people-restricted.svg",
"static/media/mail-opened.svg": "/static/media/mail-opened.svg",
"static/media/form-field-error-icon.svg": "/static/media/form-field-error-icon.svg",
"static/media/okta.png": "/static/media/okta.png",
"static/media/back-arrow.svg": "/static/media/back-arrow.svg",
"static/media/danger.svg": "/static/media/danger.svg",
"static/media/x.png": "/static/media/x.png",
"static/media/provider-github.svg": "/static/media/provider-github.svg",
"static/media/edit-login-method.png": "/static/media/edit-login-method.png",
"static/media/bitbucket.png": "/static/media/bitbucket.png",
"static/media/mail.svg": "/static/media/mail.svg",
"static/media/lock-opened.svg": "/static/media/lock-opened.svg",
"static/media/provider-twitter.svg": "/static/media/provider-twitter.svg",
"static/media/eye.svg": "/static/media/eye.svg",
"static/media/success-icon.svg": "/static/media/success-icon.svg",
"static/media/active-directory.png": "/static/media/active-directory.png",
"static/media/linkedin.png": "/static/media/linkedin.png",
"static/media/cross-2.svg": "/static/media/cross-2.svg",
"static/media/envelope-green.svg": "/static/media/envelope-green.svg",
"static/media/delete.svg": "/static/media/delete.svg",
"static/media/auth-provider.svg": "/static/media/auth-provider.svg",
"static/media/shield.svg": "/static/media/shield.svg",
"static/media/trash-opened.svg": "/static/media/trash-opened.svg",
"static/media/checkmark.svg": "/static/media/checkmark.svg",
"index.html": "/index.html",
"static/media/facebook.png": "/static/media/facebook.png",
"static/media/loader.svg": "/static/media/loader.svg",
"static/media/star_sparkle.svg": "/static/media/star_sparkle.svg",
"static/media/close.svg": "/static/media/close.svg",
Expand Down
4 changes: 2 additions & 2 deletions build/static/css/main.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/static/css/main.css.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/static/js/bundle.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build/static/js/bundle.js.map

Large diffs are not rendered by default.

Binary file added build/static/media/active-directory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions build/static/media/apple.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions build/static/media/back-arrow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added build/static/media/bitbucket.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions build/static/media/close-active.svg

This file was deleted.

4 changes: 0 additions & 4 deletions build/static/media/close-inactive.svg

This file was deleted.

4 changes: 4 additions & 0 deletions build/static/media/cross-2.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions build/static/media/danger.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added build/static/media/discord.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions build/static/media/error-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added build/static/media/facebook.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions build/static/media/filter-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added build/static/media/github.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added build/static/media/gitlab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added build/static/media/google.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading