diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index f98ff2ad..fd972b4c 100755 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.6.0 + uses: dependabot/fetch-metadata@latest with: github-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/duster-fix-blame.yml b/.github/workflows/duster-fix-blame.yml index 5aa4c7da..f7da0de7 100755 --- a/.github/workflows/duster-fix-blame.yml +++ b/.github/workflows/duster-fix-blame.yml @@ -21,11 +21,11 @@ jobs: ref: ${{ github.head_ref }} - name: "Duster Fix" - uses: tighten/duster-action@v2 + uses: tighten/duster-action@latest with: args: fix - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@latest id: auto_commit_action with: commit_message: Dusting @@ -36,7 +36,7 @@ jobs: if: steps.auto_commit_action.outputs.changes_detected == 'true' run: echo ${{ steps.auto_commit_action.outputs.commit_hash }} >> .git-blame-ignore-revs - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@latest with: commit_message: Ignore Dusting commit in git blame commit_user_name: GitHub Action diff --git a/.github/workflows/fix-php-code-style-issues.bak b/.github/workflows/fix-php-code-style-issues.bak index 7ed64b70..c234ff11 100755 --- a/.github/workflows/fix-php-code-style-issues.bak +++ b/.github/workflows/fix-php-code-style-issues.bak @@ -19,9 +19,9 @@ jobs: ref: ${{ github.head_ref }} - name: Fix PHP code style issues - uses: aglipanci/laravel-pint-action@2.2.0 + uses: aglipanci/laravel-pint-action@latest - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@latest with: commit_message: Check & fix styling diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/php-cs-fixer.yml index b5622b26..5edfbae6 100755 --- a/.github/workflows/php-cs-fixer.yml +++ b/.github/workflows/php-cs-fixer.yml @@ -18,6 +18,6 @@ jobs: args: --config=.php-cs-fixer.dist.php --allow-risky=yes - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@latest with: commit_message: Lint \ No newline at end of file diff --git a/.github/workflows/phpmd.bak b/.github/workflows/phpmd.bak index f5195365..11527f21 100755 --- a/.github/workflows/phpmd.bak +++ b/.github/workflows/phpmd.bak @@ -11,7 +11,7 @@ jobs: uses: actions/checkout@v3 - name: Setup PHP environment - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@latest with: coverage: none tools: phpmd diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 9d41c0cf..0f0f58e7 100755 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -14,13 +14,13 @@ jobs: - uses: actions/checkout@v3 - name: Setup PHP - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@latest with: php-version: '8.1' coverage: none - name: Install composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@latest - name: Run PHPStan run: ./vendor/bin/phpstan --error-format=github diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 119d7804..cb2b75e0 100755 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,7 +33,7 @@ jobs: run: cd docs && echo "laraxot.github.io/module_activity" > ./build_production/CNAME - name: gh-pages - uses: JamesIves/github-pages-deploy-action@v4 + uses: JamesIves/github-pages-deploy-action@latest with: branch: gh-pages folder: ./docs/build_production diff --git a/.github/workflows/rector.yaml b/.github/workflows/rector.yaml index 8f485650..82d8e6e5 100755 --- a/.github/workflows/rector.yaml +++ b/.github/workflows/rector.yaml @@ -13,15 +13,15 @@ jobs: with: token: "${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN }}" - - uses: shivammathur/setup-php@v2 + - uses: shivammathur/setup-php@latest with: php-version: 8.1 - - uses: "ramsey/composer-install@v2" + - uses: "ramsey/composer-install@latest" - run: vendor/bin/rector --ansi - - uses: EndBug/add-and-commit@v5.1.0 + - uses: EndBug/add-and-commit@latest with: add: . message: "[ci-review] Rector Rectify" diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 57152e11..0ced47ab 100755 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -28,7 +28,7 @@ jobs: uses: actions/checkout@v3 - name: Setup PHP - uses: shivammathur/setup-php@v2 + uses: shivammathur/setup-php@latest with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 8c12ba9e..9aa0f09f 100755 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -24,7 +24,7 @@ jobs: release-notes: ${{ github.event.release.body }} - name: Commit updated CHANGELOG - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@latest with: branch: main commit_message: Update CHANGELOG diff --git a/.gitignore b/.gitignore index 340df6eb..fd146e06 100755 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,10 @@ package-lock.json node_modules .git-blame-ignore-revs .git-blame-ignore-revs +node_modules +vendor +.git-blame-ignore-revs +build/ +vendor/ +build/ +node_modules diff --git a/Actions/Block/GetAllBlocksAction.php b/Actions/Block/GetAllBlocksAction.php new file mode 100755 index 00000000..12993d54 --- /dev/null +++ b/Actions/Block/GetAllBlocksAction.php @@ -0,0 +1,66 @@ + + */ + public function execute(string $context = 'form'): DataCollection + { + $files = File::glob(base_path('Modules').'/*/Filament/Blocks/*.php'); + $blocks = Arr::map($files, + function ($path) { + $class = Str::of($path) + ->after(base_path('Modules')) + ->prepend('\Modules') + ->before('.php') + ->replace('/', '\\') + ->toString(); + + $name = Str::of(class_basename($class))->snake()->toString(); + if (Str::endsWith($name, '_block')) { + $name = Str::before($name, '_block'); + } + + $module = Str::of($class)->between('Modules\\', '\Filament\\')->toString(); + + /* + + $name2 = $ns::make()->getName(); + + if ($name !== $name2) { + dddx([ + 'ns' => $ns, + 'block' => $block, + 'name' => $name, + 'test' => $name2, + ]); + } + + // */ + // return $ns::make(name: $name, context: $context); + return [ + 'name' => $name, + 'class' => $class, + 'module' => $module, + 'path' => $path, + ]; + } + ); + + return ComponentFileData::collection($blocks); + } +} diff --git a/Actions/Icon/GetAllIconsAction.php b/Actions/Icon/GetAllIconsAction.php new file mode 100755 index 00000000..7f46e03c --- /dev/null +++ b/Actions/Icon/GetAllIconsAction.php @@ -0,0 +1,63 @@ +all(); + /* + * "heroicons" => array:5 [▼ + * "prefix" => "heroicon" + * "fallback" => "" + * "class" => "" + * "attributes" => [] + * "paths" => array:1 [▼ + * 0 => "F:\var\www\_bases\base_fixcity_fila3\laravel\vendor\blade-ui-kit\blade-heroicons\src/../resources/svg" + * ] + ] + */ + $icons = Arr::map($icons, function ($set, $name) { + $set['name'] = $name; + $icons = []; + + foreach ($set['paths'] as $path) { + foreach (File::allFiles($path) as $file) { + // Simply ignore files that aren't SVGs + if ('svg' !== $file->getExtension()) { + continue; + } + + // $iconName = $this->getIconName($file, parentPath: $path, prefix: $prefix); + $iconName = str($file->getPathname()) + ->after($path.DIRECTORY_SEPARATOR) + ->replace(DIRECTORY_SEPARATOR, '.') + ->basename('.svg') + ->toString(); + + $icons[] = $set['prefix'].'-'.$iconName; + } + } + $set['icons'] = $icons; + + return $set; + }); + + return $icons; + } +} diff --git a/Enums/CornerPositionEnum.php b/Enums/CornerPositionEnum.php new file mode 100755 index 00000000..80d75262 --- /dev/null +++ b/Enums/CornerPositionEnum.php @@ -0,0 +1,66 @@ +name; + return trans('ui::corner-position.'.$this->value.'.label'); + + // or + /* + return match ($this) { + self::Draft => 'Draft', + self::Reviewing => 'Reviewing', + self::Published => 'Published', + self::Rejected => 'Rejected', + }; + */ + } + + public function getColor(): string|array|null + { + return match ($this) { + self::TOP_LEFT => 'gray', + self::TOP_RIGHT => 'gray', + self::BOTTOM_LEFT => 'gray', + self::BOTTOM_RIGHT => 'gray', + }; + } + + public function getIcon(): ?string + { + return match ($this) { + self::TOP_LEFT => 'heroicon-o-arrow-up-left', + self::TOP_RIGHT => 'heroicon-o-arrow-up-right', + self::BOTTOM_LEFT => 'heroicon-o-arrow-down-left', + self::BOTTOM_RIGHT => 'heroicon-o-arrow-down-right', + }; + } + + /** + * ---. + */ + public function getCssClass(): ?string + { + return match ($this) { + self::TOP_LEFT => 'top-0 left-0', + self::TOP_RIGHT => 'top-0 right-0', + self::BOTTOM_LEFT => 'bottom-0 left-0', + self::BOTTOM_RIGHT => 'bottom-0 right-0', + }; + } +} diff --git a/Enums/TableLayoutEnum.php b/Enums/TableLayoutEnum.php new file mode 100755 index 00000000..ae310e3c --- /dev/null +++ b/Enums/TableLayoutEnum.php @@ -0,0 +1,100 @@ +name; + // return trans('ui::corner-position.'.$this->value.'.label'); + + // or + /* + return match ($this) { + self::Draft => 'Draft', + self::Reviewing => 'Reviewing', + self::Published => 'Published', + self::Rejected => 'Rejected', + }; + */ + } + + public function getColor(): string|array|null + { + return match ($this) { + self::GRID => 'gray', + self::LIST => 'gray', + }; + } + + public function getIcon(): ?string + { + return match ($this) { + self::LIST => 'heroicon-o-list-bullet', + self::GRID => 'heroicon-o-squares-2x2', + }; + } + + public function toggle(): self + { + // $res = self::LIST === $this ? self::GRID : self::LIST; + $res = self::GRID === $this ? self::LIST : self::GRID; + + return $res; + } + + public function isGridLayout(): bool + { + return self::GRID === $this; + } + + public function getTableContentGrid(): ?array + { + $res = $this->isGridLayout() + ? [ + 'md' => 2, + 'lg' => 3, + 'xl' => 4, + ] + : null; + + return $res; + } + + public function getTableColumns(): array + { + $trace = debug_backtrace(); + /** @var ListRecords $caller */ + $caller = Arr::get($trace, '1.object'); + + if (! method_exists($caller, 'getGridTableColumns')) { + throw new \Exception('method getGridTableColumns not found in ['.get_class($caller).']'); + } + if (! method_exists($caller, 'getListTableColumns')) { + throw new \Exception('method getListTableColumns not found in ['.get_class($caller).']'); + } + + $columns = $this->isGridLayout() + ? $caller->getGridTableColumns() + : $caller->getListTableColumns(); + + return $columns; + } + + public static function init(): self + { + return self::LIST; + } +} diff --git a/Filament/Actions/Header/TableLayoutToggleHeaderAction.php b/Filament/Actions/Header/TableLayoutToggleHeaderAction.php new file mode 100755 index 00000000..6aa6141a --- /dev/null +++ b/Filament/Actions/Header/TableLayoutToggleHeaderAction.php @@ -0,0 +1,41 @@ +translateLabel() + ->color('secondary') + ->label('') + // ->label(trans('ui::'.static::getDefaultName().'.label')) + // ->tooltip(trans('setting::database_connection.actions.database-backup.tooltip')) + // ->icon(trans('setting::database_connection.actions.database-backup.icon')) + // ->icon($this->list_icon) + ->icon(fn ($livewire) => 'list' == $livewire->layoutView ? $this->list_icon : $this->grid_icon) + ->action( + function ($livewire) { + $livewire->layoutView = ('grid' == $livewire->layoutView ? 'list' : 'grid'); + } + ); + } +} diff --git a/Filament/Actions/Table/TableLayoutToggleTableAction.php b/Filament/Actions/Table/TableLayoutToggleTableAction.php new file mode 100755 index 00000000..34620b9d --- /dev/null +++ b/Filament/Actions/Table/TableLayoutToggleTableAction.php @@ -0,0 +1,46 @@ +translateLabel() + ->color('gray') + ->label('') + // ->label(trans('ui::'.static::getDefaultName().'.label')) + // ->tooltip(trans('setting::database_connection.actions.database-backup.tooltip')) + ->icon(function ($livewire) { + // $livewire->layoutView->toggle()->getIcon()) + $livewire->layoutView = $livewire->layoutView->toggle(); + + return $livewire->layoutView->getIcon(); + }) + ->action( + function ($livewire) { + // $livewire->layoutView = $livewire->layoutView->toggle(); + + $livewire->dispatch('$refresh'); + + // $livewire->dispatch('layoutViewChanged'); + // $livewire->tableLayoutToggle(); + } + ); + } +} diff --git a/Filament/Blocks/Hero.php b/Filament/Blocks/Hero.php index 479f63fa..c019a733 100755 --- a/Filament/Blocks/Hero.php +++ b/Filament/Blocks/Hero.php @@ -5,10 +5,15 @@ namespace Modules\UI\Filament\Blocks; use Filament\Forms\Components\Builder\Block; +use Filament\Forms\Components\FileUpload; +use Filament\Forms\Components\Repeater; use Filament\Forms\Components\RichEditor; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; +use Illuminate\Support\Arr; +use Modules\UI\Filament\Forms\Components\RadioImage; use Modules\Xot\Actions\View\GetViewsSiblingsAndSelfAction; +use Modules\Xot\Services\FileService; class Hero { @@ -18,15 +23,37 @@ public static function make( ): Block { $view = 'ui::components.blocks.hero.simple'; $views = app(GetViewsSiblingsAndSelfAction::class)->execute($view); + $options = Arr::map($views, function ($view) { + return FileService::asset('ui::img/screenshots/'.$view.'.png'); + }); return Block::make($name) ->schema( [ TextInput::make('title'), RichEditor::make('text'), + FileUpload::make('background') + // ->acceptedFileTypes(['application/pdf']) + // ->image() + ->directory('blocks') + ->preserveFilenames(), + // * + RadioImage::make('_tpl') + ->label('layout') + ->options($options), + // */ + /* Select::make('_tpl') ->label('layout') ->options($views), + //*/ + Repeater::make('buttons') + ->schema([ + TextInput::make('label')->required(), + TextInput::make('class'), + TextInput::make('link'), + ]) + ->columns(3), ] ); } diff --git a/Filament/Blocks/ImagesGallery.php b/Filament/Blocks/ImagesGallery.php new file mode 100755 index 00000000..87ab62b6 --- /dev/null +++ b/Filament/Blocks/ImagesGallery.php @@ -0,0 +1,99 @@ +schema([ + Repeater::make('gallery') + ->schema([ + SpatieMediaLibraryFileUpload::make('image') + // ->image() + // ->maxSize(5000) + ->multiple() + ->enableReordering() + ->openable() + ->downloadable() + ->columnSpanFull() + // ->collection('avatars') + // ->conversion('thumbnail') + ->disk('uploads') + ->directory('photos'), + + TextInput::make('title') + ->columnSpanFull(), + + TextInput::make('subtitle') + ->columnSpanFull(), + + Select::make('version') + ->label('version') + ->required() + ->options([ + 'v1' => 'versione 1', + 'v2' => 'versione 2', + ]), + ])->columnSpanFull(), + + // FileUpload::make('image') + // ->label('Image upload'), + // SpatieMediaLibraryFileUpload::make('image') + // // ->image() + // // ->maxSize(5000) + // ->multiple() + // ->enableReordering() + // ->openable() + // ->downloadable() + // ->columnSpanFull() + // // ->collection('avatars') + // // ->conversion('thumbnail') + // ->disk('uploads') + // ->directory('photos'), + + // TextInput::make('url') + // ->label('or Image URL'), + + // Select::make('ratio') + // ->options(static::getRatios()) + // ->afterStateHydrated(static fn ($state, $set) => $state || $set('ratio', '4-3')), + + // TextInput::make('alt') + // ->columnSpanFull(), + + // TextInput::make('caption') + // ->columnSpanFull(), + ]) + ->columns('form' === $context ? 2 : 1); + } + + public static function getRatios(): array + { + return [ + '4-3' => '4/3', + '3-4' => '3/4', + 'free' => 'free', + ]; + } + + public static function getRatioClass(string $ratio): string + { + return match ($ratio) { + '4-3' => 'aspect-[4/3]', + '3-4' => 'aspect-[3/4]', + default => '', + }; + } +} diff --git a/Filament/Blocks/PageCard.to_blog b/Filament/Blocks/PageCard.to_blog old mode 100644 new mode 100755 diff --git a/Filament/Blocks/PostCard.to_blog b/Filament/Blocks/PostCard.to_blog old mode 100644 new mode 100755 diff --git a/Filament/Blocks/QrCodeBlock.wip b/Filament/Blocks/QrCodeBlock.wip new file mode 100755 index 00000000..607bdb83 --- /dev/null +++ b/Filament/Blocks/QrCodeBlock.wip @@ -0,0 +1,35 @@ +execute($view); + + return Block::make($name) + ->schema( + [ + TextInput::make('title'), + /* + RichEditor::make('text'), + Select::make('_tpl') + ->label('layout') + ->options($views), + */ + ] + ); + } +} diff --git a/Filament/Filters/DeferredSelectFilter.old b/Filament/Filters/DeferredSelectFilter.old old mode 100644 new mode 100755 diff --git a/Filament/Forms/Components/IconPicker.php b/Filament/Forms/Components/IconPicker.php new file mode 100755 index 00000000..feafceee --- /dev/null +++ b/Filament/Forms/Components/IconPicker.php @@ -0,0 +1,70 @@ +execute(); + + $opts_test = [ + 'heroicon-c-archive-box-x-mark' => 'heroicon-c-archive-box-x-mark', + 'heroicon-c-arrow-down' => 'heroicon-c-arrow-down', + 'heroicon-c-arrow-path' => 'heroicon-c-arrow-path', + 'ui-flags.af' => 'ui-flags.af', + ]; + // $opts = $icons['heroicons']['icons']; + // $opts = array_combine($opts, $opts); + // dddx([ + // 'icons' => $icons, + // 'icons_1' => $icons->toCollection()->keys()->toArray(), + // 'methods' => get_class_methods($icons), + // ]); + + $packs = array_keys($icons); + // $packs = $icons->toCollection()->keys()->toArray(); + $packs = array_combine($packs, $packs); + // dddx($icons->toCollection()->get('heroicons')->toArray()); + + $this->suffixAction( + \Filament\Forms\Components\Actions\Action::make('icon') + ->icon(fn (?string $state) => $state) + // ->modalContent(fn ($record) => view('ui::filament.forms.components.icon-picker', ['record' => $record])) + ->form([ + Select::make('pack') + ->options($packs) + ->reactive() + ->live(), + RadioIcon::make('newstate') + ->options(function (Get $get) use ($icons): array { + $pack = $get('pack'); + if (null == $pack) { + return []; + } + $key = $pack.'.icons'; + Assert::isArray($opts = Arr::get($icons, $key, []), '['.__LINE__.']['.__FILE__.']'); + $opts = array_combine($opts, $opts); + + return $opts; + }) + ->inline() + ->inlineLabel(false), + ]) + ->action(function ($data, $set) { + $set('icon', $data['newstate']); + }) + ); + } +} diff --git a/Filament/Forms/Components/RadioIcon.php b/Filament/Forms/Components/RadioIcon.php new file mode 100755 index 00000000..ce6aab4e --- /dev/null +++ b/Filament/Forms/Components/RadioIcon.php @@ -0,0 +1,38 @@ +suffixAction( + \Filament\Forms\Components\Actions\Action::make('icon') + ->icon(fn (?string $state) => $state) + // ->modalContent(fn ($record) => view('ui::filament.forms.components.icon-picker', ['record' => $record])) + ->form([ + RadioIcon::make('status') + ->inline() + ->inlineLabel(false) + ->options([ + 'draft' => 'Draft', + 'scheduled' => 'Scheduled', + 'published' => 'Published', + ]), + ]) + ); + */ + } +} diff --git a/Filament/Forms/Components/RadioImage.php b/Filament/Forms/Components/RadioImage.php new file mode 100755 index 00000000..e966e0c6 --- /dev/null +++ b/Filament/Forms/Components/RadioImage.php @@ -0,0 +1,38 @@ +suffixAction( + \Filament\Forms\Components\Actions\Action::make('icon') + ->icon(fn (?string $state) => $state) + // ->modalContent(fn ($record) => view('ui::filament.forms.components.icon-picker', ['record' => $record])) + ->form([ + RadioIcon::make('status') + ->inline() + ->inlineLabel(false) + ->options([ + 'draft' => 'Draft', + 'scheduled' => 'Scheduled', + 'published' => 'Published', + ]), + ]) + ); + */ + } +} diff --git a/Filament/Resources/TreeResource/Pages/Concerns/HandlesTreeBuilder.old b/Filament/Resources/TreeResource/Pages/Concerns/HandlesTreeBuilder.old old mode 100644 new mode 100755 diff --git a/Filament/Resources/TreeResource/Pages/Concerns/HandlesTreeBuilder.to_sam b/Filament/Resources/TreeResource/Pages/Concerns/HandlesTreeBuilder.to_sam old mode 100644 new mode 100755 diff --git a/Filament/Tables/Columns/IconColumn.php b/Filament/Tables/Columns/IconColumn.php new file mode 100755 index 00000000..8e49dce6 --- /dev/null +++ b/Filament/Tables/Columns/IconColumn.php @@ -0,0 +1,12 @@ +alias('ui', UIService::class); - $this->registerBladeIcons(); + // $this->registerBladeIcons(); //moved to XotBaseServiceProvider } - public function registerBladeIcons(): void - { - Config::set('blade-icons.sets.default.path', 'Modules/UI/Resources/svg'); - Config::set('blade-icons.sets.default.prefix', 'icon'); - } + // public function registerBladeIcons(): void + // { + // parent::registerBladeIcons(); + // Config::set('blade-icons.sets.default.path', 'Modules/UI/Resources/svg'); + // Config::set('blade-icons.sets.default.prefix', 'icon'); + // } } diff --git a/README.md b/README.md new file mode 100755 index 00000000..6b8d29ce --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# module_UI +Modulo dedicato all'interfaccia utente, raccolta di componenti blade riutilizzabili + +## Aggiungere Modulo nella base del progetto +Dentro la cartella laravel/Modules + +```bash +git submodule add https://github.com/laraxot/module_ui_fila3.git UI +``` + +## Verificare che il modulo sia attivo +```bash +php artisan module:list +``` +in caso abilitarlo +```bash +php artisan module:enable UI +``` +[Vai a Altro](docs/Altro.md) \ No newline at end of file diff --git a/Resources/img/Designer (1).jpeg b/Resources/img/Designer (1).jpeg new file mode 100644 index 00000000..8896c73a Binary files /dev/null and b/Resources/img/Designer (1).jpeg differ diff --git a/Resources/img/Designer.jpeg b/Resources/img/Designer.jpeg new file mode 100644 index 00000000..ec9c3fc7 Binary files /dev/null and b/Resources/img/Designer.jpeg differ diff --git a/Resources/img/Designer2.jpeg b/Resources/img/Designer2.jpeg new file mode 100644 index 00000000..2a46d20f Binary files /dev/null and b/Resources/img/Designer2.jpeg differ diff --git a/Resources/img/Designer3.jpeg b/Resources/img/Designer3.jpeg new file mode 100644 index 00000000..8d4bba3a Binary files /dev/null and b/Resources/img/Designer3.jpeg differ diff --git a/Resources/img/aree verdi.jpeg b/Resources/img/aree verdi.jpeg new file mode 100644 index 00000000..61d1c46b Binary files /dev/null and b/Resources/img/aree verdi.jpeg differ diff --git a/Resources/img/arredo urbano.jpeg b/Resources/img/arredo urbano.jpeg new file mode 100644 index 00000000..9bcf92d7 Binary files /dev/null and b/Resources/img/arredo urbano.jpeg differ diff --git a/Resources/img/fognature e drenaggi.jpeg b/Resources/img/fognature e drenaggi.jpeg new file mode 100644 index 00000000..af83b30b Binary files /dev/null and b/Resources/img/fognature e drenaggi.jpeg differ diff --git a/Resources/img/logo.jpeg b/Resources/img/logo.jpeg new file mode 100644 index 00000000..abc4dfb1 Binary files /dev/null and b/Resources/img/logo.jpeg differ diff --git a/Resources/img/manutenzione stradale.jpeg b/Resources/img/manutenzione stradale.jpeg new file mode 100644 index 00000000..bec57a72 Binary files /dev/null and b/Resources/img/manutenzione stradale.jpeg differ diff --git a/Resources/img/raccolta rifiuti.jpeg b/Resources/img/raccolta rifiuti.jpeg new file mode 100644 index 00000000..0e64d53a Binary files /dev/null and b/Resources/img/raccolta rifiuti.jpeg differ diff --git a/Resources/img/screenshots/card_with_background_image.png b/Resources/img/screenshots/card_with_background_image.png new file mode 100755 index 00000000..b4394eb7 Binary files /dev/null and b/Resources/img/screenshots/card_with_background_image.png differ diff --git a/Resources/img/screenshots/dark_with_illustration.png b/Resources/img/screenshots/dark_with_illustration.png new file mode 100755 index 00000000..5c193cd9 Binary files /dev/null and b/Resources/img/screenshots/dark_with_illustration.png differ diff --git a/Resources/img/screenshots/simple.png b/Resources/img/screenshots/simple.png new file mode 100755 index 00000000..aea02c27 Binary files /dev/null and b/Resources/img/screenshots/simple.png differ diff --git a/Resources/img/screenshots/simple_centered.png b/Resources/img/screenshots/simple_centered.png new file mode 100755 index 00000000..5100b8e2 Binary files /dev/null and b/Resources/img/screenshots/simple_centered.png differ diff --git a/Resources/img/screenshots/simple_centered_with_background_image.png b/Resources/img/screenshots/simple_centered_with_background_image.png new file mode 100755 index 00000000..ba11039e Binary files /dev/null and b/Resources/img/screenshots/simple_centered_with_background_image.png differ diff --git a/Resources/img/screenshots/split_with_code_example.png b/Resources/img/screenshots/split_with_code_example.png new file mode 100755 index 00000000..3148771e Binary files /dev/null and b/Resources/img/screenshots/split_with_code_example.png differ diff --git a/Resources/img/screenshots/split_with_image.png b/Resources/img/screenshots/split_with_image.png new file mode 100755 index 00000000..1d9e6e3d Binary files /dev/null and b/Resources/img/screenshots/split_with_image.png differ diff --git a/Resources/img/screenshots/split_with_navbar.png b/Resources/img/screenshots/split_with_navbar.png new file mode 100755 index 00000000..3ca39686 Binary files /dev/null and b/Resources/img/screenshots/split_with_navbar.png differ diff --git a/Resources/img/screenshots/split_with_screenshot.png b/Resources/img/screenshots/split_with_screenshot.png new file mode 100755 index 00000000..5293a926 Binary files /dev/null and b/Resources/img/screenshots/split_with_screenshot.png differ diff --git a/Resources/img/screenshots/split_with_screenshot_on_dark.png b/Resources/img/screenshots/split_with_screenshot_on_dark.png new file mode 100755 index 00000000..18020a8a Binary files /dev/null and b/Resources/img/screenshots/split_with_screenshot_on_dark.png differ diff --git a/Resources/img/screenshots/with_angled_image_on_right.png b/Resources/img/screenshots/with_angled_image_on_right.png new file mode 100755 index 00000000..ac51bcce Binary files /dev/null and b/Resources/img/screenshots/with_angled_image_on_right.png differ diff --git a/Resources/img/screenshots/with_app_screenshot.png b/Resources/img/screenshots/with_app_screenshot.png new file mode 100755 index 00000000..09d701fc Binary files /dev/null and b/Resources/img/screenshots/with_app_screenshot.png differ diff --git a/Resources/img/screenshots/with_image_tiles.png b/Resources/img/screenshots/with_image_tiles.png new file mode 100755 index 00000000..1b05d5d4 Binary files /dev/null and b/Resources/img/screenshots/with_image_tiles.png differ diff --git a/Resources/img/screenshots/with_offset_image.png b/Resources/img/screenshots/with_offset_image.png new file mode 100755 index 00000000..43038482 Binary files /dev/null and b/Resources/img/screenshots/with_offset_image.png differ diff --git a/Resources/img/screenshots/with_phone_mockup.png b/Resources/img/screenshots/with_phone_mockup.png new file mode 100755 index 00000000..57bdd8ee Binary files /dev/null and b/Resources/img/screenshots/with_phone_mockup.png differ diff --git a/Resources/img/screenshots/with_sign_in_form.png b/Resources/img/screenshots/with_sign_in_form.png new file mode 100755 index 00000000..bfc3dd75 Binary files /dev/null and b/Resources/img/screenshots/with_sign_in_form.png differ diff --git a/Resources/img/screenshots/with_sign_up_and_media_content.png b/Resources/img/screenshots/with_sign_up_and_media_content.png new file mode 100755 index 00000000..2c9a75a7 Binary files /dev/null and b/Resources/img/screenshots/with_sign_up_and_media_content.png differ diff --git a/Resources/img/segnalazioni ambientali.png b/Resources/img/segnalazioni ambientali.png new file mode 100644 index 00000000..d4a9f9ea Binary files /dev/null and b/Resources/img/segnalazioni ambientali.png differ diff --git a/Resources/img/sicurezza pubblica.jpeg b/Resources/img/sicurezza pubblica.jpeg new file mode 100644 index 00000000..b7f91fa9 Binary files /dev/null and b/Resources/img/sicurezza pubblica.jpeg differ diff --git a/Resources/img/trasporti pubblici.jpeg b/Resources/img/trasporti pubblici.jpeg new file mode 100644 index 00000000..8d26d92b Binary files /dev/null and b/Resources/img/trasporti pubblici.jpeg differ diff --git a/Resources/lang/it/corner-position.php b/Resources/lang/it/corner-position.php new file mode 100755 index 00000000..6b37835b --- /dev/null +++ b/Resources/lang/it/corner-position.php @@ -0,0 +1,18 @@ + [ + 'label' => 'alto a sinistra', + ], + 'top-right' => [ + 'label' => 'alto a destra', + ], + 'bottom-left' => [ + 'label' => 'basso a sinistra', + ], + 'bottom-right' => [ + 'label' => 'basso a destra', + ], +]; diff --git a/Resources/svg/ai.svg b/Resources/svg/ai.svg new file mode 100755 index 00000000..ae97ea18 --- /dev/null +++ b/Resources/svg/ai.svg @@ -0,0 +1,18 @@ + + \ No newline at end of file diff --git a/Resources/svg/archive-box.svg b/Resources/svg/archive-box.svg new file mode 100755 index 00000000..1655a539 --- /dev/null +++ b/Resources/svg/archive-box.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Resources/svg/brain.svg b/Resources/svg/brain.svg new file mode 100755 index 00000000..76629f04 --- /dev/null +++ b/Resources/svg/brain.svg @@ -0,0 +1,121 @@ + + + + + \ No newline at end of file diff --git a/Resources/svg/building-office.svg b/Resources/svg/building-office.svg new file mode 100755 index 00000000..bac83cd1 --- /dev/null +++ b/Resources/svg/building-office.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/Resources/svg/chatgpt.svg b/Resources/svg/chatgpt.svg new file mode 100755 index 00000000..87ee2e98 --- /dev/null +++ b/Resources/svg/chatgpt.svg @@ -0,0 +1,2 @@ + + diff --git a/Resources/svg/clean.svg b/Resources/svg/clean.svg new file mode 100755 index 00000000..ad67235d --- /dev/null +++ b/Resources/svg/clean.svg @@ -0,0 +1,16 @@ + + \ No newline at end of file diff --git a/Resources/svg/cleaner-broom-svgrepo-com.svg b/Resources/svg/cleaner-broom-svgrepo-com.svg new file mode 100755 index 00000000..4a16e47b --- /dev/null +++ b/Resources/svg/cleaner-broom-svgrepo-com.svg @@ -0,0 +1,38 @@ + + + \ No newline at end of file diff --git a/Resources/svg/confused-svgrepo-com.svg b/Resources/svg/confused-svgrepo-com.svg new file mode 100755 index 00000000..b333dbed --- /dev/null +++ b/Resources/svg/confused-svgrepo-com.svg @@ -0,0 +1,27 @@ + + + \ No newline at end of file diff --git a/Resources/svg/convert.png b/Resources/svg/convert.png old mode 100644 new mode 100755 diff --git a/Resources/svg/convert.svg b/Resources/svg/convert.svg old mode 100644 new mode 100755 diff --git a/Resources/svg/convert01.svg b/Resources/svg/convert01.svg old mode 100644 new mode 100755 diff --git a/Resources/svg/fas-bus.svg b/Resources/svg/fas-bus.svg new file mode 100755 index 00000000..96f316e6 --- /dev/null +++ b/Resources/svg/fas-bus.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/Resources/svg/fas-couch.svg b/Resources/svg/fas-couch.svg new file mode 100755 index 00000000..5be616b9 --- /dev/null +++ b/Resources/svg/fas-couch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/svg/flags/en.svg b/Resources/svg/flags/en.svg new file mode 100755 index 00000000..1b8fb425 --- /dev/null +++ b/Resources/svg/flags/en.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/svg/globe-alt.svg b/Resources/svg/globe-alt.svg new file mode 100755 index 00000000..7c39b7aa --- /dev/null +++ b/Resources/svg/globe-alt.svg @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/Resources/svg/google.svg b/Resources/svg/google.svg new file mode 100644 index 00000000..3aa18baf --- /dev/null +++ b/Resources/svg/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/svg/hourglass.svg b/Resources/svg/hourglass.svg new file mode 100755 index 00000000..dcd92afe --- /dev/null +++ b/Resources/svg/hourglass.svg @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/Resources/svg/light-bulb.svg b/Resources/svg/light-bulb.svg new file mode 100755 index 00000000..8428c6ba --- /dev/null +++ b/Resources/svg/light-bulb.svg @@ -0,0 +1,3 @@ + diff --git a/Resources/svg/marker-add.svg b/Resources/svg/marker-add.svg new file mode 100755 index 00000000..5e36aed5 --- /dev/null +++ b/Resources/svg/marker-add.svg @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/Resources/svg/marker-plus.svg b/Resources/svg/marker-plus.svg new file mode 100755 index 00000000..b0f63f16 --- /dev/null +++ b/Resources/svg/marker-plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Resources/svg/repair.svg b/Resources/svg/repair.svg new file mode 100755 index 00000000..0844fb28 --- /dev/null +++ b/Resources/svg/repair.svg @@ -0,0 +1,46 @@ + + + + + \ No newline at end of file diff --git a/Resources/svg/shield-check.svg b/Resources/svg/shield-check.svg new file mode 100755 index 00000000..a8cbcf39 --- /dev/null +++ b/Resources/svg/shield-check.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/Resources/svg/sparkles.svg b/Resources/svg/sparkles.svg new file mode 100755 index 00000000..f437d458 --- /dev/null +++ b/Resources/svg/sparkles.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Resources/svg/status.svg b/Resources/svg/status.svg new file mode 100755 index 00000000..5c23f2eb --- /dev/null +++ b/Resources/svg/status.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Resources/svg/superman.svg b/Resources/svg/superman.svg new file mode 100755 index 00000000..be26e43b --- /dev/null +++ b/Resources/svg/superman.svg @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/Resources/svg/trash.svg b/Resources/svg/trash.svg new file mode 100755 index 00000000..5eff4603 --- /dev/null +++ b/Resources/svg/trash.svg @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/Resources/svg/wrench.svg b/Resources/svg/wrench.svg new file mode 100755 index 00000000..0400254c --- /dev/null +++ b/Resources/svg/wrench.svg @@ -0,0 +1,4 @@ + diff --git a/Resources/views/alert.blade.php b/Resources/views/alert.blade.php new file mode 100644 index 00000000..6ea70737 --- /dev/null +++ b/Resources/views/alert.blade.php @@ -0,0 +1,7 @@ +
', '
', $text); + @endphp + {!! $text !!} +
Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui lorem cupidatat commodo. Elit sunt amet fugiat veniam occaecat fugiat aliqua.
-Give your documentation a boost with Jigsaw.
Generate elegant, static docs quickly and easily.
Blade is a powerful, simple, and beautiful templating language, and now you can use it for your static sites, not just your Laravel-powered apps.
-Markdown is the web’s leading format for writing articles, blog posts, documentation, and more. Jigsaw makes it painless to work with Markdown content.
-Jigsaw comes pre-configured with Laravel Mix, a simple and powerful build tool. Use the latest frontend tech with just a few lines of code.
-