3.x redesign
10
.gitignore
vendored
|
|
@ -1,3 +1,13 @@
|
|||
.DS_Store
|
||||
node_modules
|
||||
yarn.lock
|
||||
dist/tailwind.css
|
||||
|
||||
|
||||
build_local
|
||||
build_staging
|
||||
build_production
|
||||
build_staging
|
||||
vendor
|
||||
cache
|
||||
source/assets/build/mix-manifest.json
|
||||
12
build.sh
|
|
@ -1,10 +1,12 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
npm install
|
||||
npm run production
|
||||
cd docs
|
||||
composer install
|
||||
npm install
|
||||
npm run production
|
||||
mkdir -p ../dist/docs
|
||||
cp -R build_production/* ../dist/docs
|
||||
# cd docs
|
||||
# composer install
|
||||
# npm install
|
||||
# npm run production
|
||||
# mkdir -p ../dist/docs
|
||||
# cp -R build_production/* ../dist/docs
|
||||
1061
docs/composer.lock → composer.lock
generated
54
config.php
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
return [
|
||||
'baseUrl' => 'http://localhost:3000',
|
||||
'production' => false,
|
||||
'siteName' => 'Tenancy for Laravel',
|
||||
'siteDescription' => 'Automatically turn any Laravel application multi-tenant — no code changes needed. stancl/tenancy automatically switches database connections and all other things in the background, letting you leverage standard Laravel code into a full SaaS application. Most features out of all multi-tenancy packages. Single & multi-database tenancy.',
|
||||
|
||||
'githubUrl' => 'https://github.com/stancl/tenancy',
|
||||
|
||||
// key => display name
|
||||
'versions' => [
|
||||
'v1' => '1.x',
|
||||
'v2' => '2.x',
|
||||
'v3' => '3.x',
|
||||
],
|
||||
'defaultVersion' => 'v3',
|
||||
'prettyUrls' => true,
|
||||
|
||||
'version' => function ($page) {
|
||||
return explode('/', $page->getPath())[2];
|
||||
},
|
||||
|
||||
'link' => function ($page, $path) {
|
||||
return $page->baseUrl . '/docs/' . $page->version() . '/' . $path . ($page->prettyUrls ? '' : '.html');
|
||||
},
|
||||
|
||||
// Algolia DocSearch credentials
|
||||
'docsearchApiKey' => '53c5eaf88e819535d98f4a179c1802e1',
|
||||
'docsearchIndexName' => 'stancl-tenancy',
|
||||
|
||||
// navigation menu
|
||||
'navigation' => require_once('navigation.php'),
|
||||
|
||||
// helpers
|
||||
'isActive' => function ($page, $path) {
|
||||
return Str::endsWith(trimPath($page->getPath()), trimPath($page->version() . '/' . $path));
|
||||
},
|
||||
'isActiveParent' => function ($page, $menuItem) {
|
||||
if (is_object($menuItem) && $menuItem->children) {
|
||||
return $menuItem->children->contains(function ($child) use ($page) {
|
||||
return trimPath($page->getPath()) == trimPath($child);
|
||||
});
|
||||
}
|
||||
},
|
||||
'url' => function ($page, $path) {
|
||||
return (Str::startsWith($path, 'http://') || Str::startsWith($path, 'https://')) ? $path : '/'.trimPath($path);
|
||||
},
|
||||
'isUrl' => function ($page, $path) {
|
||||
return Str::startsWith($path, 'http://') || Str::startsWith($path, 'https://');
|
||||
},
|
||||
];
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'baseUrl' => env('JIGSAW_BASE_URL', 'https://tenancyforlaravel.com/docs'),
|
||||
'baseUrl' => env('JIGSAW_BASE_URL', 'https://tenancyforlaravel.com'),
|
||||
'production' => true,
|
||||
|
||||
'docsearchApiKey' => '53c5eaf88e819535d98f4a179c1802e1',
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'baseUrl' => env('DEPLOY_URL') . '/docs',
|
||||
'baseUrl' => env('DEPLOY_URL'),
|
||||
'production' => false,
|
||||
|
||||
// DocSearch credentials
|
||||
1
dist/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
docs/
|
||||
BIN
dist/android-chrome-192x192.png
vendored
|
Before Width: | Height: | Size: 3.9 KiB |
BIN
dist/android-chrome-256x256.png
vendored
|
Before Width: | Height: | Size: 6.6 KiB |
BIN
dist/apple-touch-icon.png
vendored
|
Before Width: | Height: | Size: 3.6 KiB |
40
dist/assets/img/tenancy_logo.svg
vendored
|
Before Width: | Height: | Size: 12 KiB |
9
dist/browserconfig.xml
vendored
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square150x150logo src="/mstile-150x150.png"/>
|
||||
<TileColor>#da532c</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
</browserconfig>
|
||||
BIN
dist/favicon-16x16.png
vendored
|
Before Width: | Height: | Size: 471 B |
BIN
dist/favicon-32x32.png
vendored
|
Before Width: | Height: | Size: 765 B |
BIN
dist/favicon.ico
vendored
|
Before Width: | Height: | Size: 15 KiB |
491
dist/index.html
vendored
BIN
dist/mstile-150x150.png
vendored
|
Before Width: | Height: | Size: 2.5 KiB |
1
dist/safari-pinned-tab.svg
vendored
|
|
@ -1 +0,0 @@
|
|||
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="442.667" height="442.667" viewBox="0 0 332.000000 332.000000"><path d="M18 166v166h296V0H18v166z"/></svg>
|
||||
|
Before Width: | Height: | Size: 164 B |
19
dist/site.webmanifest
vendored
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"name": "",
|
||||
"short_name": "",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
BIN
dist/spatie.png
vendored
|
Before Width: | Height: | Size: 5 KiB |
7
docs/.gitignore
vendored
|
|
@ -1,7 +0,0 @@
|
|||
/build_local/
|
||||
/build_staging/
|
||||
/build_production/
|
||||
/build_staging/
|
||||
/node_modules/
|
||||
/vendor/
|
||||
.DS_Store
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'baseUrl' => '',
|
||||
'production' => false,
|
||||
'siteName' => 'Tenancy for Laravel documentation',
|
||||
'siteDescription' => 'stancl/tenancy — An automatic multi-tenancy package for Laravel.',
|
||||
|
||||
// key => display name
|
||||
'versions' => [
|
||||
'v1' => '1.x',
|
||||
'v2' => '2.x',
|
||||
],
|
||||
'defaultVersion' => 'v2',
|
||||
'prettyUrls' => true,
|
||||
|
||||
'version' => function ($page) {
|
||||
return explode('/', $page->getPath())[1];
|
||||
},
|
||||
|
||||
'link' => function ($page, $path) {
|
||||
return $page->baseUrl . '/' . $page->version() . '/' . $path . ($page->prettyUrls ? '' : '.html');
|
||||
},
|
||||
|
||||
// Algolia DocSearch credentials
|
||||
'docsearchApiKey' => '',
|
||||
'docsearchIndexName' => '',
|
||||
|
||||
// navigation menu
|
||||
'navigation' => require_once('navigation.php'),
|
||||
|
||||
// helpers
|
||||
'isActive' => function ($page, $path) {
|
||||
return ends_with(trimPath($page->getPath()), trimPath($page->version() . '/' . $path));
|
||||
},
|
||||
'isActiveParent' => function ($page, $menuItem) {
|
||||
if (is_object($menuItem) && $menuItem->children) {
|
||||
return $menuItem->children->contains(function ($child) use ($page) {
|
||||
return trimPath($page->getPath()) == trimPath($child);
|
||||
});
|
||||
}
|
||||
},
|
||||
'url' => function ($page, $path) {
|
||||
return (starts_with($path, 'http://') || starts_with($path, 'https://')) ? $path : '/'.trimPath($path);
|
||||
},
|
||||
'isUrl' => function ($page, $path) {
|
||||
return starts_with($path, 'http://') || starts_with($path, 'https://');
|
||||
},
|
||||
];
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'v1' => [
|
||||
'Getting Started' => [
|
||||
'url' => 'getting-started',
|
||||
'children' => [
|
||||
'Installation' => 'installation',
|
||||
'Storage Drivers' => 'storage-drivers',
|
||||
'This Package vs Others' => 'difference-between-this-package-and-others',
|
||||
'Configuration' => 'configuration',
|
||||
],
|
||||
],
|
||||
'Usage' => [
|
||||
'url' => 'usage',
|
||||
'children' => [
|
||||
'Creating Tenants' => 'creating-tenants',
|
||||
'Tenant Routes' => 'tenant-routes',
|
||||
'Tenant Storage' => 'tenant-storage',
|
||||
'Tenant Manager' => 'tenant-manager',
|
||||
'Console Commands' => 'console-commands',
|
||||
],
|
||||
],
|
||||
'Digging Deeper' => [
|
||||
'url' => 'digging-deeper',
|
||||
'children' => [
|
||||
'Middleware Configuration' => 'middleware-configuration',
|
||||
'Custom Database Names' => 'custom-database-names',
|
||||
'Filesystem Tenancy' => 'filesystem-tenancy',
|
||||
'Jobs & Queues' => 'jobs-queues',
|
||||
'Event System' => 'event-system',
|
||||
'Tenancy Initialization' => 'tenancy-initialization',
|
||||
'Application Testing' => 'application-testing',
|
||||
'Writing Storage Drivers' => 'writing-storage-drivers',
|
||||
'Development' => 'development',
|
||||
],
|
||||
],
|
||||
'Integrations' => [
|
||||
'url' => 'integrations',
|
||||
'children' => [
|
||||
'Telescope' => 'telescope',
|
||||
'Horizon' => 'horizon',
|
||||
],
|
||||
],
|
||||
'Tips' => [
|
||||
'children' => [
|
||||
'HTTPS Certificates' => 'https-certificates',
|
||||
'Misc' => 'misc-tips',
|
||||
],
|
||||
],
|
||||
'Stay Updated' => 'stay-updated',
|
||||
'GitHub' => 'https://github.com/stancl/tenancy',
|
||||
],
|
||||
'v2' => [
|
||||
'Upgrading from 1.x' => 'upgrading',
|
||||
'Getting Started' => [
|
||||
'url' => 'getting-started',
|
||||
'children' => [
|
||||
'Installation' => 'installation',
|
||||
'Storage Drivers' => 'storage-drivers',
|
||||
'This Package vs Others' => 'difference-between-this-package-and-others',
|
||||
'Configuration' => 'configuration',
|
||||
],
|
||||
],
|
||||
'Usage' => [
|
||||
'url' => 'usage',
|
||||
'children' => [
|
||||
'Creating Tenants' => 'creating-tenants',
|
||||
'Tenant Migrations'=> 'tenant-migrations',
|
||||
'Tenant Routes' => 'tenant-routes',
|
||||
'Tenant Storage' => 'tenant-storage',
|
||||
'Tenant Manager' => 'tenant-manager',
|
||||
'Console Commands' => 'console-commands',
|
||||
],
|
||||
],
|
||||
'Digging Deeper' => [
|
||||
'url' => 'digging-deeper',
|
||||
'children' => [
|
||||
'Tenants' => 'tenants',
|
||||
'Central App' => 'central-app',
|
||||
'Universal Routes' => 'universal-routes',
|
||||
'Cached Tenant Lookup' => 'cached-tenant-lookup',
|
||||
'PostgreSQL schema separation' => 'postgres-schema-separation',
|
||||
'Custom Database Names' => 'custom-database-names',
|
||||
'Custom DB Connections' => 'custom-db-connections',
|
||||
'Disabling DB Creation' => 'disabling-db-creation',
|
||||
'Filesystem Tenancy' => 'filesystem-tenancy',
|
||||
'Jobs & Queues' => 'jobs-queues',
|
||||
'Hooks / Events' => 'hooks',
|
||||
'Tenancy Initialization' => 'tenancy-initialization',
|
||||
'Tenancy Bootstrappers' => 'tenancy-bootstrappers',
|
||||
'Application Testing' => 'application-testing',
|
||||
'Tenant-Aware Commands' => 'tenant-aware-commands',
|
||||
'Middleware Configuration' => 'middleware-configuration',
|
||||
'Writing Storage Drivers' => 'writing-storage-drivers',
|
||||
],
|
||||
],
|
||||
'Optional Features' => [
|
||||
'url' => 'features',
|
||||
'children' => [
|
||||
'Tenant Config' => 'features/tenant-config',
|
||||
'Timestamps' => 'features/timestamps',
|
||||
'Tenant Redirect' => 'features/tenant-redirect',
|
||||
],
|
||||
],
|
||||
'Integrations' => [
|
||||
'url' => 'integrations',
|
||||
'children' => [
|
||||
'Spatie Packages' => 'spatie',
|
||||
'Horizon' => 'horizon',
|
||||
'Passport' => 'passport',
|
||||
'Nova' => 'nova',
|
||||
'Telescope' => 'telescope',
|
||||
'Livewire' => 'livewire',
|
||||
],
|
||||
],
|
||||
'Tips' => [
|
||||
'children' => [
|
||||
'HTTPS Certificates' => 'https-certificates',
|
||||
'Misc' => 'misc-tips',
|
||||
],
|
||||
],
|
||||
'Stay Updated' => 'stay-updated',
|
||||
'GitHub' => 'https://github.com/stancl/tenancy',
|
||||
'Tutorial' => 'https://samuelstancl.me/blog/make-your-laravel-app-multi-tenant-without-changing-a-line-of-code/',
|
||||
],
|
||||
];
|
||||
13944
docs/package-lock.json
generated
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"local": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --env=local --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"staging": "cross-env NODE_ENV=staging node_modules/webpack/bin/webpack.js --progress --hide-modules --env=staging --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --env=production --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"dev": "npm run local",
|
||||
"watch": "npm run local -- --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"browser-sync": "^2.26.3",
|
||||
"browser-sync-webpack-plugin": "^2.0.1",
|
||||
"cross-env": "^3.2.3",
|
||||
"docsearch.js": "^2.6.2",
|
||||
"extra-watch-webpack-plugin": "^1.0.3",
|
||||
"hasbin": "^1.2.3",
|
||||
"highlight.js": "^9.13.1",
|
||||
"laravel-mix": "^4.0.0",
|
||||
"laravel-mix-purgecss": "^3.0.0",
|
||||
"node-cmd": "^3.0.0",
|
||||
"sass": "^1.15.2",
|
||||
"sass-loader": "^7.1.0",
|
||||
"tailwindcss": "^0.7.2",
|
||||
"vue-template-compiler": "^2.5.21",
|
||||
"yargs": "^4.6.0"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
# Jigsaw Docs Starter Template
|
||||
|
||||
This is a starter template for creating a beautiful, customizable documentation site for your project with minimal effort. You’ll only have to change a few settings and you’re ready to go.
|
||||
|
||||
[View a preview of the docs template.](http://jigsaw-docs-staging.tighten.co/)
|
||||
|
||||
## Installation
|
||||
|
||||
After installing Jigsaw, run the following command from your project directory:
|
||||
|
||||
```bash
|
||||
./vendor/bin/jigsaw init docs
|
||||
```
|
||||
|
||||
This starter template includes samples of common page types, and comes pre-configured with:
|
||||
|
||||
- A fully responsive navigation bar
|
||||
- A sidebar navigation menu
|
||||
- [Tailwind CSS](https://tailwindcss.com/), a utility CSS framework that allows you to customize your design without touching a line of CSS
|
||||
- [Purgecss](https://www.purgecss.com/) to remove unused selectors from your CSS, resulting in smaller CSS files
|
||||
- Syntax highlighting using [highlight.js](https://highlightjs.org/)
|
||||
- A script that automatically generates a `sitemap.xml` file
|
||||
- A search bar powered by [Algolia DocSearch](https://community.algolia.com/docsearch/), and instructions on how to get started with their free indexing service
|
||||
- A custom 404 page
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### Configuring your new site
|
||||
|
||||
As with all Jigsaw sites, configuration settings can be found in `config.php`; you can update the variables in that file with settings specific to your project. You can also add new configuration variables there to use across your site; take a look at the [Jigsaw documentation](http://jigsaw.tighten.co/docs/site-variables/) to learn more.
|
||||
|
||||
```php
|
||||
// config.php
|
||||
return [
|
||||
'baseUrl' => 'https://my-awesome-jigsaw-site.com/',
|
||||
'production' => false,
|
||||
'siteName' => 'My Site',
|
||||
'siteDescription' => 'Give your documentation a boost with Jigsaw.',
|
||||
'docsearchApiKey' => '',
|
||||
'docsearchIndexName' => '',
|
||||
'navigation' => require_once('navigation.php'),
|
||||
];
|
||||
```
|
||||
|
||||
> Tip: This configuration file is also where you’ll define any "collections" (for example, a collection of the contributors to your site, or a collection of blog posts). Check out the official [Jigsaw documentation](https://jigsaw.tighten.co/docs/collections/) to learn more.
|
||||
|
||||
---
|
||||
|
||||
### Adding Content
|
||||
|
||||
You can write your content using a [variety of file types](http://jigsaw.tighten.co/docs/content-other-file-types/). By default, this starter template expects your content to be located in the `source/docs` folder. If you change this, be sure to update the URL references in `navigation.php`.
|
||||
|
||||
The first section of each content page contains a YAML header that specifies how it should be rendered. The `title` attribute is used to dynamically generate HTML `title` and OpenGraph tags for each page. The `extends` attribute defines which parent Blade layout this content file will render with (e.g. `_layouts.documentation` will render with `source/_layouts/documentation.blade.php`), and the `section` attribute defines the Blade "section" that expects this content to be placed into it.
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: Navigation
|
||||
description: Building a navigation menu for your site
|
||||
extends: _layouts.documentation
|
||||
section: content
|
||||
---
|
||||
```
|
||||
|
||||
[Read more about Jigsaw layouts.](https://jigsaw.tighten.co/docs/content-blade/)
|
||||
|
||||
---
|
||||
|
||||
### Adding Assets
|
||||
|
||||
Any assets that need to be compiled (such as JavaScript, Less, or Sass files) can be added to the `source/_assets/` directory, and Laravel Mix will process them when running `npm run local` or `npm run production`. The processed assets will be stored in `/source/assets/build/` (note there is no underscore on this second `assets` directory).
|
||||
|
||||
Then, when Jigsaw builds your site, the entire `/source/assets/` directory containing your built files (and any other directories containing static assets, such as images or fonts, that you choose to store there) will be copied to the destination build folders (`build_local`, on your local machine).
|
||||
|
||||
Files that don't require processing (such as images and fonts) can be added directly to `/source/assets/`.
|
||||
|
||||
[Read more about compiling assets in Jigsaw using Laravel Mix.](http://jigsaw.tighten.co/docs/compiling-assets/)
|
||||
|
||||
---
|
||||
|
||||
## Building Your Site
|
||||
|
||||
Now that you’ve edited your configuration variables and know how to customize your styles and content, let’s build the site.
|
||||
|
||||
```bash
|
||||
# build static files with Jigsaw
|
||||
./vendor/bin/jigsaw build
|
||||
|
||||
# compile assets with Laravel Mix
|
||||
# options: dev, staging, production
|
||||
npm run dev
|
||||
```
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
@extends('_layouts.master')
|
||||
|
||||
@section('body')
|
||||
<div class="flex flex-col items-center mt-32 text-grey-darker">
|
||||
<h1 class="text-6xl font-light leading-none mb-2">404</h1>
|
||||
|
||||
<h2 class="text-3xl">Page not found</h2>
|
||||
|
||||
<hr class="block w-full max-w-sm mx-auto my-8 border">
|
||||
|
||||
<p class="text-xl">
|
||||
Need to update this page? See the <a title="404 Page Documentation" href="https://jigsaw.tighten.co/docs/custom-404-page/"> Jigsaw documentation</a>.
|
||||
</p>
|
||||
</div>
|
||||
@endsection
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
body {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
a {
|
||||
@apply .font-semibold;
|
||||
@apply .no-underline;
|
||||
@apply .text-indigo-700;
|
||||
|
||||
&:hover {
|
||||
@apply .text-indigo-500;
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
@apply .border-blue-light;
|
||||
@apply .border-l-4;
|
||||
@apply .font-normal;
|
||||
@apply .italic;
|
||||
@apply .my-8;
|
||||
@apply .pl-6;
|
||||
@apply .text-grey-darker;
|
||||
@apply .text-lg;
|
||||
}
|
||||
|
||||
code {
|
||||
@apply .bg-grey-light;
|
||||
@apply .px-2;
|
||||
@apply .py-px;
|
||||
@apply .rounded;
|
||||
@apply .text-sm;
|
||||
}
|
||||
|
||||
code.hljs {
|
||||
@apply .bg-transparent;
|
||||
@apply .p-0;
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-keyword,
|
||||
.hljs-meta {
|
||||
@apply .font-normal;
|
||||
@apply .roman;
|
||||
}
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
@apply .leading-tight;
|
||||
@apply .mb-4;
|
||||
@apply .mt-8;
|
||||
@apply .text-black;
|
||||
|
||||
&:first-child {
|
||||
@apply .mt-0;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply .font-extrabold;
|
||||
@apply .text-5xl;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply .font-bold;
|
||||
@apply .text-4xl;
|
||||
}
|
||||
|
||||
h3 {
|
||||
@apply .font-bold;
|
||||
@apply .text-3xl;
|
||||
}
|
||||
|
||||
h4 {
|
||||
@apply .font-normal;
|
||||
@apply .text-2xl;
|
||||
}
|
||||
|
||||
h5 {
|
||||
@apply .font-normal;
|
||||
@apply .text-xl;
|
||||
}
|
||||
|
||||
h6 {
|
||||
@apply .font-light;
|
||||
@apply .text-lg;
|
||||
}
|
||||
|
||||
hr {
|
||||
@apply .border-b;
|
||||
@apply .border-blue-lighter;
|
||||
@apply .my-12;
|
||||
@apply .rounded-full;
|
||||
}
|
||||
|
||||
li {
|
||||
ul,
|
||||
ol {
|
||||
@apply .my-0;
|
||||
}
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
@apply .my-4;
|
||||
}
|
||||
|
||||
p {
|
||||
@apply .my-6;
|
||||
}
|
||||
|
||||
pre {
|
||||
@apply .bg-grey-lighter;
|
||||
@apply .leading-loose;
|
||||
@apply .my-6;
|
||||
@apply .overflow-x-auto;
|
||||
@apply .p-4;
|
||||
@apply .rounded;
|
||||
@apply .shadow;
|
||||
@apply .text-base;
|
||||
|
||||
code {
|
||||
@apply .bg-transparent;
|
||||
@apply .block;
|
||||
@apply .p-0;
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
// Add your custom styles here
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
.nav-menu {
|
||||
@apply .-mt-12;
|
||||
@apply .-mx-8;
|
||||
@apply .bg-grey-lighter;
|
||||
@apply .mb-8;
|
||||
@apply .pb-4;
|
||||
@apply .pt-8;
|
||||
@apply .px-4;
|
||||
@apply .shadow;
|
||||
@apply .w-auto;
|
||||
|
||||
@screen lg {
|
||||
@apply .-mx-4;
|
||||
@apply .bg-transparent;
|
||||
@apply .block;
|
||||
@apply .border-b-0;
|
||||
@apply .mt-1;
|
||||
@apply .pl-0;
|
||||
@apply .pr-4;
|
||||
@apply .pt-0;
|
||||
@apply .shadow-none;
|
||||
@apply .w-1/4;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-menu__item {
|
||||
@apply .block;
|
||||
@apply .list-reset;
|
||||
@apply .no-underline;
|
||||
@apply .mb-3;
|
||||
@apply .mt-0;
|
||||
@apply .text-grey-darkest;
|
||||
@apply .text-sm;
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
@tailwind preflight;
|
||||
@tailwind components;
|
||||
|
||||
// Code syntax highlighting,
|
||||
// powered by https://highlightjs.org
|
||||
@import '~highlight.js/styles/a11y-light.css';
|
||||
|
||||
@import 'base';
|
||||
@import 'navigation';
|
||||
@import 'documentation';
|
||||
@import 'search';
|
||||
|
||||
@tailwind utilities;
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
@extends('_layouts.master')
|
||||
|
||||
@section('nav-toggle')
|
||||
@include('_nav.menu-toggle')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
<section class="container max-w-4xl mx-auto px-6 md:px-8 py-4">
|
||||
<div class="flex flex-col lg:flex-row">
|
||||
<nav id="js-nav-menu" class="nav-menu hidden lg:block">
|
||||
@include('_nav.menu', ['items' => $page->navigation[$page->version()]])
|
||||
</nav>
|
||||
|
||||
<div class="w-full lg:w-3/5 break-words pb-16 lg:pl-4" v-pre>
|
||||
@yield('content')
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@endsection
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="description" content="{{ $page->description ?? $page->siteDescription }}">
|
||||
|
||||
<meta name="theme-color" content="#4c51bf">
|
||||
|
||||
<meta property="og:site_name" content="{{ $page->siteName }}"/>
|
||||
<meta property="og:title" content="{{ $page->title ? $page->title . ' | ' : '' }}{{ $page->siteName }}"/>
|
||||
<meta property="og:description" content="{{ $page->description ?? $page->siteDescription }} {{ $page->siteName }}"/>
|
||||
<meta property="og:url" content="{{ $page->getUrl() }}"/>
|
||||
<meta property="og:image" content="/assets/img/logo.png"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
|
||||
<meta name="twitter:image:alt" content="{{ $page->siteName }}">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<meta name="docsearch:language" content="en" />
|
||||
<meta name="docsearch:version" content="{{ $page->version() }}" />
|
||||
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<meta name="generator" content="tighten_jigsaw_doc">
|
||||
@endif
|
||||
|
||||
<title>{{ $page->title ? $page->title . ' | ' : '' }}{{ $page->siteName }}</title>
|
||||
|
||||
<link rel="home" href="{{ $page->baseUrl }}">
|
||||
|
||||
@stack('meta')
|
||||
|
||||
@if ($page->production)
|
||||
<!-- Insert analytics code here -->
|
||||
@endif
|
||||
|
||||
<link href="https://fonts.googleapis.com/css?family=Nunito+Sans:300,300i,400,400i,700,700i,800,800i" rel="stylesheet">
|
||||
<link rel="stylesheet" href="{{ $page->baseUrl . mix('css/main.css', 'assets/build') }}">
|
||||
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
|
||||
@endif
|
||||
</head>
|
||||
|
||||
<body class="flex flex-col justify-between min-h-screen bg-grey-lightest text-grey-darkest leading-normal font-sans">
|
||||
<header class="flex items-center shadow bg-indigo-700 border-b h-24 mb-8 py-4" role="banner">
|
||||
<div class="container flex items-center max-w-4xl mx-auto px-4 lg:px-8">
|
||||
<div class="flex items-center">
|
||||
<a href="/" title="{{ $page->siteName }} home" class="inline-flex items-center">
|
||||
<img class="h-10 md:h-16 mr-3" src="/assets/img/tenancy_logo.svg" alt="{{ $page->siteName }}" />
|
||||
|
||||
{{-- <h1 class="text-lg md:text-2xl text-blue-darkest font-semibold hover:text-blue-dark my-0 pr-4">{{ $page->siteName }}</h1> --}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-1 justify-end items-center text-right md:pl-10">
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
@include('_nav.search-input')
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="flex flex-1 justify-end items-center text-right md:pl-10">
|
||||
<select id="versionSelect" class="bg-grey-lightest border-solid border rounded">
|
||||
@foreach($page->versions as $version => $name)
|
||||
<option
|
||||
value="{{ $page->baseUrl . '/' . $version }}/"
|
||||
@if($page->version() === $version)
|
||||
selected
|
||||
@endif
|
||||
>
|
||||
{{ $name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@yield('nav-toggle')
|
||||
</header>
|
||||
|
||||
<main role="main" class="w-full flex-auto">
|
||||
@yield('body')
|
||||
</main>
|
||||
|
||||
<script src="{{ $page->baseUrl . mix('js/main.js', 'assets/build') }}"></script>
|
||||
|
||||
@stack('scripts')
|
||||
|
||||
<footer class="bg-white text-center text-sm mt-12 py-4" role="contentinfo">
|
||||
<ul class="flex flex-col md:flex-row justify-center list-reset">
|
||||
<li class="md:mr-2">
|
||||
© <a href="https://github.com/stancl" title="Samuel Štancl">Samuel Štancl</a> {{ date('Y') }}.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Built with <a href="http://jigsaw.tighten.co" title="Jigsaw by Tighten">Jigsaw</a>
|
||||
and <a href="https://tailwindcss.com" title="Tailwind CSS, a utility-first CSS framework">Tailwind CSS</a>.
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
<script>
|
||||
document.getElementById('versionSelect').addEventListener('change', function () {
|
||||
window.location = document.getElementById('versionSelect').value;
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
<button class="flex justify-center items-center bg-indigo-500 border border-indigo-600 h-10 mr-4 px-5 rounded-full lg:hidden focus:outline-none"
|
||||
onclick="navMenu.toggle()"
|
||||
>
|
||||
<svg id="js-nav-menu-show" xmlns="http://www.w3.org/2000/svg"
|
||||
class="fill-current text-white h-9 w-4" viewBox="0 0 32 32"
|
||||
>
|
||||
<path d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/>
|
||||
</svg>
|
||||
|
||||
<svg id="js-nav-menu-hide" xmlns="http://www.w3.org/2000/svg"
|
||||
class="hidden fill-current text-white h-9 w-4" viewBox="0 0 36 30"
|
||||
>
|
||||
<polygon points="32.8,4.4 28.6,0.2 18,10.8 7.4,0.2 3.2,4.4 13.8,15 3.2,25.6 7.4,29.8 18,19.2 28.6,29.8 32.8,25.6 22.2,15 "/>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
const navMenu = {
|
||||
toggle() {
|
||||
const menu = document.getElementById('js-nav-menu');
|
||||
menu.classList.toggle('hidden');
|
||||
menu.classList.toggle('lg:block');
|
||||
document.getElementById('js-nav-menu-hide').classList.toggle('hidden');
|
||||
document.getElementById('js-nav-menu-show').classList.toggle('hidden');
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@endpush
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
<button
|
||||
title="Start searching"
|
||||
type="button"
|
||||
class="flex md:hidden bg-grey-lightest hover:bg-blue-lightest justify-center items-center border border-grey rounded-full focus:outline-none h-10 px-3"
|
||||
onclick="searchInput.toggle()"
|
||||
>
|
||||
<img src="/docs/assets/img/magnifying-glass.svg" alt="search icon" class="h-4 w-4 max-w-none">
|
||||
</button>
|
||||
|
||||
<div id="js-search-input" class="docsearch-input__wrapper hidden md:block bg-indigo-700">
|
||||
<label for="search" class="hidden">Search</label>
|
||||
|
||||
<input
|
||||
id="docsearch-input"
|
||||
class="docsearch-input relative block h-10 transition-fast w-full lg:w-3/4 mx-auto bg-grey-lightest outline-none rounded-full text-grey-darker border border-grey focus:border-blue-light px-4 pb-0"
|
||||
name="docsearch"
|
||||
type="text"
|
||||
placeholder="Search"
|
||||
>
|
||||
|
||||
<button
|
||||
class="md:hidden absolute pin-t pin-r h-full font-light text-3xl text-blue hover:text-blue-dark focus:outline-none -mt-px pr-7"
|
||||
onclick="searchInput.toggle()"
|
||||
>×</button>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<script type="text/javascript">
|
||||
docsearch({
|
||||
apiKey: '{{ $page->docsearchApiKey }}',
|
||||
indexName: '{{ $page->docsearchIndexName }}',
|
||||
algoliaOptions: { 'facetFilters': ["version:{{ $page->version() }}", "language:en"] },
|
||||
inputSelector: '#docsearch-input',
|
||||
debug: false // Set debug to true if you want to inspect the dropdown
|
||||
});
|
||||
|
||||
const searchInput = {
|
||||
toggle() {
|
||||
const menu = document.getElementById('js-search-input');
|
||||
menu.classList.toggle('hidden');
|
||||
menu.classList.toggle('md:block');
|
||||
document.getElementById('docsearch-input').focus();
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@endif
|
||||
@endpush
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"/js/main.js": "/js/main.js?id=559633482baac87a89b5",
|
||||
"/css/main.css": "/css/main.css?id=ced4dbb44a4720d57697",
|
||||
"/js/main.js.map": "/js/main.js.map?id=b4e687f67eff50c3fe64"
|
||||
}
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 551 B |
|
|
@ -1,12 +0,0 @@
|
|||
<svg width="40px" height="45px" viewBox="0 0 40 45" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="04-docs-start" transform="translate(-170.000000, -28.000000)">
|
||||
<g id="Group" transform="translate(170.000000, 28.000000)">
|
||||
<polygon id="Rectangle-3-Copy" fill="#338CD6" points="20 0 40 10 40 35 20 45 0 35 0 10"></polygon>
|
||||
<polygon id="Rectangle-3-Copy-2" fill="#1C3E5A" points="20 20 20 45 0 35 0 10"></polygon>
|
||||
<polygon id="Rectangle-3" fill="#B9DAF5" points="20 0 40 10 20 20 0 10"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 762 B |
|
|
@ -1 +0,0 @@
|
|||
../../../../dist/assets/img/tenancy_logo.svg
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
982
docs/tailwind.js
|
|
@ -1,982 +0,0 @@
|
|||
/*
|
||||
|
||||
Tailwind - The Utility-First CSS Framework
|
||||
|
||||
A project by Adam Wathan (@adamwathan), Jonathan Reinink (@reinink),
|
||||
David Hemphill (@davidhemphill) and Steve Schoger (@steveschoger).
|
||||
|
||||
Welcome to the Tailwind config file. This is where you can customize
|
||||
Tailwind specifically for your project. Don't be intimidated by the
|
||||
length of this file. It's really just a big JavaScript object and
|
||||
we've done our very best to explain each section.
|
||||
|
||||
View the full documentation at https://tailwindcss.com.
|
||||
|
||||
|
||||
|-------------------------------------------------------------------------------
|
||||
| The default config
|
||||
|-------------------------------------------------------------------------------
|
||||
|
|
||||
| This variable contains the default Tailwind config. You don't have
|
||||
| to use it, but it can sometimes be helpful to have available. For
|
||||
| example, you may choose to merge your custom configuration
|
||||
| values with some of the Tailwind defaults.
|
||||
|
|
||||
*/
|
||||
|
||||
// let defaultConfig = require('tailwindcss/defaultConfig')()
|
||||
|
||||
|
||||
/*
|
||||
|-------------------------------------------------------------------------------
|
||||
| Colors https://tailwindcss.com/docs/colors
|
||||
|-------------------------------------------------------------------------------
|
||||
|
|
||||
| Here you can specify the colors used in your project. To get you started,
|
||||
| we've provided a generous palette of great looking colors that are perfect
|
||||
| for prototyping, but don't hesitate to change them for your project. You
|
||||
| own these colors, nothing will break if you change everything about them.
|
||||
|
|
||||
| We've used literal color names ("red", "blue", etc.) for the default
|
||||
| palette, but if you'd rather use functional names like "primary" and
|
||||
| "secondary", or even a numeric scale like "100" and "200", go for it.
|
||||
|
|
||||
*/
|
||||
|
||||
let colors = {
|
||||
'transparent': 'transparent',
|
||||
|
||||
'black': '#1f2e41',
|
||||
'grey-darkest': '#3e4852',
|
||||
'grey-darker': '#606f7b',
|
||||
'grey-dark': '#8795a1',
|
||||
'grey': '#b8c2cc',
|
||||
'grey-light': '#e2e8ee',
|
||||
'grey-lighter': '#ecf0f3',
|
||||
'grey-lightest': '#f9f9f9',
|
||||
'white': '#ffffff',
|
||||
|
||||
'red-darkest': '#3b0d0c',
|
||||
'red-darker': '#621b18',
|
||||
'red-dark': '#cc1f1a',
|
||||
'red': '#e3342f',
|
||||
'red-light': '#ef5753',
|
||||
'red-lighter': '#f9acaa',
|
||||
'red-lightest': '#fcebea',
|
||||
|
||||
'orange-darkest': '#462a16',
|
||||
'orange-darker': '#613b1f',
|
||||
'orange-dark': '#de751f',
|
||||
'orange': '#f6993f',
|
||||
'orange-light': '#faad63',
|
||||
'orange-lighter': '#fcd9b6',
|
||||
'orange-lightest': '#fff5eb',
|
||||
|
||||
'yellow-darkest': '#453411',
|
||||
'yellow-darker': '#684f1d',
|
||||
'yellow-dark': '#f2d024',
|
||||
'yellow': '#ffed4a',
|
||||
'yellow-light': '#fff382',
|
||||
'yellow-lighter': '#fff9c2',
|
||||
'yellow-lightest': '#fcfbeb',
|
||||
|
||||
'green-darkest': '#0f2f21',
|
||||
'green-darker': '#1a4731',
|
||||
'green-dark': '#1f9d55',
|
||||
'green': '#38c172',
|
||||
'green-light': '#51d88a',
|
||||
'green-lighter': '#a2f5bf',
|
||||
'green-lightest': '#e3fcec',
|
||||
|
||||
'teal-darkest': '#0d3331',
|
||||
'teal-darker': '#20504f',
|
||||
'teal-dark': '#38a89d',
|
||||
'teal': '#4dc0b5',
|
||||
'teal-light': '#64d5ca',
|
||||
'teal-lighter': '#a0f0ed',
|
||||
'teal-lightest': '#e8fffe',
|
||||
|
||||
'blue-darkest': '#24548f',
|
||||
'blue-darker': '#1a4d8c',
|
||||
'blue-dark': '#0174d4',
|
||||
'blue': '#3490dc',
|
||||
'blue-light': '#6cb2eb',
|
||||
'blue-lighter': '#bcdefa',
|
||||
'blue-lightest': '#eff8ff',
|
||||
|
||||
'indigo-darkest': '#191e38',
|
||||
'indigo-darker': '#2f365f',
|
||||
'indigo-dark': '#5661b3',
|
||||
'indigo': '#6574cd',
|
||||
'indigo-light': '#7886d7',
|
||||
'indigo-lighter': '#b2b7ff',
|
||||
'indigo-lightest': '#e6e8ff',
|
||||
|
||||
'indigo-100': '#ebf4ff',
|
||||
'indigo-200': '#c3dafe',
|
||||
'indigo-300': '#a3bffa',
|
||||
'indigo-400': '#7f9cf5',
|
||||
'indigo-500': '#667eea',
|
||||
'indigo-600': '#5a67d8',
|
||||
'indigo-700': '#4c51bf',
|
||||
'indigo-800': '#434190',
|
||||
'indigo-900': '#3c366b',
|
||||
|
||||
'purple-darkest': '#21183c',
|
||||
'purple-darker': '#382b5f',
|
||||
'purple-dark': '#794acf',
|
||||
'purple': '#9561e2',
|
||||
'purple-light': '#a779e9',
|
||||
'purple-lighter': '#d6bbfc',
|
||||
'purple-lightest': '#f3ebff',
|
||||
|
||||
'pink-darkest': '#451225',
|
||||
'pink-darker': '#6f213f',
|
||||
'pink-dark': '#eb5286',
|
||||
'pink': '#f66d9b',
|
||||
'pink-light': '#fa7ea8',
|
||||
'pink-lighter': '#ffbbca',
|
||||
'pink-lightest': '#ffebef',
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Colors https://tailwindcss.com/docs/colors
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| The color palette defined above is also assigned to the "colors" key of
|
||||
| your Tailwind config. This makes it easy to access them in your CSS
|
||||
| using Tailwind's config helper. For example:
|
||||
|
|
||||
| .error { color: config('colors.red') }
|
||||
|
|
||||
*/
|
||||
|
||||
colors: colors,
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Screens https://tailwindcss.com/docs/responsive-design
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Screens in Tailwind are translated to CSS media queries. They define the
|
||||
| responsive breakpoints for your project. By default Tailwind takes a
|
||||
| "mobile first" approach, where each screen size represents a minimum
|
||||
| viewport width. Feel free to have as few or as many screens as you
|
||||
| want, naming them in whatever way you'd prefer for your project.
|
||||
|
|
||||
| Tailwind also allows for more complex screen definitions, which can be
|
||||
| useful in certain situations. Be sure to see the full responsive
|
||||
| documentation for a complete list of options.
|
||||
|
|
||||
| Class name: .{screen}:{utility}
|
||||
|
|
||||
*/
|
||||
|
||||
screens: {
|
||||
'sm': '576px',
|
||||
'md': '768px',
|
||||
'lg': '992px',
|
||||
'xl': '1200px',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Fonts https://tailwindcss.com/docs/fonts
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your project's font stack, or font families.
|
||||
| Keep in mind that Tailwind doesn't actually load any fonts for you.
|
||||
| If you're using custom fonts you'll need to import them prior to
|
||||
| defining them here.
|
||||
|
|
||||
| By default we provide a native font stack that works remarkably well on
|
||||
| any device or OS you're using, since it just uses the default fonts
|
||||
| provided by the platform.
|
||||
|
|
||||
| Class name: .font-{name}
|
||||
|
|
||||
*/
|
||||
|
||||
fonts: {
|
||||
'sans': [
|
||||
'Nunito Sans',
|
||||
'system-ui',
|
||||
'BlinkMacSystemFont',
|
||||
'-apple-system',
|
||||
'Segoe UI',
|
||||
'Roboto',
|
||||
'Oxygen',
|
||||
'Ubuntu',
|
||||
'Cantarell',
|
||||
'Fira Sans',
|
||||
'Droid Sans',
|
||||
'Helvetica Neue',
|
||||
'sans-serif',
|
||||
],
|
||||
'serif': [
|
||||
'Constantia',
|
||||
'Lucida Bright',
|
||||
'Lucidabright',
|
||||
'Lucida Serif',
|
||||
'Lucida',
|
||||
'DejaVu Serif',
|
||||
'Bitstream Vera Serif',
|
||||
'Liberation Serif',
|
||||
'Georgia',
|
||||
'serif',
|
||||
],
|
||||
'mono': [
|
||||
'Menlo',
|
||||
'Monaco',
|
||||
'Consolas',
|
||||
'Liberation Mono',
|
||||
'Courier New',
|
||||
'monospace',
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Text sizes https://tailwindcss.com/docs/text-sizing
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your text sizes. Name these in whatever way
|
||||
| makes the most sense to you. We use size names by default, but
|
||||
| you're welcome to use a numeric scale or even something else
|
||||
| entirely.
|
||||
|
|
||||
| By default Tailwind uses the "rem" unit type for most measurements.
|
||||
| This allows you to set a root font size which all other sizes are
|
||||
| then based on. That said, you are free to use whatever units you
|
||||
| prefer, be it rems, ems, pixels or other.
|
||||
|
|
||||
| Class name: .text-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
textSizes: {
|
||||
'xs': '.8rem',
|
||||
'sm': '.925rem',
|
||||
'base': '1rem',
|
||||
'lg': '1.125rem',
|
||||
'xl': '1.25rem',
|
||||
'2xl': '1.5rem',
|
||||
'3xl': '1.75rem',
|
||||
'4xl': '2.125rem',
|
||||
'5xl': '2.625rem',
|
||||
'6xl': '10rem',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Font weights https://tailwindcss.com/docs/font-weight
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your font weights. We've provided a list of
|
||||
| common font weight names with their respective numeric scale values
|
||||
| to get you started. It's unlikely that your project will require
|
||||
| all of these, so we recommend removing those you don't need.
|
||||
|
|
||||
| Class name: .font-{weight}
|
||||
|
|
||||
*/
|
||||
|
||||
fontWeights: {
|
||||
'hairline': 100,
|
||||
'thin': 200,
|
||||
'light': 300,
|
||||
'normal': 400,
|
||||
'medium': 500,
|
||||
'semibold': 600,
|
||||
'bold': 700,
|
||||
'extrabold': 800,
|
||||
'black': 900,
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Leading (line height) https://tailwindcss.com/docs/line-height
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your line height values, or as we call
|
||||
| them in Tailwind, leadings.
|
||||
|
|
||||
| Class name: .leading-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
leading: {
|
||||
'none': 1,
|
||||
'tight': 1.25,
|
||||
'normal': 1.6,
|
||||
'loose': 1.75,
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Tracking (letter spacing) https://tailwindcss.com/docs/letter-spacing
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your letter spacing values, or as we call
|
||||
| them in Tailwind, tracking.
|
||||
|
|
||||
| Class name: .tracking-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
tracking: {
|
||||
'tight': '-0.05em',
|
||||
'normal': '0',
|
||||
'wide': '0.05em',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Text colors https://tailwindcss.com/docs/text-color
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your text colors. By default these use the
|
||||
| color palette we defined above, however you're welcome to set these
|
||||
| independently if that makes sense for your project.
|
||||
|
|
||||
| Class name: .text-{color}
|
||||
|
|
||||
*/
|
||||
|
||||
textColors: colors,
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Background colors https://tailwindcss.com/docs/background-color
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your background colors. By default these use
|
||||
| the color palette we defined above, however you're welcome to set
|
||||
| these independently if that makes sense for your project.
|
||||
|
|
||||
| Class name: .bg-{color}
|
||||
|
|
||||
*/
|
||||
|
||||
backgroundColors: colors,
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Background sizes https://tailwindcss.com/docs/background-size
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your background sizes. We provide some common
|
||||
| values that are useful in most projects, but feel free to add other sizes
|
||||
| that are specific to your project here as well.
|
||||
|
|
||||
| Class name: .bg-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
backgroundSize: {
|
||||
'auto': 'auto',
|
||||
'cover': 'cover',
|
||||
'contain': 'contain',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Border widths https://tailwindcss.com/docs/border-width
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your border widths. Take note that border
|
||||
| widths require a special "default" value set as well. This is the
|
||||
| width that will be used when you do not specify a border width.
|
||||
|
|
||||
| Class name: .border{-side?}{-width?}
|
||||
|
|
||||
*/
|
||||
|
||||
borderWidths: {
|
||||
default: '1px',
|
||||
'0': '0',
|
||||
'2': '2px',
|
||||
'4': '4px',
|
||||
'8': '8px',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Border colors https://tailwindcss.com/docs/border-color
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your border colors. By default these use the
|
||||
| color palette we defined above, however you're welcome to set these
|
||||
| independently if that makes sense for your project.
|
||||
|
|
||||
| Take note that border colors require a special "default" value set
|
||||
| as well. This is the color that will be used when you do not
|
||||
| specify a border color.
|
||||
|
|
||||
| Class name: .border-{color}
|
||||
|
|
||||
*/
|
||||
|
||||
borderColors: global.Object.assign({ default: colors['grey-light'] }, colors),
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Border radius https://tailwindcss.com/docs/border-radius
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your border radius values. If a `default` radius
|
||||
| is provided, it will be made available as the non-suffixed `.rounded`
|
||||
| utility.
|
||||
|
|
||||
| If your scale includes a `0` value to reset already rounded corners, it's
|
||||
| a good idea to put it first so other values are able to override it.
|
||||
|
|
||||
| Class name: .rounded{-side?}{-size?}
|
||||
|
|
||||
*/
|
||||
|
||||
borderRadius: {
|
||||
'none': '0',
|
||||
'sm': '.125rem',
|
||||
default: '.25rem',
|
||||
'lg': '.5rem',
|
||||
'full': '9999px',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Width https://tailwindcss.com/docs/width
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your width utility sizes. These can be
|
||||
| percentage based, pixels, rems, or any other units. By default
|
||||
| we provide a sensible rem based numeric scale, a percentage
|
||||
| based fraction scale, plus some other common use-cases. You
|
||||
| can, of course, modify these values as needed.
|
||||
|
|
||||
|
|
||||
| It's also worth mentioning that Tailwind automatically escapes
|
||||
| invalid CSS class name characters, which allows you to have
|
||||
| awesome classes like .w-2/3.
|
||||
|
|
||||
| Class name: .w-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
width: {
|
||||
'auto': 'auto',
|
||||
'px': '1px',
|
||||
'1': '0.25rem',
|
||||
'2': '0.5rem',
|
||||
'3': '0.75rem',
|
||||
'4': '1rem',
|
||||
'5': '1.25rem',
|
||||
'6': '1.5rem',
|
||||
'8': '2rem',
|
||||
'10': '2.5rem',
|
||||
'12': '3rem',
|
||||
'16': '4rem',
|
||||
'24': '6rem',
|
||||
'32': '8rem',
|
||||
'48': '12rem',
|
||||
'64': '16rem',
|
||||
'1/2': '50%',
|
||||
'1/3': '33.33333%',
|
||||
'2/3': '66.66667%',
|
||||
'1/4': '25%',
|
||||
'3/4': '75%',
|
||||
'1/5': '20%',
|
||||
'2/5': '40%',
|
||||
'3/5': '60%',
|
||||
'4/5': '80%',
|
||||
'1/6': '16.66667%',
|
||||
'5/6': '83.33333%',
|
||||
'full': '100%',
|
||||
'screen': '100vw'
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Height https://tailwindcss.com/docs/height
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your height utility sizes. These can be
|
||||
| percentage based, pixels, rems, or any other units. By default
|
||||
| we provide a sensible rem based numeric scale plus some other
|
||||
| common use-cases. You can, of course, modify these values as
|
||||
| needed.
|
||||
|
|
||||
| Class name: .h-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
height: {
|
||||
'auto': 'auto',
|
||||
'px': '1px',
|
||||
'1': '0.25rem',
|
||||
'2': '0.5rem',
|
||||
'3': '0.75rem',
|
||||
'4': '1rem',
|
||||
'5': '1.25rem',
|
||||
'6': '1.5rem',
|
||||
'8': '2rem',
|
||||
'9': '2.2rem',
|
||||
'10': '2.5rem',
|
||||
'12': '3rem',
|
||||
'16': '4rem',
|
||||
'24': '6rem',
|
||||
'32': '8rem',
|
||||
'48': '12rem',
|
||||
'64': '16rem',
|
||||
'full': '100%',
|
||||
'screen': '100vh'
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Minimum width https://tailwindcss.com/docs/min-width
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your minimum width utility sizes. These can
|
||||
| be percentage based, pixels, rems, or any other units. We provide a
|
||||
| couple common use-cases by default. You can, of course, modify
|
||||
| these values as needed.
|
||||
|
|
||||
| Class name: .min-w-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
minWidth: {
|
||||
'0': '0',
|
||||
'full': '100%',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Minimum height https://tailwindcss.com/docs/min-height
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your minimum height utility sizes. These can
|
||||
| be percentage based, pixels, rems, or any other units. We provide a
|
||||
| few common use-cases by default. You can, of course, modify these
|
||||
| values as needed.
|
||||
|
|
||||
| Class name: .min-h-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
minHeight: {
|
||||
'0': '0',
|
||||
'full': '100%',
|
||||
'screen': '100vh'
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Maximum width https://tailwindcss.com/docs/max-width
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your maximum width utility sizes. These can
|
||||
| be percentage based, pixels, rems, or any other units. By default
|
||||
| we provide a sensible rem based scale and a "full width" size,
|
||||
| which is basically a reset utility. You can, of course,
|
||||
| modify these values as needed.
|
||||
|
|
||||
| Class name: .max-w-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
maxWidth: {
|
||||
'xs': '20rem',
|
||||
'sm': '30rem',
|
||||
'md': '40rem',
|
||||
'lg': '50rem',
|
||||
'xl': '60rem',
|
||||
'2xl': '70rem',
|
||||
'3xl': '80rem',
|
||||
'4xl': '90rem',
|
||||
'5xl': '100rem',
|
||||
'full': '100%',
|
||||
'none': 'none',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Maximum height https://tailwindcss.com/docs/max-height
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your maximum height utility sizes. These can
|
||||
| be percentage based, pixels, rems, or any other units. We provide a
|
||||
| couple common use-cases by default. You can, of course, modify
|
||||
| these values as needed.
|
||||
|
|
||||
| Class name: .max-h-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
maxHeight: {
|
||||
'full': '100%',
|
||||
'screen': '100vh',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Padding https://tailwindcss.com/docs/padding
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your padding utility sizes. These can be
|
||||
| percentage based, pixels, rems, or any other units. By default we
|
||||
| provide a sensible rem based numeric scale plus a couple other
|
||||
| common use-cases like "1px". You can, of course, modify these
|
||||
| values as needed.
|
||||
|
|
||||
| Class name: .p{side?}-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
padding: {
|
||||
'px': '1px',
|
||||
'0': '0',
|
||||
'1': '0.25rem',
|
||||
'2': '0.5rem',
|
||||
'3': '0.75rem',
|
||||
'4': '1rem',
|
||||
'5': '1.25rem',
|
||||
'6': '1.5rem',
|
||||
'7': '1.75rem',
|
||||
'8': '2rem',
|
||||
'10': '2.5rem',
|
||||
'12': '3rem',
|
||||
'16': '4rem',
|
||||
'20': '5rem',
|
||||
'24': '6rem',
|
||||
'32': '8rem',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Margin https://tailwindcss.com/docs/margin
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your margin utility sizes. These can be
|
||||
| percentage based, pixels, rems, or any other units. By default we
|
||||
| provide a sensible rem based numeric scale plus a couple other
|
||||
| common use-cases like "1px". You can, of course, modify these
|
||||
| values as needed.
|
||||
|
|
||||
| Class name: .m{side?}-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
margin: {
|
||||
'auto': 'auto',
|
||||
'px': '1px',
|
||||
'0': '0',
|
||||
'1': '0.25rem',
|
||||
'2': '0.5rem',
|
||||
'3': '0.75rem',
|
||||
'4': '1rem',
|
||||
'5': '1.25rem',
|
||||
'6': '1.5rem',
|
||||
'7': '1.75rem',
|
||||
'8': '2rem',
|
||||
'9': '2.25rem',
|
||||
'10': '2.5rem',
|
||||
'12': '3rem',
|
||||
'16': '4rem',
|
||||
'20': '5rem',
|
||||
'24': '6rem',
|
||||
'32': '8rem',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Negative margin https://tailwindcss.com/docs/negative-margin
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your negative margin utility sizes. These can
|
||||
| be percentage based, pixels, rems, or any other units. By default we
|
||||
| provide matching values to the padding scale since these utilities
|
||||
| generally get used together. You can, of course, modify these
|
||||
| values as needed.
|
||||
|
|
||||
| Class name: .-m{side?}-{size}
|
||||
|
|
||||
*/
|
||||
|
||||
negativeMargin: {
|
||||
'px': '1px',
|
||||
'0': '0',
|
||||
'1': '0.25rem',
|
||||
'2': '0.5rem',
|
||||
'3': '0.75rem',
|
||||
'4': '1rem',
|
||||
'5': '1.25rem',
|
||||
'6': '1.5rem',
|
||||
'8': '2rem',
|
||||
'10': '2.5rem',
|
||||
'12': '3rem',
|
||||
'16': '4rem',
|
||||
'20': '5rem',
|
||||
'24': '6rem',
|
||||
'32': '8rem',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Shadows https://tailwindcss.com/docs/shadows
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your shadow utilities. As you can see from
|
||||
| the defaults we provide, it's possible to apply multiple shadows
|
||||
| per utility using comma separation.
|
||||
|
|
||||
| If a `default` shadow is provided, it will be made available as the non-
|
||||
| suffixed `.shadow` utility.
|
||||
|
|
||||
| Class name: .shadow-{size?}
|
||||
|
|
||||
*/
|
||||
|
||||
shadows: {
|
||||
default: '0 2px 4px 0 rgba(0,0,0,0.10)',
|
||||
'md': '0 4px 8px 0 rgba(0,0,0,0.12), 0 2px 4px 0 rgba(0,0,0,0.08)',
|
||||
'lg': '0 -1px 27px 0 rgba(0, 0, 0, 0.04), 0 4px 15px 0 rgba(0, 0, 0, 0.08)',
|
||||
'inner': 'inset 0 2px 4px 0 rgba(0,0,0,0.06)',
|
||||
'outline': '0 0 0 3px rgba(52,144,220,0.5)',
|
||||
'none': 'none',
|
||||
},
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Z-index https://tailwindcss.com/docs/z-index
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your z-index utility values. By default we
|
||||
| provide a sensible numeric scale. You can, of course, modify these
|
||||
| values as needed.
|
||||
|
|
||||
| Class name: .z-{index}
|
||||
|
|
||||
*/
|
||||
|
||||
zIndex: {
|
||||
'auto': 'auto',
|
||||
'0': 0,
|
||||
'10': 10,
|
||||
'20': 20,
|
||||
'30': 30,
|
||||
'40': 40,
|
||||
'50': 50,
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Opacity https://tailwindcss.com/docs/opacity
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your opacity utility values. By default we
|
||||
| provide a sensible numeric scale. You can, of course, modify these
|
||||
| values as needed.
|
||||
|
|
||||
| Class name: .opacity-{name}
|
||||
|
|
||||
*/
|
||||
|
||||
opacity: {
|
||||
'0': '0',
|
||||
'25': '.25',
|
||||
'50': '.5',
|
||||
'75': '.75',
|
||||
'100': '1',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| SVG fill https://tailwindcss.com/docs/svg
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your SVG fill colors. By default we just provide
|
||||
| `fill-current` which sets the fill to the current text color. This lets you
|
||||
| specify a fill color using existing text color utilities and helps keep the
|
||||
| generated CSS file size down.
|
||||
|
|
||||
| Class name: .fill-{name}
|
||||
|
|
||||
*/
|
||||
|
||||
svgFill: {
|
||||
'current': 'currentColor',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| SVG stroke https://tailwindcss.com/docs/svg
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you define your SVG stroke colors. By default we just provide
|
||||
| `stroke-current` which sets the stroke to the current text color. This lets
|
||||
| you specify a stroke color using existing text color utilities and helps
|
||||
| keep the generated CSS file size down.
|
||||
|
|
||||
| Class name: .stroke-{name}
|
||||
|
|
||||
*/
|
||||
|
||||
svgStroke: {
|
||||
'current': 'currentColor',
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Modules https://tailwindcss.com/docs/configuration#modules
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you control which modules are generated and what variants are
|
||||
| generated for each of those modules.
|
||||
|
|
||||
| Currently supported variants:
|
||||
| - responsive
|
||||
| - hover
|
||||
| - focus
|
||||
| - active
|
||||
| - group-hover
|
||||
|
|
||||
| To disable a module completely, use `false` instead of an array.
|
||||
|
|
||||
*/
|
||||
|
||||
modules: {
|
||||
appearance: ['responsive'],
|
||||
backgroundAttachment: ['responsive'],
|
||||
backgroundColors: ['responsive', 'hover', 'focus'],
|
||||
backgroundPosition: ['responsive'],
|
||||
backgroundRepeat: ['responsive'],
|
||||
backgroundSize: ['responsive'],
|
||||
borderCollapse: [],
|
||||
borderColors: ['responsive', 'hover', 'focus'],
|
||||
borderRadius: ['responsive', 'focus'],
|
||||
borderStyle: ['responsive'],
|
||||
borderWidths: ['responsive', 'active', 'focus'],
|
||||
cursor: ['responsive'],
|
||||
display: ['responsive'],
|
||||
flexbox: ['responsive'],
|
||||
float: ['responsive'],
|
||||
fonts: ['responsive'],
|
||||
fontWeights: ['responsive', 'hover', 'focus'],
|
||||
height: ['responsive'],
|
||||
leading: ['responsive'],
|
||||
lists: ['responsive'],
|
||||
margin: ['responsive'],
|
||||
maxHeight: ['responsive'],
|
||||
maxWidth: ['responsive'],
|
||||
minHeight: ['responsive'],
|
||||
minWidth: ['responsive'],
|
||||
negativeMargin: ['responsive'],
|
||||
objectFit: false,
|
||||
objectPosition: false,
|
||||
opacity: ['responsive'],
|
||||
outline: ['focus'],
|
||||
overflow: ['responsive'],
|
||||
padding: ['responsive'],
|
||||
pointerEvents: ['responsive'],
|
||||
position: ['responsive'],
|
||||
resize: ['responsive'],
|
||||
shadows: ['responsive', 'hover', 'focus'],
|
||||
svgFill: [],
|
||||
svgStroke: [],
|
||||
tableLayout: ['responsive'],
|
||||
textAlign: ['responsive'],
|
||||
textColors: ['responsive', 'hover', 'focus'],
|
||||
textSizes: ['responsive'],
|
||||
textStyle: ['responsive', 'hover', 'focus'],
|
||||
tracking: ['responsive'],
|
||||
userSelect: ['responsive'],
|
||||
verticalAlign: ['responsive'],
|
||||
visibility: ['responsive'],
|
||||
whitespace: ['responsive'],
|
||||
width: ['responsive', 'focus'],
|
||||
zIndex: ['responsive'],
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Plugins https://tailwindcss.com/docs/plugins
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you can register any plugins you'd like to use in your
|
||||
| project. Tailwind's built-in `container` plugin is enabled by default to
|
||||
| give you a Bootstrap-style responsive container component out of the box.
|
||||
|
|
||||
| Be sure to view the complete plugin documentation to learn more about how
|
||||
| the plugin system works.
|
||||
|
|
||||
*/
|
||||
|
||||
plugins: [
|
||||
require('tailwindcss/plugins/container')({
|
||||
// center: true,
|
||||
// padding: '1rem',
|
||||
}),
|
||||
function({ addUtilities }) {
|
||||
const newUtilities = {
|
||||
'.transition-fast': {
|
||||
transition: 'all .2s ease-out',
|
||||
},
|
||||
'.transition': {
|
||||
transition: 'all .5s ease-out',
|
||||
},
|
||||
}
|
||||
|
||||
addUtilities(newUtilities)
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
/*
|
||||
|-----------------------------------------------------------------------------
|
||||
| Advanced Options https://tailwindcss.com/docs/configuration#options
|
||||
|-----------------------------------------------------------------------------
|
||||
|
|
||||
| Here is where you can tweak advanced configuration options. We recommend
|
||||
| leaving these options alone unless you absolutely need to change them.
|
||||
|
|
||||
*/
|
||||
|
||||
options: {
|
||||
prefix: '',
|
||||
important: false,
|
||||
separator: ':',
|
||||
},
|
||||
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
var hasbin = require('hasbin');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
module.exports = {
|
||||
path: function() {
|
||||
if (fs.existsSync('./vendor/bin/jigsaw')) {
|
||||
return path.normalize('./vendor/bin/jigsaw')
|
||||
}
|
||||
|
||||
if (hasbin.sync('jigsaw')) {
|
||||
return 'jigsaw';
|
||||
}
|
||||
|
||||
console.log('Could not find Jigsaw; please install it via Composer, either locally or globally.');
|
||||
|
||||
process.exit();
|
||||
}
|
||||
};
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
let argv = require('yargs').argv;
|
||||
let bin = require('./bin');
|
||||
let command = require('node-cmd');
|
||||
|
||||
let BrowserSync = require('browser-sync');
|
||||
let BrowserSyncPlugin = require('browser-sync-webpack-plugin');
|
||||
let ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin');
|
||||
|
||||
let browserSyncInstance;
|
||||
let env = argv.e || argv.env || 'local';
|
||||
let port = argv.p || argv.port || 3000;
|
||||
|
||||
module.exports = {
|
||||
jigsaw: {
|
||||
apply(compiler) {
|
||||
compiler.hooks.done.tap('DonePlugin', (compilation) => {
|
||||
command.get(bin.path() + ' build -q ' + env, (error, stdout, stderr) => {
|
||||
console.log(error ? stderr : stdout);
|
||||
|
||||
if (browserSyncInstance) {
|
||||
browserSyncInstance.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
watch: function (paths) {
|
||||
return new ExtraWatchWebpackPlugin({
|
||||
files: paths,
|
||||
});
|
||||
},
|
||||
|
||||
browserSync: function (proxy) {
|
||||
return new BrowserSyncPlugin({
|
||||
notify: false,
|
||||
port: port,
|
||||
proxy: proxy,
|
||||
server: proxy ? null : { baseDir: 'build_' + env + '/' },
|
||||
},
|
||||
{
|
||||
reload: false,
|
||||
callback: function() {
|
||||
browserSyncInstance = BrowserSync.get('bs-webpack-plugin');
|
||||
},
|
||||
})
|
||||
},
|
||||
};
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
let mix = require('laravel-mix');
|
||||
let build = require('./tasks/build.js');
|
||||
let tailwindcss = require('tailwindcss');
|
||||
require('laravel-mix-purgecss');
|
||||
|
||||
mix.disableSuccessNotifications();
|
||||
mix.setPublicPath('source/assets/build/');
|
||||
mix.webpackConfig({
|
||||
plugins: [
|
||||
build.jigsaw,
|
||||
build.browserSync(),
|
||||
build.watch([
|
||||
'config.php',
|
||||
'source/**/*.md',
|
||||
'source/**/*.php',
|
||||
'source/**/*.scss',
|
||||
]),
|
||||
],
|
||||
});
|
||||
|
||||
mix.js('source/_assets/js/main.js', 'js')
|
||||
.sourceMaps()
|
||||
.sass('source/_assets/sass/main.scss', 'css/main.css')
|
||||
.options({
|
||||
processCssUrls: false,
|
||||
postCss: [tailwindcss('./tailwind.js')],
|
||||
})
|
||||
.purgeCss({
|
||||
extensions: ['html', 'md', 'js', 'php', 'vue'],
|
||||
folders: ['source'],
|
||||
whitelistPatterns: [/language/, /hljs/, /algolia/],
|
||||
})
|
||||
.version();
|
||||
|
|
@ -4,6 +4,7 @@ namespace App\Listeners;
|
|||
|
||||
use samdark\sitemap\Sitemap;
|
||||
use TightenCo\Jigsaw\Jigsaw;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class GenerateSitemap
|
||||
{
|
||||
|
|
@ -29,6 +30,10 @@ class GenerateSitemap
|
|||
->reject(function ($path) {
|
||||
return $this->isExcluded($path);
|
||||
})->each(function ($path) use ($baseUrl, $sitemap) {
|
||||
if (! Str::startsWith($path, '/')) {
|
||||
$path = '/' . $path; // Fix bug with `docs/v1` being present in getOutputPaths()
|
||||
}
|
||||
|
||||
$sitemap->addItem(rtrim($baseUrl, '/').$path, time(), Sitemap::DAILY);
|
||||
});
|
||||
|
||||
|
|
@ -37,6 +42,6 @@ class GenerateSitemap
|
|||
|
||||
public function isExcluded($path)
|
||||
{
|
||||
return str_is($this->exclude, $path);
|
||||
return Str::is($this->exclude, $path);
|
||||
}
|
||||
}
|
||||
196
navigation.php
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'v1' => [
|
||||
'Getting Started' => [
|
||||
'url' => 'getting-started',
|
||||
'children' => [
|
||||
'Installation' => 'installation',
|
||||
'Storage Drivers' => 'storage-drivers',
|
||||
'This Package vs Others' => 'difference-between-this-package-and-others',
|
||||
'Configuration' => 'configuration',
|
||||
],
|
||||
],
|
||||
'Usage' => [
|
||||
'url' => 'usage',
|
||||
'children' => [
|
||||
'Creating Tenants' => 'creating-tenants',
|
||||
'Tenant Routes' => 'tenant-routes',
|
||||
'Tenant Storage' => 'tenant-storage',
|
||||
'Tenant Manager' => 'tenant-manager',
|
||||
'Console Commands' => 'console-commands',
|
||||
],
|
||||
],
|
||||
'Digging Deeper' => [
|
||||
'url' => 'digging-deeper',
|
||||
'children' => [
|
||||
'Middleware Configuration' => 'middleware-configuration',
|
||||
'Custom Database Names' => 'custom-database-names',
|
||||
'Filesystem Tenancy' => 'filesystem-tenancy',
|
||||
'Jobs & Queues' => 'jobs-queues',
|
||||
'Event System' => 'event-system',
|
||||
'Tenancy Initialization' => 'tenancy-initialization',
|
||||
'Application Testing' => 'application-testing',
|
||||
'Writing Storage Drivers' => 'writing-storage-drivers',
|
||||
'Development' => 'development',
|
||||
],
|
||||
],
|
||||
'Integrations' => [
|
||||
'url' => 'integrations',
|
||||
'children' => [
|
||||
'Telescope' => 'telescope',
|
||||
'Horizon' => 'horizon',
|
||||
],
|
||||
],
|
||||
'Tips' => [
|
||||
'children' => [
|
||||
'HTTPS Certificates' => 'https-certificates',
|
||||
'Misc' => 'misc-tips',
|
||||
],
|
||||
],
|
||||
'Stay Updated' => 'stay-updated',
|
||||
'GitHub' => 'https://github.com/stancl/tenancy',
|
||||
],
|
||||
'v2' => [
|
||||
'Upgrading from 1.x' => 'upgrading',
|
||||
'Getting Started' => [
|
||||
'url' => 'getting-started',
|
||||
'children' => [
|
||||
'Installation' => 'installation',
|
||||
'Storage Drivers' => 'storage-drivers',
|
||||
'This Package vs Others' => 'difference-between-this-package-and-others',
|
||||
'Configuration' => 'configuration',
|
||||
],
|
||||
],
|
||||
'Usage' => [
|
||||
'url' => 'usage',
|
||||
'children' => [
|
||||
'Creating Tenants' => 'creating-tenants',
|
||||
'Tenant Migrations'=> 'tenant-migrations',
|
||||
'Tenant Routes' => 'tenant-routes',
|
||||
'Tenant Storage' => 'tenant-storage',
|
||||
'Tenant Manager' => 'tenant-manager',
|
||||
'Console Commands' => 'console-commands',
|
||||
],
|
||||
],
|
||||
'Digging Deeper' => [
|
||||
'url' => 'digging-deeper',
|
||||
'children' => [
|
||||
'Tenants' => 'tenants',
|
||||
'Central App' => 'central-app',
|
||||
'Universal Routes' => 'universal-routes',
|
||||
'Cached Tenant Lookup' => 'cached-tenant-lookup',
|
||||
'PostgreSQL schema separation' => 'postgres-schema-separation',
|
||||
'Custom Database Names' => 'custom-database-names',
|
||||
'Custom DB Connections' => 'custom-db-connections',
|
||||
'Disabling DB Creation' => 'disabling-db-creation',
|
||||
'Filesystem Tenancy' => 'filesystem-tenancy',
|
||||
'Jobs & Queues' => 'jobs-queues',
|
||||
'Hooks / Events' => 'hooks',
|
||||
'Tenancy Initialization' => 'tenancy-initialization',
|
||||
'Tenancy Bootstrappers' => 'tenancy-bootstrappers',
|
||||
'Application Testing' => 'application-testing',
|
||||
'Tenant-Aware Commands' => 'tenant-aware-commands',
|
||||
'Middleware Configuration' => 'middleware-configuration',
|
||||
'Writing Storage Drivers' => 'writing-storage-drivers',
|
||||
],
|
||||
],
|
||||
'Optional Features' => [
|
||||
'url' => 'features',
|
||||
'children' => [
|
||||
'Tenant Config' => 'features/tenant-config',
|
||||
'Timestamps' => 'features/timestamps',
|
||||
'Tenant Redirect' => 'features/tenant-redirect',
|
||||
],
|
||||
],
|
||||
'Integrations' => [
|
||||
'url' => 'docs/integrations',
|
||||
'children' => [
|
||||
'Spatie Packages' => 'spatie',
|
||||
'Horizon' => 'horizon',
|
||||
'Passport' => 'passport',
|
||||
'Nova' => 'nova',
|
||||
'Telescope' => 'telescope',
|
||||
'Livewire' => 'livewire',
|
||||
],
|
||||
],
|
||||
'Tips' => [
|
||||
'children' => [
|
||||
'HTTPS Certificates' => 'https-certificates',
|
||||
'Misc' => 'misc-tips',
|
||||
],
|
||||
],
|
||||
'Stay Updated' => 'stay-updated',
|
||||
'GitHub' => 'https://github.com/stancl/tenancy',
|
||||
'Tutorial' => 'https://samuelstancl.me/blog/make-your-laravel-app-multi-tenant-without-changing-a-line-of-code/',
|
||||
],
|
||||
'v3' => [
|
||||
'SaaS boilerplate' => 'https://tenancyforlaravel.com/saas-boilerplate/',
|
||||
'GitHub' => 'https://github.com/stancl/tenancy',
|
||||
'Donate' => 'https://tenancyforlaravel.com/donate',
|
||||
'Upgrading from 2.x' => 'upgrading',
|
||||
|
||||
'Introduction' => [
|
||||
'children' => [
|
||||
'Introduction' => 'introduction',
|
||||
'Quickstart' => 'quickstart',
|
||||
'Installation' => 'installation',
|
||||
'Configuration' => 'configuration',
|
||||
'Compared to other packages' => 'package-comparison',
|
||||
],
|
||||
],
|
||||
|
||||
'Concepts' => [
|
||||
'children' => [
|
||||
'The two applications' => 'the-two-applications',
|
||||
'Tenants' => 'tenants',
|
||||
'Domains' => 'domains',
|
||||
'Event system' => 'event-system',
|
||||
'Routes' => 'routes',
|
||||
'Tenancy bootstrappers' => 'tenancy-bootstrappers',
|
||||
'Feature classes' => 'feature-classes',
|
||||
],
|
||||
],
|
||||
|
||||
'Tenancy modes' => [
|
||||
'children' => [
|
||||
'Automatic mode' => 'automatic-mode',
|
||||
'Manual mode' => 'manual-mode',
|
||||
],
|
||||
],
|
||||
|
||||
'Single-database tenancy' => [
|
||||
'children' => [
|
||||
'Single-database tenancy' => 'single-database-tenancy',
|
||||
],
|
||||
],
|
||||
|
||||
'Identifying tenants' => [
|
||||
'children' => [
|
||||
'Tenant identification' => 'tenant-identification',
|
||||
'Early identification' => 'early-identification',
|
||||
],
|
||||
],
|
||||
|
||||
'Multi-database tenancy' => [
|
||||
'children' => [
|
||||
'Multi-database tenancy' => 'multi-database-tenancy',
|
||||
'Migrations' => 'migrations',
|
||||
'Customizing databases' => 'customizing-databases',
|
||||
'Synced resources between tenants' => 'synced-resources-between-tenants',
|
||||
'Session scoping' => 'session-scoping',
|
||||
'Queues' => 'queues',
|
||||
],
|
||||
],
|
||||
|
||||
'Digging deeper' => [
|
||||
'children' => [
|
||||
'Manual initialization' => 'manual-initialization',
|
||||
'Testing' => 'testing',
|
||||
'Integrating with other packages' => 'integrating',
|
||||
'Console commands' => 'console-commands',
|
||||
'Cached lookup' => 'cached-lookup',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
11
netlify.toml
|
|
@ -1,12 +1,13 @@
|
|||
[build]
|
||||
environment = { PHP_VERSION = "7.2" }
|
||||
publish = "/dist"
|
||||
command = "./build.sh"
|
||||
environment = { PHP_VERSION = "7.4" }
|
||||
publish = "/build_production"
|
||||
command = "npm run production"
|
||||
|
||||
[context.deploy-preview]
|
||||
command = "./staging.sh"
|
||||
publish = "/build_staging"
|
||||
command = "npm run staging"
|
||||
|
||||
[[redirects]]
|
||||
from = "/docs/master/*"
|
||||
to = "/docs/v2/:splat"
|
||||
to = "/docs/v3/:splat"
|
||||
status = 302
|
||||
11930
package-lock.json
generated
35
package.json
|
|
@ -1,20 +1,27 @@
|
|||
{
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "cross-env NODE_ENV=development concurrently \"postcss tailwind.css -o dist/tailwind.css --watch\" \"live-server ./dist\"",
|
||||
"development": "cross-env NODE_ENV=development postcss tailwind.css -o dist/tailwind.css",
|
||||
"production": "cross-env NODE_ENV=production postcss tailwind.css -o dist/tailwind.css"
|
||||
},
|
||||
"dependencies": {
|
||||
"autoprefixer": "^9.7.4",
|
||||
"tailwindcss": "^1.1.4"
|
||||
"local": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --env=local --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"staging": "cross-env NODE_ENV=staging node_modules/webpack/bin/webpack.js --progress --hide-modules --env=staging --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --env=production --config=node_modules/laravel-mix/setup/webpack.config.js",
|
||||
"dev": "npm run local",
|
||||
"watch": "npm run local -- --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fullhuman/postcss-purgecss": "^1.3.0",
|
||||
"@tailwindcss/custom-forms": "^0.2.1",
|
||||
"concurrently": "^4.1.2",
|
||||
"cross-env": "^5.2.1",
|
||||
"cssnano": "^4.1.10",
|
||||
"live-server": "^1.2.1",
|
||||
"postcss-cli": "^6.1.2"
|
||||
"@tailwindcss/ui": "^0.3.0",
|
||||
"cross-env": "^3.2.3",
|
||||
"docsearch.js": "^2.6.2",
|
||||
"highlight.js": "^9.13.1",
|
||||
"laravel-mix": "^5.0.4",
|
||||
"laravel-mix-jigsaw": "github:iskrisis/laravel-mix-jigsaw",
|
||||
"laravel-mix-purgecss": "^4.0.0||^5.0.0",
|
||||
"precss": "^4.0.0",
|
||||
"sass": "^1.15.2",
|
||||
"sass-loader": "^7.1.0",
|
||||
"tailwindcss": "^1.4.6",
|
||||
"vue-template-compiler": "^2.5.21"
|
||||
},
|
||||
"dependencies": {
|
||||
"turbolinks": "^5.2.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
const purgecss = require('@fullhuman/postcss-purgecss')({
|
||||
content: ['./dist/*.html'],
|
||||
defaultExtractor: content => content.match(/[A-Za-z0-9-_:/%]+/g) || []
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
plugins: [
|
||||
require('tailwindcss'),
|
||||
require('autoprefixer'),
|
||||
...process.env.NODE_ENV === 'production'
|
||||
? [purgecss, require('cssnano')]
|
||||
: []
|
||||
]
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd docs
|
||||
vendor/bin/jigsaw build && vendor/bin/jigsaw serve -p 9998
|
||||
11
source/404.blade.php
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
@extends('_layouts.master')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col items-center mt-32 text-gray-800">
|
||||
<h1 class="text-6xl font-light leading-none mb-2">404</h1>
|
||||
|
||||
<h2 class="text-3xl">Page not found</h2>
|
||||
|
||||
<hr class="block w-full max-w-sm mx-auto my-8 border">
|
||||
</div>
|
||||
@endsection
|
||||
102
source/_assets/css/_base.css
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
body {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.markdown {
|
||||
|
||||
a {
|
||||
@apply font-semibold text-indigo-700 no-underline;
|
||||
|
||||
&:hover {
|
||||
@apply text-indigo-500;
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
@apply pl-6 my-8 text-lg italic font-normal text-gray-800 border-l-4 border-blue-100;
|
||||
}
|
||||
|
||||
code {
|
||||
@apply px-2 py-px text-sm bg-gray-200 rounded;
|
||||
}
|
||||
|
||||
pre {
|
||||
@apply p-4 my-4 text-base leading-loose bg-gray-900 rounded;
|
||||
|
||||
code {
|
||||
@apply block p-0 bg-transparent;
|
||||
}
|
||||
}
|
||||
|
||||
code.hljs {
|
||||
@apply p-0 bg-transparent;
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-keyword,
|
||||
.hljs-meta {
|
||||
@apply font-normal;
|
||||
/* @apply roman; */
|
||||
}
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
@apply mt-8 mb-4 leading-tight text-black;
|
||||
|
||||
&:first-child {
|
||||
@apply mt-0;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply text-5xl font-extrabold;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-4xl font-bold;
|
||||
}
|
||||
|
||||
h3 {
|
||||
@apply text-3xl font-bold;
|
||||
}
|
||||
|
||||
h4 {
|
||||
@apply text-2xl font-normal;
|
||||
}
|
||||
|
||||
h5 {
|
||||
@apply text-xl font-normal;
|
||||
}
|
||||
|
||||
h6 {
|
||||
@apply text-lg font-light;
|
||||
}
|
||||
|
||||
hr {
|
||||
@apply my-12 border-b border-blue-200 rounded-full;
|
||||
}
|
||||
|
||||
li {
|
||||
@apply ml-5 leading-loose;
|
||||
|
||||
ul,
|
||||
ol {
|
||||
@apply my-0;
|
||||
}
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
@apply my-4 list-disc;
|
||||
}
|
||||
|
||||
p {
|
||||
@apply my-6;
|
||||
}
|
||||
}
|
||||
79
source/_assets/css/_dracula.css
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/* Dracula Theme v1.2.5
|
||||
*
|
||||
* https://github.com/dracula/highlightjs
|
||||
*
|
||||
* Copyright 2016-present, All rights reserved
|
||||
*
|
||||
* Code licensed under the MIT license
|
||||
*
|
||||
* @author Denis Ciccale <dciccale@gmail.com>
|
||||
* @author Zeno Rocha <hi@zenorocha.com>
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #282a36;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-selector-tag,
|
||||
.hljs-section,
|
||||
.hljs-link {
|
||||
color: #8be9fd;
|
||||
}
|
||||
|
||||
.hljs-keyword {
|
||||
color: #ff79c6;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.hljs-title {
|
||||
color: #50fa7b;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-meta,
|
||||
.hljs-name,
|
||||
.hljs-type,
|
||||
.hljs-attr,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable {
|
||||
color: #f1fa8c;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-deletion {
|
||||
color: #6272a4;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-doctag,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-literal,
|
||||
.hljs-number {
|
||||
color: #bd93f9;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
99
source/_assets/css/_highlight.css
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
/* a11y-light theme */
|
||||
/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
|
||||
/* @author: ericwbailey */
|
||||
|
||||
/* Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #696969;
|
||||
}
|
||||
|
||||
/* Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-deletion {
|
||||
color: #d91e18;
|
||||
}
|
||||
|
||||
/* Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #aa5d00;
|
||||
}
|
||||
|
||||
/* Yellow */
|
||||
.hljs-attribute {
|
||||
color: #aa5d00;
|
||||
}
|
||||
|
||||
/* Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #008000;
|
||||
}
|
||||
|
||||
/* Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #007faa;
|
||||
}
|
||||
|
||||
/* Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #7928a1;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #fefefe;
|
||||
color: #545454;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
.hljs-addition,
|
||||
.hljs-attribute,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-bullet,
|
||||
.hljs-comment,
|
||||
.hljs-link,
|
||||
.hljs-literal,
|
||||
.hljs-meta,
|
||||
.hljs-number,
|
||||
.hljs-params,
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-type,
|
||||
.hljs-quote {
|
||||
color: highlight;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
32
source/_assets/css/_navigation.css
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
.nav-menu {
|
||||
@apply mb-4;
|
||||
|
||||
@screen lg {
|
||||
@apply block pr-4 bg-transparent border-b-0 shadow-none;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-menu__item {
|
||||
@apply block mt-4 text-base font-normal leading-loose tracking-wide text-gray-600 no-underline uppercase;
|
||||
}
|
||||
|
||||
a.nav-menu__item {
|
||||
@apply inline mt-0 font-medium tracking-normal text-indigo-800 normal-case;
|
||||
}
|
||||
|
||||
a.nav-menu__item:hover {
|
||||
@apply text-indigo-600;
|
||||
}
|
||||
|
||||
.nav-menu .active {
|
||||
@apply font-semibold text-indigo-600;
|
||||
}
|
||||
|
||||
ul.list-reset ul.list-reset {
|
||||
@apply pl-4;
|
||||
}
|
||||
|
||||
.turbolinks-progress-bar {
|
||||
@apply bg-indigo-500;
|
||||
height: 3px;
|
||||
}
|
||||
|
|
@ -1,76 +1,77 @@
|
|||
|
||||
/*
|
||||
.docsearch-input {
|
||||
background-image: url('/docs/assets/img/magnifying-glass.svg');
|
||||
background-image: url('assets/img/magnifying-glass.svg');
|
||||
background-position: 0.8em;
|
||||
background-repeat: no-repeat;
|
||||
text-indent: 1.2em;
|
||||
|
||||
@screen lg {
|
||||
&:focus {
|
||||
@apply .w-2/3;
|
||||
@apply w-2/3;
|
||||
}
|
||||
}
|
||||
|
||||
@screen xl {
|
||||
&:focus {
|
||||
@apply .w-3/4;
|
||||
@apply w-3/4;
|
||||
}
|
||||
}
|
||||
|
||||
&__wrapper {
|
||||
@apply absolute;
|
||||
@apply bg-white;
|
||||
@apply mt-7;
|
||||
@apply pin-l;
|
||||
@apply pin-t;
|
||||
@apply px-4;
|
||||
@apply w-full;
|
||||
@apply z-10;
|
||||
@apply absolute top-0 left-0 z-10 w-full px-4 mt-8 bg-white;
|
||||
|
||||
@screen md {
|
||||
@apply mt-0;
|
||||
@apply px-0;
|
||||
@apply relative;
|
||||
}
|
||||
@apply relative px-0 mt-0;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
.algolia-autocomplete {
|
||||
@apply .text-right;
|
||||
@apply .w-full;
|
||||
|
||||
|
||||
@apply w-full text-right;
|
||||
|
||||
input#docsearch:focus {
|
||||
@apply border-2 border-indigo-500 outline-none;
|
||||
}
|
||||
|
||||
.ds-dropdown-menu {
|
||||
@apply .w-full;
|
||||
@apply w-full;
|
||||
|
||||
max-width: 750px !important;
|
||||
min-width: auto !important;
|
||||
|
||||
.algolia-docsearch-suggestion {
|
||||
.algolia-docsearch-suggestion--content {
|
||||
@apply .w-full;
|
||||
@apply w-full;
|
||||
|
||||
@screen md {
|
||||
@apply .w-2/3;
|
||||
@apply w-2/3;
|
||||
}
|
||||
}
|
||||
|
||||
.algolia-docsearch-suggestion--text {
|
||||
@apply .font-normal;
|
||||
|
||||
@apply font-normal;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.algolia-docsearch-suggestion--wrapper {
|
||||
@apply .py-3;
|
||||
@apply py-3;
|
||||
}
|
||||
|
||||
.algolia-docsearch-suggestion--subcategory-column {
|
||||
@apply .hidden;
|
||||
@apply hidden;
|
||||
|
||||
@screen md {
|
||||
@apply .w-1/3;
|
||||
@apply .inline-block;
|
||||
@apply inline-block w-1/3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.algolia-autocomplete .algolia-docsearch-suggestion--highlight {
|
||||
@apply text-indigo-700;
|
||||
}
|
||||
12
source/_assets/css/main.css
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
@tailwind base;
|
||||
@tailwind components;
|
||||
|
||||
|
||||
/* @import 'highlight'; */
|
||||
@import 'dracula';
|
||||
@import 'base';
|
||||
@import 'navigation';
|
||||
@import 'search';
|
||||
|
||||
|
||||
@tailwind utilities;
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
window.docsearch = require('docsearch.js');
|
||||
|
||||
import hljs from 'highlight.js/lib/highlight';
|
||||
|
||||
hljs.registerLanguage('bash', require('highlight.js/lib/languages/bash'));
|
||||
10
source/_assets/js/turbolinks.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
var Turbolinks = require("turbolinks")
|
||||
|
||||
Turbolinks.start();
|
||||
|
||||
// make progressbar always visible (default 500)
|
||||
//Turbolinks.setProgressBarDelay(0);
|
||||
|
||||
// document.addEventListener("turbolinks:load", function() {
|
||||
// console.log('turbolinks ready');
|
||||
// })
|
||||
89
source/_layouts/documentation.blade.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="description" content="{{ $page->description ?? $page->siteDescription }}">
|
||||
|
||||
<meta property="og:site_name" content="{{ $page->siteName }}"/>
|
||||
<meta property="og:title" content="{{ $page->title ? $page->title . ' | ' : '' }}{{ $page->siteName }}"/>
|
||||
<meta property="og:description" content="{{ $page->description ?? $page->title }} | {{ $page->siteName }}"/>
|
||||
<meta property="og:url" content="{{ $page->getUrl() }}"/>
|
||||
<meta property="og:image" content="/assets/img/logo.png"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
|
||||
<meta name="theme-color" content="#5850EC">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
|
||||
<meta name="twitter:image:alt" content="{{ $page->siteName }}">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<meta name="docsearch:language" content="en" />
|
||||
<meta name="docsearch:version" content="{{ $page->version() }}" />
|
||||
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<meta name="generator" content="tighten_jigsaw_doc">
|
||||
@endif
|
||||
|
||||
<title>{{ $page->title ? $page->title . ' | ' : '' }}{{ $page->siteName }}</title>
|
||||
|
||||
<link rel="home" href="{{ $page->baseUrl }}">
|
||||
|
||||
@stack('meta')
|
||||
|
||||
@if ($page->production)
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-168455954-1"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-168455954-1');
|
||||
</script>
|
||||
@endif
|
||||
<link href="https://fonts.googleapis.com/css?family=Fira+Code&display=swap" rel="stylesheet">
|
||||
<link href="https://rsms.me/inter/inter.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="{{ mix('css/main.css', 'assets/build') }}">
|
||||
|
||||
<script src="{{ mix('js/turbolinks.js', 'assets/build') }}"></script>
|
||||
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
|
||||
@endif
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=Fira+Code&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body class="font-sans antialiased">
|
||||
<div class="p-2">
|
||||
@include('_partials.header-docs')
|
||||
|
||||
<main role="main" class="">
|
||||
<section class="px-6 py-4">
|
||||
<div class="grid grid-cols-8 gap-4">
|
||||
<nav id="js-nav-menu" class="nav-menu md:block md:col-span-2 hidden col-span-8 font-semibold text-indigo-700">
|
||||
@include('_nav.menu', ['items' => $page->navigation[$page->version()]])
|
||||
</nav>
|
||||
<div class="markdown lg:pl-4 md:col-span-6 lg:col-span-4 col-span-8 pb-16 break-words" v-pre>
|
||||
@yield('content')
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@include('_partials.footer')
|
||||
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js" data-turbolinks-eval="false"></script>
|
||||
@endif
|
||||
<script src="{{ $page->baseUrl . mix('js/main.js', 'assets/build') }}"></script>
|
||||
<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.3.5/dist/alpine.min.js" defer></script>
|
||||
@stack('scripts')
|
||||
|
||||
</body>
|
||||
</html>
|
||||
44
source/_layouts/master.blade.php
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<meta property="og:site_name" content="{{ $page->siteName }}"/>
|
||||
<meta property="og:title" content="Automatic & flexible multi-tenancy package for Laravel."/>
|
||||
<meta property="og:description" content="{{ $page->siteDescription }}"/>
|
||||
|
||||
<meta property="og:image" content="/assets/img/logo.png"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
|
||||
<meta name="theme-color" content="#5850EC">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
|
||||
<link rel="stylesheet" href="{{ mix('css/main.css', 'assets/build') }}">
|
||||
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
|
||||
<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" defer></script>
|
||||
<title>{{ ($title ?? null) ? $title . ' | Tenancy for Laravel' : 'Tenancy for Laravel' }}</title>
|
||||
</head>
|
||||
<body class="font-sans antialiased">
|
||||
|
||||
{{-- Header --}}
|
||||
@include('_partials.header')
|
||||
{{-- /Header --}}
|
||||
|
||||
<main class="
|
||||
{{ $page->centered ? 'p-8 md:w-1/2 w-full mx-auto' : '' }}
|
||||
{{ $page->markdown ? 'markdown' : '' }}
|
||||
">
|
||||
@yield('content')
|
||||
</main>
|
||||
|
||||
{{-- Footer --}}
|
||||
@include('_partials.footer')
|
||||
{{-- /Footer --}}
|
||||
|
||||
<script src="{{ $page->baseUrl . mix('js/main.js', 'assets/build') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
<li class="list-reset pl-4">
|
||||
<li class="list-reset">
|
||||
@if ($url = is_string($item) ? $item : $item->url)
|
||||
{{-- Menu item with URL--}}
|
||||
<a href="{{ $page->isUrl($url) ? $url : $page->link($url) }}"
|
||||
class="{{ 'lvl' . $level }} {{ $page->isActiveParent($item) ? 'lvl' . $level . '-active' : '' }} {{ $page->isActive($url) ? 'active font-semibold text-indigo-700' : '' }} nav-menu__item hover:text-indigo-700"
|
||||
class="{{ 'lvl' . $level }} {{ $page->isActiveParent($item) ? 'lvl' . $level . '-active' : '' }} {{ $page->isActive($url) ? 'active' : '' }} nav-menu__item"
|
||||
>
|
||||
{{ $label }}
|
||||
</a>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
@php $level = $level ?? 0 @endphp
|
||||
|
||||
<ul class="list-reset my-0">
|
||||
<ul class="my-0 list-reset">
|
||||
@foreach ($items as $label => $item)
|
||||
@include('_nav.menu-item')
|
||||
@endforeach
|
||||
49
source/_nav/search-input.blade.php
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{{-- <button
|
||||
title="Start searching"
|
||||
type="button"
|
||||
class="md:hidden bg-grey-lightest hover:bg-blue-lightest border-grey focus:outline-none flex items-center justify-center h-10 px-3 border rounded-full"
|
||||
onclick="searchInput.toggle()"
|
||||
>
|
||||
<img src="/docs/assets/img/magnifying-glass.svg" alt="search icon" class="max-w-none w-4 h-4">
|
||||
</button> --}}
|
||||
|
||||
<div id="js-search-input" class="lg:px-6 lg:w-3/4 xl:px-12 flex-grow w-full">
|
||||
<div class=" relative rounded-md">
|
||||
<span class="algolia-autocomplete algolia-autocomplete-right" style="position: relative; display: inline-block; direction: ltr;"><input id="docsearch" class="focus:outline-0 ds-input block w-full py-2 pl-10 pr-4 leading-normal placeholder-gray-600 transition-colors duration-100 ease-in-out bg-gray-100 border border-transparent rounded-md" type="text" placeholder="Search the documentation" autocomplete="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-label="search input" aria-owns="algolia-autocomplete-listbox-0" style="position: relative; vertical-align: top;" dir="auto"><pre aria-hidden="true" style="position: absolute; visibility: hidden; white-space: pre; font-family: Inter var, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; word-spacing: 0px; letter-spacing: normal; text-indent: 0px; text-rendering: optimizelegibility; text-transform: none;">min</pre><span class="ds-dropdown-menu ds-with-1" style="position: absolute; top: 100%; z-index: 100; left: 0px; right: auto; display: none;" role="listbox" id="algolia-autocomplete-listbox-0"><div class="ds-dataset-1"></div></span></span>
|
||||
<div class="absolute inset-y-0 left-0 flex items-center pl-4 pointer-events-none">
|
||||
<svg class="w-4 h-4 text-gray-600 pointer-events-none fill-current" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"></path></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{--
|
||||
<div id="js-search-input" class="docsearch-input__wrapper md:block">
|
||||
|
||||
<label for="search" class="hidden">Search</label>
|
||||
<input
|
||||
id="docsearch-input"
|
||||
class="docsearch-input transition-fast lg:w-3/4 bg-grey-lightest text-grey-darker border-grey focus:border-blue-light relative block w-full h-10 px-4 pb-0 mx-auto border rounded-full outline-none"
|
||||
name="docsearch"
|
||||
type="text"
|
||||
placeholder="Search"
|
||||
>
|
||||
|
||||
<button
|
||||
class="md:hidden pin-t pin-r text-blue hover:text-blue-dark focus:outline-none pr-7 absolute h-full -mt-px text-3xl font-light"
|
||||
onclick="searchInput.toggle()"
|
||||
>×</button>
|
||||
</div>--}}
|
||||
|
||||
@push('scripts')
|
||||
@if ($page->docsearchApiKey && $page->docsearchIndexName)
|
||||
<script type="text/javascript">
|
||||
docsearch({
|
||||
apiKey: '{{ $page->docsearchApiKey }}',
|
||||
indexName: '{{ $page->docsearchIndexName }}',
|
||||
algoliaOptions: { 'facetFilters': ["version:{{ $page->version() }}", "language:en"] },
|
||||
inputSelector: '#docsearch',
|
||||
debug: false // Set debug to true if you want to inspect the dropdown
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
@endpush
|
||||
141
source/_partials/footer.blade.php
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
<div class="bg-gray-900">
|
||||
<div class="max-w-screen-xl px-4 py-12 mx-auto sm:px-6 lg:py-16 lg:px-8">
|
||||
<div class="xl:grid xl:grid-cols-3 xl:gap-8">
|
||||
<div class="grid grid-cols-2 gap-8 xl:col-span-2">
|
||||
<div class="md:grid md:grid-cols-2 md:gap-8">
|
||||
<div>
|
||||
<h4 class="text-sm font-semibold leading-5 tracking-wider text-gray-400 uppercase">
|
||||
Documentation
|
||||
</h4>
|
||||
<ul class="mt-4">
|
||||
<li>
|
||||
<a href="/docs/v3/tenants" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Tenants
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/docs/v3/event-system" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Event system
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/docs/v3/configuration" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Configuration
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mt-12 md:mt-0">
|
||||
<h4 class="text-sm font-semibold leading-5 tracking-wider text-gray-400 uppercase">
|
||||
Documentation
|
||||
</h4>
|
||||
<ul class="mt-4">
|
||||
<li class="mt-4">
|
||||
<a href="/docs/v3/package-comparison" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Compared to other packages
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/docs/v3/integrating" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Integrations
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/docs/v3/tenant-identification" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Tenant identification
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="md:grid md:grid-cols-2 md:gap-8">
|
||||
<div class="">
|
||||
<h4 class="text-sm font-semibold leading-5 tracking-wider text-gray-400 uppercase">
|
||||
Business
|
||||
</h4>
|
||||
<ul class="mt-4">
|
||||
<li>
|
||||
<a href="/saas-boilerplate" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
SaaS boilerplate
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/contact" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Consulting
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/contact" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Audits
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mt-12 md:mt-0">
|
||||
<h4 class="text-sm font-semibold leading-5 tracking-wider text-gray-400 uppercase">
|
||||
Links
|
||||
</h4>
|
||||
<ul class="mt-4">
|
||||
<li>
|
||||
<a href="/branding" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Branding
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="https://github.com/stancl/tenancy" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
GitHub
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="https://discord.gg/7cpgPxv" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Discord
|
||||
</a>
|
||||
</li>
|
||||
<li class="mt-4">
|
||||
<a href="/donate" class="text-base leading-6 text-gray-300 hover:text-white">
|
||||
Donate
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-8 xl:mt-0">
|
||||
<h4 class="text-sm font-semibold leading-5 tracking-wider text-gray-400 uppercase">
|
||||
Subscribe to our newsletter
|
||||
</h4>
|
||||
<p class="mt-4 text-base leading-6 text-gray-300">
|
||||
Receive notifications about important releases, new packages and other updates.
|
||||
</p>
|
||||
<form action="https://github.us3.list-manage.com/subscribe/post?u=6a33c422777aedd88e9a9488e&id=9b99f013b8" method="post" target="_blank" class="mt-4 sm:flex sm:max-w-md">
|
||||
<input name="EMAIL" aria-label="Email address" type="email" required class="w-full px-5 py-3 text-base leading-6 text-gray-900 placeholder-gray-500 transition duration-150 ease-in-out bg-white border border-transparent rounded-md appearance-none focus:outline-none focus:placeholder-gray-400" placeholder="Enter your email" />
|
||||
<input type="hidden" value="8" name="group[27425][8]" id="mce-group[27425]-27425-3">
|
||||
<div class="mt-3 rounded-md shadow sm:mt-0 sm:ml-3 sm:flex-shrink-0">
|
||||
<button class="flex items-center justify-center w-full px-5 py-3 text-base font-medium leading-6 text-white transition duration-150 ease-in-out bg-indigo-600 border border-transparent rounded-md hover:bg-indigo-500 focus:outline-none focus:bg-indigo-500">
|
||||
Subscribe
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-8 mt-8 border-t border-gray-700 md:flex md:items-center md:justify-between">
|
||||
<div class="flex md:order-2">
|
||||
<a href="https://twitter.com/samuelstancl" class="ml-6 text-gray-400 hover:text-gray-300">
|
||||
<span class="sr-only">Twitter</span>
|
||||
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://github.com/stancl/tenancy" class="ml-6 text-gray-400 hover:text-gray-300">
|
||||
<span class="sr-only">GitHub</span>
|
||||
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<p class="mt-8 text-base leading-6 text-gray-400 md:mt-0 md:order-1">
|
||||
© 2020 Samuel Štancl. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
83
source/_partials/header-docs.blade.php
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<div x-data="navMenu()" class="relative bg-white" data-turbolinks-permanent>
|
||||
<div class="sm:px-6 md:justify-start md:space-x-10 flex items-center justify-between px-4 pt-3 pb-6">
|
||||
<div class="lg:w-0 lg:flex-1">
|
||||
<a href="{{ $page->baseUrl }}" class="flex" data-turbolinks="false">
|
||||
<img src="/assets/img/tenancyforlaravel.svg" alt="" style="height: 70px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="md:hidden -my-2 -mr-2">
|
||||
<button @click="toggle()" type="button"
|
||||
class="hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 inline-flex items-center justify-center p-2 text-gray-400 transition duration-150 ease-in-out rounded-md">
|
||||
<svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<nav class="md:flex flex-grow hidden">
|
||||
@include('_nav.search-input')
|
||||
</nav>
|
||||
<div class="md:flex md:flex-1 lg:w-0 items-center justify-end hidden space-x-8">
|
||||
<div x-data="{ flyoutMenuOpen: false }" @click.away="flyoutMenuOpen = false" class="relative">
|
||||
<button type="button" @click="flyoutMenuOpen = !flyoutMenuOpen" x-state:on="Item active"
|
||||
x-state:off="Item inactive" :class="{ 'text-gray-900': flyoutMenuOpen, 'text-gray-500': !flyoutMenuOpen }"
|
||||
class="group hover:text-gray-900 focus:outline-none focus:text-gray-900 inline-flex items-center space-x-2 text-base font-medium leading-6 text-gray-500 transition duration-150 ease-in-out">
|
||||
<span>Version {{ $page->versions[$page->version()] }}</span>
|
||||
<svg x-state-on="Item active" x-state:on="Item active" x-state-off="Item inactive" x-state:off="Item inactive"
|
||||
class="group-hover:text-gray-500 group-focus:text-gray-500 w-5 h-5 text-gray-400 transition duration-150 ease-in-out"
|
||||
:class="{ 'text-gray-600': flyoutMenuOpen, 'text-gray-400': !flyoutMenuOpen }"
|
||||
x-bind-class="{ 'text-gray-600': flyoutMenuOpen, 'text-gray-400': !flyoutMenuOpen }" fill="currentColor"
|
||||
viewBox="0 0 20 20" null="[object Object]">
|
||||
<path fill-rule="evenodd"
|
||||
d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
|
||||
clip-rule="evenodd"></path>
|
||||
</svg>
|
||||
</button>
|
||||
<div x-description="'More' flyout menu, show/hide based on flyout menu state." x-show="flyoutMenuOpen"
|
||||
x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-1"
|
||||
x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150"
|
||||
x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-1"
|
||||
class="left-1/2 sm:px-0 absolute w-screen max-w-xs px-2 mt-6 transform -translate-x-1/2"
|
||||
style="display: none; max-width: 10rem;">
|
||||
<div class="rounded-lg shadow-lg">
|
||||
<div class="overflow-hidden rounded-lg shadow-xs">
|
||||
<div class="sm:gap-2 sm:p-2 relative z-20 grid gap-2 px-5 py-6 bg-white">
|
||||
@foreach ($page->versions as $version => $name)
|
||||
<a data-turbolinks="false" href="{{ $page->baseUrl . "/docs/" . $version }}"
|
||||
class="hover:bg-gray-50 block p-3 space-y-1 transition duration-150 ease-in-out rounded-md">
|
||||
<p class="my-0 text-base font-medium leading-6 text-gray-900">
|
||||
Version {{ $name }}
|
||||
</p>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="inline-flex rounded-md shadow-sm">
|
||||
<a href="{{ $page->githubUrl }}" data-turbolinks="false"
|
||||
class="hover:bg-indigo-500 focus:outline-none focus:border-indigo-700 focus:shadow-outline-indigo active:bg-indigo-700 inline-flex items-center justify-center px-4 py-2 text-base font-medium leading-6 text-white whitespace-no-wrap transition duration-150 ease-in-out bg-indigo-600 border border-transparent rounded-md">
|
||||
GitHub
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
function navMenu() {
|
||||
return {
|
||||
mobileMenuOpen: false,
|
||||
toggle() {
|
||||
const menu = document.getElementById('js-nav-menu');
|
||||
menu.classList.toggle('hidden');
|
||||
menu.classList.toggle('lg:block');
|
||||
mobileMenuOpen = !mobileMenuOpen;
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@endpush
|
||||
303
source/_partials/header.blade.php
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
<div x-data="{ mobileMenuOpen: false }" class="relative z-10 bg-white">
|
||||
<div class="sm:px-6 md:justify-start md:space-x-10 flex items-center justify-between px-4 pt-3 pb-6">
|
||||
<div class="lg:w-0 lg:flex-1">
|
||||
<a href="{{ $page->baseUrl }}" class="flex">
|
||||
<img src="/assets/img/tenancyforlaravel.svg" alt="Tenancy for Laravel" style="height: 70px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="md:hidden -my-2 -mr-2">
|
||||
<button @click="mobileMenuOpen = true" type="button" class="hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 inline-flex items-center justify-center p-2 text-gray-400 transition duration-150 ease-in-out rounded-md">
|
||||
<svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<nav class="md:flex hidden space-x-10">
|
||||
<div @click.away="flyoutMenuOpen = false" x-data="{ flyoutMenuOpen: false }" class="relative">
|
||||
<button type="button" @click="flyoutMenuOpen = !flyoutMenuOpen" x-state:on="Item active" x-state:off="Item inactive" :class="{ 'text-gray-900': flyoutMenuOpen, 'text-gray-500': !flyoutMenuOpen }" class="group hover:text-gray-900 focus:outline-none focus:text-gray-900 inline-flex items-center space-x-2 text-base font-medium leading-6 text-gray-500 transition duration-150 ease-in-out">
|
||||
<span>Documentation
|
||||
</span>
|
||||
<svg x-state:on="Item active" x-state:off="Item inactive" class="group-hover:text-gray-500 group-focus:text-gray-500 w-5 h-5 text-gray-400 transition duration-150 ease-in-out" x-bind:class="{ 'text-gray-600': flyoutMenuOpen, 'text-gray-400': !flyoutMenuOpen }" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div x-description="'Documentation' flyout menu, show/hide based on flyout menu state." x-show="flyoutMenuOpen" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-1" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-1" class="md:max-w-3xl lg:ml-0 lg:left-1/2 lg:-translate-x-1/2 absolute w-screen max-w-md mt-3 -ml-4 transform" style="display: none;">
|
||||
<div class="rounded-lg shadow-lg">
|
||||
<div class="overflow-hidden rounded-lg shadow-xs">
|
||||
<div class="sm:gap-8 sm:p-8 lg:grid-cols-2 relative z-20 grid gap-6 px-5 py-6 bg-white">
|
||||
<a href="/docs/v3/tenants" class="hover:bg-gray-50 flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="sm:h-12 sm:w-12 flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg>
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Tenants
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
Everything about the Tenant model. Creating tenants, customizing behavior and more.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/package-comparison" class="hover:bg-gray-50 flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="sm:h-12 sm:w-12 flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Compared to other packages
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
This package compared to other Laravel multi-tenancy packages.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/event-system" class="hover:bg-gray-50 flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="sm:h-12 sm:w-12 flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z"></path></svg>
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Event system
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
The glue that holds together the pieces that make up this package.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/integrating" class="hover:bg-gray-50 flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="sm:h-12 sm:w-12 flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14v6m-3-3h6M6 10h2a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2zm10 0h2a2 2 0 002-2V6a2 2 0 00-2-2h-2a2 2 0 00-2 2v2a2 2 0 002 2zM6 20h2a2 2 0 002-2v-2a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Integrations
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
A list of verified integrations with other Laravel packages.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/configuration" class="hover:bg-gray-50 flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="sm:h-12 sm:w-12 flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"></path><path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Configuration
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
Configure this package to behave exactly the way that fits your needs.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/tenant-identification" class="hover:bg-gray-50 flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="sm:h-12 sm:w-12 flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
|
||||
</div>
|
||||
<div class="space-y-1">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Tenant identification
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
Everything about identifying tenants. Middlewares, resolvers, or manual identification.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="bg-gray-50 sm:p-8 p-5">
|
||||
<a href="/docs/v3" class="hover:bg-gray-100 flow-root p-3 -m-3 space-y-1 transition duration-150 ease-in-out rounded-md">
|
||||
<div class="flex items-center space-x-3">
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Open documentation
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
View the full documentation.
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div x-data="{ flyoutMenuOpen: false }" @click.away="flyoutMenuOpen = false" class="relative">
|
||||
<button type="button" @click="flyoutMenuOpen = !flyoutMenuOpen" x-state:on="Item active" x-state:off="Item inactive" :class="{ 'text-gray-900': flyoutMenuOpen, 'text-gray-500': !flyoutMenuOpen }" class="group hover:text-gray-900 focus:outline-none focus:text-gray-900 inline-flex items-center space-x-2 text-base font-medium leading-6 text-gray-500 transition duration-150 ease-in-out">
|
||||
<span>Business
|
||||
</span>
|
||||
<svg x-state:on="Item active" x-state:off="Item inactive" class="group-hover:text-gray-500 group-focus:text-gray-500 w-5 h-5 text-gray-400 transition duration-150 ease-in-out" x-bind:class="{ 'text-gray-600': flyoutMenuOpen, 'text-gray-400': !flyoutMenuOpen }" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"></path>
|
||||
</svg>
|
||||
</button>
|
||||
<div x-description="'Business' flyout menu, show/hide based on flyout menu state." x-show="flyoutMenuOpen" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 translate-y-1" x-transition:enter-end="opacity-100 translate-y-0" x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 translate-y-1" class="left-1/2 sm:px-0 absolute w-screen max-w-xs px-2 mt-3 transform -translate-x-1/2" style="display: none;">
|
||||
<div class="rounded-lg shadow-lg">
|
||||
<div class="overflow-hidden rounded-lg shadow-xs">
|
||||
<div class="sm:gap-8 sm:p-8 relative z-20 grid gap-6 px-5 py-6 bg-white">
|
||||
<a href="/saas-boilerplate" class="hover:bg-gray-50 block p-3 -m-3 space-y-1 transition duration-150 ease-in-out rounded-md">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
SaaS boilerplate
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
A fully featured Laravel application skeleton with multi-tenancy, tenant signup flow, Cashier billing and a Nova admin panel.
|
||||
</p>
|
||||
</a>
|
||||
<a href="/contact" class="hover:bg-gray-50 block p-3 -m-3 space-y-1 transition duration-150 ease-in-out rounded-md">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Consulting
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
We offer consulting services for businesses who need help with implementing our package or related features.
|
||||
</p>
|
||||
</a>
|
||||
<a href="/contact" class="hover:bg-gray-50 block p-3 -m-3 space-y-1 transition duration-150 ease-in-out rounded-md">
|
||||
<p class="text-base font-medium leading-6 text-gray-900">
|
||||
Audits
|
||||
</p>
|
||||
<p class="text-sm leading-5 text-gray-500">
|
||||
Have the package author to review your tenancy implementation before you launch.
|
||||
</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a target="_blank" href="https://github.com/stancl/tenancy" class="hidden xl:inline hover:text-gray-900 focus:outline-none focus:text-gray-900 text-base font-medium leading-6 text-gray-500 transition duration-150 ease-in-out">
|
||||
GitHub
|
||||
</a>
|
||||
<a target="_blank" href="https://discord.gg/7cpgPxv" class="hover:text-gray-900 focus:outline-none focus:text-gray-900 text-base font-medium leading-6 text-gray-500 transition duration-150 ease-in-out">
|
||||
Discord
|
||||
</a>
|
||||
<a href="/donate" class="hover:text-gray-900 focus:outline-none focus:text-gray-900 text-base font-medium leading-6 text-gray-500 transition duration-150 ease-in-out">
|
||||
Donate
|
||||
</a>
|
||||
</nav>
|
||||
<div class="md:flex md:flex-1 lg:w-0 items-center justify-end hidden space-x-8">
|
||||
<a href="/docs/v3/quickstart/" class="hover:text-gray-900 focus:outline-none focus:text-gray-900 text-base font-medium leading-6 text-gray-500 whitespace-no-wrap">
|
||||
Tutorial
|
||||
</a>
|
||||
<span class="inline-flex rounded-md shadow-sm">
|
||||
<a href="/docs/" class="hover:bg-indigo-500 focus:outline-none focus:border-indigo-700 focus:shadow-outline-indigo active:bg-indigo-700 inline-flex items-center justify-center px-4 py-2 text-base font-medium leading-6 text-white whitespace-no-wrap transition duration-150 ease-in-out bg-indigo-600 border border-transparent rounded-md">
|
||||
Documentation
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div x-description="Mobile menu, show/hide based on mobile menu state." x-show="mobileMenuOpen" x-transition:enter="duration-200 ease-out" x-transition:enter-start="opacity-0 scale-95" x-transition:enter-end="opacity-100 scale-100" x-transition:leave="duration-100 ease-in" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" class="md:hidden absolute inset-x-0 top-0 p-2 transition origin-top-right transform">
|
||||
<div class="rounded-lg shadow-lg">
|
||||
<div class="divide-gray-50 bg-white divide-y-2 rounded-lg shadow-xs">
|
||||
<div class="px-5 pt-5 pb-6 space-y-6">
|
||||
<div class="flex items-center justify-between">
|
||||
<div>
|
||||
<img src="/assets/img/tenancyforlaravel.svg" alt="Tenancy for Laravel" style="height: 70px">
|
||||
</div>
|
||||
<div class="-mr-2">
|
||||
<button @click="mobileMenuOpen = false" type="button" class="hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 inline-flex items-center justify-center p-2 text-gray-400 transition duration-150 ease-in-out rounded-md">
|
||||
<svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<nav class="gap-7 grid grid-cols-1">
|
||||
<a href="/docs/v3/tenants" class="hover:bg-gray-50 flex items-center p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg>
|
||||
</div>
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Tenants
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/package-comparison" class="hover:bg-gray-50 flex items-center p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Compared to other packages
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/event-system" class="hover:bg-gray-50 flex items-center p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z"></path></svg>
|
||||
</div>
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Event system
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/integrating" class="hover:bg-gray-50 flex items-center p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 14v6m-3-3h6M6 10h2a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2zm10 0h2a2 2 0 002-2V6a2 2 0 00-2-2h-2a2 2 0 00-2 2v2a2 2 0 002 2zM6 20h2a2 2 0 002-2v-2a2 2 0 00-2-2H6a2 2 0 00-2 2v2a2 2 0 002 2z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Integrations
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/configuration" class="hover:bg-gray-50 flex items-center p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"></path><path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
|
||||
</div>
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Configuration
|
||||
</div>
|
||||
</a>
|
||||
<a href="/docs/v3/tenant-identification" class="hover:bg-gray-50 flex items-center p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg">
|
||||
<div class="flex items-center justify-center flex-shrink-0 w-10 h-10 text-white bg-indigo-500 rounded-md">
|
||||
<svg class="w-6 h-6" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24" stroke="currentColor"><path d="M5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
|
||||
</div>
|
||||
<div class="text-base font-medium leading-6 text-gray-900">
|
||||
Tenant identification
|
||||
</div>
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-5 py-6 space-y-6">
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
<a href="/saas-boilerplate" class="hover:text-gray-700 text-base font-medium leading-6 text-gray-900 transition duration-150 ease-in-out">
|
||||
SaaS boilerplate
|
||||
</a>
|
||||
<a href="/contact" class="hover:text-gray-700 text-base font-medium leading-6 text-gray-900 transition duration-150 ease-in-out">
|
||||
Consulting
|
||||
</a>
|
||||
<a href="/contact" class="hover:text-gray-700 text-base font-medium leading-6 text-gray-900 transition duration-150 ease-in-out">
|
||||
Audits
|
||||
</a>
|
||||
<a target="_blank" href="https://github.com/stancl/tenancy" class="hover:text-gray-700 text-base font-medium leading-6 text-gray-900 transition duration-150 ease-in-out">
|
||||
GitHub
|
||||
</a>
|
||||
<a target="_blank" href="https://discord.gg/vHjEyrw" class="hover:text-gray-700 text-base font-medium leading-6 text-gray-900 transition duration-150 ease-in-out">
|
||||
Discord
|
||||
</a>
|
||||
<a href="/donate" class="hover:text-gray-700 text-base font-medium leading-6 text-gray-900 transition duration-150 ease-in-out">
|
||||
Donate
|
||||
</a>
|
||||
</div>
|
||||
<div class="space-y-6">
|
||||
<span class="flex w-full rounded-md shadow-sm">
|
||||
<a href="/docs/v3" class="hover:bg-indigo-500 focus:outline-none focus:border-indigo-700 focus:shadow-outline-indigo active:bg-indigo-700 flex items-center justify-center w-full px-4 py-2 text-base font-medium leading-6 text-white transition duration-150 ease-in-out bg-indigo-600 border border-transparent rounded-md">
|
||||
Documentation
|
||||
</a>
|
||||
</span>
|
||||
<p class="text-base font-medium leading-6 text-center text-gray-500">
|
||||
<a href="/docs/v3/quickstart" class="hover:text-indigo-500 text-indigo-600 transition duration-150 ease-in-out">
|
||||
Tutorial
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
BIN
source/android-chrome-192x192.png
Executable file
|
After Width: | Height: | Size: 12 KiB |
BIN
source/android-chrome-512x512.png
Executable file
|
After Width: | Height: | Size: 20 KiB |
BIN
source/apple-touch-icon.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
260
source/assets/build/css/docs.css
Normal file
|
|
@ -0,0 +1,260 @@
|
|||
body {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.markdown body {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.markdown a {
|
||||
font-weight: 600;
|
||||
--text-opacity: 1;
|
||||
color: #5145cd;
|
||||
color: rgba(81, 69, 205, var(--text-opacity));
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
.markdown a:hover {
|
||||
--text-opacity: 1;
|
||||
color: #6875f5;
|
||||
color: rgba(104, 117, 245, var(--text-opacity));
|
||||
}
|
||||
|
||||
.markdown blockquote {
|
||||
padding-left: 1.5rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 2rem;
|
||||
font-size: 1.125rem;
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
--text-opacity: 1;
|
||||
color: #252f3f;
|
||||
color: rgba(37, 47, 63, var(--text-opacity));
|
||||
border-left-width: 4px;
|
||||
--border-opacity: 1;
|
||||
border-color: #e1effe;
|
||||
border-color: rgba(225, 239, 254, var(--border-opacity));
|
||||
}
|
||||
|
||||
.markdown code {
|
||||
padding-left: 0.5rem;
|
||||
padding-right: 0.5rem;
|
||||
padding-top: 1px;
|
||||
padding-bottom: 1px;
|
||||
font-size: 0.875rem;
|
||||
--bg-opacity: 1;
|
||||
background-color: #e5e7eb;
|
||||
background-color: rgba(229, 231, 235, var(--bg-opacity));
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.markdown code.hljs {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.markdown code.hljs .hljs-comment,
|
||||
.markdown code.hljs .hljs-keyword,
|
||||
.markdown code.hljs .hljs-meta {
|
||||
font-weight: 400;
|
||||
/* @apply roman; */
|
||||
}
|
||||
|
||||
.markdown h1,
|
||||
.markdown h2,
|
||||
.markdown h3,
|
||||
.markdown h4,
|
||||
.markdown h5,
|
||||
.markdown h6 {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
line-height: 1.25;
|
||||
--text-opacity: 1;
|
||||
color: #000000;
|
||||
color: rgba(0, 0, 0, var(--text-opacity))
|
||||
}
|
||||
|
||||
.markdown h1:first-child, .markdown h2:first-child, .markdown h3:first-child, .markdown h4:first-child, .markdown h5:first-child, .markdown h6:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.markdown h1 {
|
||||
font-size: 3rem;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.markdown h2 {
|
||||
font-size: 2.25rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.markdown h3 {
|
||||
font-size: 1.875rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.markdown h4 {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.markdown h5 {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.markdown h6 {
|
||||
font-size: 1.125rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.markdown hr {
|
||||
margin-top: 3rem;
|
||||
margin-bottom: 3rem;
|
||||
border-bottom-width: 1px;
|
||||
--border-opacity: 1;
|
||||
border-color: #c3ddfd;
|
||||
border-color: rgba(195, 221, 253, var(--border-opacity));
|
||||
border-radius: 9999px;
|
||||
}
|
||||
|
||||
.markdown li ul,
|
||||
.markdown li ol {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markdown ol,
|
||||
.markdown ul {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.markdown p {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.markdown pre {
|
||||
padding: 1rem;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1rem;
|
||||
line-height: 2;
|
||||
--bg-opacity: 1;
|
||||
background-color: #f4f5f7;
|
||||
background-color: rgba(244, 245, 247, var(--bg-opacity));
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.markdown pre code {
|
||||
display: block;
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.nav-menu {
|
||||
margin-bottom: 1rem;
|
||||
@media (min-width: 1024px) {
|
||||
display: block;
|
||||
|
||||
padding-right: 1rem;
|
||||
|
||||
background-color: transparent;
|
||||
|
||||
border-bottom-width: 0;
|
||||
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-menu .active {
|
||||
--text-opacity: 1;
|
||||
color: #000000;
|
||||
color: rgba(0, 0, 0, var(--text-opacity));
|
||||
}
|
||||
|
||||
.nav-menu__item {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
--text-opacity: 1;
|
||||
color: #5145cd;
|
||||
color: rgba(81, 69, 205, var(--text-opacity));
|
||||
text-decoration: none;
|
||||
/* @apply .list-reset; ??? */
|
||||
}
|
||||
|
||||
ul.list-reset ul.list-reset {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
.turbolinks-progress-bar {
|
||||
--bg-opacity: 1;
|
||||
background-color: #6875f5;
|
||||
background-color: rgba(104, 117, 245, var(--bg-opacity));
|
||||
height: 3px;
|
||||
}
|
||||
|
||||
.docsearch-input {
|
||||
background-image: url('assets/img/magnifying-glass.svg');
|
||||
background-position: 0.8em;
|
||||
background-repeat: no-repeat;
|
||||
text-indent: 1.2em;
|
||||
@media (min-width: 1024px) {
|
||||
&:focus {
|
||||
width: 66.666667%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1280px) {
|
||||
&:focus {
|
||||
width: 75%;
|
||||
}
|
||||
}
|
||||
/* &__wrapper {
|
||||
@apply absolute top-0 left-0 z-10 w-full px-4 mt-8 bg-white;
|
||||
|
||||
@screen md {
|
||||
@apply relative px-0 mt-0;
|
||||
}
|
||||
} */
|
||||
}
|
||||
|
||||
.algolia-autocomplete {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .ds-dropdown-menu {
|
||||
width: 100%;
|
||||
max-width: 750px !important;
|
||||
min-width: auto !important;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .ds-dropdown-menu .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content {
|
||||
width: 100%;
|
||||
@media (min-width: 768px) {
|
||||
width: 66.666667%;
|
||||
}
|
||||
}
|
||||
|
||||
.algolia-autocomplete .ds-dropdown-menu .algolia-docsearch-suggestion .algolia-docsearch-suggestion--text {
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .ds-dropdown-menu .algolia-docsearch-suggestion .algolia-docsearch-suggestion--wrapper {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.algolia-autocomplete .ds-dropdown-menu .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column {
|
||||
display: none;
|
||||
@media (min-width: 768px) {
|
||||
display: inline-block;
|
||||
|
||||
width: 33.333333%;
|
||||
}
|
||||
}
|
||||
|
||||
180335
source/assets/build/css/main.css
Normal file
235
source/assets/build/js/main.js
Normal file
7
source/assets/build/js/main.js.LICENSE.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/*!
|
||||
* @overview es6-promise - a tiny implementation of Promises/A+.
|
||||
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
|
||||
* @license Licensed under MIT license
|
||||
* See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
|
||||
* @version v4.2.8+1e68dce6
|
||||
*/
|
||||
1
source/assets/build/js/main.js.map
Normal file
123
source/assets/build/js/turbolinks.js
Normal file
BIN
source/assets/images/passport_universal.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
source/assets/images/spatie.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
source/assets/images/stancl_tenancy_middleware.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
source/assets/images/tenancy_events.png
Normal file
|
After Width: | Height: | Size: 225 KiB |
BIN
source/assets/images/tenant_controller.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 856 B After Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
source/assets/img/logo.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 971 B After Width: | Height: | Size: 971 B |
8
source/assets/img/tenancyforlaravel.svg
Normal file
|
After Width: | Height: | Size: 10 KiB |
35
source/branding.blade.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
title: Branding
|
||||
description: Branding information about Tenancy for Laravel.
|
||||
extends: _layouts.master
|
||||
section: content
|
||||
centered: true
|
||||
markdown: true
|
||||
---
|
||||
|
||||
# Branding
|
||||
|
||||
## Name
|
||||
|
||||
The official SEO-friendly name of the project is **Tenancy for Laravel**. When talking about this package in the context of other packages, the repository name **stancl/tenancy** is used too, to clearly distinguish this project from others.
|
||||
|
||||
## Color
|
||||
|
||||
The main brand color is Tailwind UI's <span class="text-indigo-600">indigo-600</span> — `#5850EC`.
|
||||
|
||||
The color of the "inner box" in the logo is <span class="text-blue-300">blue-300</span> — `#A4CAFE`.
|
||||
|
||||
## Fonts
|
||||
|
||||
All texts on this website use the Inter font — with the exception of the logo which uses Nunito for the upper text.
|
||||
|
||||
## Design
|
||||
|
||||
You can view our design kit on Figma:
|
||||
<iframe
|
||||
height="450"
|
||||
width="800"
|
||||
src="https://www.figma.com/embed?embed_host=astra&url=https://www.figma.com/file/JOg9ioEQJJxLlYtpsPkVAb/Tenancy-for-Laravel"
|
||||
allowfullscreen
|
||||
></iframe>
|
||||
|
||||
65
source/contact.blade.php
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
@extends('_layouts.master', ['title' => 'Contact'])
|
||||
|
||||
@section('content')
|
||||
<div class="bg-white py-16 px-4 overflow-hidden sm:px-6 lg:px-8 lg:py-24">
|
||||
<div class="relative max-w-xl mx-auto">
|
||||
<div class="text-center">
|
||||
<h2 class="text-3xl leading-9 font-extrabold tracking-tight text-gray-900 sm:text-4xl sm:leading-10">
|
||||
Contact me
|
||||
</h2>
|
||||
<p class="mt-4 text-lg leading-6 text-gray-500">
|
||||
You can contact me if you need consulting, want to have your implementation audited, or want to discuss something.
|
||||
</p>
|
||||
<p class="mt-4 text-lg leading-6 text-gray-500">
|
||||
You can also use email: <a class="text-indigo-700" href="mailto:samuel@tenancyforlaravel.com">samuel@tenancyforlaravel.com</a>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-12">
|
||||
<form netlify class="grid grid-cols-1 row-gap-6 sm:grid-cols-2 sm:col-gap-8">
|
||||
<div>
|
||||
<label for="first_name" class="block text-sm font-medium leading-5 text-gray-700">First name
|
||||
</label>
|
||||
<div class="mt-1 relative rounded-md shadow-sm">
|
||||
<input id="first_name" class="form-input py-3 px-4 block w-full transition ease-in-out duration-150" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="last_name" class="block text-sm font-medium leading-5 text-gray-700">Last name
|
||||
</label>
|
||||
<div class="mt-1 relative rounded-md shadow-sm">
|
||||
<input id="last_name" class="form-input py-3 px-4 block w-full transition ease-in-out duration-150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm:col-span-2">
|
||||
<label for="company" class="block text-sm font-medium leading-5 text-gray-700">Company
|
||||
</label>
|
||||
<div class="mt-1 relative rounded-md shadow-sm">
|
||||
<input id="company" class="form-input py-3 px-4 block w-full transition ease-in-out duration-150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm:col-span-2">
|
||||
<label for="email" class="block text-sm font-medium leading-5 text-gray-700">Email
|
||||
</label>
|
||||
<div class="mt-1 relative rounded-md shadow-sm">
|
||||
<input id="email" type="email" class="form-input py-3 px-4 block w-full transition ease-in-out duration-150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm:col-span-2">
|
||||
<label for="message" class="block text-sm font-medium leading-5 text-gray-700">Message
|
||||
</label>
|
||||
<div class="mt-1 relative rounded-md shadow-sm">
|
||||
<textarea id="message" rows="4" class="form-textarea py-3 px-4 block w-full transition ease-in-out duration-150"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sm:col-span-2">
|
||||
<span class="w-full inline-flex rounded-md shadow-sm">
|
||||
<button type="submit" class="w-full inline-flex items-center justify-center px-6 py-3 border border-transparent text-base leading-6 font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-500 focus:outline-none focus:border-indigo-700 focus:shadow-outline-indigo active:bg-indigo-700 transition ease-in-out duration-150">
|
||||
Let's talk
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||