@gtkx/react 0.21.0 → 1.0.0-rc.2
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/adw/config.d.ts +2 -0
- package/dist/adw/config.d.ts.map +1 -0
- package/dist/adw/config.js +2 -0
- package/dist/adw/config.js.map +1 -0
- package/dist/adw/dialog.d.ts +8 -0
- package/dist/adw/dialog.d.ts.map +1 -0
- package/dist/adw/dialog.js +25 -0
- package/dist/adw/dialog.js.map +1 -0
- package/dist/adw/element-behaviors.d.ts +2 -0
- package/dist/adw/element-behaviors.d.ts.map +1 -0
- package/dist/adw/element-behaviors.js +299 -0
- package/dist/adw/element-behaviors.js.map +1 -0
- package/dist/adw/element-config.d.ts +9 -0
- package/dist/adw/element-config.d.ts.map +1 -0
- package/dist/adw/element-config.js +137 -0
- package/dist/adw/element-config.js.map +1 -0
- package/dist/adw/index.d.ts +4 -0
- package/dist/adw/index.d.ts.map +1 -0
- package/dist/adw/index.js +3 -0
- package/dist/adw/index.js.map +1 -0
- package/dist/adw/prop-types.d.ts +29 -0
- package/dist/adw/prop-types.d.ts.map +1 -0
- package/dist/adw/prop-types.js +2 -0
- package/dist/adw/prop-types.js.map +1 -0
- package/dist/bootstrap.d.ts +2 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +5 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/components/application.d.ts +10 -0
- package/dist/components/application.d.ts.map +1 -0
- package/dist/components/application.js +39 -0
- package/dist/components/application.js.map +1 -0
- package/dist/components/element.d.ts +6 -0
- package/dist/components/element.d.ts.map +1 -0
- package/dist/components/element.js +29 -0
- package/dist/components/element.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 +22 -0
- package/dist/components/window.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -0
- package/dist/element-behaviors.d.ts +2 -0
- package/dist/element-behaviors.d.ts.map +1 -0
- package/dist/element-behaviors.js +348 -0
- package/dist/element-behaviors.js.map +1 -0
- package/dist/element-config.d.ts +10 -0
- package/dist/element-config.d.ts.map +1 -0
- package/dist/element-config.js +146 -0
- package/dist/element-config.js.map +1 -0
- package/dist/hooks/use-application.d.ts +9 -0
- package/dist/hooks/use-application.d.ts.map +1 -0
- package/dist/hooks/use-application.js +14 -0
- package/dist/hooks/use-application.js.map +1 -0
- package/dist/hooks/use-bind-setting.d.ts +23 -0
- package/dist/hooks/use-bind-setting.d.ts.map +1 -0
- package/dist/hooks/use-bind-setting.js +30 -0
- package/dist/hooks/use-bind-setting.js.map +1 -0
- package/dist/hooks/use-merged-refs.d.ts +8 -0
- package/dist/hooks/use-merged-refs.d.ts.map +1 -0
- package/dist/hooks/use-merged-refs.js +48 -0
- package/dist/hooks/use-merged-refs.js.map +1 -0
- package/dist/hooks/use-object-value.d.ts +5 -0
- package/dist/hooks/use-object-value.d.ts.map +1 -0
- package/dist/hooks/use-object-value.js +29 -0
- package/dist/hooks/use-object-value.js.map +1 -0
- package/dist/hooks/use-parent-window.d.ts +9 -0
- package/dist/hooks/use-parent-window.d.ts.map +1 -0
- package/dist/hooks/use-parent-window.js +8 -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 +14 -0
- package/dist/hooks/use-property.js.map +1 -0
- package/dist/hooks/use-setting.d.ts +14 -0
- package/dist/hooks/use-setting.d.ts.map +1 -0
- package/dist/hooks/use-setting.js +20 -0
- package/dist/hooks/use-setting.js.map +1 -0
- package/dist/hooks/use-signal.d.ts +24 -0
- package/dist/hooks/use-signal.d.ts.map +1 -0
- package/dist/hooks/use-signal.js +31 -0
- package/dist/hooks/use-signal.js.map +1 -0
- package/dist/index.d.ts +13 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -7
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +13 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +12 -0
- package/dist/internal.js.map +1 -0
- package/dist/prop-types.d.ts +110 -0
- package/dist/prop-types.d.ts.map +1 -0
- package/dist/prop-types.js +2 -0
- package/dist/prop-types.js.map +1 -0
- package/dist/reconciler/apply-props.d.ts +11 -0
- package/dist/reconciler/apply-props.d.ts.map +1 -0
- package/dist/reconciler/apply-props.js +190 -0
- package/dist/reconciler/apply-props.js.map +1 -0
- package/dist/reconciler/behaviors.d.ts +59 -0
- package/dist/reconciler/behaviors.d.ts.map +1 -0
- package/dist/reconciler/behaviors.js +172 -0
- package/dist/reconciler/behaviors.js.map +1 -0
- package/dist/reconciler/child-routing.d.ts +5 -0
- package/dist/reconciler/child-routing.d.ts.map +1 -0
- package/dist/reconciler/child-routing.js +156 -0
- package/dist/reconciler/child-routing.js.map +1 -0
- package/dist/reconciler/host-config.d.ts +9 -0
- package/dist/reconciler/host-config.d.ts.map +1 -0
- package/dist/reconciler/host-config.js +214 -0
- package/dist/reconciler/host-config.js.map +1 -0
- package/dist/reconciler/instance.d.ts +5 -0
- package/dist/reconciler/instance.d.ts.map +1 -0
- package/dist/reconciler/instance.js +49 -0
- package/dist/reconciler/instance.js.map +1 -0
- package/dist/reconciler/metadata.d.ts +17 -0
- package/dist/reconciler/metadata.d.ts.map +1 -0
- package/dist/reconciler/metadata.js +82 -0
- package/dist/reconciler/metadata.js.map +1 -0
- package/dist/reconciler/node.d.ts +76 -0
- package/dist/reconciler/node.d.ts.map +1 -0
- package/dist/reconciler/node.js +53 -0
- package/dist/reconciler/node.js.map +1 -0
- package/dist/reconciler/placement.d.ts +5 -0
- package/dist/reconciler/placement.d.ts.map +1 -0
- package/dist/reconciler/placement.js +175 -0
- package/dist/reconciler/placement.js.map +1 -0
- package/dist/reconciler/registry.d.ts +92 -0
- package/dist/reconciler/registry.d.ts.map +1 -0
- package/dist/reconciler/registry.js +64 -0
- package/dist/reconciler/registry.js.map +1 -0
- package/dist/reconciler/root-element.d.ts +11 -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/root.d.ts +56 -0
- package/dist/reconciler/root.d.ts.map +1 -0
- package/dist/reconciler/root.js +109 -0
- package/dist/reconciler/root.js.map +1 -0
- package/dist/reconciler/signals.d.ts +10 -0
- package/dist/reconciler/signals.d.ts.map +1 -0
- package/dist/reconciler/signals.js +70 -0
- package/dist/reconciler/signals.js.map +1 -0
- package/dist/reconciler/text.d.ts +19 -0
- package/dist/reconciler/text.d.ts.map +1 -0
- package/dist/reconciler/text.js +276 -0
- package/dist/reconciler/text.js.map +1 -0
- package/dist/utils/accessible-metadata.d.ts +12 -0
- package/dist/utils/accessible-metadata.d.ts.map +1 -0
- package/dist/utils/accessible-metadata.js +25 -0
- package/dist/utils/accessible-metadata.js.map +1 -0
- package/dist/utils/accessible-props.d.ts +60 -0
- package/dist/utils/accessible-props.d.ts.map +1 -0
- package/dist/utils/accessible-props.js +181 -0
- package/dist/utils/accessible-props.js.map +1 -0
- package/dist/utils/ref-prop.d.ts +15 -0
- package/dist/utils/ref-prop.d.ts.map +1 -0
- package/dist/utils/ref-prop.js +18 -0
- package/dist/utils/ref-prop.js.map +1 -0
- package/dist/utils/settings.d.ts +17 -0
- package/dist/utils/settings.d.ts.map +1 -0
- package/dist/utils/settings.js +37 -0
- package/dist/utils/settings.js.map +1 -0
- package/dist/utils/variant.d.ts +57 -0
- package/dist/utils/variant.d.ts.map +1 -0
- package/dist/utils/variant.js +197 -0
- package/dist/utils/variant.js.map +1 -0
- package/env.d.ts +9 -0
- package/package.json +49 -10
- package/src/adw/config.ts +1 -0
- package/src/adw/dialog.tsx +35 -0
- package/src/adw/element-behaviors.ts +379 -0
- package/src/adw/element-config.ts +140 -0
- package/src/adw/index.ts +4 -0
- package/src/adw/prop-types.ts +42 -0
- package/src/bootstrap.ts +5 -0
- package/src/components/application.tsx +62 -0
- package/src/components/element.tsx +47 -0
- package/src/components/window.tsx +35 -0
- package/src/config.ts +3 -0
- package/src/element-behaviors.ts +424 -0
- package/src/element-config.ts +148 -0
- package/src/env.d.ts +1 -0
- package/src/hooks/use-application.ts +19 -0
- package/src/hooks/use-bind-setting.ts +51 -0
- package/src/hooks/use-merged-refs.ts +64 -0
- package/src/hooks/use-object-value.ts +54 -0
- package/src/hooks/use-parent-window.ts +11 -0
- package/src/hooks/use-property.ts +23 -0
- package/src/hooks/use-setting.ts +34 -0
- package/src/hooks/use-signal.ts +60 -0
- package/src/index.ts +14 -14
- package/src/internal.ts +13 -0
- package/src/prop-types.ts +142 -0
- package/src/reconciler/apply-props.ts +265 -0
- package/src/reconciler/behaviors.ts +324 -0
- package/src/reconciler/child-routing.ts +202 -0
- package/src/reconciler/host-config.ts +278 -0
- package/src/reconciler/instance.ts +82 -0
- package/src/reconciler/metadata.ts +119 -0
- package/src/reconciler/node.ts +161 -0
- package/src/reconciler/placement.ts +255 -0
- package/src/reconciler/registry.ts +161 -0
- package/src/reconciler/root-element.ts +12 -0
- package/src/reconciler/root.ts +175 -0
- package/src/reconciler/signals.ts +113 -0
- package/src/reconciler/text.ts +407 -0
- package/src/utils/accessible-metadata.ts +31 -0
- package/src/utils/accessible-props.ts +279 -0
- package/src/utils/ref-prop.ts +30 -0
- package/src/utils/settings.ts +69 -0
- package/src/utils/variant.ts +368 -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 +0 -2
- 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
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import * as GLib from "@gtkx/gi/glib";
|
|
2
|
+
|
|
3
|
+
type BasicValueMap = {
|
|
4
|
+
b: boolean;
|
|
5
|
+
y: number;
|
|
6
|
+
n: number;
|
|
7
|
+
q: number;
|
|
8
|
+
i: number;
|
|
9
|
+
u: number;
|
|
10
|
+
h: number;
|
|
11
|
+
d: number;
|
|
12
|
+
x: bigint;
|
|
13
|
+
t: bigint;
|
|
14
|
+
s: string;
|
|
15
|
+
o: string;
|
|
16
|
+
g: string;
|
|
17
|
+
v: GLib.Variant;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
type BasicCode = keyof BasicValueMap;
|
|
21
|
+
type ParseArray<S extends string> = Parse<S> extends [infer V, infer R extends string] ? [V[], R] : never;
|
|
22
|
+
type ParseMaybe<S extends string> = Parse<S> extends [infer V, infer R extends string] ? [V | null, R] : never;
|
|
23
|
+
|
|
24
|
+
type ParseTuple<S extends string, Acc extends unknown[]> = S extends `)${infer Rest}`
|
|
25
|
+
? [Acc, Rest]
|
|
26
|
+
: [Parse<S>] extends [never]
|
|
27
|
+
? never
|
|
28
|
+
: Parse<S> extends [infer V, infer R extends string]
|
|
29
|
+
? ParseTuple<R, [...Acc, V]>
|
|
30
|
+
: never;
|
|
31
|
+
|
|
32
|
+
type DictKey = string | number | bigint | boolean;
|
|
33
|
+
|
|
34
|
+
type ParsePair<S extends string> =
|
|
35
|
+
Parse<S> extends [infer K, infer R1 extends string]
|
|
36
|
+
? Parse<R1> extends [infer V, infer R2 extends string]
|
|
37
|
+
? R2 extends `}${infer R3}`
|
|
38
|
+
? [K] extends [DictKey]
|
|
39
|
+
? [K, V, R3]
|
|
40
|
+
: never
|
|
41
|
+
: never
|
|
42
|
+
: never
|
|
43
|
+
: never;
|
|
44
|
+
|
|
45
|
+
type ParseDict<S extends string> =
|
|
46
|
+
ParsePair<S> extends [infer K, infer V, infer R extends string]
|
|
47
|
+
? [[K] extends [string] ? Record<string, V> : Map<K, V>, R]
|
|
48
|
+
: never;
|
|
49
|
+
|
|
50
|
+
type ParseEntry<S extends string> =
|
|
51
|
+
ParsePair<S> extends [infer K, infer V, infer R extends string] ? [[K, V], R] : never;
|
|
52
|
+
|
|
53
|
+
type ParseArrayOrDict<S extends string> = S extends `{${infer Rest}` ? ParseDict<Rest> : ParseArray<S>;
|
|
54
|
+
|
|
55
|
+
type Parse<S extends string> = S extends `a${infer Rest}`
|
|
56
|
+
? ParseArrayOrDict<Rest>
|
|
57
|
+
: S extends `m${infer Rest}`
|
|
58
|
+
? ParseMaybe<Rest>
|
|
59
|
+
: S extends `(${infer Rest}`
|
|
60
|
+
? ParseTuple<Rest, []>
|
|
61
|
+
: S extends `{${infer Rest}`
|
|
62
|
+
? ParseEntry<Rest>
|
|
63
|
+
: S extends `${infer C}${infer Rest}`
|
|
64
|
+
? C extends BasicCode
|
|
65
|
+
? [BasicValueMap[C], Rest]
|
|
66
|
+
: never
|
|
67
|
+
: never;
|
|
68
|
+
|
|
69
|
+
type VariantValue<S extends string> = [Parse<S>] extends [never]
|
|
70
|
+
? unknown
|
|
71
|
+
: Parse<S> extends [infer V, ""]
|
|
72
|
+
? V
|
|
73
|
+
: unknown;
|
|
74
|
+
|
|
75
|
+
type VariantTypeNode =
|
|
76
|
+
| { kind: "basic"; code: BasicCode } |
|
|
77
|
+
{ kind: "array"; elementTypeString: string; element: VariantTypeNode } |
|
|
78
|
+
{ kind: "dict"; entryTypeString: string; key: VariantTypeNode; value: VariantTypeNode } |
|
|
79
|
+
{ kind: "entry"; key: VariantTypeNode; value: VariantTypeNode } |
|
|
80
|
+
{ kind: "tuple"; items: VariantTypeNode[] } |
|
|
81
|
+
{ kind: "maybe"; elementTypeString: string; element: VariantTypeNode };
|
|
82
|
+
|
|
83
|
+
const BASIC_CODES = "bynqiuxthdsogv";
|
|
84
|
+
const STRING_KEY_CODES: Set<string> = new Set(["s", "o", "g"]);
|
|
85
|
+
|
|
86
|
+
const CONTAINER_PARSERS: Record<string, (source: string, start: number) => [VariantTypeNode, number]> = {
|
|
87
|
+
a: parseArrayNode,
|
|
88
|
+
m: parseMaybeNode,
|
|
89
|
+
"(": parseTupleNode,
|
|
90
|
+
"{": parseEntryNode,
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const parsedTypes: Map<string, VariantTypeNode> = new Map();
|
|
94
|
+
|
|
95
|
+
const unpackBasic: Record<BasicCode, (variant: GLib.Variant) => unknown> = {
|
|
96
|
+
b: (variant) => variant.getBoolean(),
|
|
97
|
+
y: (variant) => variant.getByte(),
|
|
98
|
+
n: (variant) => variant.getInt16(),
|
|
99
|
+
q: (variant) => variant.getUint16(),
|
|
100
|
+
i: (variant) => variant.getInt32(),
|
|
101
|
+
u: (variant) => variant.getUint32(),
|
|
102
|
+
h: (variant) => variant.getHandle(),
|
|
103
|
+
d: (variant) => variant.getDouble(),
|
|
104
|
+
x: (variant) => variant.getInt64(),
|
|
105
|
+
t: (variant) => variant.getUint64(),
|
|
106
|
+
s: (variant) => variant.getString()[0],
|
|
107
|
+
o: (variant) => variant.getString()[0],
|
|
108
|
+
g: (variant) => variant.getString()[0],
|
|
109
|
+
v: (variant) => variant.getVariant(),
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const packBasic: Record<BasicCode, (value: unknown) => GLib.Variant> = {
|
|
113
|
+
b: (value) => GLib.Variant.newBoolean(value as boolean),
|
|
114
|
+
y: (value) => GLib.Variant.newByte(value as number),
|
|
115
|
+
n: (value) => GLib.Variant.newInt16(value as number),
|
|
116
|
+
q: (value) => GLib.Variant.newUint16(value as number),
|
|
117
|
+
i: (value) => GLib.Variant.newInt32(value as number),
|
|
118
|
+
u: (value) => GLib.Variant.newUint32(value as number),
|
|
119
|
+
h: (value) => GLib.Variant.newHandle(value as number),
|
|
120
|
+
d: (value) => GLib.Variant.newDouble(value as number),
|
|
121
|
+
x: (value) => GLib.Variant.newInt64(value as bigint),
|
|
122
|
+
t: (value) => GLib.Variant.newUint64(value as bigint),
|
|
123
|
+
s: (value) => GLib.Variant.newString(value as string),
|
|
124
|
+
o: packObjectPath,
|
|
125
|
+
g: packSignature,
|
|
126
|
+
v: (value) => GLib.Variant.newVariant(value as GLib.Variant),
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
const isBasicCode = (code: string): code is BasicCode => BASIC_CODES.includes(code);
|
|
130
|
+
const isStringKeyed = (key: VariantTypeNode): boolean => key.kind === "basic" && STRING_KEY_CODES.has(key.code);
|
|
131
|
+
const invalidType = (source: string): Error => new Error(`Invalid GVariant type string "${source}"`);
|
|
132
|
+
|
|
133
|
+
const parsePair = (source: string, start: number): [VariantTypeNode, VariantTypeNode, number] => {
|
|
134
|
+
const [key, keyEnd] = parseNode(source, start);
|
|
135
|
+
|
|
136
|
+
if (key.kind !== "basic" || key.code === "v") {
|
|
137
|
+
throw invalidType(source);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const [value, valueEnd] = parseNode(source, keyEnd);
|
|
141
|
+
|
|
142
|
+
if (source[valueEnd] !== "}") {
|
|
143
|
+
throw invalidType(source);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return [key, value, valueEnd + 1];
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
function parseArrayNode(source: string, start: number): [VariantTypeNode, number] {
|
|
150
|
+
if (source[start] === "{") {
|
|
151
|
+
const [key, value, end] = parsePair(source, start + 1);
|
|
152
|
+
|
|
153
|
+
return [{ kind: "dict", entryTypeString: source.slice(start, end), key, value }, end];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const [element, end] = parseNode(source, start);
|
|
157
|
+
|
|
158
|
+
return [{ kind: "array", elementTypeString: source.slice(start, end), element }, end];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function parseMaybeNode(source: string, start: number): [VariantTypeNode, number] {
|
|
162
|
+
const [element, end] = parseNode(source, start);
|
|
163
|
+
|
|
164
|
+
return [{ kind: "maybe", elementTypeString: source.slice(start, end), element }, end];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function parseTupleNode(source: string, start: number): [VariantTypeNode, number] {
|
|
168
|
+
const items: VariantTypeNode[] = [];
|
|
169
|
+
let position = start;
|
|
170
|
+
|
|
171
|
+
while (source[position] !== ")") {
|
|
172
|
+
if (position >= source.length) {
|
|
173
|
+
throw invalidType(source);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const [item, end] = parseNode(source, position);
|
|
177
|
+
items.push(item);
|
|
178
|
+
position = end;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return [{ kind: "tuple", items }, position + 1];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function parseEntryNode(source: string, start: number): [VariantTypeNode, number] {
|
|
185
|
+
const [key, value, end] = parsePair(source, start);
|
|
186
|
+
|
|
187
|
+
return [{ kind: "entry", key, value }, end];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
const parseNode = (source: string, start: number): [VariantTypeNode, number] => {
|
|
191
|
+
const code = source[start];
|
|
192
|
+
|
|
193
|
+
if (code === undefined) {
|
|
194
|
+
throw invalidType(source);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const container = CONTAINER_PARSERS[code];
|
|
198
|
+
|
|
199
|
+
if (container !== undefined) {
|
|
200
|
+
return container(source, start + 1);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if (isBasicCode(code)) {
|
|
204
|
+
return [{ kind: "basic", code }, start + 1];
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
throw invalidType(source);
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
const parseVariantType = (typeString: string): VariantTypeNode => {
|
|
211
|
+
const cached = parsedTypes.get(typeString);
|
|
212
|
+
|
|
213
|
+
if (cached !== undefined) {
|
|
214
|
+
return cached;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const [node, end] = parseNode(typeString, 0);
|
|
218
|
+
|
|
219
|
+
if (end !== typeString.length) {
|
|
220
|
+
throw invalidType(typeString);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
parsedTypes.set(typeString, node);
|
|
224
|
+
|
|
225
|
+
return node;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
const unpackChildren = (variant: GLib.Variant, unpackChild: (child: GLib.Variant) => unknown): unknown[] => {
|
|
229
|
+
const children: unknown[] = [];
|
|
230
|
+
const count = variant.nChildren();
|
|
231
|
+
|
|
232
|
+
for (let index = 0; index < count; index += 1) {
|
|
233
|
+
children.push(unpackChild(variant.getChildValue(index)));
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
return children;
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
const unpackPair = (key: VariantTypeNode, value: VariantTypeNode, entry: GLib.Variant): [unknown, unknown] => [
|
|
240
|
+
unpackVariant(key, entry.getChildValue(0)),
|
|
241
|
+
unpackVariant(value, entry.getChildValue(1)),
|
|
242
|
+
];
|
|
243
|
+
|
|
244
|
+
const unpackDict = (
|
|
245
|
+
node: { key: VariantTypeNode; value: VariantTypeNode },
|
|
246
|
+
variant: GLib.Variant,
|
|
247
|
+
): Record<string, unknown> | Map<unknown, unknown> => {
|
|
248
|
+
const entries = unpackChildren(variant, (entry) => unpackPair(node.key, node.value, entry)) as [unknown, unknown][];
|
|
249
|
+
|
|
250
|
+
if (!isStringKeyed(node.key)) {
|
|
251
|
+
return new Map(entries);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
const stringEntries: [string, unknown][] = entries.map(([key, value]) => [key as string, value]);
|
|
255
|
+
|
|
256
|
+
return Object.fromEntries(stringEntries);
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
const unpackMaybe = (element: VariantTypeNode, variant: GLib.Variant): unknown => {
|
|
260
|
+
const child = variant.getMaybe();
|
|
261
|
+
|
|
262
|
+
return child === null ? null : unpackVariant(element, child);
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
const unpackVariant = (node: VariantTypeNode, variant: GLib.Variant): unknown => {
|
|
266
|
+
switch (node.kind) {
|
|
267
|
+
case "basic": {
|
|
268
|
+
return unpackBasic[node.code](variant);
|
|
269
|
+
}
|
|
270
|
+
case "array": {
|
|
271
|
+
return unpackChildren(variant, (child) => unpackVariant(node.element, child));
|
|
272
|
+
}
|
|
273
|
+
case "dict": {
|
|
274
|
+
return unpackDict(node, variant);
|
|
275
|
+
}
|
|
276
|
+
case "entry": {
|
|
277
|
+
return unpackPair(node.key, node.value, variant);
|
|
278
|
+
}
|
|
279
|
+
case "tuple": {
|
|
280
|
+
return node.items.map((item, index) => unpackVariant(item, variant.getChildValue(index)));
|
|
281
|
+
}
|
|
282
|
+
case "maybe": {
|
|
283
|
+
return unpackMaybe(node.element, variant);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
const packValidatedString = (
|
|
289
|
+
value: unknown,
|
|
290
|
+
isValid: (value: string) => boolean,
|
|
291
|
+
description: string,
|
|
292
|
+
construct: (value: string) => GLib.Variant,
|
|
293
|
+
): GLib.Variant => {
|
|
294
|
+
if (typeof value !== "string" || !isValid(value)) {
|
|
295
|
+
throw new Error(`"${String(value)}" is not a valid GVariant ${description}`);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return construct(value);
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
function packObjectPath(value: unknown): GLib.Variant {
|
|
302
|
+
return packValidatedString(
|
|
303
|
+
value,
|
|
304
|
+
(path) => GLib.Variant.isObjectPath(path),
|
|
305
|
+
"object path",
|
|
306
|
+
(path) => GLib.Variant.newObjectPath(path),
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
function packSignature(value: unknown): GLib.Variant {
|
|
311
|
+
return packValidatedString(
|
|
312
|
+
value,
|
|
313
|
+
(signature) => GLib.Variant.isSignature(signature),
|
|
314
|
+
"type signature",
|
|
315
|
+
(signature) => GLib.Variant.newSignature(signature),
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
const packEntry = (key: VariantTypeNode, value: VariantTypeNode, pair: [unknown, unknown]): GLib.Variant =>
|
|
320
|
+
GLib.Variant.newDictEntry(packVariant(key, pair[0]), packVariant(value, pair[1]));
|
|
321
|
+
|
|
322
|
+
const dictEntries = (value: unknown): [unknown, unknown][] =>
|
|
323
|
+
value instanceof Map ? [...value] : Object.entries(value as Record<string, unknown>);
|
|
324
|
+
|
|
325
|
+
const packDict = (
|
|
326
|
+
node: { entryTypeString: string; key: VariantTypeNode; value: VariantTypeNode },
|
|
327
|
+
value: unknown,
|
|
328
|
+
): GLib.Variant =>
|
|
329
|
+
GLib.Variant.newArray(
|
|
330
|
+
GLib.VariantType.new(node.entryTypeString),
|
|
331
|
+
dictEntries(value).map((pair) => packEntry(node.key, node.value, pair)),
|
|
332
|
+
);
|
|
333
|
+
|
|
334
|
+
const packMaybe = (node: { elementTypeString: string; element: VariantTypeNode }, value: unknown): GLib.Variant =>
|
|
335
|
+
GLib.Variant.newMaybe(
|
|
336
|
+
GLib.VariantType.new(node.elementTypeString),
|
|
337
|
+
value === null ? null : packVariant(node.element, value),
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
const packVariant = (node: VariantTypeNode, value: unknown): GLib.Variant => {
|
|
341
|
+
switch (node.kind) {
|
|
342
|
+
case "basic": {
|
|
343
|
+
return packBasic[node.code](value);
|
|
344
|
+
}
|
|
345
|
+
case "array": {
|
|
346
|
+
return GLib.Variant.newArray(
|
|
347
|
+
GLib.VariantType.new(node.elementTypeString),
|
|
348
|
+
(value as unknown[]).map((item) => packVariant(node.element, item)),
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
case "dict": {
|
|
352
|
+
return packDict(node, value);
|
|
353
|
+
}
|
|
354
|
+
case "entry": {
|
|
355
|
+
return packEntry(node.key, node.value, value as [unknown, unknown]);
|
|
356
|
+
}
|
|
357
|
+
case "tuple": {
|
|
358
|
+
return GLib.Variant.newTuple(
|
|
359
|
+
node.items.map((item, index) => packVariant(item, (value as unknown[])[index])),
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
case "maybe": {
|
|
363
|
+
return packMaybe(node, value);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
export { parseVariantType, unpackVariant, packVariant, type VariantValue, type VariantTypeNode };
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from "react";
|
|
2
|
-
type ContainerSlotChild = (props: {
|
|
3
|
-
children?: ReactNode;
|
|
4
|
-
}) => ReactNode;
|
|
5
|
-
/**
|
|
6
|
-
* Creates a compound child component that delegates to a ContainerSlot
|
|
7
|
-
* with a specific method name.
|
|
8
|
-
*
|
|
9
|
-
* @param methodName - The container slot method name (e.g., "packStart", "addPrefix")
|
|
10
|
-
*/
|
|
11
|
-
export declare function createContainerSlotChild(methodName: string): ContainerSlotChild;
|
|
12
|
-
/**
|
|
13
|
-
* Creates a compound child component that delegates to an existing
|
|
14
|
-
* virtual node intrinsic element.
|
|
15
|
-
*
|
|
16
|
-
* @param intrinsicName - The intrinsic element name (e.g., "StackPage", "GridChild")
|
|
17
|
-
*/
|
|
18
|
-
export declare function createVirtualChild<P extends Record<string, unknown>>(intrinsicName: string): (props: P & {
|
|
19
|
-
children?: ReactNode;
|
|
20
|
-
}) => ReactNode;
|
|
21
|
-
/**
|
|
22
|
-
* Creates a compound child component for NavigationPage that automatically
|
|
23
|
-
* sets the `for` discriminant based on the parent widget type.
|
|
24
|
-
*
|
|
25
|
-
* @param forValue - The `for` discriminant value (e.g., "AdwNavigationView")
|
|
26
|
-
*/
|
|
27
|
-
export declare function createNavigationPageChild<P extends Record<string, unknown>>(forValue: string): (props: P & {
|
|
28
|
-
children?: ReactNode;
|
|
29
|
-
}) => ReactNode;
|
|
30
|
-
/**
|
|
31
|
-
* Creates a compound child component for menu items that delegates to
|
|
32
|
-
* an existing menu intrinsic element.
|
|
33
|
-
*
|
|
34
|
-
* @param intrinsicName - "MenuItem", "MenuSection", or "MenuSubmenu"
|
|
35
|
-
*/
|
|
36
|
-
export declare function createMenuChild<P extends Record<string, unknown>>(intrinsicName: string): (props: P & {
|
|
37
|
-
children?: ReactNode;
|
|
38
|
-
}) => ReactNode;
|
|
39
|
-
export {};
|
|
40
|
-
//# sourceMappingURL=compound.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../../src/components/compound.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,SAAS,CAAC;AAEzE;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAI/E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,aAAa,EAAE,MAAM,GACtB,CAAC,KAAK,EAAE,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,SAAS,CAIpD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,QAAQ,EAAE,MAAM,GACjB,CAAC,KAAK,EAAE,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,SAAS,CAIpD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,aAAa,EAAE,MAAM,GACtB,CAAC,KAAK,EAAE,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,SAAS,CAIpD"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { createElement } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a compound child component that delegates to a ContainerSlot
|
|
4
|
-
* with a specific method name.
|
|
5
|
-
*
|
|
6
|
-
* @param methodName - The container slot method name (e.g., "packStart", "addPrefix")
|
|
7
|
-
*/
|
|
8
|
-
export function createContainerSlotChild(methodName) {
|
|
9
|
-
return (props) => {
|
|
10
|
-
return createElement("ContainerSlot", { id: methodName }, props.children);
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Creates a compound child component that delegates to an existing
|
|
15
|
-
* virtual node intrinsic element.
|
|
16
|
-
*
|
|
17
|
-
* @param intrinsicName - The intrinsic element name (e.g., "StackPage", "GridChild")
|
|
18
|
-
*/
|
|
19
|
-
export function createVirtualChild(intrinsicName) {
|
|
20
|
-
return (props) => {
|
|
21
|
-
return createElement(intrinsicName, props, props.children);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Creates a compound child component for NavigationPage that automatically
|
|
26
|
-
* sets the `for` discriminant based on the parent widget type.
|
|
27
|
-
*
|
|
28
|
-
* @param forValue - The `for` discriminant value (e.g., "AdwNavigationView")
|
|
29
|
-
*/
|
|
30
|
-
export function createNavigationPageChild(forValue) {
|
|
31
|
-
return (props) => {
|
|
32
|
-
return createElement("NavigationPage", { ...props, for: forValue }, props.children);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Creates a compound child component for menu items that delegates to
|
|
37
|
-
* an existing menu intrinsic element.
|
|
38
|
-
*
|
|
39
|
-
* @param intrinsicName - "MenuItem", "MenuSection", or "MenuSubmenu"
|
|
40
|
-
*/
|
|
41
|
-
export function createMenuChild(intrinsicName) {
|
|
42
|
-
return (props) => {
|
|
43
|
-
return createElement(intrinsicName, props, props.children);
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=compound.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compound.js","sourceRoot":"","sources":["../../src/components/compound.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAC;AAItD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACvD,OAAO,CAAC,KAA+B,EAAa,EAAE;QAClD,OAAO,aAAa,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9E,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAC9B,aAAqB;IAErB,OAAO,CAAC,KAAmC,EAAa,EAAE;QACtD,OAAO,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACrC,QAAgB;IAEhB,OAAO,CAAC,KAAmC,EAAa,EAAE;QACtD,OAAO,aAAa,CAAC,gBAAgB,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC3B,aAAqB;IAErB,OAAO,CAAC,KAAmC,EAAa,EAAE;QACtD,OAAO,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type * as Adw from "@gtkx/ffi/adw";
|
|
2
|
-
import type * as Gtk from "@gtkx/ffi/gtk";
|
|
3
|
-
import { type ReactNode, type Ref } from "react";
|
|
4
|
-
import type { AdwComboRowProps, GtkColumnViewProps, GtkDropDownProps, GtkGridViewProps, GtkListViewProps } from "../generated/jsx.js";
|
|
5
|
-
import type { ColumnViewColumnProps, DropDownProps, GridViewProps, ListItem, ListViewProps, MenuItemProps, MenuSectionProps, MenuSubmenuProps } from "../jsx.js";
|
|
6
|
-
type GenericListViewProps<T, S> = Omit<GtkListViewProps, keyof ListViewProps> & ListViewProps<T, S>;
|
|
7
|
-
type GenericGridViewProps<T> = Omit<GtkGridViewProps, keyof GridViewProps> & GridViewProps<T>;
|
|
8
|
-
type GenericDropDownProps<T, S> = Omit<GtkDropDownProps, keyof DropDownProps> & DropDownProps<T, S>;
|
|
9
|
-
type GenericComboRowProps<T, S> = Omit<AdwComboRowProps, keyof DropDownProps> & DropDownProps<T, S>;
|
|
10
|
-
type GenericColumnViewProps<T, S> = Omit<GtkColumnViewProps, "items" | "renderHeader"> & {
|
|
11
|
-
items?: ListItem<T, S>[];
|
|
12
|
-
renderHeader?: ((item: S) => ReactNode) | null;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Virtualized scrollable list that renders items from a flat or tree data model.
|
|
16
|
-
*
|
|
17
|
-
* Wraps `GtkListView` with React-managed item rendering via portals,
|
|
18
|
-
* supporting single/multi selection, section headers, and tree expansion.
|
|
19
|
-
*/
|
|
20
|
-
export declare function GtkListView<T = unknown, S = unknown>(props: GenericListViewProps<T, S> & {
|
|
21
|
-
children?: ReactNode;
|
|
22
|
-
ref?: Ref<Gtk.ListView>;
|
|
23
|
-
}): ReactNode;
|
|
24
|
-
/**
|
|
25
|
-
* Virtualized scrollable grid that renders items in a multi-column layout.
|
|
26
|
-
*
|
|
27
|
-
* Wraps `GtkGridView` with React-managed item rendering via portals,
|
|
28
|
-
* supporting single/multi selection.
|
|
29
|
-
*/
|
|
30
|
-
export declare function GtkGridView<T = unknown>(props: GenericGridViewProps<T> & {
|
|
31
|
-
children?: ReactNode;
|
|
32
|
-
ref?: Ref<Gtk.GridView>;
|
|
33
|
-
}): ReactNode;
|
|
34
|
-
/** @internal */
|
|
35
|
-
declare function GtkColumnViewBase<T = unknown, S = unknown>(props: GenericColumnViewProps<T, S> & {
|
|
36
|
-
children?: ReactNode;
|
|
37
|
-
ref?: Ref<Gtk.ColumnView>;
|
|
38
|
-
}): ReactNode;
|
|
39
|
-
/**
|
|
40
|
-
* Multi-column sortable list with React-managed cell rendering.
|
|
41
|
-
*
|
|
42
|
-
* Wraps `GtkColumnView` with portal-based factories. Use the
|
|
43
|
-
* `GtkColumnView.Column` compound component to define columns,
|
|
44
|
-
* and the `MenuItem` / `MenuSection` / `MenuSubmenu` compounds
|
|
45
|
-
* for the column header context menu.
|
|
46
|
-
*/
|
|
47
|
-
export declare const GtkColumnView: typeof GtkColumnViewBase & {
|
|
48
|
-
Column: <T = unknown>(props: ColumnViewColumnProps<T>) => ReactNode;
|
|
49
|
-
MenuItem: (props: MenuItemProps) => ReactNode;
|
|
50
|
-
MenuSection: (props: MenuSectionProps) => ReactNode;
|
|
51
|
-
MenuSubmenu: (props: MenuSubmenuProps) => ReactNode;
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Single-selection dropdown widget with React-managed item rendering.
|
|
55
|
-
*
|
|
56
|
-
* Wraps `GtkDropDown` with portal-based factories, supporting custom
|
|
57
|
-
* item templates, separate list-item templates, and section headers.
|
|
58
|
-
*/
|
|
59
|
-
export declare function GtkDropDown<T = unknown, S = unknown>(props: GenericDropDownProps<T, S> & {
|
|
60
|
-
children?: ReactNode;
|
|
61
|
-
ref?: Ref<Gtk.DropDown>;
|
|
62
|
-
}): ReactNode;
|
|
63
|
-
/**
|
|
64
|
-
* Libadwaita combo row with React-managed item rendering.
|
|
65
|
-
*
|
|
66
|
-
* Wraps `AdwComboRow` with portal-based factories, providing a
|
|
67
|
-
* preferences-style dropdown row with custom item templates and
|
|
68
|
-
* section headers.
|
|
69
|
-
*/
|
|
70
|
-
export declare function AdwComboRow<T = unknown, S = unknown>(props: GenericComboRowProps<T, S> & {
|
|
71
|
-
children?: ReactNode;
|
|
72
|
-
ref?: Ref<Adw.ComboRow>;
|
|
73
|
-
}): ReactNode;
|
|
74
|
-
export {};
|
|
75
|
-
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/list.js
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { createElement, Fragment, useReducer, useRef } from "react";
|
|
2
|
-
import { createPortal } from "../portal.js";
|
|
3
|
-
import { createMenuChild } from "./compound.js";
|
|
4
|
-
function useListHandle() {
|
|
5
|
-
const [, rerender] = useReducer((x) => x + 1, 0);
|
|
6
|
-
const boundItemsRef = useRef([]);
|
|
7
|
-
const headerBoundItemsRef = useRef([]);
|
|
8
|
-
return { rerender, boundItemsRef, headerBoundItemsRef };
|
|
9
|
-
}
|
|
10
|
-
function renderListElement(intrinsicName, handle, props) {
|
|
11
|
-
const { rerender, boundItemsRef, headerBoundItemsRef } = handle;
|
|
12
|
-
const portals = [];
|
|
13
|
-
for (const [content, container, key] of boundItemsRef.current) {
|
|
14
|
-
portals.push(createPortal(content, container, key));
|
|
15
|
-
}
|
|
16
|
-
for (const [content, container, key] of headerBoundItemsRef.current) {
|
|
17
|
-
portals.push(createPortal(content, container, key));
|
|
18
|
-
}
|
|
19
|
-
return createElement(Fragment, null, createElement(intrinsicName, {
|
|
20
|
-
...props,
|
|
21
|
-
__boundItemsRef: boundItemsRef,
|
|
22
|
-
__rerender: rerender,
|
|
23
|
-
__headerBoundItemsRef: headerBoundItemsRef,
|
|
24
|
-
}), ...portals);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Virtualized scrollable list that renders items from a flat or tree data model.
|
|
28
|
-
*
|
|
29
|
-
* Wraps `GtkListView` with React-managed item rendering via portals,
|
|
30
|
-
* supporting single/multi selection, section headers, and tree expansion.
|
|
31
|
-
*/
|
|
32
|
-
export function GtkListView(props) {
|
|
33
|
-
return renderListElement("GtkListView", useListHandle(), props);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Virtualized scrollable grid that renders items in a multi-column layout.
|
|
37
|
-
*
|
|
38
|
-
* Wraps `GtkGridView` with React-managed item rendering via portals,
|
|
39
|
-
* supporting single/multi selection.
|
|
40
|
-
*/
|
|
41
|
-
export function GtkGridView(props) {
|
|
42
|
-
return renderListElement("GtkGridView", useListHandle(), props);
|
|
43
|
-
}
|
|
44
|
-
/** @internal */
|
|
45
|
-
function GtkColumnViewBase(props) {
|
|
46
|
-
return renderListElement("GtkColumnView", useListHandle(), props);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Multi-column sortable list with React-managed cell rendering.
|
|
50
|
-
*
|
|
51
|
-
* Wraps `GtkColumnView` with portal-based factories. Use the
|
|
52
|
-
* `GtkColumnView.Column` compound component to define columns,
|
|
53
|
-
* and the `MenuItem` / `MenuSection` / `MenuSubmenu` compounds
|
|
54
|
-
* for the column header context menu.
|
|
55
|
-
*/
|
|
56
|
-
export const GtkColumnView = Object.assign(GtkColumnViewBase, {
|
|
57
|
-
Column: (props) => createElement("ColumnViewColumn", props, props.children),
|
|
58
|
-
MenuItem: createMenuChild("MenuItem"),
|
|
59
|
-
MenuSection: createMenuChild("MenuSection"),
|
|
60
|
-
MenuSubmenu: createMenuChild("MenuSubmenu"),
|
|
61
|
-
});
|
|
62
|
-
/**
|
|
63
|
-
* Single-selection dropdown widget with React-managed item rendering.
|
|
64
|
-
*
|
|
65
|
-
* Wraps `GtkDropDown` with portal-based factories, supporting custom
|
|
66
|
-
* item templates, separate list-item templates, and section headers.
|
|
67
|
-
*/
|
|
68
|
-
export function GtkDropDown(props) {
|
|
69
|
-
return renderListElement("GtkDropDown", useListHandle(), props);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Libadwaita combo row with React-managed item rendering.
|
|
73
|
-
*
|
|
74
|
-
* Wraps `AdwComboRow` with portal-based factories, providing a
|
|
75
|
-
* preferences-style dropdown row with custom item templates and
|
|
76
|
-
* section headers.
|
|
77
|
-
*/
|
|
78
|
-
export function AdwComboRow(props) {
|
|
79
|
-
return renderListElement("AdwComboRow", useListHandle(), props);
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a function component for a widget that has named property slots.
|
|
4
|
-
*
|
|
5
|
-
* The returned component extracts slot props (ReactNode values), forwards
|
|
6
|
-
* remaining props to the underlying intrinsic element, and appends internal
|
|
7
|
-
* Slot children for each non-null slot prop.
|
|
8
|
-
*
|
|
9
|
-
* @param intrinsicName - The intrinsic element name (e.g., "GtkWindow")
|
|
10
|
-
* @param slotNames - Array of camelCase slot prop names (e.g., ["titlebar", "startChild"])
|
|
11
|
-
*/
|
|
12
|
-
export declare function createSlotWidget<P = any>(intrinsicName: string, slotNames: readonly string[]): (props: P & {
|
|
13
|
-
children?: ReactNode;
|
|
14
|
-
}) => ReactNode;
|
|
15
|
-
//# sourceMappingURL=slot-widget.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slot-widget.d.ts","sourceRoot":"","sources":["../../src/components/slot-widget.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD;;;;;;;;;GASG;AAEH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EACpC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,SAAS,MAAM,EAAE,GAC7B,CAAC,KAAK,EAAE,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,KAAK,SAAS,CA2BpD"}
|