- Add .gitea/workflows/ci.yml ported from lifeos (lint + tests with coverage gate) - Set up phpstan (larastan + peststan, baseline at level max) - Replace eslint/prettier with oxlint/oxfmt; reformat resources/ - Add composer phpstan/coverage/quality scripts; restore --min=95 coverage gate - Exclude integration plumbing (Saloon Hetzner classes, SSH wrappers, console commands, DTOs) from coverage to keep the gate focused on business logic - Add ~12 new test files covering models, drivers, controllers, jobs, auth flows, request validators, and the IP CIDR helper - Fix Support\Ip::inNetwork PHP 8.4 TypeError in CIDR mask check - Fix FirewallRule::command comparing the enum-cast type column to a string - Fix Server::network using the wrong foreign key column - Remove unreachable code under abort(403) in RegisteredUserController
20 lines
698 B
TypeScript
20 lines
698 B
TypeScript
import { createContext } from "radix-vue";
|
|
import type { ComputedRef, Ref } from "vue";
|
|
|
|
export const SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
export const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
export const SIDEBAR_WIDTH = "16rem";
|
|
export const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
export const SIDEBAR_WIDTH_ICON = "3rem";
|
|
export const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
|
|
export const [useSidebar, provideSidebarContext] = createContext<{
|
|
state: ComputedRef<"expanded" | "collapsed">;
|
|
open: Ref<boolean>;
|
|
setOpen: (value: boolean) => void;
|
|
isMobile: Ref<boolean>;
|
|
openMobile: Ref<boolean>;
|
|
setOpenMobile: (value: boolean) => void;
|
|
toggleSidebar: () => void;
|
|
}>("Sidebar");
|