Recently Released.
Newly Released in the last 30 days
Replicating Behaviors for Access Levels & Statuses
In this lesson, we'll replicate everything we've done for difficulties to add our access levels and statuses.
Creating A Reusable Sorting Vue Component
In this lesson, we'll extract the drag-and-drop logic we added in the last lesson into a reusable Vue component so we can easily make use of the same behavior for our access levels & statuses.
Sorting Difficulties with Drag & Drop
In this lesson, we'll allow our user's to customize the ordering of their difficulties via drag-and-drop using VueDraggable. When they commit a change by dropping an item, we'll persist the updated sort to our database.
Reusable VineJS Exists In Organization Validation
In this lesson, we'll take our difficulty's exists in organization VineJS validation and make it reusable so we can easily use it for our statuses, access levels, courses, etc.
Replacing A Course's Deleted Difficulty
In this lesson, we'll add the ability to gracefully handle instances where a required relationship's record is being deleted. When a difficulty is being used by a course, we'll have our users select a replacement difficulty for the one being deleted.
Confirming & Deleting Difficulties
In this lesson, we'll add the ability to delete an organization's difficulties. We'll also make use of our ConfirmDeleteDialog component to confirm the deletion action with our user.
Updating Difficulties
In this lesson, we'll add the ability to update an organization's difficulties using our useResourceActions composable.
Listing & Creating Difficulties
In this lesson, we'll create a page to list the active organization's difficulties. Then, we'll add the ability to create a new difficulty and add a new color picker type to our FormInput component.
The Confirm Delete Dialog & Deleting the Active Organization
In this lesson, we'll create a reusable confirm deletion dialog and bind its state into our use resource actions composable. We'll then incorporate this all together to allow users to delete their active organization.
Editing the Active Organization
In this lesson, we'll make use of our useResourceActions composable to add the ability for our user's to edit their active organization.
Creating A UseResourceActions Composable
In this lesson, we'll create a composable that'll be in charge of maintaining form and dialog state for the resources throughout our application, starting with our organizations.
How To Add Social Authentication with AdonisJS Ally & Google
In this lesson, we'll learn how we can use AdonisJS Ally to add social authentication to our applications. We'll use Google for our demonstration, but this same process also applies to GitHub, Facebook, Discord, LinkedIn, Twitter, & more
Switching Between Organizations
In this lesson, we'll add the ability for our users to change which of their organizations is their active organization via our organization selector.
The Form Dialog Component & Adding Organizations
In this lesson, we'll add a new form dialog component that simplifies the create and update forms we'll use throughout our application. We'll then use this component to add a create organization dialog within our organization selector.
Listing the User's Organizations
In this lesson, we'll update our organization middleware to query all the user's organizations. We'll then provide everything into our Vue page state via Inertia and begin building our organization select component.
Setting & Loading the User's Active Organization
In this lesson, we'll set up our organization middleware and actions that'll be in charge of loading the user's active organization and role
Lessons.
Rendering a View for a Route
In this lesson, we'll learn how we can use the EdgeJS Template Engine to render HTML views and send them back as the response for our routes. We'll also see how we can pass dynamic data into our views from our route handler.
Linking Between Routes
In this lesson, we'll learn how we can link between the routes we have defined in our application. We'll also learn about the importance of HTTP Method verbs and resources to standardize our route definitions.
Setting Up Tailwind CSS
In this lesson, we'll learn how to install and configure PostCSS and Tailwind CSS within our AdonisJS 6 project using Vite.
Form HTTP Method Components
In this lesson, we'll create helper HTTP Method form components, further simplifying our method spoofing by allowing us to just chain the desired method off our form component.
Form Component Method Spoofing
In this lesson, we'll add simplified HTTP Method Spoofing functionality to our base form component. With this simplified functionality all we'll need to do is specify the desired HTTP Method to the method prop and it'll add it to our URL.
Form Utility Component
In this lesson, we'll start a form utility component. This component will allow us to create one central location where we can maintain our forms and provide additional functionality like simplified method spoofing.
Bordered, Active Bordered, and Plain Variants
In this lesson, we'll split out three different variants from the accordion item we made in the last lesson. We'll create bordered, active bordered, and plain accordion items.
Identifying Accordion Items
In this lesson, we'll add the ability to have more than one item on a given accordion by creating a new accordion item component.
Starting Our Accordion
In this lesson, we'll start our accordion component and gain an understanding of how to handle uniquely identifying components that may appear multiple times on a single page via the AlpineJS magic id utility.
Dismissible & Self Destructing Alerts
In this lesson, we'll focus on adding interactivity to our alerts by making them both conditionally dismissible and self-destructable.
Inverse Alert Style & Cascading Slots
In this lesson, we'll add our alert's inverse styling by extending our base alert. We'll also see how to cascade slots passed into our inverse alert to our extended base alert.
Adding Conditional Icon, Headline, and Message Content
In this lesson, we'll make our alert's icon, headline, and message completely optional. We'll also allow our icon to be provided via slot and our headline and message via prop or slot.
Adding Alert Variants
In this lesson, we'll focus on adding a light, dark, blue, green, red, and yellow variant option to our base alert.
Creating Our Base Alert
In this lesson, we'll create our base alert to serve as our building block for our content, variant, and style options. We'll also fix a pseudo-selector issue.
Adding Button Inverse and Outline Styles
In this lesson, we'll add two new button style options, inverse and outline. Both styles will extend off the work we did with our base button to keep all functionality in one concise location
Adding Button Variants
In this lesson, we'll add variant options for our base button. These will provide light and dark options as well as stateful coloring blue, green, red, and yellow.
Adding Button Size Options
In this lesson, we'll add four size options to our base button large, base, small, and extra small. These sizes will then automatically be available as we add our button variants and styles.
Adding Interactivity to our Button
In this lesson, we'll add extendable interactivity to our button using AlpineJS. We'll also walk through a demonstration of how we can utilize event propagation in AlpineJS to our advantage.
Creating Our Base Button
In this lesson, we'll create our base button component which al our other button styles will derive from. It'll be in charge of building our classes, adding interactivity, and more.
Main Slot, Named Slots, and Slot Scopes
In this lesson, we'll learn all about the main slot, how to define and use named slots, as well as passing state information from within our components to our slots using slot scopes.
Showing 41 to 60 of 87 results