* feat: Add mathematics extension and toolbar commands
This commit introduces the mathematics extension for inline and block expressions. It also adds corresponding toolbar commands and updates the drag handle menu to include "Turn Into" and "Add Node" options. The placeholder styling and blockquote styles have also been refined.
Co-authored-by: best <[email protected]>
* Update Tiptap and KaTeX dependencies
Co-authored-by: best <[email protected]>
* Downgrade svelte-tiptap to v2.2.0
Co-authored-by: best <[email protected]>
---------
Co-authored-by: Cursor Agent <[email protected]>
* chore: fix storybook build
* chore: implement theming
* community list not showing properly
* refactor: migrate Chip component to @cio/ui/custom/chip
- Updated imports for the Chip component across multiple files to use the new location in the @cio/ui package.
- Replaced the previous Chip implementation with a new version that utilizes a Badge for better styling and functionality.
- Adjusted related components to ensure consistent usage of the updated Chip component.
* fix: align course sidebar design to match organization design (#611)
* fix: align course sidebar design to match organization design
* feat: add hideSearch prop to AppHeader and update sidebar layout
---------
Co-authored-by: Rotimi Best <[email protected]>
* refactor: replace PrimaryButton with Button component across multiple files
- Updated various components to use the new Button component from @cio/ui/base/button instead of the deprecated PrimaryButton.
- Ensured consistent button usage throughout the application for improved styling and functionality.
- Removed the PrimaryButton component and its associated constants from the codebase.
* refactor: standardize button and input usage across components
- Replaced instances of deprecated components such as TextField, TextArea, and IconButton with their updated counterparts (InputField, TextareaField, and updated IconButton).
- Ensured consistent event handling by changing `onClick` to `onclick` for better alignment with Svelte's event binding conventions.
- Removed unused components and streamlined imports to enhance code maintainability and readability.
* chore: themeing, course card, use $features
* refactor: centralize UI components and update modal implementations
- Refactored various components to centralize UI elements, improving discoverability and maintainability.
- Replaced deprecated modal components with the new Dialog component for consistent modal behavior across the application.
- Removed unused components and streamlined imports to enhance code clarity and reduce complexity.
* feat: add new documentation and refactor org and lms UI components
- Introduced new documentation files for Auth Flow, Breadcrumbs Refactoring, Page and Route Creation, and Route Page Setup to enhance developer onboarding and reference.
- Refactored various UI components, including the Course Sidebar and Lesson Modal, to improve layout and functionality.
- Removed deprecated components and streamlined imports for better maintainability.
- Updated translations across multiple languages to ensure consistency in user experience.
* refactor: update UI components and improve styling consistency
- Refactored various components to enhance styling consistency, including updates to button and text color classes.
- Removed deprecated components and streamlined imports for better maintainability.
- Replaced instances of PageBody with a more flexible Page component structure across multiple routes.
- Updated translations and UI elements to align with the new design system.
- Deleted unused components to reduce code complexity and improve clarity.
* update output.css
---------
Co-authored-by: Abdulmuizz Hamzat <[email protected]>
- Added comprehensive guidelines for API route naming and structure in `ROUTE_NAMING_BEST_PRACTICES.md`.
- Updated `ARCHITECHTURE.md` to reference the new best practices document.
- Refactored course-related routes to follow new naming conventions, including changes to endpoint paths and validation schemas.
- Removed the deprecated course clone route and integrated cloning functionality directly into the course routes.
- Adjusted various API methods to ensure consistent usage of HTTP methods and parameter structures across the application.
- Create secure server-side API endpoints for course data, marks, exercises, newsfeeds, submissions, and organization management
- Implement role-based permission checking using checkUserCoursePermissions utility
- Move all client-side Supabase calls to authenticated server endpoints in /api/courses/ and /api/org/
- Add proper authentication and authorization middleware via hooks.server.ts
- Update service functions to use getAccessToken() for API authentication
- Ensure data filtering based on user roles (students only see their own data)
- Maintain backward compatibility with existing component interfaces
- Add https://*.i.posthog.com to both enforcement and reportOnly CSP
- Resolves CSP violations blocking PostHog source maps and assets
- Fixes blocked requests to recorder.js.map and surveys.js.map
This ensures PostHog analytics work properly without CSP violations.
- Add https://api.classroomio.com to connect-src for API calls
- Add https://*.r2.cloudflarestorage.com for Cloudflare R2 storage
- Add media-src directive to allow video/document loading
- Fixes CSP violations blocking video downloads and API requests
Resolves CSP errors preventing presigned URL requests and media playback.
- Add plan validation to custom domain saving (Domains.svelte)
- Add plan validation to certificate customization (Design.svelte)
- Add plan validation to document upload (AddDocumentToLesson.svelte)
- Add plan validation to video upload (UploadVideo.svelte)
- Enhance team member function validation (TeamMembers.svelte)
Prevents free users from bypassing UI restrictions via DOM manipulation.
All restricted functions now enforce server-side plan validation.
* feat: new components, deploy storybook
* refactor: simplify component field definitions and enhance button loading state
- Removed unnecessary type imports and simplified the FIELDS array definitions across multiple components in Storybook.
- Updated button component to use a loading state instead of isLoading, improving clarity and consistency in props.
- Adjusted button stories to reflect the new loading prop and enhanced the button's loading visual feedback.
- Minor CSS adjustments for better layout and styling consistency.
* chore: add field, card, password components
* feat: improve page component & update AuthUI path
* chore: update bits-ui to version 2.14.4 and all org related UI's
- Updated bits-ui dependency in pnpm-lock.yaml and package.json to version 2.14.4.
- Refactored imports for RoleBasedSecurity and UpgradeBanner components to use the new ui feature directory.
- Removed unused Course components and related files to clean up the codebase.
- Enhanced various components to improve consistency and maintainability.
* chore: move all setting buttons to the top and update auth ui styles
* chore: remove svelte-loading-spinners and replace with @cio/ui/base/spinner
- Removed all instances of svelte-loading-spinners from the project.
- Updated components to use the new Spinner from @cio/ui/base/spinner.
- Cleaned up pnpm-lock.yaml and package.json to reflect the removal of svelte-loading-spinners.
- Added new CSS animations for rocket launch effects in app.css.
- Enhanced email change flow with updated verification messages in translations.
* chore: remove supabase file upload from dashboard and move to r2
* chore: update organization API and UI components
- Added new API methods for organization plan operations and team management.
- Introduced middleware for API key authentication and organization admin checks.
- Refactored organization-related components to utilize the new API structure.
- Updated various UI components to improve consistency and maintainability.
- Enhanced error handling and validation for organization-related actions.
- Removed deprecated services and streamlined the codebase.
* feat: add README for @cio/db package and remove existingAccounts.json
* load session, load profile and organization, add create profile hook
* chore: cache session request
The trick was passing all the cookies to the backend. Previously I was only passing the better-auth.session_token and not better-auth.session_data. Read about the difference here https://www.better-auth.com/docs/concepts/cookies#custom-cookies
* feat: login, logout, onboarding, verify email, reset password.
* feat: complete change email and email verification
* feat: standardise how we make rpc calls and create org endpoints
* fix ui errors
* fix: handle potential undefined customerId and standardize avatar URL property
* refactor: standardize custom domain handling and update telegram chat ID references
* chore: add tailwind prefix to @cio/ui
this fixed the media query issues because @cio/ui classes were overriding this dashboard tailwind build
* chore: clean up org sidebar
* chore: persist mode state
* feat: implement order breadcrumbs
* chore: upgrade to better auth 1.4
* chore: address common auth flow bugs and setup app for others to setup locally.
This is because when you close the modal we redirect you to /org/siteName/courses but if you click close before we get your organization siteName the route is just /courses which redirects to a 404.
This point I have fixed 2 major issues
1. After signing in with Google auth, join a course and going to the course, when you click the back button in the page nav, it takes you to admin instead of lms
2. When you open a course landing page, click enroll, it redirects to 404 instead of the invite page.
This fix tackled a bug where if I logged out, go to org landing page, open a course and enrol then it gets redirected to a 404 page because `$currentOrg.siteName` is undefined.
The use case for this is that if a person went from course page to invite page, and isn't authenticated then the user should be redirected to login page with a redirect query param