From 707111fdac710d80362d61e5a41dc579b9db4ea0 Mon Sep 17 00:00:00 2001 From: Harshad Sharma Date: Wed, 15 May 2024 01:28:42 +0530 Subject: [PATCH] Redo Liliform for clarity --- lib/freedive/colorhash.ex | 6 +- lib/freedive_web.ex | 7 +- .../components/layouts/app.html.heex | 87 +- lib/freedive_web/components/liliform.ex | 1315 ----------------- lib/freedive_web/live/home_live.ex | 51 +- lib/freedive_web/router.ex | 1 + lib/liliform.ex | 24 + lib/liliform/block.ex | 23 + lib/liliform/box.ex | 23 + lib/liliform/bulma_helper.ex | 35 + lib/liliform/button.ex | 24 + lib/liliform/colorhash.ex | 55 + lib/liliform/column.ex | 23 + lib/liliform/component.ex | 17 + lib/liliform/container.ex | 23 + lib/liliform/content.ex | 23 + lib/liliform/control.ex | 23 + lib/liliform/flash.ex | 143 ++ lib/liliform/hero.ex | 23 + lib/liliform/icon.ex | 119 ++ lib/liliform/input.ex | 157 ++ lib/liliform/label.ex | 19 + lib/liliform/media.ex | 80 + lib/liliform/navbar.ex | 209 +++ lib/liliform/panel.ex | 83 ++ lib/liliform/section.ex | 23 + lib/liliform/simple_form.ex | 39 + lib/liliform/title.ex | 43 + lib/liliform/translation.ex | 29 + test/freedive/colorhash_test.exs | 24 +- 30 files changed, 1348 insertions(+), 1403 deletions(-) delete mode 100644 lib/freedive_web/components/liliform.ex create mode 100644 lib/liliform.ex create mode 100644 lib/liliform/block.ex create mode 100644 lib/liliform/box.ex create mode 100644 lib/liliform/bulma_helper.ex create mode 100644 lib/liliform/button.ex create mode 100644 lib/liliform/colorhash.ex create mode 100644 lib/liliform/column.ex create mode 100644 lib/liliform/component.ex create mode 100644 lib/liliform/container.ex create mode 100644 lib/liliform/content.ex create mode 100644 lib/liliform/control.ex create mode 100644 lib/liliform/flash.ex create mode 100644 lib/liliform/hero.ex create mode 100644 lib/liliform/icon.ex create mode 100644 lib/liliform/input.ex create mode 100644 lib/liliform/label.ex create mode 100644 lib/liliform/media.ex create mode 100644 lib/liliform/navbar.ex create mode 100644 lib/liliform/panel.ex create mode 100644 lib/liliform/section.ex create mode 100644 lib/liliform/simple_form.ex create mode 100644 lib/liliform/title.ex create mode 100644 lib/liliform/translation.ex diff --git a/lib/freedive/colorhash.ex b/lib/freedive/colorhash.ex index da43237..b6c0a59 100644 --- a/lib/freedive/colorhash.ex +++ b/lib/freedive/colorhash.ex @@ -4,6 +4,8 @@ defmodule Freedive.Colorhash do """ alias Freedive.Features + @seed "Free_ive" + @default_hsl {0, 0, 0} def hsl(input, css: true) do @@ -13,7 +15,7 @@ defmodule Freedive.Colorhash do def hsl(input) do if Features.enabled?(:colorhash) do - input = String.downcase(input) + input = String.downcase(input) <> @seed hash = :erlang.phash2(input, 2_147_483_647) hue = calculate_hue(hash) @@ -35,7 +37,7 @@ defmodule Freedive.Colorhash do # Ranges to exclude (yellow to light green, cyan) excluded_ranges = [ # yellow - {50, 70}, + {40, 80}, # cyan {175, 185}, ] diff --git a/lib/freedive_web.ex b/lib/freedive_web.ex index c6c5928..223128b 100644 --- a/lib/freedive_web.ex +++ b/lib/freedive_web.ex @@ -53,7 +53,7 @@ defmodule FreediveWeb do quote do use Phoenix.LiveView, layout: {FreediveWeb.Layouts, :app}, - global_prefixes: ["is-", "has-", "flex-", "justify-", "align-"] + global_prefixes: ["is-", "has-"] unquote(html_helpers()) end @@ -69,7 +69,7 @@ defmodule FreediveWeb do def html do quote do - use Phoenix.Component, global_prefixes: ["is-", "has-", "flex-", "justify-", "align-"] + use Phoenix.Component, global_prefixes: ["is-", "has-"] # Import convenience functions from controllers import Phoenix.Controller, @@ -86,8 +86,9 @@ defmodule FreediveWeb do import Phoenix.HTML # Core UI components and translation import FreediveWeb.CoreComponents, only: [header: 1] - import Liliform.Components import FreediveWeb.Gettext + # Import custom components + use Liliform # Shortcut for generating JS commands alias Phoenix.LiveView.JS diff --git a/lib/freedive_web/components/layouts/app.html.heex b/lib/freedive_web/components/layouts/app.html.heex index 8088cb3..87dde96 100644 --- a/lib/freedive_web/components/layouts/app.html.heex +++ b/lib/freedive_web/components/layouts/app.html.heex @@ -12,45 +12,73 @@ <.navbar_menu id="navbar_top" class="mr-1"> - <%!-- <%= if @current_user do %> + <%= if @current_user do %> <.navbar_start> <.navbar_item has-dropdown is-hoverable> <.navbar_link> - Compute + <.icon for="compute" aria-hidden="true"> + Compute + <.navbar_dropdown> - <.navbar_item> - <.link>Bastille Jails - + <.link href={~p"/compute/apps"} class="navbar-item"> + Apps + + + <.link href={~p"/compute/tasks"} class="navbar-item"> + Tasks + <.navbar_item has-dropdown is-hoverable> <.navbar_link> - Storage + <.icon for="storage" aria-hidden="true"> + Storage + <.navbar_dropdown> - <.navbar_item> - <.link>Shared Folders - + <.link href={~p"/storage/local"} class="navbar-item"> + Local + + + <.link href={~p"/storage/shared"} class="navbar-item"> + Shared + + + <.link href={~p"/storage/remote"} class="navbar-item"> + Remote + <.navbar_item has-dropdown is-hoverable> <.navbar_link> - Network + <.icon for="network" aria-hidden="true"> + Network + <.navbar_dropdown> - <.navbar_item> - <.link>Private Network - + <.link href={~p"/network/public"} class="navbar-item"> + Public + + + <.link href={~p"/network/private"} class="navbar-item"> + Private + + + <.navbar_divider /> + + <.link href={~p"/network/endpoints"} class="navbar-item"> + Endpoints + - <% end %> --%> + <% end %> <.navbar_end> <%= if @current_user do %> @@ -60,30 +88,20 @@ <.navbar_item has-dropdown is-hoverable> <.navbar_link> - - - System + <.icon for="system" aria-hidden="true"> + System + <.navbar_dropdown> <.link href={~p"/updates"} class="navbar-item"> - - Software updates <.navbar_divider /> <.link href={~p"/packages"} class="navbar-item"> - - Packages <.link href={~p"/services"} class="navbar-item"> - - Services @@ -91,29 +109,22 @@ <% end %> <.navbar_item has-dropdown is-hoverable> <.navbar_link> - - - Account + <.icon for="account" aria-hidden="true"> + Account + <.navbar_dropdown> <%= if @current_user do %> <.link href={~p"/users/settings"} class="navbar-item"> - - Settings <.link href={~p"/users/log_out"} method="delete" class="navbar-item"> - - Log out <% else %> <.link href={~p"/users/log_in"} class="navbar-item"> -