v1.0 with SW PWA enabled

This commit is contained in:
Blomios
2026-01-01 17:40:53 +01:00
parent 1c0e22aac1
commit 3c8bebb2ad
29775 changed files with 2197201 additions and 119080 deletions

View File

@ -0,0 +1,70 @@
import { ForwardedRef, HTMLAttributes, PropsWithChildren, ReactElement } from "react";
export type PanelOnCollapse = () => void;
export type PanelOnExpand = () => void;
export type PanelOnResize = (size: number, prevSize: number | undefined) => void;
export type PanelCallbacks = {
onCollapse?: PanelOnCollapse;
onExpand?: PanelOnExpand;
onResize?: PanelOnResize;
};
export type PanelConstraints = {
collapsedSize?: number | undefined;
collapsible?: boolean | undefined;
defaultSize?: number | undefined;
maxSize?: number | undefined;
minSize?: number | undefined;
};
export type PanelData = {
callbacks: PanelCallbacks;
constraints: PanelConstraints;
id: string;
idIsFromProps: boolean;
order: number | undefined;
};
export type ImperativePanelHandle = {
collapse: () => void;
expand: (minSize?: number) => void;
getId(): string;
getSize(): number;
isCollapsed: () => boolean;
isExpanded: () => boolean;
resize: (size: number) => void;
};
export type PanelProps<T extends keyof HTMLElementTagNameMap = keyof HTMLElementTagNameMap> = Omit<HTMLAttributes<HTMLElementTagNameMap[T]>, "id" | "onResize"> & PropsWithChildren<{
className?: string;
collapsedSize?: number | undefined;
collapsible?: boolean | undefined;
defaultSize?: number | undefined;
id?: string;
maxSize?: number | undefined;
minSize?: number | undefined;
onCollapse?: PanelOnCollapse;
onExpand?: PanelOnExpand;
onResize?: PanelOnResize;
order?: number;
style?: object;
tagName?: T;
}>;
export declare function PanelWithForwardedRef({ children, className: classNameFromProps, collapsedSize, collapsible, defaultSize, forwardedRef, id: idFromProps, maxSize, minSize, onCollapse, onExpand, onResize, order, style: styleFromProps, tagName: Type, ...rest }: PanelProps & {
forwardedRef: ForwardedRef<ImperativePanelHandle>;
}): ReactElement;
export declare namespace PanelWithForwardedRef {
var displayName: string;
}
export declare const Panel: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<HTMLObjectElement | HTMLElement | HTMLSlotElement | HTMLStyleElement | HTMLTitleElement | HTMLAnchorElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLButtonElement | HTMLCanvasElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDivElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLFormElement | HTMLHeadingElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLImageElement | HTMLInputElement | HTMLLabelElement | HTMLLegendElement | HTMLLIElement | HTMLLinkElement | HTMLMapElement | HTMLMenuElement | HTMLMetaElement | HTMLMeterElement | HTMLOListElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLParagraphElement | HTMLPictureElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSelectElement | HTMLSourceElement | HTMLSpanElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTableRowElement | HTMLTrackElement | HTMLUListElement | HTMLVideoElement>, "id" | "onResize"> & {
className?: string | undefined;
collapsedSize?: number | undefined;
collapsible?: boolean | undefined;
defaultSize?: number | undefined;
id?: string | undefined;
maxSize?: number | undefined;
minSize?: number | undefined;
onCollapse?: PanelOnCollapse | undefined;
onExpand?: PanelOnExpand | undefined;
onResize?: PanelOnResize | undefined;
order?: number | undefined;
style?: object | undefined;
tagName?: keyof HTMLElementTagNameMap | undefined;
} & {
children?: import("react").ReactNode;
} & import("react").RefAttributes<ImperativePanelHandle>>;

View File

@ -0,0 +1,38 @@
import { CSSProperties, HTMLAttributes, PropsWithChildren } from "react";
import { Direction } from "./types.js";
export type ImperativePanelGroupHandle = {
getId: () => string;
getLayout: () => number[];
setLayout: (layout: number[]) => void;
};
export type PanelGroupStorage = {
getItem(name: string): string | null;
setItem(name: string, value: string): void;
};
export type PanelGroupOnLayout = (layout: number[]) => void;
export type PanelGroupProps = Omit<HTMLAttributes<keyof HTMLElementTagNameMap>, "id"> & PropsWithChildren<{
autoSaveId?: string | null;
className?: string;
direction: Direction;
id?: string | null;
keyboardResizeBy?: number | null;
onLayout?: PanelGroupOnLayout | null;
storage?: PanelGroupStorage;
style?: CSSProperties;
tagName?: keyof HTMLElementTagNameMap;
dir?: "auto" | "ltr" | "rtl" | undefined;
}>;
export declare const PanelGroup: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<keyof HTMLElementTagNameMap>, "id"> & {
autoSaveId?: string | null | undefined;
className?: string | undefined;
direction: Direction;
id?: string | null | undefined;
keyboardResizeBy?: number | null | undefined;
onLayout?: PanelGroupOnLayout | null | undefined;
storage?: PanelGroupStorage | undefined;
style?: CSSProperties | undefined;
tagName?: keyof HTMLElementTagNameMap | undefined;
dir?: "auto" | "ltr" | "rtl" | undefined;
} & {
children?: import("react").ReactNode;
} & import("react").RefAttributes<ImperativePanelGroupHandle>>;

View File

@ -0,0 +1,23 @@
import { CSSProperties, HTMLAttributes, PropsWithChildren, ReactElement } from "react";
import { PointerHitAreaMargins } from "./PanelResizeHandleRegistry.js";
export type PanelResizeHandleOnDragging = (isDragging: boolean) => void;
export type ResizeHandlerState = "drag" | "hover" | "inactive";
export type PanelResizeHandleProps = Omit<HTMLAttributes<keyof HTMLElementTagNameMap>, "id" | "onBlur" | "onClick" | "onFocus" | "onPointerDown" | "onPointerUp"> & PropsWithChildren<{
className?: string;
disabled?: boolean;
hitAreaMargins?: PointerHitAreaMargins;
id?: string | null;
onBlur?: () => void;
onClick?: () => void;
onDragging?: PanelResizeHandleOnDragging;
onFocus?: () => void;
onPointerDown?: () => void;
onPointerUp?: () => void;
style?: CSSProperties;
tabIndex?: number;
tagName?: keyof HTMLElementTagNameMap;
}>;
export declare function PanelResizeHandle({ children, className: classNameFromProps, disabled, hitAreaMargins, id: idFromProps, onBlur, onClick, onDragging, onFocus, onPointerDown, onPointerUp, style: styleFromProps, tabIndex, tagName: Type, ...rest }: PanelResizeHandleProps): ReactElement;
export declare namespace PanelResizeHandle {
var displayName: string;
}

View File

@ -0,0 +1,19 @@
import { Direction, ResizeEvent } from "./types.js";
export type ResizeHandlerAction = "down" | "move" | "up";
export type SetResizeHandlerState = (action: ResizeHandlerAction, isActive: boolean, event: ResizeEvent | null) => void;
export type PointerHitAreaMargins = {
coarse: number;
fine: number;
};
export type ResizeHandlerData = {
direction: Direction;
element: HTMLElement;
hitAreaMargins: PointerHitAreaMargins;
setResizeHandlerState: SetResizeHandlerState;
};
export declare const EXCEEDED_HORIZONTAL_MIN = 1;
export declare const EXCEEDED_HORIZONTAL_MAX = 2;
export declare const EXCEEDED_VERTICAL_MIN = 4;
export declare const EXCEEDED_VERTICAL_MAX = 8;
export declare function registerResizeHandle(resizeHandleId: string, element: HTMLElement, direction: Direction, hitAreaMargins: PointerHitAreaMargins, setResizeHandlerState: SetResizeHandlerState): () => void;
export declare function reportConstraintsViolation(resizeHandleId: string, flag: number): void;

View File

@ -0,0 +1,15 @@
export declare const DATA_ATTRIBUTES: {
readonly group: "data-panel-group";
readonly groupDirection: "data-panel-group-direction";
readonly groupId: "data-panel-group-id";
readonly panel: "data-panel";
readonly panelCollapsible: "data-panel-collapsible";
readonly panelId: "data-panel-id";
readonly panelSize: "data-panel-size";
readonly resizeHandle: "data-resize-handle";
readonly resizeHandleActive: "data-resize-handle-active";
readonly resizeHandleEnabled: "data-panel-resize-handle-enabled";
readonly resizeHandleId: "data-panel-resize-handle-id";
readonly resizeHandleState: "data-resize-handle-state";
};
export declare const PRECISION = 10;

View File

@ -0,0 +1,21 @@
import { Panel } from "./Panel.js";
import { PanelGroup } from "./PanelGroup.js";
import { PanelResizeHandle } from "./PanelResizeHandle.js";
import { DATA_ATTRIBUTES } from "./constants.js";
import { assert } from "./utils/assert.js";
import { setNonce } from "./utils/csp.js";
import { disableGlobalCursorStyles, enableGlobalCursorStyles } from "./utils/cursor.js";
import { getPanelElement } from "./utils/dom/getPanelElement.js";
import { getPanelElementsForGroup } from "./utils/dom/getPanelElementsForGroup.js";
import { getPanelGroupElement } from "./utils/dom/getPanelGroupElement.js";
import { getResizeHandleElement } from "./utils/dom/getResizeHandleElement.js";
import { getResizeHandleElementIndex } from "./utils/dom/getResizeHandleElementIndex.js";
import { getResizeHandleElementsForGroup } from "./utils/dom/getResizeHandleElementsForGroup.js";
import { getResizeHandlePanelIds } from "./utils/dom/getResizeHandlePanelIds.js";
import { getIntersectingRectangle } from "./utils/rects/getIntersectingRectangle.js";
import { intersects } from "./utils/rects/intersects.js";
import type { ImperativePanelHandle, PanelOnCollapse, PanelOnExpand, PanelOnResize, PanelProps } from "./Panel.js";
import type { ImperativePanelGroupHandle, PanelGroupOnLayout, PanelGroupProps, PanelGroupStorage } from "./PanelGroup.js";
import type { PanelResizeHandleOnDragging, PanelResizeHandleProps } from "./PanelResizeHandle.js";
import type { PointerHitAreaMargins } from "./PanelResizeHandleRegistry.js";
export { ImperativePanelGroupHandle, ImperativePanelHandle, PanelGroupOnLayout, PanelGroupProps, PanelGroupStorage, PanelOnCollapse, PanelOnExpand, PanelOnResize, PanelProps, PanelResizeHandleOnDragging, PanelResizeHandleProps, PointerHitAreaMargins, Panel, PanelGroup, PanelResizeHandle, assert, getIntersectingRectangle, intersects, getPanelElement, getPanelElementsForGroup, getPanelGroupElement, getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup, getResizeHandlePanelIds, enableGlobalCursorStyles, disableGlobalCursorStyles, setNonce, DATA_ATTRIBUTES, };

View File

@ -0,0 +1,3 @@
export type Direction = "horizontal" | "vertical";
export type ResizeEvent = KeyboardEvent | PointerEvent | MouseEvent;
export type ResizeHandler = (event: ResizeEvent) => void;

View File

@ -0,0 +1 @@
export declare function assert(expectedCondition: any, message: string): asserts expectedCondition;

View File

@ -0,0 +1,2 @@
export declare function getNonce(): string | null;
export declare function setNonce(value: string | null): void;

View File

@ -0,0 +1,7 @@
type CursorState = "horizontal" | "intersection" | "vertical";
export declare function disableGlobalCursorStyles(): void;
export declare function enableGlobalCursorStyles(): void;
export declare function getCursorStyle(state: CursorState, constraintFlags: number): string;
export declare function resetGlobalCursorStyle(): void;
export declare function setGlobalCursorStyle(state: CursorState, constraintFlags: number): void;
export {};

View File

@ -0,0 +1 @@
export declare function getPanelElement(id: string, scope?: ParentNode | HTMLElement): HTMLElement | null;

View File

@ -0,0 +1 @@
export declare function getPanelElementsForGroup(groupId: string, scope?: ParentNode | HTMLElement): HTMLElement[];

View File

@ -0,0 +1 @@
export declare function getPanelGroupElement(id: string, rootElement?: ParentNode | HTMLElement): HTMLElement | null;

View File

@ -0,0 +1 @@
export declare function getResizeHandleElement(id: string, scope?: ParentNode | HTMLElement): HTMLElement | null;

View File

@ -0,0 +1 @@
export declare function getResizeHandleElementIndex(groupId: string, id: string, scope?: ParentNode | HTMLElement): number | null;

View File

@ -0,0 +1 @@
export declare function getResizeHandleElementsForGroup(groupId: string, scope?: ParentNode | HTMLElement): HTMLElement[];

View File

@ -0,0 +1,2 @@
import { PanelData } from "../../Panel.js";
export declare function getResizeHandlePanelIds(groupId: string, handleId: string, panelsArray: PanelData[], scope?: ParentNode | HTMLElement): [idBefore: string | null, idAfter: string | null];

View File

@ -0,0 +1,2 @@
import { Rectangle } from "./types.js";
export declare function getIntersectingRectangle(rectOne: Rectangle, rectTwo: Rectangle, strict: boolean): Rectangle;

View File

@ -0,0 +1,2 @@
import { Rectangle } from "./types.js";
export declare function intersects(rectOne: Rectangle, rectTwo: Rectangle, strict: boolean): boolean;

View File

@ -0,0 +1,6 @@
export interface Rectangle {
x: number;
y: number;
width: number;
height: number;
}