@softov/scena 0.1.2 → 0.1.3
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/dist/core/builtins.d.ts +3 -0
- package/dist/{runtime → core}/builtins.js +1 -1
- package/dist/core/controls/command.d.ts +18 -0
- package/dist/{controls → core/controls}/command.js +2 -2
- package/dist/{controls → core/controls}/events.d.ts +1 -1
- package/dist/{controls → core/controls}/events.js +1 -1
- package/dist/core/controls/keybinding.d.ts +9 -0
- package/dist/{controls → core/controls}/keybinding.js +1 -1
- package/dist/core/controls/layout.d.ts +31 -0
- package/dist/{controls → core/controls}/layout.js +24 -7
- package/dist/core/controls/manifest.d.ts +21 -0
- package/dist/{controls → core/controls}/manifest.js +2 -2
- package/dist/core/controls/session.d.ts +16 -0
- package/dist/{controls → core/controls}/session.js +5 -13
- package/dist/{controls → core/controls}/shell.d.ts +2 -2
- package/dist/{controls → core/controls}/shell.js +1 -1
- package/dist/{controls → core/controls}/storage/layout-local.d.ts +1 -1
- package/dist/{controls → core/controls}/storage/session-local.d.ts +1 -1
- package/dist/{controls → core/controls}/when.d.ts +2 -2
- package/dist/{controls → core/controls}/when.js +1 -1
- package/dist/{converters → core/converters}/a2ui-v0.10.d.ts +1 -1
- package/dist/core/{component-graph.d.ts → graph/component-graph.d.ts} +1 -1
- package/dist/core/{component-graph.js → graph/component-graph.js} +1 -1
- package/dist/core/{mount-menu.d.ts → graph/mount-menu.d.ts} +1 -1
- package/dist/core/{mount-menu.js → graph/mount-menu.js} +1 -1
- package/dist/core/graph/mount-surface.d.ts +15 -0
- package/dist/core/{mount-surface.js → graph/mount-surface.js} +23 -4
- package/dist/core/{surface-presentation.d.ts → graph/surface-presentation.d.ts} +3 -3
- package/dist/{i18n → core/i18n}/i18n-backend.d.ts +1 -1
- package/dist/core/index.d.ts +34 -43
- package/dist/core/index.js +35 -38
- package/dist/core/{component-registry.d.ts → registry/component-registry.d.ts} +2 -2
- package/dist/core/{component-registry.js → registry/component-registry.js} +1 -1
- package/dist/core/registry/converter-registry.d.ts +2 -0
- package/dist/core/{converter-registry.js → registry/converter-registry.js} +1 -1
- package/dist/core/resolve/binding-resolver.d.ts +7 -0
- package/dist/core/{binding-resolver.js → resolve/binding-resolver.js} +2 -2
- package/dist/core/{dynamic-resolver.d.ts → resolve/dynamic-resolver.d.ts} +2 -2
- package/dist/core/{dynamic-resolver.js → resolve/dynamic-resolver.js} +1 -1
- package/dist/core/{path-resolver.d.ts → resolve/path-resolver.d.ts} +2 -2
- package/dist/core/{permissions.d.ts → resolve/permissions.d.ts} +1 -1
- package/dist/core/scena.d.ts +1 -1
- package/dist/core/scena.js +17 -16
- package/dist/core/{backends → store/backends}/modus-backend.d.ts +1 -1
- package/dist/core/{backends → store/backends}/storage-backend.d.ts +1 -1
- package/dist/core/{backends → store/backends}/yjs-backend.d.ts +1 -1
- package/dist/core/{reactive-store.d.ts → store/reactive-store.d.ts} +4 -4
- package/dist/core/{reactive-store.js → store/reactive-store.js} +2 -2
- package/dist/index.d.ts +8 -0
- package/dist/index.js +13 -0
- package/dist/porta/Limen.d.ts +1 -0
- package/dist/porta/Limen.js +1 -0
- package/dist/porta/PortaLock.d.ts +1 -0
- package/dist/porta/PortaLock.js +6 -2
- package/dist/porta/SigillumGate.d.ts +1 -0
- package/dist/porta/SigillumGate.js +1 -0
- package/dist/porta/commands.d.ts +1 -1
- package/dist/porta/login-form.block.d.ts +1 -1
- package/dist/porta/provider.d.ts +1 -1
- package/dist/porta/register-blocks.d.ts +2 -2
- package/dist/porta/register-blocks.js +4 -7
- package/dist/porta/register.d.ts +1 -1
- package/dist/porta/sigillum.d.ts +2 -2
- package/dist/react/DefaultShell.d.ts +47 -1
- package/dist/react/DefaultShell.js +81 -12
- package/dist/react/Scena.d.ts +2 -2
- package/dist/react/ScenaProvider.d.ts +1 -1
- package/dist/react/ShellSplitter.d.ts +1 -1
- package/dist/react/SurfaceArea.d.ts +5 -3
- package/dist/react/SurfaceArea.js +2 -2
- package/dist/react/ViewMount.d.ts +1 -1
- package/dist/react/ViewMount.js +4 -4
- package/dist/react/hooks/useI18n.d.ts +1 -1
- package/dist/react/hooks/useI18n.js +1 -1
- package/dist/react/hooks/useLabel.d.ts +1 -1
- package/dist/react/hooks/useLabel.js +1 -1
- package/dist/react/hooks/useLayout.d.ts +1 -1
- package/dist/react/hooks/useMounts.d.ts +1 -1
- package/dist/react/hooks/useStore.d.ts +1 -1
- package/dist/react/hooks/useStore.js +2 -2
- package/dist/react/hooks/useStoreLabel.d.ts +2 -2
- package/dist/react/hooks/useStoreLabel.js +1 -1
- package/dist/react/hooks/useSurfacePresentation.d.ts +3 -3
- package/dist/react/hooks/useSurfacePresentation.js +1 -1
- package/dist/react/mount-context.d.ts +1 -1
- package/dist/react/useSurfaceResize.d.ts +2 -2
- package/dist/runtime/client-handlers.d.ts +1 -1
- package/dist/runtime/in-memory-socket.d.ts +2 -2
- package/dist/runtime/index.d.ts +3 -3
- package/dist/runtime/index.js +2 -2
- package/dist/runtime/layout-commands.d.ts +3 -3
- package/dist/runtime/layout-commands.js +2 -2
- package/dist/runtime/opener-commands.d.ts +5 -5
- package/dist/runtime/opener-commands.js +3 -3
- package/dist/runtime/surface-bridge.d.ts +5 -5
- package/dist/runtime/surface-bridge.js +1 -1
- package/dist/{runtime → sdk}/args-schema.d.ts +1 -1
- package/dist/{core → sdk}/disposable.d.ts +3 -1
- package/dist/{types → sdk}/index.d.ts +1 -0
- package/dist/{types → sdk}/index.js +1 -0
- package/dist/{types → sdk}/label.d.ts +1 -0
- package/dist/{core → sdk}/label.js +0 -1
- package/dist/{types → sdk}/layout.d.ts +25 -0
- package/dist/{types → sdk}/mount-surface.d.ts +19 -1
- package/dist/{types → sdk}/scena.d.ts +2 -1
- package/dist/styles/bar.css +8 -4
- package/dist/styles/base.css +18 -16
- package/dist/styles/controller.d.ts +27 -0
- package/dist/styles/controller.js +74 -0
- package/dist/styles/form.css +10 -0
- package/dist/styles/index.d.ts +2 -0
- package/dist/styles/index.js +3 -0
- package/dist/styles/surface.css +69 -3
- package/dist/styles/themes/tokens.css +1 -1
- package/dist/ui/_utils.d.ts +1 -1
- package/dist/ui/_utils.js +2 -2
- package/dist/ui/campus/CampusMappa.js +1 -1
- package/dist/ui/chart/catalog.d.ts +1 -1
- package/dist/ui/control/ButtonBar.css +61 -0
- package/dist/ui/control/ButtonBar.d.ts +36 -0
- package/dist/ui/control/ButtonBar.js +42 -0
- package/dist/ui/control/ThemeModeToggle.css +22 -0
- package/dist/ui/control/ThemeModeToggle.d.ts +20 -0
- package/dist/ui/control/ThemeModeToggle.js +34 -0
- package/dist/ui/control/ThemePicker.css +24 -0
- package/dist/ui/control/ThemePicker.d.ts +27 -0
- package/dist/ui/control/ThemePicker.js +33 -0
- package/dist/ui/control/catalog.d.ts +1 -1
- package/dist/ui/control/catalog.js +5 -1
- package/dist/ui/control/index.d.ts +6 -0
- package/dist/ui/control/index.js +3 -0
- package/dist/ui/data/Filter.d.ts +1 -1
- package/dist/ui/data/Listable.d.ts +3 -2
- package/dist/ui/data/Listable.js +4 -2
- package/dist/ui/data/Pagination.d.ts +4 -1
- package/dist/ui/data/Pagination.js +37 -9
- package/dist/ui/data/Tree.d.ts +2 -2
- package/dist/ui/data/Tree.js +1 -1
- package/dist/ui/data/catalog.d.ts +1 -1
- package/dist/ui/display/Alert.css +15 -10
- package/dist/ui/display/Badge.css +22 -14
- package/dist/ui/display/Badge.d.ts +1 -1
- package/dist/ui/display/Badge.js +1 -1
- package/dist/ui/display/DetailHeader.css +3 -3
- package/dist/ui/display/DetailList.js +3 -2
- package/dist/ui/display/DetailNotFound.d.ts +1 -1
- package/dist/ui/display/DetailNotFound.js +1 -1
- package/dist/ui/display/Progress.d.ts +1 -1
- package/dist/ui/display/Progress.js +1 -1
- package/dist/ui/display/Spinner.d.ts +1 -1
- package/dist/ui/display/Spinner.js +1 -1
- package/dist/ui/display/StatusDot.css +46 -0
- package/dist/ui/display/StatusDot.d.ts +17 -0
- package/dist/ui/display/StatusDot.js +16 -0
- package/dist/ui/display/Svg.d.ts +1 -1
- package/dist/ui/display/Svg.js +1 -1
- package/dist/ui/display/catalog.d.ts +1 -1
- package/dist/ui/display/catalog.js +1 -0
- package/dist/ui/display/index.d.ts +2 -0
- package/dist/ui/display/index.js +1 -0
- package/dist/ui/forms/LoginForm.d.ts +1 -0
- package/dist/ui/forms/LoginForm.js +1 -0
- package/dist/ui/forms/SettingsContainer.d.ts +2 -1
- package/dist/ui/forms/SettingsContainer.js +2 -2
- package/dist/ui/forms/catalog.d.ts +1 -1
- package/dist/ui/index.d.ts +6 -1
- package/dist/ui/index.js +3 -1
- package/dist/ui/layout/BarLayout.d.ts +1 -1
- package/dist/ui/layout/FloatingLayout.d.ts +1 -1
- package/dist/ui/layout/InlineLayout.d.ts +1 -1
- package/dist/ui/layout/MountTitle.d.ts +2 -2
- package/dist/ui/layout/MountTitle.js +2 -2
- package/dist/ui/layout/RailLayout.d.ts +1 -1
- package/dist/ui/layout/SectionHeader.d.ts +2 -2
- package/dist/ui/layout/SectionHeader.js +4 -7
- package/dist/ui/layout/SingleLayout.d.ts +1 -1
- package/dist/ui/layout/SpatialCard.d.ts +2 -2
- package/dist/ui/layout/SpatialLayout.d.ts +1 -1
- package/dist/ui/layout/SplitLayout.d.ts +1 -1
- package/dist/ui/layout/StackHeader.d.ts +1 -1
- package/dist/ui/layout/StackLayout.d.ts +1 -1
- package/dist/ui/layout/TabLayout.d.ts +1 -1
- package/dist/ui/layout/TabPanelLayout.d.ts +2 -2
- package/dist/ui/layout/TabPanelLayout.js +1 -1
- package/dist/ui/layout/catalog.d.ts +1 -1
- package/dist/ui/layout/register.d.ts +2 -2
- package/dist/ui/layout/register.js +1 -1
- package/dist/ui/media/catalog.d.ts +1 -1
- package/dist/ui/menu/ActionList.d.ts +2 -2
- package/dist/ui/menu/ActionList.js +1 -1
- package/dist/ui/menu/ContainerMenu.d.ts +2 -2
- package/dist/ui/menu/ContextMenu.d.ts +2 -2
- package/dist/ui/menu/useChatPicker.d.ts +2 -2
- package/dist/ui/navigation/ActivityBarItem.css +81 -0
- package/dist/ui/navigation/ActivityBarItem.d.ts +61 -0
- package/dist/ui/navigation/ActivityBarItem.js +68 -0
- package/dist/ui/navigation/catalog.d.ts +1 -1
- package/dist/ui/navigation/catalog.js +1 -0
- package/dist/ui/navigation/index.d.ts +2 -0
- package/dist/ui/navigation/index.js +1 -0
- package/dist/ui/overlay/catalog.d.ts +1 -1
- package/dist/ui/register.d.ts +3 -3
- package/dist/ui/register.js +1 -1
- package/package.json +15 -7
- package/dist/controls/command.d.ts +0 -18
- package/dist/controls/keybinding.d.ts +0 -9
- package/dist/controls/layout.d.ts +0 -16
- package/dist/controls/manifest.d.ts +0 -21
- package/dist/controls/session.d.ts +0 -16
- package/dist/core/binding-resolver.d.ts +0 -7
- package/dist/core/converter-registry.d.ts +0 -2
- package/dist/core/label.d.ts +0 -2
- package/dist/core/mount-surface.d.ts +0 -15
- package/dist/runtime/builtins.d.ts +0 -3
- package/dist/types/disposable.d.ts +0 -3
- package/dist/types/disposable.js +0 -1
- package/dist/types/label.js +0 -1
- /package/dist/{controls → core/controls}/index.d.ts +0 -0
- /package/dist/{controls → core/controls}/index.js +0 -0
- /package/dist/{controls → core/controls}/storage/layout-local.js +0 -0
- /package/dist/{controls → core/controls}/storage/session-local.js +0 -0
- /package/dist/{converters → core/converters}/a2ui-v0.10.js +0 -0
- /package/dist/{converters → core/converters}/index.d.ts +0 -0
- /package/dist/{converters → core/converters}/index.js +0 -0
- /package/dist/core/{surface-presentation.js → graph/surface-presentation.js} +0 -0
- /package/dist/{i18n → core/i18n}/i18n-backend.js +0 -0
- /package/dist/{i18n → core/i18n}/registry.d.ts +0 -0
- /package/dist/{i18n → core/i18n}/registry.js +0 -0
- /package/dist/core/{path-resolver.js → resolve/path-resolver.js} +0 -0
- /package/dist/core/{permissions.js → resolve/permissions.js} +0 -0
- /package/dist/core/{backends → store/backends}/modus-backend.js +0 -0
- /package/dist/core/{backends → store/backends}/storage-backend.js +0 -0
- /package/dist/core/{backends → store/backends}/yjs-backend.js +0 -0
- /package/dist/core/{computed-dsl.d.ts → store/computed-dsl.d.ts} +0 -0
- /package/dist/core/{computed-dsl.js → store/computed-dsl.js} +0 -0
- /package/dist/{runtime → sdk}/args-schema.js +0 -0
- /package/dist/{types → sdk}/binding-resolver.d.ts +0 -0
- /package/dist/{types → sdk}/binding-resolver.js +0 -0
- /package/dist/{types → sdk}/colors.d.ts +0 -0
- /package/dist/{types → sdk}/colors.js +0 -0
- /package/dist/{types → sdk}/command.d.ts +0 -0
- /package/dist/{types → sdk}/command.js +0 -0
- /package/dist/{types → sdk}/component-graph.d.ts +0 -0
- /package/dist/{types → sdk}/component-graph.js +0 -0
- /package/dist/{types → sdk}/component-registry.d.ts +0 -0
- /package/dist/{types → sdk}/component-registry.js +0 -0
- /package/dist/{types → sdk}/converter-registry.d.ts +0 -0
- /package/dist/{types → sdk}/converter-registry.js +0 -0
- /package/dist/{core → sdk}/disposable.js +0 -0
- /package/dist/{types → sdk}/events.d.ts +0 -0
- /package/dist/{types → sdk}/events.js +0 -0
- /package/dist/{types → sdk}/host.d.ts +0 -0
- /package/dist/{types → sdk}/host.js +0 -0
- /package/dist/{types → sdk}/keybinding.d.ts +0 -0
- /package/dist/{types → sdk}/keybinding.js +0 -0
- /package/dist/{types → sdk}/layout.js +0 -0
- /package/dist/{types → sdk}/manifest.d.ts +0 -0
- /package/dist/{types → sdk}/manifest.js +0 -0
- /package/dist/{types → sdk}/mount-menu.d.ts +0 -0
- /package/dist/{types → sdk}/mount-menu.js +0 -0
- /package/dist/{types → sdk}/mount-surface.js +0 -0
- /package/dist/{types → sdk}/permissions.d.ts +0 -0
- /package/dist/{types → sdk}/permissions.js +0 -0
- /package/dist/{types → sdk}/query.d.ts +0 -0
- /package/dist/{types → sdk}/query.js +0 -0
- /package/dist/{types → sdk}/reactive-store.d.ts +0 -0
- /package/dist/{types → sdk}/reactive-store.js +0 -0
- /package/dist/{types → sdk}/scena.js +0 -0
- /package/dist/{types → sdk}/scope-backend.d.ts +0 -0
- /package/dist/{types → sdk}/scope-backend.js +0 -0
- /package/dist/{types → sdk}/session.d.ts +0 -0
- /package/dist/{types → sdk}/session.js +0 -0
- /package/dist/{types → sdk}/shell.d.ts +0 -0
- /package/dist/{types → sdk}/shell.js +0 -0
- /package/dist/{types → sdk}/when.d.ts +0 -0
- /package/dist/{types → sdk}/when.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
-
import { type ResourceColor } from '../../
|
|
2
|
+
import { type ResourceColor } from '../../sdk/colors.js';
|
|
3
3
|
import './Badge.css';
|
|
4
4
|
export type BadgeTone = 'default' | 'success' | 'warning' | 'danger' | 'info';
|
|
5
5
|
export interface BadgeProps {
|
package/dist/ui/display/Badge.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { resolveColorVar } from '../../
|
|
2
|
+
import { resolveColorVar } from '../../sdk/colors.js';
|
|
3
3
|
import './Badge.css';
|
|
4
4
|
export function Badge({ children, text, label, tone, variant, color, outline, style, className, }) {
|
|
5
5
|
const inline = color
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
}
|
|
34
34
|
.oo-detail-header__meta-item {
|
|
35
35
|
display: flex;
|
|
36
|
-
flex-direction:
|
|
37
|
-
gap:
|
|
36
|
+
flex-direction: row;
|
|
37
|
+
gap: 2px;
|
|
38
38
|
}
|
|
39
39
|
.oo-detail-header__meta-label {
|
|
40
40
|
font-size: var(--oo-font-size-xs);
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
color: var(--oo-color-muted);
|
|
44
44
|
}
|
|
45
45
|
.oo-detail-header__meta-value {
|
|
46
|
-
font-size: var(--oo-font-size-
|
|
46
|
+
font-size: var(--oo-font-size-xs);
|
|
47
47
|
color: var(--oo-color-text);
|
|
48
48
|
}
|
|
49
49
|
.oo-detail-header__actions {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import './DetailList.css';
|
|
3
|
-
export function DetailList({ items, columns
|
|
4
|
-
|
|
3
|
+
export function DetailList({ items, columns, style }) {
|
|
4
|
+
const styleColumns = columns ? `repeat(${columns}, minmax(0, 1fr))` : `repeat(auto-fill, minmax(160px, 1fr))`;
|
|
5
|
+
return (_jsx("dl", { className: "oo-detail-list", style: { gridTemplateColumns: styleColumns, ...style }, children: items.map((item, i) => (_jsxs("div", { className: `oo-detail-list__item${item.span ? ' oo-detail-list__item--span' : ''}`, children: [_jsx("dt", { className: "oo-detail-list__label", children: item.label }), _jsx("dd", { className: "oo-detail-list__value", children: item.value })] }, i))) }));
|
|
5
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import { type ButtonProps } from '../control/Button.js';
|
|
3
|
-
import type { ResourceColor } from '../../
|
|
3
|
+
import type { ResourceColor } from '../../sdk/colors.js';
|
|
4
4
|
export interface DetailNotFoundAction {
|
|
5
5
|
label: string;
|
|
6
6
|
onClick: () => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { translate } from '../../i18n/registry.js';
|
|
2
|
+
import { translate } from '../../core/i18n/registry.js';
|
|
3
3
|
import { Button } from '../control/Button.js';
|
|
4
4
|
// Centered empty/error state for a detail surface: a colored icon, a title, and
|
|
5
5
|
// optional action buttons. Replaces the ad-hoc `<div>… not found</div>` each
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { resolveColorVar } from '../../
|
|
2
|
+
import { resolveColorVar } from '../../sdk/colors.js';
|
|
3
3
|
import './Progress.css';
|
|
4
4
|
export function Progress({ value = 0, max = 100, label, display, color, indeterminate, height, style, className, }) {
|
|
5
5
|
const safeMax = max > 0 ? max : 100;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { resolveColorVar } from '../../
|
|
2
|
+
import { resolveColorVar } from '../../sdk/colors.js';
|
|
3
3
|
import './Spinner.css';
|
|
4
4
|
export function Spinner({ label, size = 16, color, inline = true, style, className, }) {
|
|
5
5
|
const wrapperStyle = {
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
.oo-status-dot {
|
|
2
|
+
--oo-status-dot-size: 8px;
|
|
3
|
+
display: inline-block;
|
|
4
|
+
flex: 0 0 auto;
|
|
5
|
+
width: var(--oo-status-dot-size);
|
|
6
|
+
height: var(--oo-status-dot-size);
|
|
7
|
+
border-radius: 50%;
|
|
8
|
+
background: rgb(var(--oo-color, var(--oo-rgb-muted)));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* Semantic presets, the same names Badge and Alert use, so one vocabulary
|
|
12
|
+
covers every way a state is shown. */
|
|
13
|
+
.oo-status-dot[data-tone='default'] { --oo-color: var(--oo-rgb-muted); }
|
|
14
|
+
.oo-status-dot[data-tone='success'] { --oo-color: var(--oo-rgb-green); }
|
|
15
|
+
.oo-status-dot[data-tone='warning'] { --oo-color: var(--oo-rgb-amber); }
|
|
16
|
+
.oo-status-dot[data-tone='danger'] { --oo-color: var(--oo-rgb-red); }
|
|
17
|
+
.oo-status-dot[data-tone='info'] { --oo-color: var(--oo-rgb-blue); }
|
|
18
|
+
|
|
19
|
+
/* Hollow, for a state that is *not* happening - offline, unregistered, never
|
|
20
|
+
run. A filled grey dot and a filled green one differ only in hue, which is
|
|
21
|
+
the one channel a colour-blind reader may not have. */
|
|
22
|
+
.oo-status-dot[data-outline='true'] {
|
|
23
|
+
background: transparent;
|
|
24
|
+
box-shadow: inset 0 0 0 1.5px rgb(var(--oo-color, var(--oo-rgb-muted)));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.oo-status-dot-wrap {
|
|
28
|
+
display: inline-flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
gap: 6px;
|
|
31
|
+
min-width: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.oo-status-dot-label {
|
|
35
|
+
font-size: var(--oo-font-size-xs);
|
|
36
|
+
line-height: 1.4;
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
text-overflow: ellipsis;
|
|
39
|
+
white-space: nowrap;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* The label takes the dot's colour only when asked. A row of coloured words is
|
|
43
|
+
harder to read than a row of black words with coloured dots beside them. */
|
|
44
|
+
.oo-status-dot-wrap[data-tint='true'] .oo-status-dot-label {
|
|
45
|
+
color: rgb(var(--oo-color, var(--oo-rgb-muted)));
|
|
46
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { type ResourceColor } from '../../sdk/colors.js';
|
|
3
|
+
import './StatusDot.css';
|
|
4
|
+
export type StatusDotTone = 'default' | 'success' | 'warning' | 'danger' | 'info';
|
|
5
|
+
export interface StatusDotProps {
|
|
6
|
+
tone?: StatusDotTone;
|
|
7
|
+
color?: ResourceColor;
|
|
8
|
+
label?: string | number;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
tint?: boolean;
|
|
11
|
+
outline?: boolean;
|
|
12
|
+
size?: number;
|
|
13
|
+
title?: string;
|
|
14
|
+
style?: CSSProperties;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function StatusDot({ tone, color, label, children, tint, outline, size, title, style, className, }: StatusDotProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { resolveColorVar } from '../../sdk/colors.js';
|
|
3
|
+
import './StatusDot.css';
|
|
4
|
+
export function StatusDot({ tone, color, label, children, tint, outline, size, title, style, className, }) {
|
|
5
|
+
const text = label ?? children;
|
|
6
|
+
const inline = {
|
|
7
|
+
...(color ? { ['--oo-color']: resolveColorVar(color) } : {}),
|
|
8
|
+
...(size ? { ['--oo-status-dot-size']: `${size}px` } : {}),
|
|
9
|
+
};
|
|
10
|
+
const dot = (_jsx("span", { className: ['oo-status-dot', text == null ? className : undefined]
|
|
11
|
+
.filter(Boolean)
|
|
12
|
+
.join(' '), "data-tone": color ? undefined : (tone ?? 'default'), "data-outline": outline ? 'true' : undefined, title: title ?? (text == null ? undefined : String(text)), style: text == null ? { ...inline, ...style } : inline }));
|
|
13
|
+
if (text == null)
|
|
14
|
+
return dot;
|
|
15
|
+
return (_jsxs("span", { className: ['oo-status-dot-wrap', className].filter(Boolean).join(' '), "data-tint": tint ? 'true' : undefined, style: { ...inline, ...style }, children: [dot, _jsx("span", { className: "oo-status-dot-label", children: text })] }));
|
|
16
|
+
}
|
package/dist/ui/display/Svg.d.ts
CHANGED
package/dist/ui/display/Svg.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { resolveColorAlpha } from '../../
|
|
2
|
+
import { resolveColorAlpha } from '../../sdk/colors.js';
|
|
3
3
|
export function Svg({ markup, path, width = 24, height = 24, color, viewBox = '0 0 24 24', style, className, }) {
|
|
4
4
|
const inlineStyle = {
|
|
5
5
|
color: color ? resolveColorAlpha(color) : 'currentColor',
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ComponentDefinition } from '../../
|
|
1
|
+
import type { ComponentDefinition } from '../../sdk/component-registry.js';
|
|
2
2
|
export declare const CATALOG_DISPLAY_MAP: ComponentDefinition[];
|
|
@@ -3,6 +3,7 @@ export const CATALOG_DISPLAY_MAP = [
|
|
|
3
3
|
{ component: 'Card', category: 'inline', renderer: { kind: 'react', load: () => import('./Card.js').then((m) => ({ default: m.Card })) } },
|
|
4
4
|
{ component: 'Divider', category: 'inline', renderer: { kind: 'react', load: () => import('./Divider.js').then((m) => ({ default: m.Divider })) } },
|
|
5
5
|
{ component: 'Alert', category: 'inline', renderer: { kind: 'react', load: () => import('./Alert.js').then((m) => ({ default: m.Alert })) } },
|
|
6
|
+
{ component: 'StatusDot', category: 'inline', renderer: { kind: 'react', load: () => import('./StatusDot.js').then((m) => ({ default: m.StatusDot })) } },
|
|
6
7
|
{ component: 'Badge', category: 'inline', renderer: { kind: 'react', load: () => import('./Badge.js').then((m) => ({ default: m.Badge })) } },
|
|
7
8
|
{ component: 'Text', category: 'inline', renderer: { kind: 'react', load: () => import('./Text.js').then((m) => ({ default: m.Text })) } },
|
|
8
9
|
{ component: 'Image', category: 'inline', renderer: { kind: 'react', load: () => import('./Image.js').then((m) => ({ default: m.Image })) } },
|
|
@@ -20,3 +20,5 @@ export { AddPlaceholder } from './AddPlaceholder.js';
|
|
|
20
20
|
export type { AddPlaceholderProps } from './AddPlaceholder.js';
|
|
21
21
|
export { SectionTitle } from './SectionTitle.js';
|
|
22
22
|
export type { SectionTitleProps } from './SectionTitle.js';
|
|
23
|
+
export { StatusDot } from './StatusDot.js';
|
|
24
|
+
export type { StatusDotProps, StatusDotTone } from './StatusDot.js';
|
package/dist/ui/display/index.js
CHANGED
|
@@ -4,5 +4,6 @@ export interface SettingsContainerProps {
|
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
danger?: DangerZoneProps;
|
|
6
6
|
style?: CSSProperties;
|
|
7
|
+
styleBody?: CSSProperties;
|
|
7
8
|
}
|
|
8
|
-
export declare function SettingsContainer({ children, danger, style }: SettingsContainerProps): ReactNode;
|
|
9
|
+
export declare function SettingsContainer({ children, danger, style, styleBody }: SettingsContainerProps): ReactNode;
|
|
@@ -3,6 +3,6 @@ import { DangerZone } from './DangerZone.js';
|
|
|
3
3
|
// Standard layout for a resource's Settings tab: the form, then an optional
|
|
4
4
|
// DangerZone. Keeps every resource's Settings tab consistent without repeating
|
|
5
5
|
// the wrapper + delete affordance.
|
|
6
|
-
export function SettingsContainer({ children, danger, style }) {
|
|
7
|
-
return (_jsxs("div", { className: "oo-settings", style:
|
|
6
|
+
export function SettingsContainer({ children, danger, style, styleBody }) {
|
|
7
|
+
return (_jsxs("div", { className: "oo-settings", style: style, children: [_jsx("div", { className: "oo-settings__body", style: styleBody, children: children }), danger ? _jsx(DangerZone, { ...danger }) : null] }));
|
|
8
8
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ComponentDefinition } from '../../
|
|
1
|
+
import type { ComponentDefinition } from '../../sdk/component-registry.js';
|
|
2
2
|
export declare const CATALOG_FORMS_MAP: ComponentDefinition[];
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export { Toolbar } from './navigation/index.js';
|
|
|
6
6
|
export type { ToolbarProps } from './navigation/index.js';
|
|
7
7
|
export { Badge } from './display/Badge.js';
|
|
8
8
|
export type { BadgeProps, BadgeTone } from './display/Badge.js';
|
|
9
|
+
export { StatusDot } from './display/StatusDot.js';
|
|
10
|
+
export type { StatusDotProps, StatusDotTone } from './display/StatusDot.js';
|
|
9
11
|
export { Breadcrumb } from './navigation/index.js';
|
|
10
12
|
export type { BreadcrumbProps, BreadcrumbItem } from './navigation/index.js';
|
|
11
13
|
export { Progress } from './display/Progress.js';
|
|
@@ -46,8 +48,11 @@ export { List } from './data/index.js';
|
|
|
46
48
|
export { Tabs } from './navigation/index.js';
|
|
47
49
|
export { Link, resolveLinkHref } from './navigation/index.js';
|
|
48
50
|
export type { LinkProps, LinkKind } from './navigation/index.js';
|
|
49
|
-
export {
|
|
51
|
+
export { ActivityBarItem } from './navigation/index.js';
|
|
52
|
+
export type { ActivityBarItemProps, ActivityBadgeTone } from './navigation/index.js';
|
|
53
|
+
export { Button, ReloadButton, TextField, CheckBox, ChoicePicker, Slider, DateTimeInput, Checks, LocaleToggle, ButtonBar, ThemePicker, ThemeModeToggle, } from './control/index.js';
|
|
50
54
|
export type { LocaleToggleProps, LocaleToggleDisplay, ReloadButtonProps } from './control/index.js';
|
|
55
|
+
export type { ButtonBarProps, ButtonBarTone, ThemePickerProps, ThemeModeToggleProps, } from './control/index.js';
|
|
51
56
|
export { Row, Column } from './layout/index.js';
|
|
52
57
|
export { Grid } from './layout/index.js';
|
|
53
58
|
export type { GridProps } from './layout/index.js';
|
package/dist/ui/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export { Splitter } from './layout/Splitter.js';
|
|
|
19
19
|
export { Popup } from './overlay/Popup.js';
|
|
20
20
|
export { Toolbar } from './navigation/index.js';
|
|
21
21
|
export { Badge } from './display/Badge.js';
|
|
22
|
+
export { StatusDot } from './display/StatusDot.js';
|
|
22
23
|
export { Breadcrumb } from './navigation/index.js';
|
|
23
24
|
export { Progress } from './display/Progress.js';
|
|
24
25
|
export { Spinner } from './display/Spinner.js';
|
|
@@ -51,7 +52,8 @@ export { DetailList, DetailHeader, DetailContainer, DetailNotFound, AddPlacehold
|
|
|
51
52
|
export { List } from './data/index.js';
|
|
52
53
|
export { Tabs } from './navigation/index.js';
|
|
53
54
|
export { Link, resolveLinkHref } from './navigation/index.js';
|
|
54
|
-
export {
|
|
55
|
+
export { ActivityBarItem } from './navigation/index.js';
|
|
56
|
+
export { Button, ReloadButton, TextField, CheckBox, ChoicePicker, Slider, DateTimeInput, Checks, LocaleToggle, ButtonBar, ThemePicker, ThemeModeToggle, } from './control/index.js';
|
|
55
57
|
export { Row, Column } from './layout/index.js';
|
|
56
58
|
export { Grid } from './layout/index.js';
|
|
57
59
|
export { Video, Audio } from './media/index.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function BarLayout({ mounts, renderMount }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function FloatingLayout({ mounts, renderMount }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function InlineLayout({ mounts, renderMount }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
-
import type { Scena } from '../../
|
|
3
|
-
import type { ResolvedMount } from '../../
|
|
2
|
+
import type { Scena } from '../../sdk/scena.js';
|
|
3
|
+
import type { ResolvedMount } from '../../sdk/mount-surface.js';
|
|
4
4
|
export declare function useMountTitle(mount: ResolvedMount | undefined, fallback?: string): string;
|
|
5
5
|
export declare function MountTitle({ mount, fallback, iconClassName, titleClassName, style, }: {
|
|
6
6
|
mount: ResolvedMount | undefined;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useScena } from '../../react/ScenaProvider.js';
|
|
3
3
|
import { useStoreLabel } from '../../react/hooks/useStoreLabel.js';
|
|
4
|
-
import { readPath } from '../../core/path-resolver.js';
|
|
5
|
-
import { translate } from '../../i18n/registry.js';
|
|
4
|
+
import { readPath } from '../../core/resolve/path-resolver.js';
|
|
5
|
+
import { translate } from '../../core/i18n/registry.js';
|
|
6
6
|
// Shared title resolution for layout headers. A mount's title is
|
|
7
7
|
// `mount.props.title ?? the component's registered default`, resolved against
|
|
8
8
|
// the mount's OWN dataContext — so a relative `{ path: '/name' }` resolves to
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function RailLayout({ mounts, renderMount, presentation }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { MountAction } from '../../
|
|
3
|
-
import type { Label } from '../../
|
|
2
|
+
import type { MountAction } from '../../sdk/mount-surface.js';
|
|
3
|
+
import type { Label } from '../../sdk/label.js';
|
|
4
4
|
export interface SectionHeaderProps {
|
|
5
5
|
title: Label;
|
|
6
6
|
icon?: ReactNode;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import { resolveLabel } from '../../
|
|
3
|
+
import { resolveLabel } from '../../sdk/label.js';
|
|
4
4
|
import { useScena } from '../../react/ScenaProvider.js';
|
|
5
5
|
import { useI18n } from '../../react/hooks/useI18n.js';
|
|
6
|
-
import { translate } from '../../i18n/registry.js';
|
|
6
|
+
import { translate } from '../../core/i18n/registry.js';
|
|
7
7
|
import { ContextMenu } from '../menu/ContextMenu.js';
|
|
8
8
|
// The header strip for a sidebar section (single layout) — same visual language
|
|
9
9
|
// as StackHeader's container strip, plus an action row. Title/icon/actions come
|
|
@@ -23,8 +23,8 @@ export function SectionHeader({ title, icon, color, actions = [] }) {
|
|
|
23
23
|
}
|
|
24
24
|
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "oo-section-header", "data-color": color, style: headerStyle, children: [_jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: 6, minWidth: 0 }, children: [icon ? _jsx("span", { className: "oo-section-header__icon", "aria-hidden": true, children: icon }) : null, _jsx("span", { className: "oo-section-header__title", style: { overflow: 'hidden', textOverflow: 'ellipsis' }, children: titleText })] }), _jsxs("span", { style: { display: 'inline-flex', alignItems: 'center', gap: 2 }, children: [actions.map((a) => {
|
|
25
25
|
const text = label(a);
|
|
26
|
-
return (_jsx("button", { type: "button", title: text, "aria-label": text, onClick: () => run(a.command), style: iconBtn, children: a.icon ?? text ?? '•' }, a.command));
|
|
27
|
-
}), actions.length ? (_jsx("button", { type: "button", title: "More actions", "aria-label": "More actions", onClick: openMenu, style: iconBtn, children: "\u22EF" })) : null] })] }), menu ? (_jsx(ContextMenu, { x: menu.x, y: menu.y, onClose: () => setMenu(null), spec: {
|
|
26
|
+
return (_jsx("button", { className: "oo-btn oo-btn--icon", "data-variant": "ghost", type: "button", title: text, "aria-label": text, onClick: () => run(a.command), style: iconBtn, children: a.icon ?? text ?? '•' }, a.command));
|
|
27
|
+
}), actions.length ? (_jsx("button", { className: "oo-btn oo-btn--icon", "data-variant": "ghost", type: "button", title: "More actions", "aria-label": "More actions", onClick: openMenu, style: iconBtn, children: "\u22EF" })) : null] })] }), menu ? (_jsx(ContextMenu, { x: menu.x, y: menu.y, onClose: () => setMenu(null), spec: {
|
|
28
28
|
footerHints: true,
|
|
29
29
|
items: actions.map((a) => ({
|
|
30
30
|
title: label(a) || a.command,
|
|
@@ -47,7 +47,6 @@ const headerStyle = {
|
|
|
47
47
|
fontSize: 'var(--oo-font-size-xs)',
|
|
48
48
|
textTransform: 'uppercase',
|
|
49
49
|
letterSpacing: '0.06em',
|
|
50
|
-
color: 'var(--oo-color-muted)',
|
|
51
50
|
userSelect: 'none',
|
|
52
51
|
minWidth: 0,
|
|
53
52
|
minHeight: 32,
|
|
@@ -55,8 +54,6 @@ const headerStyle = {
|
|
|
55
54
|
const iconBtn = {
|
|
56
55
|
background: 'transparent',
|
|
57
56
|
border: 'none',
|
|
58
|
-
color: 'var(--oo-color-muted)',
|
|
59
|
-
cursor: 'pointer',
|
|
60
57
|
font: 'inherit',
|
|
61
58
|
fontSize: 'var(--oo-font-size-sm)',
|
|
62
59
|
lineHeight: 1,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function SingleLayout({ mounts, state, renderMount }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
2
|
-
import type { ResolvedMount } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
|
+
import type { ResolvedMount } from '../../sdk/mount-surface.js';
|
|
3
3
|
import type { CampusNodeRenderProps } from '../campus/types.js';
|
|
4
4
|
export interface SpatialCardData {
|
|
5
5
|
mount: ResolvedMount;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function SpatialLayout({ surface, mounts, state, setState, renderMount, onClose, onActivate, }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function SplitLayout({ surface, mounts, state, setState, renderMount, onClose, onReorder, }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { LayoutProps } from '../../
|
|
2
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
3
3
|
interface LayoutHeaderProps extends Pick<LayoutProps, 'mounts' | 'state' | 'setState'> {
|
|
4
4
|
title: string;
|
|
5
5
|
icon?: ReactNode;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function StackLayout({ surface, mounts, state, setState, renderMount, onClose, onReorder, }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { LayoutProps } from '../../
|
|
1
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
2
2
|
export declare function TabLayout({ surface, mounts, state, renderMount, onActivate, onClose, onReorder, }: LayoutProps): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DragEvent as ReactDragEvent, type MouseEvent as ReactMouseEvent } from 'react';
|
|
2
|
-
import type { LayoutProps } from '../../
|
|
3
|
-
import type { ResolvedMount } from '../../
|
|
2
|
+
import type { LayoutProps } from '../../sdk/layout.js';
|
|
3
|
+
import type { ResolvedMount } from '../../sdk/mount-surface.js';
|
|
4
4
|
export declare function TabPanelLayout({ surface, mounts, state, setState, renderMount, onActivate, onClose, }: LayoutProps): import("react").JSX.Element;
|
|
5
5
|
export declare function TabTitle({ m, resourceKey, isActive, dragOverTab, idx, onDragStart, onDragOver, onDragLeave, onDrop, onClick, onContextMenu, onClose, onUnpin, isPinned }: {
|
|
6
6
|
m: ResolvedMount | undefined;
|
|
@@ -3,7 +3,7 @@ import { useEffect, useRef, useState, } from 'react';
|
|
|
3
3
|
import { useScena } from '../../react/ScenaProvider.js';
|
|
4
4
|
import { ContextMenu } from '../menu/ContextMenu.js';
|
|
5
5
|
import { Divisor } from '../display/Divisor.js';
|
|
6
|
-
import { resolveColorRgb } from '../../
|
|
6
|
+
import { resolveColorRgb } from '../../sdk/colors.js';
|
|
7
7
|
import { NAMED_GLYPH } from '../display/Icon.js';
|
|
8
8
|
import { useStoreLabel } from '../../react/hooks/useStoreLabel.js';
|
|
9
9
|
// Multi-group tabs. Recursive binary tree: a leaf is one Tab strip; a split
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ComponentDefinition } from '../../
|
|
1
|
+
import type { ComponentDefinition } from '../../sdk/component-registry.js';
|
|
2
2
|
export declare const CATALOG_LAYOUT_MAP: ComponentDefinition[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Scena } from '../../
|
|
2
|
-
import type { Disposable } from '../../
|
|
1
|
+
import type { Scena } from '../../sdk/scena.js';
|
|
2
|
+
import type { Disposable } from '../../sdk/disposable.js';
|
|
3
3
|
export declare function registerBuiltinLayouts(scena: Scena): Disposable;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { lazy } from 'react';
|
|
2
|
-
import { combineDisposables } from '../../
|
|
2
|
+
import { combineDisposables } from '../../sdk/disposable.js';
|
|
3
3
|
// Layout components are React.lazy so registering them pulls no layout code at
|
|
4
4
|
// boot — each surface render strategy (and the heavy SpatialLayout/Campus) only
|
|
5
5
|
// loads when a surface first uses it. SurfaceArea renders them inside <Suspense>.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { ComponentDefinition } from '../../
|
|
1
|
+
import type { ComponentDefinition } from '../../sdk/component-registry.js';
|
|
2
2
|
export declare const CATALOG_MEDIA_MAP: ComponentDefinition[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Ref } from 'react';
|
|
2
|
-
import type { HostCtx, ListSpec } from '../../
|
|
3
|
-
import type { BindingPath } from '../../
|
|
2
|
+
import type { HostCtx, ListSpec } from '../../sdk/host.js';
|
|
3
|
+
import type { BindingPath } from '../../sdk/component-graph.js';
|
|
4
4
|
import './ActionList.css';
|
|
5
5
|
export interface ActionListController {
|
|
6
6
|
handleKey(e: {
|
|
@@ -3,7 +3,7 @@ import { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState,
|
|
|
3
3
|
import { useScena } from '../../react/ScenaProvider.js';
|
|
4
4
|
import { canonicalShortcut } from './token.js';
|
|
5
5
|
import './ActionList.css';
|
|
6
|
-
import { resolveColorVar } from '../../
|
|
6
|
+
import { resolveColorVar } from '../../sdk/colors.js';
|
|
7
7
|
// Debounce (ms) for async provider re-resolves while results are already on
|
|
8
8
|
// screen — collapses a burst of keystrokes into one network call.
|
|
9
9
|
const PROVIDER_DEBOUNCE_MS = 180;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { BindingPath } from '../../
|
|
3
|
-
import type { ListSpec } from '../../
|
|
2
|
+
import type { BindingPath } from '../../sdk/component-graph.js';
|
|
3
|
+
import type { ListSpec } from '../../sdk/host.js';
|
|
4
4
|
export interface ContainerMenuProps {
|
|
5
5
|
spec: ListSpec;
|
|
6
6
|
context?: Record<string, unknown>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { BindingPath } from '../../
|
|
3
|
-
import type { ListSpec } from '../../
|
|
2
|
+
import type { BindingPath } from '../../sdk/component-graph.js';
|
|
3
|
+
import type { ListSpec } from '../../sdk/host.js';
|
|
4
4
|
export interface ContextMenuProps {
|
|
5
5
|
spec: ListSpec;
|
|
6
6
|
x: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Dispatch, type KeyboardEvent as ReactKeyboardEvent, type ReactNode, type SetStateAction } from 'react';
|
|
2
|
-
import type { PickerAction, HostCtx } from '../../
|
|
3
|
-
import type { BindingPath } from '../../
|
|
2
|
+
import type { PickerAction, HostCtx } from '../../sdk/host.js';
|
|
3
|
+
import type { BindingPath } from '../../sdk/component-graph.js';
|
|
4
4
|
export interface UseChatPickerParams {
|
|
5
5
|
input: string;
|
|
6
6
|
setInput: Dispatch<SetStateAction<string>>;
|