diff --git a/pyproject.toml b/pyproject.toml index ae1288b53..5ce61e84a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,12 +39,7 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] -dependencies = [ - "fastjsonschema >=2.14.5", - "requests >=2", - "lxml >=4", - "anyio >=3", -] +dependencies = ["fastjsonschema>=2.14.5", "requests>=2", "lxml>=4", "anyio>=3"] dynamic = ["version"] urls.Changelog = "https://reactpy.dev/docs/about/changelog.html" urls.Documentation = "https://reactpy.dev/" @@ -53,7 +48,7 @@ urls.Source = "https://github.com/reactive-python/reactpy" [project.optional-dependencies] all = ["reactpy[asgi,jinja,testing]"] asgi = ["asgiref", "asgi-tools", "servestatic", "orjson"] -jinja = ["jinja2-simple-tags", "jinja2 >=3"] +jinja = ["jinja2-simple-tags", "jinja2>=3"] testing = ["playwright", "uvicorn[standard]"] [tool.hatch.version] diff --git a/src/js/packages/event-to-object/src/events.ts b/src/js/packages/event-to-object/src/events.ts deleted file mode 100644 index 7881cdd36..000000000 --- a/src/js/packages/event-to-object/src/events.ts +++ /dev/null @@ -1,257 +0,0 @@ -// TODO -type FileListObject = any; -type DataTransferItemListObject = any; - -export type EventToObjectMap = { - event: [Event, EventObject]; - animation: [AnimationEvent, AnimationEventObject]; - clipboard: [ClipboardEvent, ClipboardEventObject]; - composition: [CompositionEvent, CompositionEventObject]; - devicemotion: [DeviceMotionEvent, DeviceMotionEventObject]; - deviceorientation: [DeviceOrientationEvent, DeviceOrientationEventObject]; - drag: [DragEvent, DragEventObject]; - focus: [FocusEvent, FocusEventObject]; - formdata: [FormDataEvent, FormDataEventObject]; - gamepad: [GamepadEvent, GamepadEventObject]; - input: [InputEvent, InputEventObject]; - keyboard: [KeyboardEvent, KeyboardEventObject]; - mouse: [MouseEvent, MouseEventObject]; - pointer: [PointerEvent, PointerEventObject]; - submit: [SubmitEvent, SubmitEventObject]; - touch: [TouchEvent, TouchEventObject]; - transition: [TransitionEvent, TransitionEventObject]; - ui: [UIEvent, UIEventObject]; - wheel: [WheelEvent, WheelEventObject]; -}; - -export interface EventObject { - bubbles: boolean; - composed: boolean; - currentTarget: ElementObject | null; - defaultPrevented: boolean; - eventPhase: number; - isTrusted: boolean; - target: ElementObject | null; - timeStamp: DOMHighResTimeStamp; - type: string; - selection: SelectionObject | null; -} - -export interface SubmitEventObject extends EventObject { - submitter: ElementObject; -} - -export interface InputEventObject extends UIEventObject { - data: string | null; - dataTransfer: DataTransferObject | null; - isComposing: boolean; - inputType: string; -} - -export interface GamepadEventObject extends EventObject { - gamepad: GamepadObject; -} - -export interface GamepadObject { - axes: number[]; - buttons: GamepadButtonObject[]; - connected: boolean; - id: string; - index: number; - mapping: GamepadMappingType; - timestamp: DOMHighResTimeStamp; -} - -export interface GamepadButtonObject { - pressed: boolean; - touched: boolean; - value: number; -} -export interface GamepadHapticActuatorObject { - type: string; -} - -export interface DragEventObject extends MouseEventObject { - /** Returns the DataTransfer object for the event. */ - readonly dataTransfer: DataTransferObject | null; -} - -export interface DeviceMotionEventObject extends EventObject { - acceleration: DeviceAccelerationObject | null; - accelerationIncludingGravity: DeviceAccelerationObject | null; - interval: number; - rotationRate: DeviceRotationRateObject | null; -} - -export interface DeviceAccelerationObject { - x: number | null; - y: number | null; - z: number | null; -} - -export interface DeviceRotationRateObject { - alpha: number | null; - beta: number | null; - gamma: number | null; -} - -export interface DeviceOrientationEventObject extends EventObject { - absolute: boolean; - alpha: number | null; - beta: number | null; - gamma: number | null; -} - -export interface MouseEventObject extends EventObject { - altKey: boolean; - button: number; - buttons: number; - clientX: number; - clientY: number; - ctrlKey: boolean; - metaKey: boolean; - movementX: number; - movementY: number; - offsetX: number; - offsetY: number; - pageX: number; - pageY: number; - relatedTarget: ElementObject | null; - screenX: number; - screenY: number; - shiftKey: boolean; - x: number; - y: number; -} - -export interface FormDataEventObject extends EventObject { - formData: FormDataObject; -} - -export type FormDataObject = [string, string | FileObject][]; - -export interface AnimationEventObject extends EventObject { - animationName: string; - elapsedTime: number; - pseudoElement: string; -} - -export interface ClipboardEventObject extends EventObject { - clipboardData: DataTransferObject | null; -} - -export interface UIEventObject extends EventObject { - detail: number; -} - -/** The DOM CompositionEvent represents events that occur due to the user indirectly - * entering text. */ -export interface CompositionEventObject extends UIEventObject { - data: string; -} - -export interface KeyboardEventObject extends UIEventObject { - altKey: boolean; - code: string; - ctrlKey: boolean; - isComposing: boolean; - key: string; - location: number; - metaKey: boolean; - repeat: boolean; - shiftKey: boolean; -} - -export interface FocusEventObject extends UIEventObject { - relatedTarget: ElementObject | null; -} - -export interface TouchEventObject extends UIEventObject { - altKey: boolean; - changedTouches: TouchObject[]; - ctrlKey: boolean; - metaKey: boolean; - shiftKey: boolean; - targetTouches: TouchObject[]; - touches: TouchObject[]; -} - -export interface PointerEventObject extends MouseEventObject { - height: number; - isPrimary: boolean; - pointerId: number; - pointerType: string; - pressure: number; - tangentialPressure: number; - tiltX: number; - tiltY: number; - twist: number; - width: number; -} - -export interface TransitionEventObject extends EventObject { - elapsedTime: number; - propertyName: string; - pseudoElement: string; -} - -export interface WheelEventObject extends MouseEventObject { - readonly deltaMode: number; - readonly deltaX: number; - readonly deltaY: number; - readonly deltaZ: number; -} - -export interface TouchObject { - clientX: number; - clientY: number; - force: number; - identifier: number; - pageX: number; - pageY: number; - radiusX: number; - radiusY: number; - rotationAngle: number; - screenX: number; - screenY: number; - target: ElementObject; -} - -export interface DataTransferObject { - dropEffect: "none" | "copy" | "link" | "move"; - effectAllowed: - | "none" - | "copy" - | "copyLink" - | "copyMove" - | "link" - | "linkMove" - | "move" - | "all" - | "uninitialized"; - files: FileListObject; - items: DataTransferItemListObject; - types: string[]; -} - -export interface SelectionObject { - anchorNode: ElementObject | null; - anchorOffset: number; - focusNode: ElementObject | null; - focusOffset: number; - isCollapsed: boolean; - rangeCount: number; - type: string; - selectedText: string; -} - -export interface ElementObject { - value?: string; - textContent?: string; -} - -export interface FileObject { - name: string; - size: number; - type: string; -} diff --git a/src/reactpy/__init__.py b/src/reactpy/__init__.py index 3166add07..27b462d8c 100644 --- a/src/reactpy/__init__.py +++ b/src/reactpy/__init__.py @@ -23,7 +23,7 @@ from reactpy.utils import Ref, reactpy_to_string, string_to_reactpy __author__ = "The Reactive Python Team" -__version__ = "2.0.0b5" +__version__ = "2.0.0b6" __all__ = [ "Ref", diff --git a/src/reactpy/types.py b/src/reactpy/types.py index c6f9a6642..6a692eb16 100644 --- a/src/reactpy/types.py +++ b/src/reactpy/types.py @@ -544,8 +544,8 @@ class DangerouslySetInnerHTML(TypedDict): __html: str -# TODO: It's probably better to break this one attributes dict down into what each specific -# HTML node's attributes can be, and make sure those types are resolved correctly within `HtmlConstructor` +# TODO: It's probably better to break this down into what each HTML node's attributes can be, +# and make sure those types are resolved correctly within `HtmlConstructor` # TODO: This could be generated by parsing from `@types/react` in the future # https://www.npmjs.com/package/@types/react?activeTab=code VdomAttributesTypeDict = TypedDict( diff --git a/tests/tooling/hooks.py b/tests/tooling/hooks.py index bb33172ed..37035215a 100644 --- a/tests/tooling/hooks.py +++ b/tests/tooling/hooks.py @@ -10,7 +10,6 @@ def use_toggle(init=False): return state, lambda: set_state(lambda old: not old) -# TODO: Remove this def use_counter(initial_value): state, set_state = use_state(initial_value) return state, lambda: set_state(lambda old: old + 1)