@gtkx/react 0.21.0 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -34
- package/dist/components/application.d.ts +10 -0
- package/dist/components/application.d.ts.map +1 -0
- package/dist/components/application.js +26 -0
- package/dist/components/application.js.map +1 -0
- package/dist/components/window.d.ts +8 -0
- package/dist/components/window.d.ts.map +1 -0
- package/dist/components/window.js +23 -0
- package/dist/components/window.js.map +1 -0
- package/dist/hooks/use-application.d.ts +8 -0
- package/dist/hooks/use-application.d.ts.map +1 -0
- package/dist/hooks/use-application.js +13 -0
- package/dist/hooks/use-application.js.map +1 -0
- package/dist/hooks/use-bind-setting.d.ts +6 -0
- package/dist/hooks/use-bind-setting.d.ts.map +1 -0
- package/dist/hooks/use-bind-setting.js +19 -0
- package/dist/hooks/use-bind-setting.js.map +1 -0
- package/dist/hooks/use-merge-refs.d.ts +3 -0
- package/dist/hooks/use-merge-refs.d.ts.map +1 -0
- package/dist/hooks/use-merge-refs.js +48 -0
- package/dist/hooks/use-merge-refs.js.map +1 -0
- package/dist/hooks/use-object-attachment.d.ts +10 -0
- package/dist/hooks/use-object-attachment.d.ts.map +1 -0
- package/dist/hooks/use-object-attachment.js +24 -0
- package/dist/hooks/use-object-attachment.js.map +1 -0
- package/dist/hooks/use-object-value.d.ts +4 -0
- package/dist/hooks/use-object-value.d.ts.map +1 -0
- package/dist/hooks/use-object-value.js +32 -0
- package/dist/hooks/use-object-value.js.map +1 -0
- package/dist/hooks/use-parent-window.d.ts +8 -0
- package/dist/hooks/use-parent-window.d.ts.map +1 -0
- package/dist/hooks/use-parent-window.js +7 -0
- package/dist/hooks/use-parent-window.js.map +1 -0
- package/dist/hooks/use-property.d.ts +14 -0
- package/dist/hooks/use-property.d.ts.map +1 -0
- package/dist/hooks/use-property.js +13 -0
- package/dist/hooks/use-property.js.map +1 -0
- package/dist/hooks/use-setting.d.ts +25 -0
- package/dist/hooks/use-setting.d.ts.map +1 -0
- package/dist/hooks/use-setting.js +15 -0
- package/dist/hooks/use-setting.js.map +1 -0
- package/dist/hooks/use-signal.d.ts +21 -0
- package/dist/hooks/use-signal.d.ts.map +1 -0
- package/dist/hooks/use-signal.js +20 -0
- package/dist/hooks/use-signal.js.map +1 -0
- package/dist/index.d.ts +14 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -7
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +14 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +14 -0
- package/dist/internal.js.map +1 -0
- package/dist/libraries/adw/dialog.d.ts +8 -0
- package/dist/libraries/adw/dialog.d.ts.map +1 -0
- package/dist/libraries/adw/dialog.js +25 -0
- package/dist/libraries/adw/dialog.js.map +1 -0
- package/dist/libraries/adw/index.d.ts +2 -0
- package/dist/libraries/adw/index.d.ts.map +1 -0
- package/dist/libraries/adw/index.js +2 -0
- package/dist/libraries/adw/index.js.map +1 -0
- package/dist/reconciler/accessible.d.ts +59 -0
- package/dist/reconciler/accessible.d.ts.map +1 -0
- package/dist/reconciler/accessible.js +143 -0
- package/dist/reconciler/accessible.js.map +1 -0
- package/dist/reconciler/apply-props.d.ts +8 -0
- package/dist/reconciler/apply-props.d.ts.map +1 -0
- package/dist/reconciler/apply-props.js +92 -0
- package/dist/reconciler/apply-props.js.map +1 -0
- package/dist/reconciler/commit-flush.d.ts +3 -0
- package/dist/reconciler/commit-flush.d.ts.map +1 -0
- package/dist/reconciler/commit-flush.js +13 -0
- package/dist/reconciler/commit-flush.js.map +1 -0
- package/dist/reconciler/container-attach.d.ts +10 -0
- package/dist/reconciler/container-attach.d.ts.map +1 -0
- package/dist/reconciler/container-attach.js +216 -0
- package/dist/reconciler/container-attach.js.map +1 -0
- package/dist/reconciler/content-rebuild.d.ts +3 -0
- package/dist/reconciler/content-rebuild.d.ts.map +1 -0
- package/dist/reconciler/content-rebuild.js +15 -0
- package/dist/reconciler/content-rebuild.js.map +1 -0
- package/dist/reconciler/dispatch.d.ts +6 -0
- package/dist/reconciler/dispatch.d.ts.map +1 -0
- package/dist/reconciler/dispatch.js +61 -0
- package/dist/reconciler/dispatch.js.map +1 -0
- package/dist/reconciler/element-prop-appliers.d.ts +5 -0
- package/dist/reconciler/element-prop-appliers.d.ts.map +1 -0
- package/dist/reconciler/element-prop-appliers.js +104 -0
- package/dist/reconciler/element-prop-appliers.js.map +1 -0
- package/dist/reconciler/element-props.d.ts +25 -0
- package/dist/reconciler/element-props.d.ts.map +1 -0
- package/dist/reconciler/element-props.js +157 -0
- package/dist/reconciler/element-props.js.map +1 -0
- package/dist/reconciler/host-config.d.ts +13 -0
- package/dist/reconciler/host-config.d.ts.map +1 -0
- package/dist/reconciler/host-config.js +309 -0
- package/dist/reconciler/host-config.js.map +1 -0
- package/dist/reconciler/instance.d.ts +6 -0
- package/dist/reconciler/instance.d.ts.map +1 -0
- package/dist/reconciler/instance.js +27 -0
- package/dist/reconciler/instance.js.map +1 -0
- package/dist/reconciler/label-text-rebuild.d.ts +3 -0
- package/dist/reconciler/label-text-rebuild.d.ts.map +1 -0
- package/dist/reconciler/label-text-rebuild.js +22 -0
- package/dist/reconciler/label-text-rebuild.js.map +1 -0
- package/dist/reconciler/portal.d.ts +11 -0
- package/dist/reconciler/portal.d.ts.map +1 -0
- package/dist/reconciler/portal.js +20 -0
- package/dist/reconciler/portal.js.map +1 -0
- package/dist/reconciler/reconciler-error-handler.d.ts +7 -0
- package/dist/reconciler/reconciler-error-handler.d.ts.map +1 -0
- package/dist/reconciler/reconciler-error-handler.js +24 -0
- package/dist/reconciler/reconciler-error-handler.js.map +1 -0
- package/dist/reconciler/reconciler-root.d.ts +19 -0
- package/dist/reconciler/reconciler-root.d.ts.map +1 -0
- package/dist/reconciler/reconciler-root.js +24 -0
- package/dist/reconciler/reconciler-root.js.map +1 -0
- package/dist/reconciler/reconciler.d.ts +3 -0
- package/dist/reconciler/reconciler.d.ts.map +1 -0
- package/dist/reconciler/reconciler.js +12 -0
- package/dist/reconciler/reconciler.js.map +1 -0
- package/dist/reconciler/render.d.ts +23 -0
- package/dist/reconciler/render.d.ts.map +1 -0
- package/dist/reconciler/render.js +46 -0
- package/dist/reconciler/render.js.map +1 -0
- package/dist/reconciler/root-element.d.ts +14 -0
- package/dist/reconciler/root-element.d.ts.map +1 -0
- package/dist/reconciler/root-element.js +7 -0
- package/dist/reconciler/root-element.js.map +1 -0
- package/dist/reconciler/signal-store.d.ts +22 -0
- package/dist/reconciler/signal-store.d.ts.map +1 -0
- package/dist/reconciler/signal-store.js +84 -0
- package/dist/reconciler/signal-store.js.map +1 -0
- package/dist/reconciler/state.d.ts +36 -0
- package/dist/reconciler/state.d.ts.map +1 -0
- package/dist/reconciler/state.js +38 -0
- package/dist/reconciler/state.js.map +1 -0
- package/dist/reconciler/text-buffer-controller.d.ts +17 -0
- package/dist/reconciler/text-buffer-controller.d.ts.map +1 -0
- package/dist/reconciler/text-buffer-controller.js +102 -0
- package/dist/reconciler/text-buffer-controller.js.map +1 -0
- package/dist/reconciler/text-buffer-rebuild.d.ts +3 -0
- package/dist/reconciler/text-buffer-rebuild.d.ts.map +1 -0
- package/dist/reconciler/text-buffer-rebuild.js +7 -0
- package/dist/reconciler/text-buffer-rebuild.js.map +1 -0
- package/dist/reconciler/text-node.d.ts +7 -0
- package/dist/reconciler/text-node.d.ts.map +1 -0
- package/dist/reconciler/text-node.js +8 -0
- package/dist/reconciler/text-node.js.map +1 -0
- package/dist/reconciler/types.d.ts +5 -0
- package/dist/reconciler/types.d.ts.map +1 -0
- package/dist/reconciler/types.js.map +1 -0
- package/dist/reconciler/visibility.d.ts +6 -0
- package/dist/reconciler/visibility.d.ts.map +1 -0
- package/dist/reconciler/visibility.js +57 -0
- package/dist/reconciler/visibility.js.map +1 -0
- package/dist/reconciler/wrapper-apply.d.ts +6 -0
- package/dist/reconciler/wrapper-apply.d.ts.map +1 -0
- package/dist/reconciler/wrapper-apply.js +287 -0
- package/dist/reconciler/wrapper-apply.js.map +1 -0
- package/dist/reconciler/wrapper-content.d.ts +8 -0
- package/dist/reconciler/wrapper-content.d.ts.map +1 -0
- package/dist/reconciler/wrapper-content.js +19 -0
- package/dist/reconciler/wrapper-content.js.map +1 -0
- package/dist/reconciler/wrapper-node.d.ts +8 -0
- package/dist/reconciler/wrapper-node.d.ts.map +1 -0
- package/dist/reconciler/wrapper-node.js +4 -0
- package/dist/reconciler/wrapper-node.js.map +1 -0
- package/dist/reconciler/wrapper-protocol.d.ts +13 -0
- package/dist/reconciler/wrapper-protocol.d.ts.map +1 -0
- package/dist/reconciler/wrapper-protocol.js +20 -0
- package/dist/reconciler/wrapper-protocol.js.map +1 -0
- package/dist/utils/accessible-metadata.d.ts +5 -0
- package/dist/utils/accessible-metadata.d.ts.map +1 -0
- package/dist/utils/accessible-metadata.js +22 -0
- package/dist/utils/accessible-metadata.js.map +1 -0
- package/dist/utils/create-element-component.d.ts +4 -0
- package/dist/utils/create-element-component.d.ts.map +1 -0
- package/dist/utils/create-element-component.js +54 -0
- package/dist/utils/create-element-component.js.map +1 -0
- package/dist/utils/gtype.d.ts +16 -0
- package/dist/utils/gtype.d.ts.map +1 -0
- package/dist/utils/gtype.js +127 -0
- package/dist/utils/gtype.js.map +1 -0
- package/dist/utils/notify-name.d.ts +5 -0
- package/dist/utils/notify-name.d.ts.map +1 -0
- package/dist/utils/notify-name.js +6 -0
- package/dist/utils/notify-name.js.map +1 -0
- package/dist/utils/object-prop.d.ts +8 -0
- package/dist/utils/object-prop.d.ts.map +1 -0
- package/dist/utils/object-prop.js +9 -0
- package/dist/utils/object-prop.js.map +1 -0
- package/dist/utils/settings-accessor.d.ts +8 -0
- package/dist/utils/settings-accessor.d.ts.map +1 -0
- package/dist/utils/settings-accessor.js +69 -0
- package/dist/utils/settings-accessor.js.map +1 -0
- package/dist/utils/wrapper-node-jsx.d.ts +32 -0
- package/dist/utils/wrapper-node-jsx.d.ts.map +1 -0
- package/dist/utils/wrapper-node-jsx.js +2 -0
- package/dist/utils/wrapper-node-jsx.js.map +1 -0
- package/package.json +22 -8
- package/src/components/application.tsx +43 -0
- package/src/components/window.tsx +36 -0
- package/src/hooks/use-application.ts +17 -0
- package/src/hooks/use-bind-setting.ts +35 -0
- package/src/hooks/use-merge-refs.ts +53 -0
- package/src/hooks/use-object-attachment.ts +35 -0
- package/src/hooks/use-object-value.ts +50 -0
- package/src/hooks/use-parent-window.ts +9 -0
- package/src/hooks/use-property.ts +22 -0
- package/src/hooks/use-setting.ts +47 -0
- package/src/hooks/use-signal.ts +71 -0
- package/src/index.ts +15 -14
- package/src/internal.ts +24 -0
- package/src/libraries/adw/dialog.tsx +34 -0
- package/src/libraries/adw/index.ts +1 -0
- package/src/reconciler/accessible.ts +232 -0
- package/src/reconciler/apply-props.ts +117 -0
- package/src/reconciler/commit-flush.ts +13 -0
- package/src/reconciler/container-attach.ts +219 -0
- package/src/reconciler/content-rebuild.ts +19 -0
- package/src/reconciler/dispatch.ts +58 -0
- package/src/reconciler/element-prop-appliers.ts +110 -0
- package/src/reconciler/element-props.ts +192 -0
- package/src/reconciler/host-config.ts +405 -0
- package/src/reconciler/instance.ts +30 -0
- package/src/reconciler/label-text-rebuild.ts +26 -0
- package/src/reconciler/portal.ts +28 -0
- package/src/reconciler/reconciler-error-handler.ts +29 -0
- package/src/reconciler/reconciler-root.ts +57 -0
- package/src/reconciler/reconciler.ts +13 -0
- package/src/reconciler/render.ts +61 -0
- package/src/reconciler/root-element.ts +14 -0
- package/src/reconciler/signal-store.ts +103 -0
- package/src/reconciler/state.ts +72 -0
- package/src/reconciler/text-buffer-controller.ts +107 -0
- package/src/reconciler/text-buffer-rebuild.ts +12 -0
- package/src/reconciler/text-node.ts +13 -0
- package/src/reconciler/types.ts +6 -0
- package/src/reconciler/visibility.ts +52 -0
- package/src/reconciler/wrapper-apply.ts +308 -0
- package/src/reconciler/wrapper-content.ts +24 -0
- package/src/reconciler/wrapper-node.ts +8 -0
- package/src/reconciler/wrapper-protocol.ts +32 -0
- package/src/utils/accessible-metadata.ts +26 -0
- package/src/utils/create-element-component.ts +77 -0
- package/src/utils/gtype.ts +166 -0
- package/src/utils/notify-name.ts +10 -0
- package/src/utils/object-prop.ts +13 -0
- package/src/utils/settings-accessor.ts +89 -0
- package/src/utils/wrapper-node-jsx.ts +34 -0
- package/dist/components/compound.d.ts +0 -40
- package/dist/components/compound.d.ts.map +0 -1
- package/dist/components/compound.js +0 -46
- package/dist/components/compound.js.map +0 -1
- package/dist/components/list.d.ts +0 -75
- package/dist/components/list.d.ts.map +0 -1
- package/dist/components/list.js +0 -81
- package/dist/components/list.js.map +0 -1
- package/dist/components/slot-widget.d.ts +0 -15
- package/dist/components/slot-widget.d.ts.map +0 -1
- package/dist/components/slot-widget.js +0 -37
- package/dist/components/slot-widget.js.map +0 -1
- package/dist/errors.d.ts +0 -15
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -44
- package/dist/errors.js.map +0 -1
- package/dist/factory.d.ts +0 -5
- package/dist/factory.d.ts.map +0 -1
- package/dist/factory.js +0 -37
- package/dist/factory.js.map +0 -1
- package/dist/generated/compounds.d.ts +0 -2672
- package/dist/generated/compounds.d.ts.map +0 -1
- package/dist/generated/compounds.js +0 -2624
- package/dist/generated/compounds.js.map +0 -1
- package/dist/generated/internal.d.ts +0 -16
- package/dist/generated/internal.d.ts.map +0 -1
- package/dist/generated/internal.js +0 -3638
- package/dist/generated/internal.js.map +0 -1
- package/dist/generated/jsx.d.ts +0 -17074
- package/dist/generated/jsx.d.ts.map +0 -1
- package/dist/generated/jsx.js +0 -6715
- package/dist/generated/jsx.js.map +0 -1
- package/dist/generated/registry.d.ts +0 -5
- package/dist/generated/registry.d.ts.map +0 -1
- package/dist/generated/registry.js +0 -13
- package/dist/generated/registry.js.map +0 -1
- package/dist/host-config.d.ts +0 -24
- package/dist/host-config.d.ts.map +0 -1
- package/dist/host-config.js +0 -172
- package/dist/host-config.js.map +0 -1
- package/dist/jsx.d.ts +0 -974
- package/dist/jsx.d.ts.map +0 -1
- package/dist/jsx.js +0 -8
- package/dist/jsx.js.map +0 -1
- package/dist/metadata.d.ts +0 -5
- package/dist/metadata.d.ts.map +0 -1
- package/dist/metadata.js +0 -33
- package/dist/metadata.js.map +0 -1
- package/dist/node.d.ts +0 -25
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -85
- package/dist/node.js.map +0 -1
- package/dist/nodes/adjustable.d.ts +0 -11
- package/dist/nodes/adjustable.d.ts.map +0 -1
- package/dist/nodes/adjustable.js +0 -46
- package/dist/nodes/adjustable.js.map +0 -1
- package/dist/nodes/alert-dialog-response.d.ts +0 -15
- package/dist/nodes/alert-dialog-response.d.ts.map +0 -1
- package/dist/nodes/alert-dialog-response.js +0 -61
- package/dist/nodes/alert-dialog-response.js.map +0 -1
- package/dist/nodes/alert-dialog.d.ts +0 -14
- package/dist/nodes/alert-dialog.d.ts.map +0 -1
- package/dist/nodes/alert-dialog.js +0 -41
- package/dist/nodes/alert-dialog.js.map +0 -1
- package/dist/nodes/animation.d.ts +0 -39
- package/dist/nodes/animation.d.ts.map +0 -1
- package/dist/nodes/animation.js +0 -326
- package/dist/nodes/animation.js.map +0 -1
- package/dist/nodes/application.d.ts +0 -12
- package/dist/nodes/application.d.ts.map +0 -1
- package/dist/nodes/application.js +0 -51
- package/dist/nodes/application.js.map +0 -1
- package/dist/nodes/calendar.d.ts +0 -18
- package/dist/nodes/calendar.d.ts.map +0 -1
- package/dist/nodes/calendar.js +0 -28
- package/dist/nodes/calendar.js.map +0 -1
- package/dist/nodes/color-dialog-button.d.ts +0 -15
- package/dist/nodes/color-dialog-button.d.ts.map +0 -1
- package/dist/nodes/color-dialog-button.js +0 -43
- package/dist/nodes/color-dialog-button.js.map +0 -1
- package/dist/nodes/column-view-column.d.ts +0 -36
- package/dist/nodes/column-view-column.d.ts.map +0 -1
- package/dist/nodes/column-view-column.js +0 -168
- package/dist/nodes/column-view-column.js.map +0 -1
- package/dist/nodes/container-slot.d.ts +0 -18
- package/dist/nodes/container-slot.d.ts.map +0 -1
- package/dist/nodes/container-slot.js +0 -81
- package/dist/nodes/container-slot.js.map +0 -1
- package/dist/nodes/dialog.d.ts +0 -10
- package/dist/nodes/dialog.d.ts.map +0 -1
- package/dist/nodes/dialog.js +0 -20
- package/dist/nodes/dialog.js.map +0 -1
- package/dist/nodes/drawing-area.d.ts +0 -19
- package/dist/nodes/drawing-area.d.ts.map +0 -1
- package/dist/nodes/drawing-area.js +0 -40
- package/dist/nodes/drawing-area.js.map +0 -1
- package/dist/nodes/event-controller.d.ts +0 -15
- package/dist/nodes/event-controller.d.ts.map +0 -1
- package/dist/nodes/event-controller.js +0 -73
- package/dist/nodes/event-controller.js.map +0 -1
- package/dist/nodes/fixed-child.d.ts +0 -19
- package/dist/nodes/fixed-child.d.ts.map +0 -1
- package/dist/nodes/fixed-child.js +0 -99
- package/dist/nodes/fixed-child.js.map +0 -1
- package/dist/nodes/font-dialog-button.d.ts +0 -15
- package/dist/nodes/font-dialog-button.d.ts.map +0 -1
- package/dist/nodes/font-dialog-button.js +0 -76
- package/dist/nodes/font-dialog-button.js.map +0 -1
- package/dist/nodes/grid-child.d.ts +0 -19
- package/dist/nodes/grid-child.d.ts.map +0 -1
- package/dist/nodes/grid-child.js +0 -94
- package/dist/nodes/grid-child.js.map +0 -1
- package/dist/nodes/internal/accessible.d.ts +0 -5
- package/dist/nodes/internal/accessible.d.ts.map +0 -1
- package/dist/nodes/internal/accessible.js +0 -119
- package/dist/nodes/internal/accessible.js.map +0 -1
- package/dist/nodes/internal/bound-item.d.ts +0 -4
- package/dist/nodes/internal/bound-item.d.ts.map +0 -1
- package/dist/nodes/internal/bound-item.js +0 -2
- package/dist/nodes/internal/bound-item.js.map +0 -1
- package/dist/nodes/internal/construct.d.ts +0 -3
- package/dist/nodes/internal/construct.d.ts.map +0 -1
- package/dist/nodes/internal/construct.js +0 -44
- package/dist/nodes/internal/construct.js.map +0 -1
- package/dist/nodes/internal/predicates.d.ts +0 -51
- package/dist/nodes/internal/predicates.d.ts.map +0 -1
- package/dist/nodes/internal/predicates.js +0 -36
- package/dist/nodes/internal/predicates.js.map +0 -1
- package/dist/nodes/internal/props.d.ts +0 -6
- package/dist/nodes/internal/props.d.ts.map +0 -1
- package/dist/nodes/internal/props.js +0 -43
- package/dist/nodes/internal/props.js.map +0 -1
- package/dist/nodes/internal/signal-store.d.ts +0 -22
- package/dist/nodes/internal/signal-store.d.ts.map +0 -1
- package/dist/nodes/internal/signal-store.js +0 -98
- package/dist/nodes/internal/signal-store.js.map +0 -1
- package/dist/nodes/internal/text-buffer-controller.d.ts +0 -40
- package/dist/nodes/internal/text-buffer-controller.d.ts.map +0 -1
- package/dist/nodes/internal/text-buffer-controller.js +0 -327
- package/dist/nodes/internal/text-buffer-controller.js.map +0 -1
- package/dist/nodes/internal/widget.d.ts +0 -8
- package/dist/nodes/internal/widget.d.ts.map +0 -1
- package/dist/nodes/internal/widget.js +0 -68
- package/dist/nodes/internal/widget.js.map +0 -1
- package/dist/nodes/level-bar.d.ts +0 -12
- package/dist/nodes/level-bar.d.ts.map +0 -1
- package/dist/nodes/level-bar.js +0 -24
- package/dist/nodes/level-bar.js.map +0 -1
- package/dist/nodes/list-item-node.d.ts +0 -12
- package/dist/nodes/list-item-node.d.ts.map +0 -1
- package/dist/nodes/list-item-node.js +0 -45
- package/dist/nodes/list-item-node.js.map +0 -1
- package/dist/nodes/list.d.ts +0 -100
- package/dist/nodes/list.d.ts.map +0 -1
- package/dist/nodes/list.js +0 -950
- package/dist/nodes/list.js.map +0 -1
- package/dist/nodes/menu.d.ts +0 -7
- package/dist/nodes/menu.d.ts.map +0 -1
- package/dist/nodes/menu.js +0 -20
- package/dist/nodes/menu.js.map +0 -1
- package/dist/nodes/models/menu.d.ts +0 -47
- package/dist/nodes/models/menu.d.ts.map +0 -1
- package/dist/nodes/models/menu.js +0 -240
- package/dist/nodes/models/menu.js.map +0 -1
- package/dist/nodes/navigation-page.d.ts +0 -19
- package/dist/nodes/navigation-page.d.ts.map +0 -1
- package/dist/nodes/navigation-page.js +0 -129
- package/dist/nodes/navigation-page.js.map +0 -1
- package/dist/nodes/navigation-view.d.ts +0 -19
- package/dist/nodes/navigation-view.d.ts.map +0 -1
- package/dist/nodes/navigation-view.js +0 -51
- package/dist/nodes/navigation-view.js.map +0 -1
- package/dist/nodes/notebook-page-tab.d.ts +0 -15
- package/dist/nodes/notebook-page-tab.d.ts.map +0 -1
- package/dist/nodes/notebook-page-tab.js +0 -40
- package/dist/nodes/notebook-page-tab.js.map +0 -1
- package/dist/nodes/notebook-page.d.ts +0 -29
- package/dist/nodes/notebook-page.d.ts.map +0 -1
- package/dist/nodes/notebook-page.js +0 -151
- package/dist/nodes/notebook-page.js.map +0 -1
- package/dist/nodes/notebook.d.ts +0 -16
- package/dist/nodes/notebook.d.ts.map +0 -1
- package/dist/nodes/notebook.js +0 -31
- package/dist/nodes/notebook.js.map +0 -1
- package/dist/nodes/overlay-child.d.ts +0 -20
- package/dist/nodes/overlay-child.d.ts.map +0 -1
- package/dist/nodes/overlay-child.js +0 -109
- package/dist/nodes/overlay-child.js.map +0 -1
- package/dist/nodes/popover-menu.d.ts +0 -19
- package/dist/nodes/popover-menu.d.ts.map +0 -1
- package/dist/nodes/popover-menu.js +0 -54
- package/dist/nodes/popover-menu.js.map +0 -1
- package/dist/nodes/scale.d.ts +0 -10
- package/dist/nodes/scale.d.ts.map +0 -1
- package/dist/nodes/scale.js +0 -19
- package/dist/nodes/scale.js.map +0 -1
- package/dist/nodes/scrolled-window.d.ts +0 -11
- package/dist/nodes/scrolled-window.d.ts.map +0 -1
- package/dist/nodes/scrolled-window.js +0 -18
- package/dist/nodes/scrolled-window.js.map +0 -1
- package/dist/nodes/search-bar.d.ts +0 -11
- package/dist/nodes/search-bar.d.ts.map +0 -1
- package/dist/nodes/search-bar.js +0 -16
- package/dist/nodes/search-bar.js.map +0 -1
- package/dist/nodes/shortcut.d.ts +0 -19
- package/dist/nodes/shortcut.d.ts.map +0 -1
- package/dist/nodes/shortcut.js +0 -72
- package/dist/nodes/shortcut.js.map +0 -1
- package/dist/nodes/slot.d.ts +0 -21
- package/dist/nodes/slot.d.ts.map +0 -1
- package/dist/nodes/slot.js +0 -102
- package/dist/nodes/slot.js.map +0 -1
- package/dist/nodes/source-view.d.ts +0 -18
- package/dist/nodes/source-view.d.ts.map +0 -1
- package/dist/nodes/source-view.js +0 -94
- package/dist/nodes/source-view.js.map +0 -1
- package/dist/nodes/spin-row.d.ts +0 -14
- package/dist/nodes/spin-row.d.ts.map +0 -1
- package/dist/nodes/spin-row.js +0 -46
- package/dist/nodes/spin-row.js.map +0 -1
- package/dist/nodes/stack-page.d.ts +0 -22
- package/dist/nodes/stack-page.d.ts.map +0 -1
- package/dist/nodes/stack-page.js +0 -140
- package/dist/nodes/stack-page.js.map +0 -1
- package/dist/nodes/stack.d.ts +0 -13
- package/dist/nodes/stack.d.ts.map +0 -1
- package/dist/nodes/stack.js +0 -21
- package/dist/nodes/stack.js.map +0 -1
- package/dist/nodes/switch-row.d.ts +0 -11
- package/dist/nodes/switch-row.d.ts.map +0 -1
- package/dist/nodes/switch-row.js +0 -15
- package/dist/nodes/switch-row.js.map +0 -1
- package/dist/nodes/text-anchor.d.ts +0 -23
- package/dist/nodes/text-anchor.d.ts.map +0 -1
- package/dist/nodes/text-anchor.js +0 -74
- package/dist/nodes/text-anchor.js.map +0 -1
- package/dist/nodes/text-content.d.ts +0 -12
- package/dist/nodes/text-content.d.ts.map +0 -1
- package/dist/nodes/text-content.js +0 -2
- package/dist/nodes/text-content.js.map +0 -1
- package/dist/nodes/text-paintable.d.ts +0 -19
- package/dist/nodes/text-paintable.d.ts.map +0 -1
- package/dist/nodes/text-paintable.js +0 -42
- package/dist/nodes/text-paintable.js.map +0 -1
- package/dist/nodes/text-segment.d.ts +0 -18
- package/dist/nodes/text-segment.d.ts.map +0 -1
- package/dist/nodes/text-segment.js +0 -38
- package/dist/nodes/text-segment.js.map +0 -1
- package/dist/nodes/text-tag.d.ts +0 -38
- package/dist/nodes/text-tag.d.ts.map +0 -1
- package/dist/nodes/text-tag.js +0 -247
- package/dist/nodes/text-tag.js.map +0 -1
- package/dist/nodes/text-view.d.ts +0 -29
- package/dist/nodes/text-view.d.ts.map +0 -1
- package/dist/nodes/text-view.js +0 -80
- package/dist/nodes/text-view.js.map +0 -1
- package/dist/nodes/toggle-group.d.ts +0 -17
- package/dist/nodes/toggle-group.d.ts.map +0 -1
- package/dist/nodes/toggle-group.js +0 -65
- package/dist/nodes/toggle-group.js.map +0 -1
- package/dist/nodes/toggle.d.ts +0 -16
- package/dist/nodes/toggle.d.ts.map +0 -1
- package/dist/nodes/toggle.js +0 -61
- package/dist/nodes/toggle.js.map +0 -1
- package/dist/nodes/virtual.d.ts +0 -7
- package/dist/nodes/virtual.d.ts.map +0 -1
- package/dist/nodes/virtual.js +0 -9
- package/dist/nodes/virtual.js.map +0 -1
- package/dist/nodes/web-view.d.ts +0 -11
- package/dist/nodes/web-view.d.ts.map +0 -1
- package/dist/nodes/web-view.js +0 -16
- package/dist/nodes/web-view.js.map +0 -1
- package/dist/nodes/widget.d.ts +0 -26
- package/dist/nodes/widget.d.ts.map +0 -1
- package/dist/nodes/widget.js +0 -308
- package/dist/nodes/widget.js.map +0 -1
- package/dist/nodes/window.d.ts +0 -31
- package/dist/nodes/window.d.ts.map +0 -1
- package/dist/nodes/window.js +0 -122
- package/dist/nodes/window.js.map +0 -1
- package/dist/portal.d.ts +0 -29
- package/dist/portal.d.ts.map +0 -1
- package/dist/portal.js +0 -35
- package/dist/portal.js.map +0 -1
- package/dist/reconciler.d.ts +0 -34
- package/dist/reconciler.d.ts.map +0 -1
- package/dist/reconciler.js +0 -48
- package/dist/reconciler.js.map +0 -1
- package/dist/registry.d.ts +0 -18
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -98
- package/dist/registry.js.map +0 -1
- package/dist/render.d.ts +0 -117
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -159
- package/dist/render.js.map +0 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/use-property.d.ts +0 -29
- package/dist/use-property.d.ts.map +0 -1
- package/dist/use-property.js +0 -44
- package/dist/use-property.js.map +0 -1
- package/dist/use-setting.d.ts +0 -36
- package/dist/use-setting.d.ts.map +0 -1
- package/dist/use-setting.js +0 -68
- package/dist/use-setting.js.map +0 -1
- package/src/components/compound.tsx +0 -57
- package/src/components/list.tsx +0 -140
- package/src/components/slot-widget.tsx +0 -46
- package/src/errors.ts +0 -53
- package/src/factory.ts +0 -62
- package/src/generated/compounds.ts +0 -2741
- package/src/generated/internal.ts +0 -3642
- package/src/generated/jsx.ts +0 -17383
- package/src/generated/registry.ts +0 -17
- package/src/host-config.ts +0 -219
- package/src/jsx.ts +0 -1033
- package/src/metadata.ts +0 -43
- package/src/node.ts +0 -107
- package/src/nodes/adjustable.ts +0 -68
- package/src/nodes/alert-dialog-response.ts +0 -78
- package/src/nodes/alert-dialog.ts +0 -55
- package/src/nodes/animation.ts +0 -409
- package/src/nodes/application.ts +0 -61
- package/src/nodes/calendar.ts +0 -42
- package/src/nodes/color-dialog-button.ts +0 -69
- package/src/nodes/column-view-column.ts +0 -189
- package/src/nodes/container-slot.ts +0 -100
- package/src/nodes/dialog.ts +0 -25
- package/src/nodes/drawing-area.ts +0 -53
- package/src/nodes/event-controller.ts +0 -96
- package/src/nodes/fixed-child.ts +0 -122
- package/src/nodes/font-dialog-button.ts +0 -107
- package/src/nodes/grid-child.ts +0 -116
- package/src/nodes/internal/accessible.ts +0 -155
- package/src/nodes/internal/bound-item.ts +0 -4
- package/src/nodes/internal/construct.ts +0 -60
- package/src/nodes/internal/predicates.ts +0 -80
- package/src/nodes/internal/props.ts +0 -51
- package/src/nodes/internal/signal-store.ts +0 -141
- package/src/nodes/internal/text-buffer-controller.ts +0 -417
- package/src/nodes/internal/widget.ts +0 -74
- package/src/nodes/level-bar.ts +0 -36
- package/src/nodes/list-item-node.ts +0 -53
- package/src/nodes/list.ts +0 -1082
- package/src/nodes/menu.ts +0 -27
- package/src/nodes/models/menu.ts +0 -314
- package/src/nodes/navigation-page.ts +0 -154
- package/src/nodes/navigation-view.ts +0 -66
- package/src/nodes/notebook-page-tab.ts +0 -55
- package/src/nodes/notebook-page.ts +0 -189
- package/src/nodes/notebook.ts +0 -42
- package/src/nodes/overlay-child.ts +0 -130
- package/src/nodes/popover-menu.ts +0 -67
- package/src/nodes/scale.ts +0 -28
- package/src/nodes/scrolled-window.ts +0 -23
- package/src/nodes/search-bar.ts +0 -27
- package/src/nodes/shortcut.ts +0 -86
- package/src/nodes/slot.ts +0 -138
- package/src/nodes/source-view.ts +0 -130
- package/src/nodes/spin-row.ts +0 -72
- package/src/nodes/stack-page.ts +0 -170
- package/src/nodes/stack.ts +0 -35
- package/src/nodes/switch-row.ts +0 -26
- package/src/nodes/text-anchor.ts +0 -88
- package/src/nodes/text-content.ts +0 -14
- package/src/nodes/text-paintable.ts +0 -51
- package/src/nodes/text-segment.ts +0 -55
- package/src/nodes/text-tag.ts +0 -298
- package/src/nodes/text-view.ts +0 -100
- package/src/nodes/toggle-group.ts +0 -81
- package/src/nodes/toggle.ts +0 -72
- package/src/nodes/virtual.ts +0 -16
- package/src/nodes/web-view.ts +0 -22
- package/src/nodes/widget.ts +0 -369
- package/src/nodes/window.ts +0 -172
- package/src/portal.ts +0 -37
- package/src/reconciler.ts +0 -52
- package/src/registry.ts +0 -119
- package/src/render.tsx +0 -192
- package/src/types.ts +0 -13
- package/src/use-property.ts +0 -58
- package/src/use-setting.ts +0 -96
- /package/dist/{types.js → reconciler/types.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-property.js","sourceRoot":"","sources":["../../src/hooks/use-property.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMvD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACvB,MAAqB,EACrB,YAAe;IAEf,OAAO,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpH,CAAC","sourcesContent":["import type * as GObject from \"@gtkx/gi/gobject\";\nimport { propToNotifySignal } from \"../utils/notify-name.js\";\nimport type { ObjectProp } from \"../utils/object-prop.js\";\nimport { useObjectValue } from \"./use-object-value.js\";\n\ntype PropertiesOf<T extends GObject.Object> = NonNullable<T[\"__properties__\"]>;\n\nexport type PropertyNameOf<T extends GObject.Object> = keyof PropertiesOf<T> & keyof T & string;\n\n/**\n * Subscribes to a GObject property and returns its current value, re-rendering when the property changes.\n *\n * @param object The GObject (or ref to one) whose property to observe.\n * @param propertyName The camelCase name of a readable property on the object.\n * @returns The current property value, or `undefined` when the object is not resolved.\n */\nexport function useProperty<T extends GObject.Object, K extends PropertyNameOf<T>>(\n object: ObjectProp<T>,\n propertyName: K,\n): T[K] | undefined {\n return useObjectValue(object, propToNotifySignal(propertyName), (obj) => (obj ? obj[propertyName] : undefined));\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as Gio from "@gtkx/gi/gio";
|
|
2
|
+
/**
|
|
3
|
+
* A typed reference to a GSettings schema: its id, path, and the mapping of typed keys to their setting names.
|
|
4
|
+
*/
|
|
5
|
+
export type SchemaRef<K extends object = Record<string, unknown>> = {
|
|
6
|
+
id: string;
|
|
7
|
+
/** The schema's object path, or `null` to use the schema's default path. */
|
|
8
|
+
path: string | null;
|
|
9
|
+
/** Maps each typed key of `K` to its corresponding GSettings key name. */
|
|
10
|
+
keys: {
|
|
11
|
+
[P in keyof K]: string;
|
|
12
|
+
};
|
|
13
|
+
/** Phantom field carrying the value type `K`; never populated at runtime. */
|
|
14
|
+
__keys__?: K;
|
|
15
|
+
};
|
|
16
|
+
export declare const useSettingsInstance: ({ id, path }: Pick<SchemaRef, "id" | "path">) => Gio.Settings;
|
|
17
|
+
/**
|
|
18
|
+
* Reads and writes a single key of a GSettings schema, re-rendering when the stored value changes.
|
|
19
|
+
*
|
|
20
|
+
* @param schema The schema reference identifying the settings backend.
|
|
21
|
+
* @param key The key within the schema to read and write.
|
|
22
|
+
* @returns A tuple of the current value and a setter that persists a new value.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useSetting<K extends object, P extends keyof K & string>(schema: SchemaRef<K>, key: P): [K[P], (value: K[P]) => void];
|
|
25
|
+
//# sourceMappingURL=use-setting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-setting.d.ts","sourceRoot":"","sources":["../../src/hooks/use-setting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAKpC;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0EAA0E;IAC1E,IAAI,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAE,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,mBAAmB,iBAAkB,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,KAAG,GAAG,CAAC,QACyB,CAAC;AAEjH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACnE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,CAAC,GACP,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Gio from "@gtkx/gi/gio";
|
|
2
|
+
import { useCallback, useMemo } from "react";
|
|
3
|
+
import { resolveAccessor } from "../utils/settings-accessor.js";
|
|
4
|
+
import { useObjectValue } from "./use-object-value.js";
|
|
5
|
+
export const useSettingsInstance = ({ id, path }) => useMemo(() => (path === null ? Gio.Settings.new(id) : new Gio.Settings({ schemaId: id, path })), [id, path]);
|
|
6
|
+
export function useSetting(schema, key) {
|
|
7
|
+
const accessor = resolveAccessor(schema.keys[key], key, schema.id);
|
|
8
|
+
const settings = useSettingsInstance(schema);
|
|
9
|
+
const value = useObjectValue(settings, `changed::${key}`, () => accessor.read(settings, key));
|
|
10
|
+
const set = useCallback((newValue) => {
|
|
11
|
+
accessor.write(settings, key, newValue);
|
|
12
|
+
}, [accessor, settings, key]);
|
|
13
|
+
return [value, set];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=use-setting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-setting.js","sourceRoot":"","sources":["../../src/hooks/use-setting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAevD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAkC,EAAgB,EAAE,CAC9F,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAajH,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,GAAW;IACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAE9F,MAAM,GAAG,GAAG,WAAW,CACnB,CAAC,QAAiB,EAAE,EAAE;QAClB,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAC5B,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC","sourcesContent":["import * as Gio from \"@gtkx/gi/gio\";\nimport { useCallback, useMemo } from \"react\";\nimport { resolveAccessor } from \"../utils/settings-accessor.js\";\nimport { useObjectValue } from \"./use-object-value.js\";\n\n/**\n * A typed reference to a GSettings schema: its id, path, and the mapping of typed keys to their setting names.\n */\nexport type SchemaRef<K extends object = Record<string, unknown>> = {\n id: string;\n /** The schema's object path, or `null` to use the schema's default path. */\n path: string | null;\n /** Maps each typed key of `K` to its corresponding GSettings key name. */\n keys: { [P in keyof K]: string };\n /** Phantom field carrying the value type `K`; never populated at runtime. */\n __keys__?: K;\n};\n\nexport const useSettingsInstance = ({ id, path }: Pick<SchemaRef, \"id\" | \"path\">): Gio.Settings =>\n useMemo(() => (path === null ? Gio.Settings.new(id) : new Gio.Settings({ schemaId: id, path })), [id, path]);\n\n/**\n * Reads and writes a single key of a GSettings schema, re-rendering when the stored value changes.\n *\n * @param schema The schema reference identifying the settings backend.\n * @param key The key within the schema to read and write.\n * @returns A tuple of the current value and a setter that persists a new value.\n */\nexport function useSetting<K extends object, P extends keyof K & string>(\n schema: SchemaRef<K>,\n key: P,\n): [K[P], (value: K[P]) => void];\nexport function useSetting(schema: SchemaRef, key: string): [unknown, (value: unknown) => void] {\n const accessor = resolveAccessor(schema.keys[key], key, schema.id);\n const settings = useSettingsInstance(schema);\n\n const value = useObjectValue(settings, `changed::${key}`, () => accessor.read(settings, key));\n\n const set = useCallback(\n (newValue: unknown) => {\n accessor.write(settings, key, newValue);\n },\n [accessor, settings, key],\n );\n\n return [value, set];\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type * as GObject from "@gtkx/gi/gobject";
|
|
2
|
+
import type { ObjectProp } from "../utils/object-prop.js";
|
|
3
|
+
type AnySignalHandler = (...args: unknown[]) => unknown;
|
|
4
|
+
type SignalsOf<T extends GObject.Object> = NonNullable<T["__signals__"]>;
|
|
5
|
+
export type SignalNameOf<T extends GObject.Object> = (keyof SignalsOf<T> & string) | `${keyof SignalsOf<T> & string}::${string}`;
|
|
6
|
+
export type SignalHandlerFor<T extends GObject.Object, S extends string> = S extends keyof SignalsOf<T> ? SignalsOf<T>[S] : S extends `${infer TBase}::${string}` ? TBase extends keyof SignalsOf<T> ? SignalsOf<T>[TBase] : AnySignalHandler : AnySignalHandler;
|
|
7
|
+
type UseSignalOptions = {
|
|
8
|
+
after?: boolean;
|
|
9
|
+
immediate?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Connects a handler to a GObject signal for the lifetime of the component, reconnecting when the object changes.
|
|
13
|
+
*
|
|
14
|
+
* @param object The GObject (or ref to one) to connect to.
|
|
15
|
+
* @param signal The signal name, optionally with a detail suffix.
|
|
16
|
+
* @param handler The callback invoked when the signal is emitted.
|
|
17
|
+
* @param options Connection options such as running after the default handler or invoking immediately.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useSignal<T extends GObject.Object, S extends SignalNameOf<T>>(object: ObjectProp<T>, signal: S, handler: SignalHandlerFor<T, S>, options?: UseSignalOptions): void;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=use-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-signal.d.ts","sourceRoot":"","sources":["../../src/hooks/use-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,KAAK,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAExD,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,IAC3C,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAC7B,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;AAElD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,SAAS,CAAC,CAAC,CAAC,GACjG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,GAAG,MAAM,KAAK,KAAK,MAAM,EAAE,GACnC,KAAK,SAAS,MAAM,SAAS,CAAC,CAAC,CAAC,GAC5B,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GACnB,gBAAgB,GACpB,gBAAgB,CAAC;AAEzB,KAAK,gBAAgB,GAAG;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AASF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GAC3B,IAAI,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { useObjectAttachment } from "./use-object-attachment.js";
|
|
3
|
+
export function useSignal(object, signal, handler, options) {
|
|
4
|
+
const handlerRef = useRef(handler);
|
|
5
|
+
handlerRef.current = handler;
|
|
6
|
+
const after = options?.after ?? false;
|
|
7
|
+
const immediate = options?.immediate ?? false;
|
|
8
|
+
useObjectAttachment(object, {
|
|
9
|
+
attach: (obj) => {
|
|
10
|
+
const listener = (...args) => handlerRef.current(...args);
|
|
11
|
+
obj.on(signal, listener, after);
|
|
12
|
+
if (immediate)
|
|
13
|
+
handlerRef.current();
|
|
14
|
+
return { obj, signal, after, listener };
|
|
15
|
+
},
|
|
16
|
+
detach: (subscription) => subscription.obj.off(subscription.signal, subscription.listener),
|
|
17
|
+
isSame: (subscription, obj) => subscription.obj === obj && subscription.signal === signal && subscription.after === after,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=use-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-signal.js","sourceRoot":"","sources":["../../src/hooks/use-signal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AA4CjE,MAAM,UAAU,SAAS,CACrB,MAAkC,EAClC,MAAc,EACd,OAAyB,EACzB,OAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IAE9C,mBAAmB,CAAqC,MAAM,EAAE;QAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAkB,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YACzE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,IAAI,SAAS;gBAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC1F,MAAM,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,CAC1B,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK;KACjG,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type * as GObject from \"@gtkx/gi/gobject\";\nimport type { SignalHandler } from \"@gtkx/runtime\";\nimport { useRef } from \"react\";\nimport type { ObjectProp } from \"../utils/object-prop.js\";\nimport { useObjectAttachment } from \"./use-object-attachment.js\";\n\ntype AnySignalHandler = (...args: unknown[]) => unknown;\n\ntype SignalsOf<T extends GObject.Object> = NonNullable<T[\"__signals__\"]>;\n\nexport type SignalNameOf<T extends GObject.Object> =\n | (keyof SignalsOf<T> & string)\n | `${keyof SignalsOf<T> & string}::${string}`;\n\nexport type SignalHandlerFor<T extends GObject.Object, S extends string> = S extends keyof SignalsOf<T>\n ? SignalsOf<T>[S]\n : S extends `${infer TBase}::${string}`\n ? TBase extends keyof SignalsOf<T>\n ? SignalsOf<T>[TBase]\n : AnySignalHandler\n : AnySignalHandler;\n\ntype UseSignalOptions = {\n after?: boolean;\n immediate?: boolean;\n};\n\ntype SignalSubscription = {\n obj: GObject.Object;\n signal: string;\n after: boolean;\n listener: SignalHandler;\n};\n\n/**\n * Connects a handler to a GObject signal for the lifetime of the component, reconnecting when the object changes.\n *\n * @param object The GObject (or ref to one) to connect to.\n * @param signal The signal name, optionally with a detail suffix.\n * @param handler The callback invoked when the signal is emitted.\n * @param options Connection options such as running after the default handler or invoking immediately.\n */\nexport function useSignal<T extends GObject.Object, S extends SignalNameOf<T>>(\n object: ObjectProp<T>,\n signal: S,\n handler: SignalHandlerFor<T, S>,\n options?: UseSignalOptions,\n): void;\nexport function useSignal(\n object: ObjectProp<GObject.Object>,\n signal: string,\n handler: AnySignalHandler,\n options?: UseSignalOptions,\n): void {\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n const after = options?.after ?? false;\n const immediate = options?.immediate ?? false;\n\n useObjectAttachment<GObject.Object, SignalSubscription>(object, {\n attach: (obj) => {\n const listener: SignalHandler = (...args) => handlerRef.current(...args);\n obj.on(signal, listener, after);\n if (immediate) handlerRef.current();\n return { obj, signal, after, listener };\n },\n detach: (subscription) => subscription.obj.off(subscription.signal, subscription.listener),\n isSame: (subscription, obj) =>\n subscription.obj === obj && subscription.signal === signal && subscription.after === after,\n });\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export { useProperty } from "./use-property.js";
|
|
7
|
-
export { useSetting } from "./use-setting.js";
|
|
1
|
+
import "./utils/wrapper-node-jsx.js";
|
|
2
|
+
export type { ElementProp } from "@gtkx/config";
|
|
3
|
+
export { useApplication } from "./hooks/use-application.js";
|
|
4
|
+
export { useBindSetting } from "./hooks/use-bind-setting.js";
|
|
5
|
+
export { useParentWindow } from "./hooks/use-parent-window.js";
|
|
6
|
+
export { useProperty } from "./hooks/use-property.js";
|
|
7
|
+
export { type SchemaRef, useSetting } from "./hooks/use-setting.js";
|
|
8
|
+
export { useSignal } from "./hooks/use-signal.js";
|
|
9
|
+
export type { AccessibleProps } from "./reconciler/accessible.js";
|
|
10
|
+
export { createPortal } from "./reconciler/portal.js";
|
|
11
|
+
export { createRoot, quit, type Root } from "./reconciler/render.js";
|
|
12
|
+
export { type RootElement, rootElement } from "./reconciler/root-element.js";
|
|
13
|
+
export type { ObjectProp } from "./utils/object-prop.js";
|
|
14
|
+
export type { TextAnchorProps, TextPaintableProps } from "./utils/wrapper-node-jsx.js";
|
|
8
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAErC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
1
|
+
import "./utils/wrapper-node-jsx.js";
|
|
2
|
+
export { useApplication } from "./hooks/use-application.js";
|
|
3
|
+
export { useBindSetting } from "./hooks/use-bind-setting.js";
|
|
4
|
+
export { useParentWindow } from "./hooks/use-parent-window.js";
|
|
5
|
+
export { useProperty } from "./hooks/use-property.js";
|
|
6
|
+
export { useSetting } from "./hooks/use-setting.js";
|
|
7
|
+
export { useSignal } from "./hooks/use-signal.js";
|
|
8
|
+
export { createPortal } from "./reconciler/portal.js";
|
|
9
|
+
export { createRoot, quit } from "./reconciler/render.js";
|
|
10
|
+
export { rootElement } from "./reconciler/root-element.js";
|
|
8
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAkB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAa,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAoB,WAAW,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["import \"./utils/wrapper-node-jsx.js\";\n\nexport type { ElementProp } from \"@gtkx/config\";\nexport { useApplication } from \"./hooks/use-application.js\";\nexport { useBindSetting } from \"./hooks/use-bind-setting.js\";\nexport { useParentWindow } from \"./hooks/use-parent-window.js\";\nexport { useProperty } from \"./hooks/use-property.js\";\nexport { type SchemaRef, useSetting } from \"./hooks/use-setting.js\";\nexport { useSignal } from \"./hooks/use-signal.js\";\nexport type { AccessibleProps } from \"./reconciler/accessible.js\";\nexport { createPortal } from \"./reconciler/portal.js\";\nexport { createRoot, quit, type Root } from \"./reconciler/render.js\";\nexport { type RootElement, rootElement } from \"./reconciler/root-element.js\";\nexport type { ObjectProp } from \"./utils/object-prop.js\";\nexport type { TextAnchorProps, TextPaintableProps } from \"./utils/wrapper-node-jsx.js\";\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { createApplicationComponent } from "./components/application.js";
|
|
2
|
+
export { createWindowComponent } from "./components/window.js";
|
|
3
|
+
export { ApplicationContext } from "./hooks/use-application.js";
|
|
4
|
+
export { useMergeRefs } from "./hooks/use-merge-refs.js";
|
|
5
|
+
export { useObjectAttachment } from "./hooks/use-object-attachment.js";
|
|
6
|
+
export { useObjectValue } from "./hooks/use-object-value.js";
|
|
7
|
+
export { setReconcilerErrorHandler } from "./reconciler/reconciler-error-handler.js";
|
|
8
|
+
export { createReconcilerRoot, type ReconcilerRoot } from "./reconciler/reconciler-root.js";
|
|
9
|
+
export { isRootElement } from "./reconciler/root-element.js";
|
|
10
|
+
export { BUFFER_TEXT_KIND, CONTAINER_PROP_KIND, isWrapperKind, LABEL_TEXT_KIND, LAZY_ELEMENT_KIND, OBJECT_PROP_KIND, TEXT_ANCHOR_KIND, TEXT_PAINTABLE_KIND, WRAPPER_NODE_ELEMENT, type WrapperKind, } from "./reconciler/wrapper-protocol.js";
|
|
11
|
+
export { getAccessibleMetadata } from "./utils/accessible-metadata.js";
|
|
12
|
+
export { createElementComponent, createLazyElementComponent } from "./utils/create-element-component.js";
|
|
13
|
+
export { type ObjectProp, resolveObjectProp } from "./utils/object-prop.js";
|
|
14
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,WAAW,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACzG,OAAO,EAAE,KAAK,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { createApplicationComponent } from "./components/application.js";
|
|
2
|
+
export { createWindowComponent } from "./components/window.js";
|
|
3
|
+
export { ApplicationContext } from "./hooks/use-application.js";
|
|
4
|
+
export { useMergeRefs } from "./hooks/use-merge-refs.js";
|
|
5
|
+
export { useObjectAttachment } from "./hooks/use-object-attachment.js";
|
|
6
|
+
export { useObjectValue } from "./hooks/use-object-value.js";
|
|
7
|
+
export { setReconcilerErrorHandler } from "./reconciler/reconciler-error-handler.js";
|
|
8
|
+
export { createReconcilerRoot } from "./reconciler/reconciler-root.js";
|
|
9
|
+
export { isRootElement } from "./reconciler/root-element.js";
|
|
10
|
+
export { BUFFER_TEXT_KIND, CONTAINER_PROP_KIND, isWrapperKind, LABEL_TEXT_KIND, LAZY_ELEMENT_KIND, OBJECT_PROP_KIND, TEXT_ANCHOR_KIND, TEXT_PAINTABLE_KIND, WRAPPER_NODE_ELEMENT, } from "./reconciler/wrapper-protocol.js";
|
|
11
|
+
export { getAccessibleMetadata } from "./utils/accessible-metadata.js";
|
|
12
|
+
export { createElementComponent, createLazyElementComponent } from "./utils/create-element-component.js";
|
|
13
|
+
export { resolveObjectProp } from "./utils/object-prop.js";
|
|
14
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAuB,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GAEvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACzG,OAAO,EAAmB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC","sourcesContent":["export { createApplicationComponent } from \"./components/application.js\";\nexport { createWindowComponent } from \"./components/window.js\";\nexport { ApplicationContext } from \"./hooks/use-application.js\";\nexport { useMergeRefs } from \"./hooks/use-merge-refs.js\";\nexport { useObjectAttachment } from \"./hooks/use-object-attachment.js\";\nexport { useObjectValue } from \"./hooks/use-object-value.js\";\nexport { setReconcilerErrorHandler } from \"./reconciler/reconciler-error-handler.js\";\nexport { createReconcilerRoot, type ReconcilerRoot } from \"./reconciler/reconciler-root.js\";\nexport { isRootElement } from \"./reconciler/root-element.js\";\nexport {\n BUFFER_TEXT_KIND,\n CONTAINER_PROP_KIND,\n isWrapperKind,\n LABEL_TEXT_KIND,\n LAZY_ELEMENT_KIND,\n OBJECT_PROP_KIND,\n TEXT_ANCHOR_KIND,\n TEXT_PAINTABLE_KIND,\n WRAPPER_NODE_ELEMENT,\n type WrapperKind,\n} from \"./reconciler/wrapper-protocol.js\";\nexport { getAccessibleMetadata } from \"./utils/accessible-metadata.js\";\nexport { createElementComponent, createLazyElementComponent } from \"./utils/create-element-component.js\";\nexport { type ObjectProp, resolveObjectProp } from \"./utils/object-prop.js\";\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as Adw from "@gtkx/gi/adw";
|
|
2
|
+
import { type ElementType, type ReactNode, type Ref } from "react";
|
|
3
|
+
type DialogComponentProps = {
|
|
4
|
+
ref?: Ref<Adw.Dialog | null> | undefined;
|
|
5
|
+
};
|
|
6
|
+
export declare const createDialogComponent: (Component: ElementType) => ((props: DialogComponentProps) => ReactNode);
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/libraries/adw/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAA0C,MAAM,OAAO,CAAC;AAM3G,KAAK,oBAAoB,GAAG;IACxB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAe,WAAW,KAAG,CAAC,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAsBzG,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useLayoutEffect, useState } from "react";
|
|
3
|
+
import { useMergeRefs } from "../../hooks/use-merge-refs.js";
|
|
4
|
+
import { useParentWindow } from "../../hooks/use-parent-window.js";
|
|
5
|
+
import { createPortal } from "../../reconciler/portal.js";
|
|
6
|
+
import { rootElement } from "../../reconciler/root-element.js";
|
|
7
|
+
export const createDialogComponent = (Component) => {
|
|
8
|
+
return ({ ref, ...rest }) => {
|
|
9
|
+
const parent = useParentWindow();
|
|
10
|
+
const [dialog, setDialog] = useState(null);
|
|
11
|
+
const handleMount = useCallback((instance) => {
|
|
12
|
+
setDialog(instance);
|
|
13
|
+
return () => {
|
|
14
|
+
instance.forceClose();
|
|
15
|
+
setDialog(null);
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
useLayoutEffect(() => {
|
|
19
|
+
dialog?.present(parent);
|
|
20
|
+
}, [dialog, parent]);
|
|
21
|
+
const mergedRef = useMergeRefs(ref, handleMount);
|
|
22
|
+
return createPortal(_jsx(Component, { ref: mergedRef, ...rest }), rootElement);
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/libraries/adw/dialog.tsx"],"names":[],"mappings":";AACA,OAAO,EAA8C,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAM/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAsB,EAAgD,EAAE;IAC1G,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAwB,EAAa,EAAE;QACzD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;QAE9D,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,QAAoB,EAAE,EAAE;YACrD,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEpB,OAAO,GAAG,EAAE;gBACR,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC;QACN,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,eAAe,CAAC,GAAG,EAAE;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAErB,MAAM,SAAS,GAAG,YAAY,CAAa,GAAG,EAAE,WAAW,CAAC,CAAC;QAE7D,OAAO,YAAY,CAAC,KAAC,SAAS,IAAC,GAAG,EAAE,SAAS,KAAM,IAAI,GAAI,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type * as Adw from \"@gtkx/gi/adw\";\nimport { type ElementType, type ReactNode, type Ref, useCallback, useLayoutEffect, useState } from \"react\";\nimport { useMergeRefs } from \"../../hooks/use-merge-refs.js\";\nimport { useParentWindow } from \"../../hooks/use-parent-window.js\";\nimport { createPortal } from \"../../reconciler/portal.js\";\nimport { rootElement } from \"../../reconciler/root-element.js\";\n\ntype DialogComponentProps = {\n ref?: Ref<Adw.Dialog | null> | undefined;\n};\n\nexport const createDialogComponent = (Component: ElementType): ((props: DialogComponentProps) => ReactNode) => {\n return ({ ref, ...rest }: DialogComponentProps): ReactNode => {\n const parent = useParentWindow();\n const [dialog, setDialog] = useState<Adw.Dialog | null>(null);\n\n const handleMount = useCallback((instance: Adw.Dialog) => {\n setDialog(instance);\n\n return () => {\n instance.forceClose();\n setDialog(null);\n };\n }, []);\n\n useLayoutEffect(() => {\n dialog?.present(parent);\n }, [dialog, parent]);\n\n const mergedRef = useMergeRefs<Adw.Dialog>(ref, handleMount);\n\n return createPortal(<Component ref={mergedRef} {...rest} />, rootElement);\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libraries/adw/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libraries/adw/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { createDialogComponent } from \"./dialog.js\";\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as Gtk from "@gtkx/gi/gtk";
|
|
2
|
+
import type { Props } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Accessibility props available on every widget. Each member maps to a GTK4 accessible attribute
|
|
5
|
+
* (a `Gtk.AccessibleProperty`, `Gtk.AccessibleState`, or `Gtk.AccessibleRelation`) and is applied
|
|
6
|
+
* to the widget's accessible interface; setting a member to `undefined` resets that attribute to its default.
|
|
7
|
+
*/
|
|
8
|
+
export interface AccessibleProps {
|
|
9
|
+
accessibleAutocomplete?: Gtk.AccessibleAutocomplete | null | undefined;
|
|
10
|
+
accessibleDescription?: string | null | undefined;
|
|
11
|
+
accessibleHasPopup?: boolean | null | undefined;
|
|
12
|
+
accessibleKeyShortcuts?: string | null | undefined;
|
|
13
|
+
accessibleLabel?: string | null | undefined;
|
|
14
|
+
accessibleLevel?: number | null | undefined;
|
|
15
|
+
accessibleModal?: boolean | null | undefined;
|
|
16
|
+
accessibleMultiLine?: boolean | null | undefined;
|
|
17
|
+
accessibleMultiSelectable?: boolean | null | undefined;
|
|
18
|
+
accessibleOrientation?: Gtk.Orientation | null | undefined;
|
|
19
|
+
accessiblePlaceholder?: string | null | undefined;
|
|
20
|
+
accessibleReadOnly?: boolean | null | undefined;
|
|
21
|
+
accessibleRequired?: boolean | null | undefined;
|
|
22
|
+
accessibleRoleDescription?: string | null | undefined;
|
|
23
|
+
accessibleSort?: Gtk.AccessibleSort | null | undefined;
|
|
24
|
+
accessibleValueMax?: number | null | undefined;
|
|
25
|
+
accessibleValueMin?: number | null | undefined;
|
|
26
|
+
accessibleValueNow?: number | null | undefined;
|
|
27
|
+
accessibleValueText?: string | null | undefined;
|
|
28
|
+
accessibleHelpText?: string | null | undefined;
|
|
29
|
+
accessibleBusy?: boolean | null | undefined;
|
|
30
|
+
accessibleChecked?: Gtk.AccessibleTristate | null | undefined;
|
|
31
|
+
accessibleDisabled?: boolean | null | undefined;
|
|
32
|
+
accessibleExpanded?: boolean | null | undefined;
|
|
33
|
+
accessibleHidden?: boolean | null | undefined;
|
|
34
|
+
accessibleInvalid?: Gtk.AccessibleInvalidState | null | undefined;
|
|
35
|
+
accessiblePressed?: Gtk.AccessibleTristate | null | undefined;
|
|
36
|
+
accessibleSelected?: boolean | null | undefined;
|
|
37
|
+
accessibleVisited?: boolean | null | undefined;
|
|
38
|
+
accessibleActiveDescendant?: Gtk.Widget | null | undefined;
|
|
39
|
+
accessibleColCount?: number | null | undefined;
|
|
40
|
+
accessibleColIndex?: number | null | undefined;
|
|
41
|
+
accessibleColIndexText?: string | null | undefined;
|
|
42
|
+
accessibleColSpan?: number | null | undefined;
|
|
43
|
+
accessibleControls?: Gtk.Widget[] | null | undefined;
|
|
44
|
+
accessibleDescribedBy?: Gtk.Widget[] | null | undefined;
|
|
45
|
+
accessibleDetails?: Gtk.Widget[] | null | undefined;
|
|
46
|
+
accessibleErrorMessage?: Gtk.Widget[] | null | undefined;
|
|
47
|
+
accessibleFlowTo?: Gtk.Widget[] | null | undefined;
|
|
48
|
+
accessibleLabelledBy?: Gtk.Widget[] | null | undefined;
|
|
49
|
+
accessibleOwns?: Gtk.Widget[] | null | undefined;
|
|
50
|
+
accessiblePosInSet?: number | null | undefined;
|
|
51
|
+
accessibleRowCount?: number | null | undefined;
|
|
52
|
+
accessibleRowIndex?: number | null | undefined;
|
|
53
|
+
accessibleRowIndexText?: string | null | undefined;
|
|
54
|
+
accessibleRowSpan?: number | null | undefined;
|
|
55
|
+
accessibleSetSize?: number | null | undefined;
|
|
56
|
+
}
|
|
57
|
+
export declare const isAccessibleProp: (name: string) => boolean;
|
|
58
|
+
export declare const applyAccessibleProps: (widget: Gtk.Accessible, oldProps: Props | null, newProps: Props) => void;
|
|
59
|
+
//# sourceMappingURL=accessible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessible.d.ts","sourceRoot":"","sources":["../../src/reconciler/accessible.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import * as GObject from "@gtkx/gi/gobject";
|
|
2
|
+
import * as Gtk from "@gtkx/gi/gtk";
|
|
3
|
+
import { deleteAccessibleMetadata, setAccessibleMetadata } from "../utils/accessible-metadata.js";
|
|
4
|
+
const fromString = (val) => GObject.buildValue(GObject.TYPE_STRING, (v) => v.setString(val));
|
|
5
|
+
const fromBoolean = (val) => GObject.buildValue(GObject.TYPE_BOOLEAN, (v) => v.setBoolean(val));
|
|
6
|
+
const fromInt = (val) => GObject.buildValue(GObject.TYPE_INT, (v) => v.setInt(val));
|
|
7
|
+
const fromDouble = (val) => GObject.buildValue(GObject.TYPE_DOUBLE, (v) => v.setDouble(val));
|
|
8
|
+
const fromObject = (val) => GObject.buildValue(GObject.TYPE_OBJECT, (v) => v.setObject(val));
|
|
9
|
+
const fromRefList = (val) => {
|
|
10
|
+
const widgets = val;
|
|
11
|
+
const list = Gtk.AccessibleList.newFromList(widgets);
|
|
12
|
+
return GObject.buildValue(Gtk.AccessibleList.prototype.__type__, (v) => v.setBoxed(list));
|
|
13
|
+
};
|
|
14
|
+
const property = (enumValue, createValue) => ({
|
|
15
|
+
kind: "property",
|
|
16
|
+
enumValue,
|
|
17
|
+
createValue,
|
|
18
|
+
});
|
|
19
|
+
const state = (enumValue, createValue) => ({
|
|
20
|
+
kind: "state",
|
|
21
|
+
enumValue,
|
|
22
|
+
createValue,
|
|
23
|
+
});
|
|
24
|
+
const relation = (enumValue, createValue) => ({
|
|
25
|
+
kind: "relation",
|
|
26
|
+
enumValue,
|
|
27
|
+
createValue,
|
|
28
|
+
});
|
|
29
|
+
const ACCESSIBLE_PROP_MAP = {
|
|
30
|
+
accessibleAutocomplete: property(Gtk.AccessibleProperty.AUTOCOMPLETE, fromInt),
|
|
31
|
+
accessibleDescription: property(Gtk.AccessibleProperty.DESCRIPTION, fromString),
|
|
32
|
+
accessibleHasPopup: property(Gtk.AccessibleProperty.HAS_POPUP, fromBoolean),
|
|
33
|
+
accessibleKeyShortcuts: property(Gtk.AccessibleProperty.KEY_SHORTCUTS, fromString),
|
|
34
|
+
accessibleLabel: property(Gtk.AccessibleProperty.LABEL, fromString),
|
|
35
|
+
accessibleLevel: property(Gtk.AccessibleProperty.LEVEL, fromInt),
|
|
36
|
+
accessibleModal: property(Gtk.AccessibleProperty.MODAL, fromBoolean),
|
|
37
|
+
accessibleMultiLine: property(Gtk.AccessibleProperty.MULTI_LINE, fromBoolean),
|
|
38
|
+
accessibleMultiSelectable: property(Gtk.AccessibleProperty.MULTI_SELECTABLE, fromBoolean),
|
|
39
|
+
accessibleOrientation: property(Gtk.AccessibleProperty.ORIENTATION, fromInt),
|
|
40
|
+
accessiblePlaceholder: property(Gtk.AccessibleProperty.PLACEHOLDER, fromString),
|
|
41
|
+
accessibleReadOnly: property(Gtk.AccessibleProperty.READ_ONLY, fromBoolean),
|
|
42
|
+
accessibleRequired: property(Gtk.AccessibleProperty.REQUIRED, fromBoolean),
|
|
43
|
+
accessibleRoleDescription: property(Gtk.AccessibleProperty.ROLE_DESCRIPTION, fromString),
|
|
44
|
+
accessibleSort: property(Gtk.AccessibleProperty.SORT, fromInt),
|
|
45
|
+
accessibleValueMax: property(Gtk.AccessibleProperty.VALUE_MAX, fromDouble),
|
|
46
|
+
accessibleValueMin: property(Gtk.AccessibleProperty.VALUE_MIN, fromDouble),
|
|
47
|
+
accessibleValueNow: property(Gtk.AccessibleProperty.VALUE_NOW, fromDouble),
|
|
48
|
+
accessibleValueText: property(Gtk.AccessibleProperty.VALUE_TEXT, fromString),
|
|
49
|
+
accessibleHelpText: property(Gtk.AccessibleProperty.HELP_TEXT, fromString),
|
|
50
|
+
accessibleBusy: state(Gtk.AccessibleState.BUSY, fromBoolean),
|
|
51
|
+
accessibleChecked: state(Gtk.AccessibleState.CHECKED, fromInt),
|
|
52
|
+
accessibleDisabled: state(Gtk.AccessibleState.DISABLED, fromBoolean),
|
|
53
|
+
accessibleExpanded: state(Gtk.AccessibleState.EXPANDED, fromInt),
|
|
54
|
+
accessibleHidden: state(Gtk.AccessibleState.HIDDEN, fromBoolean),
|
|
55
|
+
accessibleInvalid: state(Gtk.AccessibleState.INVALID, fromInt),
|
|
56
|
+
accessiblePressed: state(Gtk.AccessibleState.PRESSED, fromInt),
|
|
57
|
+
accessibleSelected: state(Gtk.AccessibleState.SELECTED, fromInt),
|
|
58
|
+
accessibleVisited: state(Gtk.AccessibleState.VISITED, fromInt),
|
|
59
|
+
accessibleActiveDescendant: relation(Gtk.AccessibleRelation.ACTIVE_DESCENDANT, fromObject),
|
|
60
|
+
accessibleColCount: relation(Gtk.AccessibleRelation.COL_COUNT, fromInt),
|
|
61
|
+
accessibleColIndex: relation(Gtk.AccessibleRelation.COL_INDEX, fromInt),
|
|
62
|
+
accessibleColIndexText: relation(Gtk.AccessibleRelation.COL_INDEX_TEXT, fromString),
|
|
63
|
+
accessibleColSpan: relation(Gtk.AccessibleRelation.COL_SPAN, fromInt),
|
|
64
|
+
accessibleControls: relation(Gtk.AccessibleRelation.CONTROLS, fromRefList),
|
|
65
|
+
accessibleDescribedBy: relation(Gtk.AccessibleRelation.DESCRIBED_BY, fromRefList),
|
|
66
|
+
accessibleDetails: relation(Gtk.AccessibleRelation.DETAILS, fromRefList),
|
|
67
|
+
accessibleErrorMessage: relation(Gtk.AccessibleRelation.ERROR_MESSAGE, fromRefList),
|
|
68
|
+
accessibleFlowTo: relation(Gtk.AccessibleRelation.FLOW_TO, fromRefList),
|
|
69
|
+
accessibleLabelledBy: relation(Gtk.AccessibleRelation.LABELLED_BY, fromRefList),
|
|
70
|
+
accessibleOwns: relation(Gtk.AccessibleRelation.OWNS, fromRefList),
|
|
71
|
+
accessiblePosInSet: relation(Gtk.AccessibleRelation.POS_IN_SET, fromInt),
|
|
72
|
+
accessibleRowCount: relation(Gtk.AccessibleRelation.ROW_COUNT, fromInt),
|
|
73
|
+
accessibleRowIndex: relation(Gtk.AccessibleRelation.ROW_INDEX, fromInt),
|
|
74
|
+
accessibleRowIndexText: relation(Gtk.AccessibleRelation.ROW_INDEX_TEXT, fromString),
|
|
75
|
+
accessibleRowSpan: relation(Gtk.AccessibleRelation.ROW_SPAN, fromInt),
|
|
76
|
+
accessibleSetSize: relation(Gtk.AccessibleRelation.SET_SIZE, fromInt),
|
|
77
|
+
};
|
|
78
|
+
const lookupDescriptor = (name) => Object.hasOwn(ACCESSIBLE_PROP_MAP, name) ? ACCESSIBLE_PROP_MAP[name] : undefined;
|
|
79
|
+
export const isAccessibleProp = (name) => Object.hasOwn(ACCESSIBLE_PROP_MAP, name);
|
|
80
|
+
function applyDescriptor(widget, descriptor, newValue) {
|
|
81
|
+
const gvalue = descriptor.createValue(newValue);
|
|
82
|
+
switch (descriptor.kind) {
|
|
83
|
+
case "property":
|
|
84
|
+
widget.updateProperty([descriptor.enumValue], [gvalue]);
|
|
85
|
+
break;
|
|
86
|
+
case "state":
|
|
87
|
+
widget.updateState([descriptor.enumValue], [gvalue]);
|
|
88
|
+
break;
|
|
89
|
+
case "relation":
|
|
90
|
+
widget.updateRelation([descriptor.enumValue], [gvalue]);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function resetDescriptor(widget, descriptor) {
|
|
95
|
+
switch (descriptor.kind) {
|
|
96
|
+
case "property":
|
|
97
|
+
widget.resetProperty(descriptor.enumValue);
|
|
98
|
+
break;
|
|
99
|
+
case "state":
|
|
100
|
+
widget.resetState(descriptor.enumValue);
|
|
101
|
+
break;
|
|
102
|
+
case "relation":
|
|
103
|
+
widget.resetRelation(descriptor.enumValue);
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const applyChangedAccessibleProps = (widget, oldProps, newProps) => {
|
|
108
|
+
for (const name in newProps) {
|
|
109
|
+
const descriptor = lookupDescriptor(name);
|
|
110
|
+
if (!descriptor)
|
|
111
|
+
continue;
|
|
112
|
+
const newValue = newProps[name];
|
|
113
|
+
if (oldProps?.[name] === newValue)
|
|
114
|
+
continue;
|
|
115
|
+
if (newValue === undefined) {
|
|
116
|
+
resetDescriptor(widget, descriptor);
|
|
117
|
+
deleteAccessibleMetadata(widget, name);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
applyDescriptor(widget, descriptor, newValue);
|
|
121
|
+
setAccessibleMetadata(widget, name, newValue);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
const resetRemovedAccessibleProps = (widget, oldProps, newProps) => {
|
|
126
|
+
for (const name in oldProps) {
|
|
127
|
+
if (Object.hasOwn(newProps, name))
|
|
128
|
+
continue;
|
|
129
|
+
const descriptor = lookupDescriptor(name);
|
|
130
|
+
if (!descriptor)
|
|
131
|
+
continue;
|
|
132
|
+
if (oldProps[name] !== undefined) {
|
|
133
|
+
resetDescriptor(widget, descriptor);
|
|
134
|
+
deleteAccessibleMetadata(widget, name);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
export const applyAccessibleProps = (widget, oldProps, newProps) => {
|
|
139
|
+
applyChangedAccessibleProps(widget, oldProps, newProps);
|
|
140
|
+
if (oldProps)
|
|
141
|
+
resetRemovedAccessibleProps(widget, oldProps, newProps);
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=accessible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessible.js","sourceRoot":"","sources":["../../src/reconciler/accessible.ts"],"names":[],"mappings":"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","sourcesContent":["import * as GObject from \"@gtkx/gi/gobject\";\nimport * as Gtk from \"@gtkx/gi/gtk\";\nimport { deleteAccessibleMetadata, setAccessibleMetadata } from \"../utils/accessible-metadata.js\";\nimport type { Props } from \"./types.js\";\n\n/**\n * Accessibility props available on every widget. Each member maps to a GTK4 accessible attribute\n * (a `Gtk.AccessibleProperty`, `Gtk.AccessibleState`, or `Gtk.AccessibleRelation`) and is applied\n * to the widget's accessible interface; setting a member to `undefined` resets that attribute to its default.\n */\nexport interface AccessibleProps {\n accessibleAutocomplete?: Gtk.AccessibleAutocomplete | null | undefined;\n accessibleDescription?: string | null | undefined;\n accessibleHasPopup?: boolean | null | undefined;\n accessibleKeyShortcuts?: string | null | undefined;\n accessibleLabel?: string | null | undefined;\n accessibleLevel?: number | null | undefined;\n accessibleModal?: boolean | null | undefined;\n accessibleMultiLine?: boolean | null | undefined;\n accessibleMultiSelectable?: boolean | null | undefined;\n accessibleOrientation?: Gtk.Orientation | null | undefined;\n accessiblePlaceholder?: string | null | undefined;\n accessibleReadOnly?: boolean | null | undefined;\n accessibleRequired?: boolean | null | undefined;\n accessibleRoleDescription?: string | null | undefined;\n accessibleSort?: Gtk.AccessibleSort | null | undefined;\n accessibleValueMax?: number | null | undefined;\n accessibleValueMin?: number | null | undefined;\n accessibleValueNow?: number | null | undefined;\n accessibleValueText?: string | null | undefined;\n accessibleHelpText?: string | null | undefined;\n accessibleBusy?: boolean | null | undefined;\n accessibleChecked?: Gtk.AccessibleTristate | null | undefined;\n accessibleDisabled?: boolean | null | undefined;\n accessibleExpanded?: boolean | null | undefined;\n accessibleHidden?: boolean | null | undefined;\n accessibleInvalid?: Gtk.AccessibleInvalidState | null | undefined;\n accessiblePressed?: Gtk.AccessibleTristate | null | undefined;\n accessibleSelected?: boolean | null | undefined;\n accessibleVisited?: boolean | null | undefined;\n accessibleActiveDescendant?: Gtk.Widget | null | undefined;\n accessibleColCount?: number | null | undefined;\n accessibleColIndex?: number | null | undefined;\n accessibleColIndexText?: string | null | undefined;\n accessibleColSpan?: number | null | undefined;\n accessibleControls?: Gtk.Widget[] | null | undefined;\n accessibleDescribedBy?: Gtk.Widget[] | null | undefined;\n accessibleDetails?: Gtk.Widget[] | null | undefined;\n accessibleErrorMessage?: Gtk.Widget[] | null | undefined;\n accessibleFlowTo?: Gtk.Widget[] | null | undefined;\n accessibleLabelledBy?: Gtk.Widget[] | null | undefined;\n accessibleOwns?: Gtk.Widget[] | null | undefined;\n accessiblePosInSet?: number | null | undefined;\n accessibleRowCount?: number | null | undefined;\n accessibleRowIndex?: number | null | undefined;\n accessibleRowIndexText?: string | null | undefined;\n accessibleRowSpan?: number | null | undefined;\n accessibleSetSize?: number | null | undefined;\n}\n\ntype CreateValue = (jsValue: unknown) => GObject.Value;\n\ntype AccessiblePropertyDescriptor = {\n kind: \"property\";\n enumValue: Gtk.AccessibleProperty;\n createValue: CreateValue;\n};\n\ntype AccessibleStateDescriptor = {\n kind: \"state\";\n enumValue: Gtk.AccessibleState;\n createValue: CreateValue;\n};\n\ntype AccessibleRelationDescriptor = {\n kind: \"relation\";\n enumValue: Gtk.AccessibleRelation;\n createValue: CreateValue;\n};\n\ntype AccessibleDescriptor = AccessiblePropertyDescriptor | AccessibleStateDescriptor | AccessibleRelationDescriptor;\n\nconst fromString: CreateValue = (val) => GObject.buildValue(GObject.TYPE_STRING, (v) => v.setString(val as string));\nconst fromBoolean: CreateValue = (val) => GObject.buildValue(GObject.TYPE_BOOLEAN, (v) => v.setBoolean(val as boolean));\nconst fromInt: CreateValue = (val) => GObject.buildValue(GObject.TYPE_INT, (v) => v.setInt(val as number));\nconst fromDouble: CreateValue = (val) => GObject.buildValue(GObject.TYPE_DOUBLE, (v) => v.setDouble(val as number));\nconst fromObject: CreateValue = (val) =>\n GObject.buildValue(GObject.TYPE_OBJECT, (v) => v.setObject(val as GObject.Object));\n\nconst fromRefList: CreateValue = (val) => {\n const widgets = val as Gtk.Accessible[];\n const list = Gtk.AccessibleList.newFromList(widgets);\n return GObject.buildValue(Gtk.AccessibleList.prototype.__type__, (v) => v.setBoxed(list));\n};\n\nconst property = (enumValue: Gtk.AccessibleProperty, createValue: CreateValue): AccessiblePropertyDescriptor => ({\n kind: \"property\",\n enumValue,\n createValue,\n});\n\nconst state = (enumValue: Gtk.AccessibleState, createValue: CreateValue): AccessibleStateDescriptor => ({\n kind: \"state\",\n enumValue,\n createValue,\n});\n\nconst relation = (enumValue: Gtk.AccessibleRelation, createValue: CreateValue): AccessibleRelationDescriptor => ({\n kind: \"relation\",\n enumValue,\n createValue,\n});\n\nconst ACCESSIBLE_PROP_MAP: Record<keyof AccessibleProps, AccessibleDescriptor> = {\n accessibleAutocomplete: property(Gtk.AccessibleProperty.AUTOCOMPLETE, fromInt),\n accessibleDescription: property(Gtk.AccessibleProperty.DESCRIPTION, fromString),\n accessibleHasPopup: property(Gtk.AccessibleProperty.HAS_POPUP, fromBoolean),\n accessibleKeyShortcuts: property(Gtk.AccessibleProperty.KEY_SHORTCUTS, fromString),\n accessibleLabel: property(Gtk.AccessibleProperty.LABEL, fromString),\n accessibleLevel: property(Gtk.AccessibleProperty.LEVEL, fromInt),\n accessibleModal: property(Gtk.AccessibleProperty.MODAL, fromBoolean),\n accessibleMultiLine: property(Gtk.AccessibleProperty.MULTI_LINE, fromBoolean),\n accessibleMultiSelectable: property(Gtk.AccessibleProperty.MULTI_SELECTABLE, fromBoolean),\n accessibleOrientation: property(Gtk.AccessibleProperty.ORIENTATION, fromInt),\n accessiblePlaceholder: property(Gtk.AccessibleProperty.PLACEHOLDER, fromString),\n accessibleReadOnly: property(Gtk.AccessibleProperty.READ_ONLY, fromBoolean),\n accessibleRequired: property(Gtk.AccessibleProperty.REQUIRED, fromBoolean),\n accessibleRoleDescription: property(Gtk.AccessibleProperty.ROLE_DESCRIPTION, fromString),\n accessibleSort: property(Gtk.AccessibleProperty.SORT, fromInt),\n accessibleValueMax: property(Gtk.AccessibleProperty.VALUE_MAX, fromDouble),\n accessibleValueMin: property(Gtk.AccessibleProperty.VALUE_MIN, fromDouble),\n accessibleValueNow: property(Gtk.AccessibleProperty.VALUE_NOW, fromDouble),\n accessibleValueText: property(Gtk.AccessibleProperty.VALUE_TEXT, fromString),\n accessibleHelpText: property(Gtk.AccessibleProperty.HELP_TEXT, fromString),\n accessibleBusy: state(Gtk.AccessibleState.BUSY, fromBoolean),\n accessibleChecked: state(Gtk.AccessibleState.CHECKED, fromInt),\n accessibleDisabled: state(Gtk.AccessibleState.DISABLED, fromBoolean),\n accessibleExpanded: state(Gtk.AccessibleState.EXPANDED, fromInt),\n accessibleHidden: state(Gtk.AccessibleState.HIDDEN, fromBoolean),\n accessibleInvalid: state(Gtk.AccessibleState.INVALID, fromInt),\n accessiblePressed: state(Gtk.AccessibleState.PRESSED, fromInt),\n accessibleSelected: state(Gtk.AccessibleState.SELECTED, fromInt),\n accessibleVisited: state(Gtk.AccessibleState.VISITED, fromInt),\n accessibleActiveDescendant: relation(Gtk.AccessibleRelation.ACTIVE_DESCENDANT, fromObject),\n accessibleColCount: relation(Gtk.AccessibleRelation.COL_COUNT, fromInt),\n accessibleColIndex: relation(Gtk.AccessibleRelation.COL_INDEX, fromInt),\n accessibleColIndexText: relation(Gtk.AccessibleRelation.COL_INDEX_TEXT, fromString),\n accessibleColSpan: relation(Gtk.AccessibleRelation.COL_SPAN, fromInt),\n accessibleControls: relation(Gtk.AccessibleRelation.CONTROLS, fromRefList),\n accessibleDescribedBy: relation(Gtk.AccessibleRelation.DESCRIBED_BY, fromRefList),\n accessibleDetails: relation(Gtk.AccessibleRelation.DETAILS, fromRefList),\n accessibleErrorMessage: relation(Gtk.AccessibleRelation.ERROR_MESSAGE, fromRefList),\n accessibleFlowTo: relation(Gtk.AccessibleRelation.FLOW_TO, fromRefList),\n accessibleLabelledBy: relation(Gtk.AccessibleRelation.LABELLED_BY, fromRefList),\n accessibleOwns: relation(Gtk.AccessibleRelation.OWNS, fromRefList),\n accessiblePosInSet: relation(Gtk.AccessibleRelation.POS_IN_SET, fromInt),\n accessibleRowCount: relation(Gtk.AccessibleRelation.ROW_COUNT, fromInt),\n accessibleRowIndex: relation(Gtk.AccessibleRelation.ROW_INDEX, fromInt),\n accessibleRowIndexText: relation(Gtk.AccessibleRelation.ROW_INDEX_TEXT, fromString),\n accessibleRowSpan: relation(Gtk.AccessibleRelation.ROW_SPAN, fromInt),\n accessibleSetSize: relation(Gtk.AccessibleRelation.SET_SIZE, fromInt),\n};\n\nconst lookupDescriptor = (name: string): AccessibleDescriptor | undefined =>\n Object.hasOwn(ACCESSIBLE_PROP_MAP, name) ? ACCESSIBLE_PROP_MAP[name as keyof AccessibleProps] : undefined;\n\nexport const isAccessibleProp = (name: string): boolean => Object.hasOwn(ACCESSIBLE_PROP_MAP, name);\n\nfunction applyDescriptor(widget: Gtk.Accessible, descriptor: AccessibleDescriptor, newValue: unknown): void {\n const gvalue = descriptor.createValue(newValue);\n\n switch (descriptor.kind) {\n case \"property\":\n widget.updateProperty([descriptor.enumValue], [gvalue]);\n break;\n case \"state\":\n widget.updateState([descriptor.enumValue], [gvalue]);\n break;\n case \"relation\":\n widget.updateRelation([descriptor.enumValue], [gvalue]);\n break;\n }\n}\n\nfunction resetDescriptor(widget: Gtk.Accessible, descriptor: AccessibleDescriptor): void {\n switch (descriptor.kind) {\n case \"property\":\n widget.resetProperty(descriptor.enumValue);\n break;\n case \"state\":\n widget.resetState(descriptor.enumValue);\n break;\n case \"relation\":\n widget.resetRelation(descriptor.enumValue);\n break;\n }\n}\n\nconst applyChangedAccessibleProps = (widget: Gtk.Accessible, oldProps: Props | null, newProps: Props): void => {\n for (const name in newProps) {\n const descriptor = lookupDescriptor(name);\n if (!descriptor) continue;\n\n const newValue = newProps[name];\n if (oldProps?.[name] === newValue) continue;\n\n if (newValue === undefined) {\n resetDescriptor(widget, descriptor);\n deleteAccessibleMetadata(widget, name);\n } else {\n applyDescriptor(widget, descriptor, newValue);\n setAccessibleMetadata(widget, name, newValue);\n }\n }\n};\n\nconst resetRemovedAccessibleProps = (widget: Gtk.Accessible, oldProps: Props, newProps: Props): void => {\n for (const name in oldProps) {\n if (Object.hasOwn(newProps, name)) continue;\n const descriptor = lookupDescriptor(name);\n if (!descriptor) continue;\n if (oldProps[name] !== undefined) {\n resetDescriptor(widget, descriptor);\n deleteAccessibleMetadata(widget, name);\n }\n }\n};\n\nexport const applyAccessibleProps = (widget: Gtk.Accessible, oldProps: Props | null, newProps: Props): void => {\n applyChangedAccessibleProps(widget, oldProps, newProps);\n if (oldProps) resetRemovedAccessibleProps(widget, oldProps, newProps);\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as GObject from "@gtkx/gi/gobject";
|
|
2
|
+
import type { Props } from "./types.js";
|
|
3
|
+
type ApplyPropsOptions = {
|
|
4
|
+
exclude?: (name: string) => boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function applyProps(container: GObject.Object, oldProps: Props | null, newProps: Props, options?: ApplyPropsOptions): void;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=apply-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-props.d.ts","sourceRoot":"","sources":["../../src/reconciler/apply-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAKjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA4BxC,KAAK,iBAAiB,GAAG;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC,CAAC;AAkDF,wBAAgB,UAAU,CACtB,SAAS,EAAE,OAAO,CAAC,MAAM,EACzB,QAAQ,EAAE,KAAK,GAAG,IAAI,EACtB,QAAQ,EAAE,KAAK,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC5B,IAAI,CA0BN"}
|