@rainbow-robotics/plugin-ui 1.2.0 → 1.3.0
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/manifest.d.ts +2 -2
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +1 -1
- package/dist/manifest.js.map +2 -2
- package/dist/react.d.ts +119 -551
- package/package.json +1 -1
- package/src/manifest.ts +2 -2
package/dist/manifest.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export interface PluginAction {
|
|
|
40
40
|
schema?: Record<string, string>;
|
|
41
41
|
}
|
|
42
42
|
/** Allowed variable value types exposed to pyfm. */
|
|
43
|
-
export declare const VARIABLE_TYPES: readonly ["number", "string", "array"];
|
|
43
|
+
export declare const VARIABLE_TYPES: readonly ["number", "string", "boolean", "array"];
|
|
44
44
|
export type PluginVariableType = (typeof VARIABLE_TYPES)[number];
|
|
45
45
|
/** A variable the plugin pre-declares for use in pyfm programs. */
|
|
46
46
|
export interface PluginVariable {
|
|
@@ -48,7 +48,7 @@ export interface PluginVariable {
|
|
|
48
48
|
name: `RBP_${string}`;
|
|
49
49
|
type: PluginVariableType;
|
|
50
50
|
/** Initial value — must match `type`. */
|
|
51
|
-
init: number | string | any[];
|
|
51
|
+
init: number | string | boolean | any[];
|
|
52
52
|
/** Optional. Without it the UI cannot explain what the variable is for. */
|
|
53
53
|
description?: string | Record<string, string>;
|
|
54
54
|
}
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,4DAKtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,KAAK,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzC,gFAAgF;IAChF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,IAAI,CAAC,EACD,MAAM,GACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACN,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,yDAAyD;IACzD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,oDAAoD;AACpD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,4DAKtB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,KAAK,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzC,gFAAgF;IAChF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,IAAI,CAAC,EACD,MAAM,GACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACN,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,yDAAyD;IACzD,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,oDAAoD;AACpD,eAAO,MAAM,cAAc,mDAAoD,CAAC;AAEhF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,IAAI,EAAE,OAAO,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,kBAAkB,CAAC;IACzB,yCAAyC;IACzC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;IACxC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEN,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,KAAK,EACD,MAAM,GACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACN,iCAAiC;IACjC,WAAW,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACnC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,oCAAoC;IACpC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAmBzD"}
|
package/dist/manifest.js
CHANGED
|
@@ -4,7 +4,7 @@ const CONTRIBUTION_POINTS = [
|
|
|
4
4
|
"move.panel",
|
|
5
5
|
"program.panel"
|
|
6
6
|
];
|
|
7
|
-
const VARIABLE_TYPES = ["number", "string", "array"];
|
|
7
|
+
const VARIABLE_TYPES = ["number", "string", "boolean", "array"];
|
|
8
8
|
function validateManifest(value) {
|
|
9
9
|
const errors = [];
|
|
10
10
|
if (typeof value !== "object" || value === null) {
|
package/dist/manifest.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/manifest.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Plugin manifest schema \u2014 the single source of truth shared by the front end\n * (nexus reads it) and the back end (rby2 mirrors it for validation).\n *\n * Evolve additively only.\n */\n\n/** Known contribution points the host understands. */\nexport const CONTRIBUTION_POINTS = [\n \"toolbar\",\n \"lnb\",\n \"move.panel\",\n \"program.panel\",\n] as const;\n\nexport type ContributionPoint = (typeof CONTRIBUTION_POINTS)[number];\n\n/** How a header.toolbar contribution opens when clicked. */\nexport type ContributionOpens = \"popover\" | \"panel\" | \"page\";\n\nexport interface PluginContribution {\n /** Where this contribution mounts. */\n point: ContributionPoint | (string & {});\n /** UI entry name relative to ui/ (without extension). Defaults to \"content\". */\n ui?: string;\n /** Icon path relative to the plugin root (e.g. \"assets/icon.svg\"). */\n icon?:\n | string\n | {\n \"16\"?: string;\n \"48\"?: string;\n \"126\"?: string;\n };\n /** Display label. */\n label?: string | Record<string, string>;\n /** For header.toolbar: how the contribution surfaces. */\n opens?: ContributionOpens;\n commandInfo?: {\n name: string;\n icon: string;\n funcName: string;\n args?: Record<string, any>;\n };\n}\n\nexport interface PluginAction {\n /** Action id referenced by `rb.action(id, payload)`. */\n id: string;\n /** Transport topic (Zenoh / ROS2) the back end routes to. */\n topic: string;\n /** Optional payload schema hint (field \u2192 type name). */\n schema?: Record<string, string>;\n}\n\n/** Allowed variable value types exposed to pyfm. */\nexport const VARIABLE_TYPES = [\"number\", \"string\", \"array\"] as const;\n\nexport type PluginVariableType = (typeof VARIABLE_TYPES)[number];\n\n/** A variable the plugin pre-declares for use in pyfm programs. */\nexport interface PluginVariable {\n /** Identifier, must start with \"RBP_\" (then letters, digits, underscore). Unique per plugin. */\n name: `RBP_${string}`;\n type: PluginVariableType;\n /** Initial value \u2014 must match `type`. */\n init: number | string | any[];\n /** Optional. Without it the UI cannot explain what the variable is for. */\n description?: string | Record<string, string>;\n}\n\nexport type PluginRuntime =\n | { type: \"none\" }\n | { type: \"python\"; entry: string }\n | {\n type: \"ros2\";\n package: string;\n launch: string;\n rosClient: \"rclpy\" | \"rclcpp\";\n };\n\nexport interface PluginManifest {\n /** Reverse-DNS unique id, e.g. \"com.rainbow.gripper-tool\". */\n id: string;\n /** Human-readable name. */\n name: string;\n /** Plugin version (semver). */\n version: string;\n /** Minimum host (Muscat) version this plugin supports. */\n minAppVersion?: string;\n /** Icon path relative to plugin root. */\n icons:\n | string\n | {\n \"16\"?: string;\n \"48\"?: string;\n \"128\"?: string;\n };\n /** UI / chrome contributions. */\n contributes?: PluginContribution[];\n /** Host actions the plugin can invoke. */\n actions?: PluginAction[];\n /** Variables pre-declared for pyfm; the variable picker UI lists these. */\n variables?: PluginVariable[];\n /** Back-end runtime declaration. */\n runtime?: PluginRuntime;\n}\n\n/**\n * Lightweight structural check. Returns the list of problems (empty = valid).\n * Kept dependency-free so both front and back ends can reuse it; richer\n * validation (zod) can layer on top later without breaking this contract.\n */\nexport function validateManifest(value: unknown): string[] {\n const errors: string[] = [];\n if (typeof value !== \"object\" || value === null) {\n return [\"manifest must be an object\"];\n }\n const m = value as Record<string, unknown>;\n if (typeof m.id !== \"string\" || m.id.length === 0)\n errors.push(\"manifest.id is required (string)\");\n if (typeof m.name !== \"string\" || m.name.length === 0)\n errors.push(\"manifest.name is required (string)\");\n if (typeof m.version !== \"string\" || m.version.length === 0)\n errors.push(\"manifest.version is required (string)\");\n if (m.contributes !== undefined && !Array.isArray(m.contributes))\n errors.push(\"manifest.contributes must be an array\");\n if (m.actions !== undefined && !Array.isArray(m.actions))\n errors.push(\"manifest.actions must be an array\");\n if (m.variables !== undefined && !Array.isArray(m.variables))\n errors.push(\"manifest.variables must be an array\");\n return errors;\n}\n"],
|
|
5
|
-
"mappings": "AASO,MAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA0CO,MAAM,iBAAiB,CAAC,UAAU,UAAU,OAAO;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Plugin manifest schema \u2014 the single source of truth shared by the front end\n * (nexus reads it) and the back end (rby2 mirrors it for validation).\n *\n * Evolve additively only.\n */\n\n/** Known contribution points the host understands. */\nexport const CONTRIBUTION_POINTS = [\n \"toolbar\",\n \"lnb\",\n \"move.panel\",\n \"program.panel\",\n] as const;\n\nexport type ContributionPoint = (typeof CONTRIBUTION_POINTS)[number];\n\n/** How a header.toolbar contribution opens when clicked. */\nexport type ContributionOpens = \"popover\" | \"panel\" | \"page\";\n\nexport interface PluginContribution {\n /** Where this contribution mounts. */\n point: ContributionPoint | (string & {});\n /** UI entry name relative to ui/ (without extension). Defaults to \"content\". */\n ui?: string;\n /** Icon path relative to the plugin root (e.g. \"assets/icon.svg\"). */\n icon?:\n | string\n | {\n \"16\"?: string;\n \"48\"?: string;\n \"126\"?: string;\n };\n /** Display label. */\n label?: string | Record<string, string>;\n /** For header.toolbar: how the contribution surfaces. */\n opens?: ContributionOpens;\n commandInfo?: {\n name: string;\n icon: string;\n funcName: string;\n args?: Record<string, any>;\n };\n}\n\nexport interface PluginAction {\n /** Action id referenced by `rb.action(id, payload)`. */\n id: string;\n /** Transport topic (Zenoh / ROS2) the back end routes to. */\n topic: string;\n /** Optional payload schema hint (field \u2192 type name). */\n schema?: Record<string, string>;\n}\n\n/** Allowed variable value types exposed to pyfm. */\nexport const VARIABLE_TYPES = [\"number\", \"string\", \"boolean\", \"array\"] as const;\n\nexport type PluginVariableType = (typeof VARIABLE_TYPES)[number];\n\n/** A variable the plugin pre-declares for use in pyfm programs. */\nexport interface PluginVariable {\n /** Identifier, must start with \"RBP_\" (then letters, digits, underscore). Unique per plugin. */\n name: `RBP_${string}`;\n type: PluginVariableType;\n /** Initial value \u2014 must match `type`. */\n init: number | string | boolean | any[];\n /** Optional. Without it the UI cannot explain what the variable is for. */\n description?: string | Record<string, string>;\n}\n\nexport type PluginRuntime =\n | { type: \"none\" }\n | { type: \"python\"; entry: string }\n | {\n type: \"ros2\";\n package: string;\n launch: string;\n rosClient: \"rclpy\" | \"rclcpp\";\n };\n\nexport interface PluginManifest {\n /** Reverse-DNS unique id, e.g. \"com.rainbow.gripper-tool\". */\n id: string;\n /** Human-readable name. */\n name: string;\n /** Plugin version (semver). */\n version: string;\n /** Minimum host (Muscat) version this plugin supports. */\n minAppVersion?: string;\n /** Icon path relative to plugin root. */\n icons:\n | string\n | {\n \"16\"?: string;\n \"48\"?: string;\n \"128\"?: string;\n };\n /** UI / chrome contributions. */\n contributes?: PluginContribution[];\n /** Host actions the plugin can invoke. */\n actions?: PluginAction[];\n /** Variables pre-declared for pyfm; the variable picker UI lists these. */\n variables?: PluginVariable[];\n /** Back-end runtime declaration. */\n runtime?: PluginRuntime;\n}\n\n/**\n * Lightweight structural check. Returns the list of problems (empty = valid).\n * Kept dependency-free so both front and back ends can reuse it; richer\n * validation (zod) can layer on top later without breaking this contract.\n */\nexport function validateManifest(value: unknown): string[] {\n const errors: string[] = [];\n if (typeof value !== \"object\" || value === null) {\n return [\"manifest must be an object\"];\n }\n const m = value as Record<string, unknown>;\n if (typeof m.id !== \"string\" || m.id.length === 0)\n errors.push(\"manifest.id is required (string)\");\n if (typeof m.name !== \"string\" || m.name.length === 0)\n errors.push(\"manifest.name is required (string)\");\n if (typeof m.version !== \"string\" || m.version.length === 0)\n errors.push(\"manifest.version is required (string)\");\n if (m.contributes !== undefined && !Array.isArray(m.contributes))\n errors.push(\"manifest.contributes must be an array\");\n if (m.actions !== undefined && !Array.isArray(m.actions))\n errors.push(\"manifest.actions must be an array\");\n if (m.variables !== undefined && !Array.isArray(m.variables))\n errors.push(\"manifest.variables must be an array\");\n return errors;\n}\n"],
|
|
5
|
+
"mappings": "AASO,MAAM,sBAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA0CO,MAAM,iBAAiB,CAAC,UAAU,UAAU,WAAW,OAAO;AAyD9D,SAAS,iBAAiB,OAA0B;AACzD,QAAM,SAAmB,CAAC;AAC1B,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO,CAAC,4BAA4B;AAAA,EACtC;AACA,QAAM,IAAI;AACV,MAAI,OAAO,EAAE,OAAO,YAAY,EAAE,GAAG,WAAW;AAC9C,WAAO,KAAK,kCAAkC;AAChD,MAAI,OAAO,EAAE,SAAS,YAAY,EAAE,KAAK,WAAW;AAClD,WAAO,KAAK,oCAAoC;AAClD,MAAI,OAAO,EAAE,YAAY,YAAY,EAAE,QAAQ,WAAW;AACxD,WAAO,KAAK,uCAAuC;AACrD,MAAI,EAAE,gBAAgB,UAAa,CAAC,MAAM,QAAQ,EAAE,WAAW;AAC7D,WAAO,KAAK,uCAAuC;AACrD,MAAI,EAAE,YAAY,UAAa,CAAC,MAAM,QAAQ,EAAE,OAAO;AACrD,WAAO,KAAK,mCAAmC;AACjD,MAAI,EAAE,cAAc,UAAa,CAAC,MAAM,QAAQ,EAAE,SAAS;AACzD,WAAO,KAAK,qCAAqC;AACnD,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/react.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
import * as React$1 from 'react';
|
|
5
|
-
import React__default, { ReactNode, MouseEvent, InputHTMLAttributes, MouseEventHandler, ReactElement, ChangeEvent, CSSProperties,
|
|
5
|
+
import React__default, { ReactNode, MouseEvent, InputHTMLAttributes, MouseEventHandler, ReactElement, ChangeEvent, CSSProperties, TextareaHTMLAttributes, ComponentType, ComponentProps, Dispatch, SetStateAction, HTMLInputAutoCompleteAttribute, RefObject, SVGAttributes, HTMLAttributes } from 'react';
|
|
6
6
|
import { Matcher, DayPicker } from 'react-day-picker';
|
|
7
7
|
import * as ShadDialogPrimitive from '@radix-ui/react-dialog';
|
|
8
8
|
import { Command } from 'cmdk';
|
|
@@ -17,8 +17,6 @@ import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
|
17
17
|
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
18
18
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
19
19
|
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
20
|
-
import { PolygonLayer, PathLayer, PointCloudLayer } from '@deck.gl/layers';
|
|
21
|
-
import { Layer } from '@deck.gl/core';
|
|
22
20
|
|
|
23
21
|
declare const batteryStatuses: readonly ["empty", "critical", "low", "normal", "full"];
|
|
24
22
|
type BatteryStatus = (typeof batteryStatuses)[number];
|
|
@@ -67,7 +65,7 @@ interface RippleOption {
|
|
|
67
65
|
declare const labelButtonSizes: readonly ["3xs", "2xs", "xs", "xs2", "sm", "md"];
|
|
68
66
|
type LabelButtonSizeType = (typeof labelButtonSizes)[number];
|
|
69
67
|
declare const labelButtonVariants: (props?: {
|
|
70
|
-
size?: "
|
|
68
|
+
size?: "xs" | "xs2" | "sm" | "md" | "3xs" | "2xs";
|
|
71
69
|
variant?: "transparent" | "outlined" | "soft" | "solid" | "inverse" | "inverseSoft" | "brand" | "brandSoft" | "danger" | "dangerSoft" | "success" | "successSoft";
|
|
72
70
|
disabled?: boolean;
|
|
73
71
|
} & class_variance_authority_types.ClassProp) => string;
|
|
@@ -138,8 +136,8 @@ declare const RBLabelButton: React$1.ForwardRefExoticComponent<Omit<Omit<React$1
|
|
|
138
136
|
declare const iconButtonSizes: readonly ["3xs", "2xs", "xs", "xs2", "sm", "md"];
|
|
139
137
|
type IconButtonSizeType = (typeof iconButtonSizes)[number];
|
|
140
138
|
declare const iconButtonVariants: (props?: {
|
|
141
|
-
size?: "
|
|
142
|
-
variant?: "
|
|
139
|
+
size?: "xs" | "xs2" | "sm" | "md" | "3xs" | "2xs";
|
|
140
|
+
variant?: "transparent" | "circle" | "outlined" | "soft" | "solid" | "inverse" | "inverseSoft" | "brand";
|
|
143
141
|
disabled?: boolean;
|
|
144
142
|
} & class_variance_authority_types.ClassProp) => string;
|
|
145
143
|
type IconButtonVariantProps = VariantProps<typeof iconButtonVariants>;
|
|
@@ -295,7 +293,7 @@ declare function RBInlineLabelButton({ className, size, variant, type, leadingIc
|
|
|
295
293
|
declare const accordionTypes: readonly ["fill", "transparent"];
|
|
296
294
|
type AccordionType = (typeof accordionTypes)[number];
|
|
297
295
|
declare const accordionVariants: (props?: {
|
|
298
|
-
type?: "
|
|
296
|
+
type?: "fill" | "transparent";
|
|
299
297
|
} & class_variance_authority_types.ClassProp) => string;
|
|
300
298
|
type AccordionVariantProps = VariantProps<typeof accordionVariants>;
|
|
301
299
|
|
|
@@ -458,20 +456,6 @@ declare const textInputVariants: (props?: {
|
|
|
458
456
|
} & class_variance_authority_types.ClassProp) => string;
|
|
459
457
|
type TextInputVariantProps = VariantProps<typeof textInputVariants>;
|
|
460
458
|
|
|
461
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
interface ModalPropsType<T = AllowAny> {
|
|
465
|
-
children?: ReactNode;
|
|
466
|
-
className?: string;
|
|
467
|
-
open: boolean;
|
|
468
|
-
close: () => void | Promise<unknown>;
|
|
469
|
-
onOpenChange: (open: boolean) => void;
|
|
470
|
-
resolve: (value: T, useClose?: boolean) => void;
|
|
471
|
-
enableDimClose?: boolean;
|
|
472
|
-
hideCloseButton?: boolean;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
459
|
interface PropsType$s extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
476
460
|
className?: string;
|
|
477
461
|
/**
|
|
@@ -510,7 +494,6 @@ interface PropsType$s extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"
|
|
|
510
494
|
* `ex) resetIcon={<SvgIcoClose2 />}`
|
|
511
495
|
*/
|
|
512
496
|
resetIcon?: ReactElement;
|
|
513
|
-
variableModal?: ComponentType<ModalPropsType<string>>;
|
|
514
497
|
/** 입력 값 검증을 위한 정규 표현식 또는 함수 */
|
|
515
498
|
validate?: RegExp | ((value: string) => string) | ((value: number) => number);
|
|
516
499
|
/** 리셋 버튼 숨김 처리 여부 */
|
|
@@ -544,6 +527,28 @@ declare const textAreaVariants: (props?: {
|
|
|
544
527
|
} & class_variance_authority_types.ClassProp) => string;
|
|
545
528
|
type TextAreaVariantProps = VariantProps<typeof textAreaVariants>;
|
|
546
529
|
|
|
530
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
interface ModalPropsType<T = AllowAny> {
|
|
534
|
+
children?: ReactNode;
|
|
535
|
+
className?: string;
|
|
536
|
+
open: boolean;
|
|
537
|
+
close: () => void | Promise<unknown>;
|
|
538
|
+
onOpenChange: (open: boolean) => void;
|
|
539
|
+
resolve: (value: T, useClose?: boolean) => void;
|
|
540
|
+
enableDimClose?: boolean;
|
|
541
|
+
hideCloseButton?: boolean;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
type KeypadOption = {
|
|
545
|
+
initTab?: string;
|
|
546
|
+
};
|
|
547
|
+
type VariableModalProps = ModalPropsType<string> & {
|
|
548
|
+
keypadOption?: KeypadOption;
|
|
549
|
+
byKeypad?: boolean;
|
|
550
|
+
};
|
|
551
|
+
|
|
547
552
|
interface Props$e extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
548
553
|
className?: string;
|
|
549
554
|
type?: "text" | "program";
|
|
@@ -553,7 +558,7 @@ interface Props$e extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
|
553
558
|
readOnly?: boolean;
|
|
554
559
|
maxLength?: number;
|
|
555
560
|
error?: boolean;
|
|
556
|
-
variableModal?: ComponentType<
|
|
561
|
+
variableModal?: ComponentType<VariableModalProps>;
|
|
557
562
|
handleChange?: (value: string, name?: string) => void;
|
|
558
563
|
}
|
|
559
564
|
/**
|
|
@@ -577,7 +582,7 @@ type Props$d = {
|
|
|
577
582
|
/**
|
|
578
583
|
* 선택된 날짜 값
|
|
579
584
|
*/
|
|
580
|
-
value?:
|
|
585
|
+
value?: Date | [Date | undefined, Date | undefined];
|
|
581
586
|
/**
|
|
582
587
|
* 날짜 입력 필드의 이름
|
|
583
588
|
*/
|
|
@@ -610,13 +615,35 @@ type Props$d = {
|
|
|
610
615
|
/**
|
|
611
616
|
* 날짜 값 변경 함수
|
|
612
617
|
*/
|
|
613
|
-
handleChange?: (startValue:
|
|
618
|
+
handleChange?: (startValue: Date | undefined, endValue: Date | undefined, name: string) => void;
|
|
614
619
|
};
|
|
615
620
|
/**
|
|
616
621
|
* 날짜 입력 컴포넌트 입니다.
|
|
617
622
|
*/
|
|
618
623
|
declare const DateInput: ({ className, showType, value, name, disabled, readOnly, size, variant, error, showPresets, showFooter, placeholder, handleChange, }: Props$d) => react_jsx_runtime.JSX.Element;
|
|
619
624
|
|
|
625
|
+
declare const RANGE_DATE_PRESETS: readonly [{
|
|
626
|
+
readonly key: "last-24-hours";
|
|
627
|
+
readonly label: "Last 24 hours";
|
|
628
|
+
}, {
|
|
629
|
+
readonly key: "last-3-days";
|
|
630
|
+
readonly label: "Last 3 days";
|
|
631
|
+
}, {
|
|
632
|
+
readonly key: "last-week";
|
|
633
|
+
readonly label: "Last week";
|
|
634
|
+
}, {
|
|
635
|
+
readonly key: "last-month";
|
|
636
|
+
readonly label: "Last month";
|
|
637
|
+
}, {
|
|
638
|
+
readonly key: "last-3-month";
|
|
639
|
+
readonly label: "Last 3 month";
|
|
640
|
+
}];
|
|
641
|
+
type RangePresetKey = (typeof RANGE_DATE_PRESETS)[number]["key"];
|
|
642
|
+
declare const getRangePresetDates: (key: RangePresetKey, now?: Date) => {
|
|
643
|
+
from: Date;
|
|
644
|
+
to: Date;
|
|
645
|
+
};
|
|
646
|
+
|
|
620
647
|
type Props$c = {
|
|
621
648
|
className?: string;
|
|
622
649
|
calendarPanelClassName?: string;
|
|
@@ -627,7 +654,7 @@ type Props$c = {
|
|
|
627
654
|
/**
|
|
628
655
|
* 선택된 날짜 값
|
|
629
656
|
*/
|
|
630
|
-
value?: [
|
|
657
|
+
value?: [Date | undefined, Date | undefined];
|
|
631
658
|
/**
|
|
632
659
|
* 날짜 입력 필드의 이름
|
|
633
660
|
*/
|
|
@@ -635,11 +662,15 @@ type Props$c = {
|
|
|
635
662
|
/**
|
|
636
663
|
* 최소 날짜 값
|
|
637
664
|
*/
|
|
638
|
-
min?:
|
|
665
|
+
min?: Date;
|
|
639
666
|
/**
|
|
640
667
|
* 최대 날짜 값
|
|
641
668
|
*/
|
|
642
|
-
max?:
|
|
669
|
+
max?: Date;
|
|
670
|
+
/**
|
|
671
|
+
* 선택 가능한 최대 일수
|
|
672
|
+
*/
|
|
673
|
+
maxDays?: number;
|
|
643
674
|
/**
|
|
644
675
|
* 날짜 입력 필드의 플레이스홀더
|
|
645
676
|
*/
|
|
@@ -675,17 +706,16 @@ type Props$c = {
|
|
|
675
706
|
/**
|
|
676
707
|
* 날짜 값 변경 함수
|
|
677
708
|
*/
|
|
678
|
-
handleChange?: (startValue:
|
|
709
|
+
handleChange?: (startValue: Date | undefined, endValue: Date | undefined, name: string) => void;
|
|
679
710
|
/**
|
|
680
711
|
* 표시할 프리셋 키 목록. 미지정 시 전체 표시.
|
|
681
712
|
*/
|
|
682
713
|
presets?: RangePresetKey[];
|
|
683
714
|
};
|
|
684
|
-
type RangePresetKey = "last-24-hours" | "last-3-days" | "last-week" | "last-month" | "last-3-month";
|
|
685
715
|
/**
|
|
686
716
|
* 범위 날짜 입력 컴포넌트 입니다.
|
|
687
717
|
*/
|
|
688
|
-
declare const RangeDateInput: ({ className, calendarPanelClassName, showType, value, name, min, max, placeholder, disabled, disabledDates, readOnly, size, variant, error, showPresets, showFooter, handleChange, presets, }: Props$c) => react_jsx_runtime.JSX.Element;
|
|
718
|
+
declare const RangeDateInput: ({ className, calendarPanelClassName, showType, value, name, min, max, maxDays, placeholder, disabled, disabledDates, readOnly, size, variant, error, showPresets, showFooter, handleChange, presets, }: Props$c) => react_jsx_runtime.JSX.Element;
|
|
689
719
|
|
|
690
720
|
interface Props$b extends ModalPropsType<boolean> {
|
|
691
721
|
className?: string;
|
|
@@ -723,7 +753,7 @@ declare const RBAlert: ({ className, containerId, open, onOpenChange, title, con
|
|
|
723
753
|
interface Props$a extends ModalPropsType<boolean> {
|
|
724
754
|
className?: string;
|
|
725
755
|
/** confirm 타이틀 */
|
|
726
|
-
title?: string;
|
|
756
|
+
title?: string | ReactElement;
|
|
727
757
|
/** confirm 설명 */
|
|
728
758
|
description?: string | ReactElement;
|
|
729
759
|
/** confirm 내용 */
|
|
@@ -746,7 +776,7 @@ interface Props$a extends ModalPropsType<boolean> {
|
|
|
746
776
|
/** 모달 dialog일때 컨테이너 id */
|
|
747
777
|
containerId?: string;
|
|
748
778
|
/** 확인 버튼 클릭 시 실행할 함수 */
|
|
749
|
-
onConfirm?: () => void;
|
|
779
|
+
onConfirm?: () => Promise<void> | void;
|
|
750
780
|
/** 취소 버튼 클릭 시 실행할 함수 */
|
|
751
781
|
onCancel?: () => void;
|
|
752
782
|
}
|
|
@@ -846,13 +876,14 @@ type RBDialogContentProps = React.ComponentProps<typeof ShadDialogPrimitive.Cont
|
|
|
846
876
|
container?: HTMLElement;
|
|
847
877
|
showCloseButton?: boolean;
|
|
848
878
|
size?: DialogSize;
|
|
879
|
+
closeAllLabel?: string;
|
|
849
880
|
};
|
|
850
881
|
declare function RBDialog({ ...props }: React.ComponentProps<typeof ShadDialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
851
882
|
declare function RBDialogTrigger({ ...props }: React.ComponentProps<typeof ShadDialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
852
883
|
declare function RBDialogPortal({ ...props }: React.ComponentProps<typeof ShadDialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
853
884
|
declare function RBDialogClose({ ...props }: React.ComponentProps<typeof ShadDialogPrimitive.Close>): react_jsx_runtime.JSX.Element;
|
|
854
885
|
declare const RBDialogOverlay: React$1.ForwardRefExoticComponent<Omit<ShadDialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
855
|
-
declare function RBDialogContent({ className, children, container, showCloseButton, size, ...props }: RBDialogContentProps): react_jsx_runtime.JSX.Element;
|
|
886
|
+
declare function RBDialogContent({ className, children, container, showCloseButton, size, closeAllLabel, ...props }: RBDialogContentProps): react_jsx_runtime.JSX.Element;
|
|
856
887
|
declare function RBDialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
857
888
|
declare function RBDialogFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
858
889
|
declare const RBDialogTitle: React$1.ForwardRefExoticComponent<Omit<ShadDialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
@@ -927,8 +958,10 @@ type Props$8 = {
|
|
|
927
958
|
dialogContainer?: HTMLElement;
|
|
928
959
|
gamePadType?: "modal" | "dialog";
|
|
929
960
|
onOpenAutoFocus?: ComponentProps<typeof RBDialogContent>["onOpenAutoFocus"];
|
|
961
|
+
/** 모달 전체 닫기 라벨 명 */
|
|
962
|
+
closeAllButtonLabel?: string;
|
|
930
963
|
};
|
|
931
|
-
declare const RBModal: ({ className, open, type, dialogContainer, children, enableDimClose, header, hideCloseButton, footer, gamePadType, onOpenChange, disableAutoFocus, }: Props$8) => react_jsx_runtime.JSX.Element;
|
|
964
|
+
declare const RBModal: ({ className, open, type, dialogContainer, children, enableDimClose, header, hideCloseButton, footer, gamePadType, onOpenChange, disableAutoFocus, closeAllButtonLabel, }: Props$8) => react_jsx_runtime.JSX.Element;
|
|
932
965
|
|
|
933
966
|
declare const selectSizes: readonly ["xs2", "sm", "md", "lg"];
|
|
934
967
|
type SelectSize = (typeof selectSizes)[number];
|
|
@@ -2018,6 +2051,8 @@ type Props$3 = {
|
|
|
2018
2051
|
stickColor?: string;
|
|
2019
2052
|
/** 조이스틱 영역의 색상 */
|
|
2020
2053
|
stickAreaColor?: string;
|
|
2054
|
+
/** 방향 아크·아이콘 강조 색상 */
|
|
2055
|
+
arcColor?: string;
|
|
2021
2056
|
/**
|
|
2022
2057
|
* 스로틀 임계치
|
|
2023
2058
|
* (이동 비율 차이가 throttleThreshold 이상일 때 onMove 호출)
|
|
@@ -2050,7 +2085,7 @@ type Props$3 = {
|
|
|
2050
2085
|
/** 조이스틱 종료 시 호출 */
|
|
2051
2086
|
onEnd?: (data: RbJoyStickEventData) => void;
|
|
2052
2087
|
};
|
|
2053
|
-
declare const RBJoyStick: ({ className, type, size, stickColor, stickAreaColor, throttleThreshold, throttleDuration, xOnly, yOnly, disableDiagonal, disabled, keepMoveEventInterval, paddingSize, style, onStart, onMove, onEnd, }: Props$3) => react_jsx_runtime.JSX.Element;
|
|
2088
|
+
declare const RBJoyStick: ({ className, type, size, stickColor, arcColor, stickAreaColor, throttleThreshold, throttleDuration, xOnly, yOnly, disableDiagonal, disabled, keepMoveEventInterval, paddingSize, style, onStart, onMove, onEnd, }: Props$3) => react_jsx_runtime.JSX.Element;
|
|
2054
2089
|
|
|
2055
2090
|
type PlaceType = "top" | "right" | "bottom" | "left";
|
|
2056
2091
|
interface PropsType$6 {
|
|
@@ -2173,6 +2208,8 @@ declare function RBCardFooter({ className, size, ...props }: RBCardFooterProps):
|
|
|
2173
2208
|
|
|
2174
2209
|
declare function ShadDialog({ ...props }: React$1.ComponentProps<typeof ShadDialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
2175
2210
|
|
|
2211
|
+
declare function Calendar$1({ className, classNames, showOutsideDays, ...props }: React$1.ComponentProps<typeof DayPicker>): react_jsx_runtime.JSX.Element;
|
|
2212
|
+
|
|
2176
2213
|
declare function RBCommand({ className, ...props }: React.ComponentProps<typeof Command>): react_jsx_runtime.JSX.Element;
|
|
2177
2214
|
declare function RBCommandDialog({ title, description, children, ...props }: React.ComponentProps<typeof ShadDialog> & {
|
|
2178
2215
|
title?: string;
|
|
@@ -2285,7 +2322,7 @@ interface PropsType$5 {
|
|
|
2285
2322
|
declare function RBSwitchField({ children, className, controlPlacement, description, descriptionClassName, invalid, label, labelClassName, size, type, }: PropsType$5): react_jsx_runtime.JSX.Element;
|
|
2286
2323
|
|
|
2287
2324
|
declare const toggleRootVariants: (props?: {
|
|
2288
|
-
size?: "sm" | "
|
|
2325
|
+
size?: "sm" | "lg" | "default";
|
|
2289
2326
|
variant?: "default" | "outline";
|
|
2290
2327
|
} & class_variance_authority_types.ClassProp) => string;
|
|
2291
2328
|
type ToggleVariantProps = VariantProps<typeof toggleRootVariants>;
|
|
@@ -2336,7 +2373,7 @@ declare function RBResizable({ className, direction, ...props }: RBResizableProp
|
|
|
2336
2373
|
declare function RBResizablePanel({ className, unstyled, ...props }: RBResizablePanelProps): react_jsx_runtime.JSX.Element;
|
|
2337
2374
|
declare function RBResizableHandle({ className, hideThumb, onPointerDownCapture, onPointerUpCapture, onPointerCancelCapture, ...props }: RBResizableHandleProps): react_jsx_runtime.JSX.Element;
|
|
2338
2375
|
|
|
2339
|
-
declare function Calendar({ classNames, showOutsideDays, ...props }: React.ComponentProps<typeof
|
|
2376
|
+
declare function Calendar({ className, classNames, showOutsideDays, ...props }: React.ComponentProps<typeof Calendar$1>): react_jsx_runtime.JSX.Element;
|
|
2340
2377
|
|
|
2341
2378
|
interface PropsType$4 {
|
|
2342
2379
|
label: string;
|
|
@@ -2348,32 +2385,22 @@ interface DatePickerTimeValue {
|
|
|
2348
2385
|
hour: string;
|
|
2349
2386
|
minute: string;
|
|
2350
2387
|
}
|
|
2388
|
+
interface DatePickerValue {
|
|
2389
|
+
from: Date | undefined;
|
|
2390
|
+
to: Date | undefined;
|
|
2391
|
+
timeEnabled: boolean;
|
|
2392
|
+
}
|
|
2351
2393
|
interface PropsType$3 {
|
|
2352
2394
|
pickerType?: DatePickerType;
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
endTime?: DatePickerTimeValue;
|
|
2356
|
-
onEndTimeChange?: (nextValue: DatePickerTimeValue) => void;
|
|
2357
|
-
onSetTimeChange?: (checked: boolean) => void;
|
|
2358
|
-
onStartTimeChange?: (nextValue: DatePickerTimeValue) => void;
|
|
2359
|
-
selectedDate?: {
|
|
2360
|
-
from: Date | undefined;
|
|
2361
|
-
to: Date | undefined;
|
|
2362
|
-
};
|
|
2363
|
-
setSelectedDate?: (nextValue: {
|
|
2364
|
-
from: Date | undefined;
|
|
2365
|
-
to: Date | undefined;
|
|
2366
|
-
}) => void;
|
|
2367
|
-
enforceTimeOrder?: boolean;
|
|
2368
|
-
min?: number;
|
|
2369
|
-
max?: number;
|
|
2395
|
+
selectedDate: DatePickerValue;
|
|
2396
|
+
onChange: (value: DatePickerValue) => void;
|
|
2370
2397
|
labels?: {
|
|
2371
2398
|
from?: string;
|
|
2372
2399
|
to?: string;
|
|
2373
2400
|
setTime?: string;
|
|
2374
2401
|
};
|
|
2375
2402
|
}
|
|
2376
|
-
declare function RBDatePickerFooterTime({ pickerType,
|
|
2403
|
+
declare function RBDatePickerFooterTime({ pickerType, selectedDate, onChange, labels, }: PropsType$3): react_jsx_runtime.JSX.Element;
|
|
2377
2404
|
|
|
2378
2405
|
interface PropsType$2 {
|
|
2379
2406
|
className?: string;
|
|
@@ -2398,6 +2425,10 @@ declare const checkIconButtonVariants: (props?: {
|
|
|
2398
2425
|
disabled?: boolean;
|
|
2399
2426
|
} & class_variance_authority_types.ClassProp) => string;
|
|
2400
2427
|
|
|
2428
|
+
declare const Svg25DBold: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2429
|
+
title?: string;
|
|
2430
|
+
description?: string;
|
|
2431
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2401
2432
|
declare const SvgAMR: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2402
2433
|
title?: string;
|
|
2403
2434
|
description?: string;
|
|
@@ -2454,6 +2485,10 @@ declare const SvgBoardSolid: (props?: React__default.SVGAttributes<SVGSVGElement
|
|
|
2454
2485
|
title?: string;
|
|
2455
2486
|
description?: string;
|
|
2456
2487
|
}) => react_jsx_runtime.JSX.Element;
|
|
2488
|
+
declare const SvgBox3D: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2489
|
+
title?: string;
|
|
2490
|
+
description?: string;
|
|
2491
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2457
2492
|
declare const SvgBugBeetleSolid: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2458
2493
|
title?: string;
|
|
2459
2494
|
description?: string;
|
|
@@ -2570,6 +2605,10 @@ declare const SvgCopyBold: (props?: React__default.SVGAttributes<SVGSVGElement>
|
|
|
2570
2605
|
title?: string;
|
|
2571
2606
|
description?: string;
|
|
2572
2607
|
}) => react_jsx_runtime.JSX.Element;
|
|
2608
|
+
declare const SvgCylinder3D: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2609
|
+
title?: string;
|
|
2610
|
+
description?: string;
|
|
2611
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2573
2612
|
declare const SvgDangerSolid: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2574
2613
|
title?: string;
|
|
2575
2614
|
description?: string;
|
|
@@ -2842,6 +2881,10 @@ declare const SvgSkipForwardBold: (props?: React__default.SVGAttributes<SVGSVGEl
|
|
|
2842
2881
|
title?: string;
|
|
2843
2882
|
description?: string;
|
|
2844
2883
|
}) => react_jsx_runtime.JSX.Element;
|
|
2884
|
+
declare const SvgSphere3D: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2885
|
+
title?: string;
|
|
2886
|
+
description?: string;
|
|
2887
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2845
2888
|
declare const SvgStateASC: (props?: React__default.SVGAttributes<SVGSVGElement> & {
|
|
2846
2889
|
title?: string;
|
|
2847
2890
|
description?: string;
|
|
@@ -2955,6 +2998,7 @@ declare const SvgWifiCog: (props?: React__default.SVGAttributes<SVGSVGElement> &
|
|
|
2955
2998
|
description?: string;
|
|
2956
2999
|
}) => react_jsx_runtime.JSX.Element;
|
|
2957
3000
|
|
|
3001
|
+
declare const index_Svg25DBold: typeof Svg25DBold;
|
|
2958
3002
|
declare const index_SvgAMR: typeof SvgAMR;
|
|
2959
3003
|
declare const index_SvgArrowArcLeftBold: typeof SvgArrowArcLeftBold;
|
|
2960
3004
|
declare const index_SvgArrowArcRightBold: typeof SvgArrowArcRightBold;
|
|
@@ -2970,6 +3014,7 @@ declare const index_SvgArrowsOutSimpleBold: typeof SvgArrowsOutSimpleBold;
|
|
|
2970
3014
|
declare const index_SvgBackspace: typeof SvgBackspace;
|
|
2971
3015
|
declare const index_SvgBoardSolid: typeof SvgBoardSolid;
|
|
2972
3016
|
declare const index_SvgBot: typeof SvgBot;
|
|
3017
|
+
declare const index_SvgBox3D: typeof SvgBox3D;
|
|
2973
3018
|
declare const index_SvgBugBeetleSolid: typeof SvgBugBeetleSolid;
|
|
2974
3019
|
declare const index_SvgBulletSolid: typeof SvgBulletSolid;
|
|
2975
3020
|
declare const index_SvgCalendarBlankBold: typeof SvgCalendarBlankBold;
|
|
@@ -3005,6 +3050,7 @@ declare const index_SvgCubeFront: typeof SvgCubeFront;
|
|
|
3005
3050
|
declare const index_SvgCubeLeft: typeof SvgCubeLeft;
|
|
3006
3051
|
declare const index_SvgCubeRight: typeof SvgCubeRight;
|
|
3007
3052
|
declare const index_SvgCubeTop: typeof SvgCubeTop;
|
|
3053
|
+
declare const index_SvgCylinder3D: typeof SvgCylinder3D;
|
|
3008
3054
|
declare const index_SvgDangerSolid: typeof SvgDangerSolid;
|
|
3009
3055
|
declare const index_SvgDesktopBold: typeof SvgDesktopBold;
|
|
3010
3056
|
declare const index_SvgDeviceMobileSlashBold: typeof SvgDeviceMobileSlashBold;
|
|
@@ -3073,6 +3119,7 @@ declare const index_SvgShapesSolid: typeof SvgShapesSolid;
|
|
|
3073
3119
|
declare const index_SvgSignIn: typeof SvgSignIn;
|
|
3074
3120
|
declare const index_SvgSignOut: typeof SvgSignOut;
|
|
3075
3121
|
declare const index_SvgSkipForwardBold: typeof SvgSkipForwardBold;
|
|
3122
|
+
declare const index_SvgSphere3D: typeof SvgSphere3D;
|
|
3076
3123
|
declare const index_SvgStateASC: typeof SvgStateASC;
|
|
3077
3124
|
declare const index_SvgStateDESC: typeof SvgStateDESC;
|
|
3078
3125
|
declare const index_SvgStopBold: typeof SvgStopBold;
|
|
@@ -3096,6 +3143,7 @@ declare const index_SvgWifiNone: typeof SvgWifiNone;
|
|
|
3096
3143
|
declare const index_SvgXBold: typeof SvgXBold;
|
|
3097
3144
|
declare namespace index {
|
|
3098
3145
|
export {
|
|
3146
|
+
index_Svg25DBold as Svg25DBold,
|
|
3099
3147
|
index_SvgAMR as SvgAMR,
|
|
3100
3148
|
index_SvgArrowArcLeftBold as SvgArrowArcLeftBold,
|
|
3101
3149
|
index_SvgArrowArcRightBold as SvgArrowArcRightBold,
|
|
@@ -3111,6 +3159,7 @@ declare namespace index {
|
|
|
3111
3159
|
index_SvgBackspace as SvgBackspace,
|
|
3112
3160
|
index_SvgBoardSolid as SvgBoardSolid,
|
|
3113
3161
|
index_SvgBot as SvgBot,
|
|
3162
|
+
index_SvgBox3D as SvgBox3D,
|
|
3114
3163
|
index_SvgBugBeetleSolid as SvgBugBeetleSolid,
|
|
3115
3164
|
index_SvgBulletSolid as SvgBulletSolid,
|
|
3116
3165
|
index_SvgCalendarBlankBold as SvgCalendarBlankBold,
|
|
@@ -3146,6 +3195,7 @@ declare namespace index {
|
|
|
3146
3195
|
index_SvgCubeLeft as SvgCubeLeft,
|
|
3147
3196
|
index_SvgCubeRight as SvgCubeRight,
|
|
3148
3197
|
index_SvgCubeTop as SvgCubeTop,
|
|
3198
|
+
index_SvgCylinder3D as SvgCylinder3D,
|
|
3149
3199
|
index_SvgDangerSolid as SvgDangerSolid,
|
|
3150
3200
|
index_SvgDesktopBold as SvgDesktopBold,
|
|
3151
3201
|
index_SvgDeviceMobileSlashBold as SvgDeviceMobileSlashBold,
|
|
@@ -3214,6 +3264,7 @@ declare namespace index {
|
|
|
3214
3264
|
index_SvgSignIn as SvgSignIn,
|
|
3215
3265
|
index_SvgSignOut as SvgSignOut,
|
|
3216
3266
|
index_SvgSkipForwardBold as SvgSkipForwardBold,
|
|
3267
|
+
index_SvgSphere3D as SvgSphere3D,
|
|
3217
3268
|
index_SvgStateASC as SvgStateASC,
|
|
3218
3269
|
index_SvgStateDESC as SvgStateDESC,
|
|
3219
3270
|
index_SvgStopBold as SvgStopBold,
|
|
@@ -3238,6 +3289,16 @@ declare namespace index {
|
|
|
3238
3289
|
};
|
|
3239
3290
|
}
|
|
3240
3291
|
|
|
3292
|
+
type StatusIconProps = SVGAttributes<SVGSVGElement>;
|
|
3293
|
+
/**
|
|
3294
|
+
* 채워진 원 + 흰색 글리프로 상태를 나타내는 아이콘 한 쌍이다. 이 폴더의
|
|
3295
|
+
* 나머지 아이콘(`index.tsx`)은 auto-svg-component-generator가 `.svg`
|
|
3296
|
+
* 소스로부터 자동 생성하므로, 손으로 그린 이 두 아이콘은 별도 파일로 둔다
|
|
3297
|
+
* — index.tsx는 빌드/dev 스크립트가 돌 때마다 통째로 덮어써진다.
|
|
3298
|
+
*/
|
|
3299
|
+
declare const GreenCheckCircleIcon: ({ className, ...props }: StatusIconProps) => react_jsx_runtime.JSX.Element;
|
|
3300
|
+
declare const AmberWarningCircleIcon: ({ className, ...props }: StatusIconProps) => react_jsx_runtime.JSX.Element;
|
|
3301
|
+
|
|
3241
3302
|
declare const lightColors: readonly ["red", "gray", "blue", "green", "orange", "yellow"];
|
|
3242
3303
|
type LightColor = (typeof lightColors)[number];
|
|
3243
3304
|
declare const lightSizes: readonly ["sm", "md", "lg"];
|
|
@@ -3475,499 +3536,6 @@ interface PropsType extends HTMLAttributes<HTMLElement> {
|
|
|
3475
3536
|
*/
|
|
3476
3537
|
declare const VStack: React$1.ForwardRefExoticComponent<PropsType & React$1.RefAttributes<HTMLDivElement>>;
|
|
3477
3538
|
|
|
3478
|
-
type MoveStateType = {
|
|
3479
|
-
autoMove: "stop" | "move" | "pause" | "error" | "not ready" | "vir";
|
|
3480
|
-
moveId: string;
|
|
3481
|
-
moveResult: string;
|
|
3482
|
-
dockMove: string;
|
|
3483
|
-
jogMove: "none";
|
|
3484
|
-
obs: "none" | "near" | "stuck" | "far" | "vir";
|
|
3485
|
-
pathState: "none" | "req_path" | "recv_path";
|
|
3486
|
-
step: number;
|
|
3487
|
-
multiId: string;
|
|
3488
|
-
multiState: string;
|
|
3489
|
-
};
|
|
3490
|
-
/** `mapLegacyMoveStatusToMoveStatus` 단일 합류 결과: pose는 항상 숫자(레거시 string·muscat number 모두 parseNumber로 통일) */
|
|
3491
|
-
type PoseMappedType = {
|
|
3492
|
-
x: number;
|
|
3493
|
-
y: number;
|
|
3494
|
-
rz: number;
|
|
3495
|
-
};
|
|
3496
|
-
type NodeMappedType = {
|
|
3497
|
-
id: string;
|
|
3498
|
-
name: string;
|
|
3499
|
-
state: string;
|
|
3500
|
-
pose: PoseMappedType;
|
|
3501
|
-
};
|
|
3502
|
-
/**
|
|
3503
|
-
* 루트 `pose`만 UI·MapEditor(`applyPose` 등)용 string 계약.
|
|
3504
|
-
* `curNode`·`goalNode`의 pose는 맵/좌표 연동 등에서 숫자로 쓰는 경로가 있어 `NodeMappedType` 그대로 둡니다.
|
|
3505
|
-
*/
|
|
3506
|
-
type PoseType = {
|
|
3507
|
-
x: string;
|
|
3508
|
-
y: string;
|
|
3509
|
-
rz: string;
|
|
3510
|
-
};
|
|
3511
|
-
type MoveStatusType = {
|
|
3512
|
-
moveState: MoveStateType;
|
|
3513
|
-
pose: PoseType;
|
|
3514
|
-
vel: {
|
|
3515
|
-
vx: number;
|
|
3516
|
-
vy: number;
|
|
3517
|
-
wz: number;
|
|
3518
|
-
};
|
|
3519
|
-
curNode: NodeMappedType;
|
|
3520
|
-
goalNode: NodeMappedType;
|
|
3521
|
-
};
|
|
3522
|
-
|
|
3523
|
-
/** FactoryMap용: 실제로는 pose만 사용 (FRS 등 pose-only 맵 주입 허용) */
|
|
3524
|
-
type MoveStatusMapValue = Pick<MoveStatusType, "pose">;
|
|
3525
|
-
|
|
3526
|
-
type RgbaColor = [number, number, number, number];
|
|
3527
|
-
|
|
3528
|
-
/** AMR별 글로벌/로컬 경로 웨이포인트(맵 미터 오프셋). */
|
|
3529
|
-
type AmrPathWaypointsDatum = {
|
|
3530
|
-
amrId: string;
|
|
3531
|
-
waypoints: [number, number][];
|
|
3532
|
-
};
|
|
3533
|
-
|
|
3534
|
-
type ConveyorFlowDirection = "forward" | "reverse";
|
|
3535
|
-
type ConveyorBeltItemTransform = {
|
|
3536
|
-
name?: string;
|
|
3537
|
-
flowDirection?: ConveyorFlowDirection;
|
|
3538
|
-
conveyorOffsetX?: number;
|
|
3539
|
-
conveyorOffsetY?: number;
|
|
3540
|
-
conveyorScale?: number;
|
|
3541
|
-
conveyorAngleDeg?: number;
|
|
3542
|
-
};
|
|
3543
|
-
type ConveyorBeltTransform = ConveyorBeltItemTransform & {
|
|
3544
|
-
conveyorBelts?: ConveyorBeltItemTransform[];
|
|
3545
|
-
};
|
|
3546
|
-
declare const CONVEYOR_BELT_IMAGE_BASE_GEOMETRY: {
|
|
3547
|
-
readonly centerX: 4.5;
|
|
3548
|
-
readonly centerY: -0.3;
|
|
3549
|
-
readonly width: 4;
|
|
3550
|
-
readonly height: number;
|
|
3551
|
-
};
|
|
3552
|
-
|
|
3553
|
-
type DockingStationItemTransform = {
|
|
3554
|
-
name?: string;
|
|
3555
|
-
dockingOffsetX?: number;
|
|
3556
|
-
dockingOffsetY?: number;
|
|
3557
|
-
dockingScale?: number;
|
|
3558
|
-
dockingAngleDeg?: number;
|
|
3559
|
-
};
|
|
3560
|
-
type DockingStationTransform = DockingStationItemTransform & {
|
|
3561
|
-
dockingStations?: DockingStationItemTransform[];
|
|
3562
|
-
};
|
|
3563
|
-
declare const DOCKING_STATION_IMAGE_BASE_GEOMETRY: {
|
|
3564
|
-
readonly width: number;
|
|
3565
|
-
readonly height: 0.82;
|
|
3566
|
-
};
|
|
3567
|
-
|
|
3568
|
-
type SafetyZoneType = "NO_ENTRY" | "IGNORE_LIDAR_2D" | "IGNORE_LIDAR_3D";
|
|
3569
|
-
type ZonePoint = [x: number, y: number] | {
|
|
3570
|
-
x: number;
|
|
3571
|
-
y: number;
|
|
3572
|
-
};
|
|
3573
|
-
type SafetyZoneInput = {
|
|
3574
|
-
id: string;
|
|
3575
|
-
name: string;
|
|
3576
|
-
type: SafetyZoneType;
|
|
3577
|
-
polygon: ZonePoint[];
|
|
3578
|
-
};
|
|
3579
|
-
type TrafficZone = {
|
|
3580
|
-
id: string;
|
|
3581
|
-
name: string;
|
|
3582
|
-
color: [number, number, number];
|
|
3583
|
-
polygon: {
|
|
3584
|
-
x: number;
|
|
3585
|
-
y: number;
|
|
3586
|
-
}[];
|
|
3587
|
-
};
|
|
3588
|
-
declare const SAFETY_ZONE_COLORS: Record<SafetyZoneType, number>;
|
|
3589
|
-
declare const parseTrafficZoneData: (zoneData: string | null | undefined) => TrafficZone[];
|
|
3590
|
-
declare const zoneColorNumberToCss: (color: number) => string;
|
|
3591
|
-
declare const trafficZoneColorToCss: (color: TrafficZone["color"]) => string;
|
|
3592
|
-
|
|
3593
|
-
type MapImageTransformGeometry = {
|
|
3594
|
-
id: string;
|
|
3595
|
-
label?: string;
|
|
3596
|
-
centerX: number;
|
|
3597
|
-
centerY: number;
|
|
3598
|
-
width: number;
|
|
3599
|
-
height: number;
|
|
3600
|
-
rotationDeg: number;
|
|
3601
|
-
preserveAspectRatio?: boolean;
|
|
3602
|
-
};
|
|
3603
|
-
|
|
3604
|
-
type TopoNode$4 = {
|
|
3605
|
-
id: string;
|
|
3606
|
-
name: string;
|
|
3607
|
-
pose: string | {
|
|
3608
|
-
x: number;
|
|
3609
|
-
y: number;
|
|
3610
|
-
z?: number;
|
|
3611
|
-
rx?: number;
|
|
3612
|
-
ry?: number;
|
|
3613
|
-
rz?: number;
|
|
3614
|
-
};
|
|
3615
|
-
links?: {
|
|
3616
|
-
id?: string;
|
|
3617
|
-
}[];
|
|
3618
|
-
type: string;
|
|
3619
|
-
info?: string;
|
|
3620
|
-
context?: string;
|
|
3621
|
-
features?: string[];
|
|
3622
|
-
};
|
|
3623
|
-
type FactoryMapProps = {
|
|
3624
|
-
tileUrlTemplate: string;
|
|
3625
|
-
backgroundImageUrl?: string;
|
|
3626
|
-
backgroundImageBounds?: [number, number, number, number] | [[number, number], [number, number], [number, number], [number, number]];
|
|
3627
|
-
minZoom?: number;
|
|
3628
|
-
maxZoom?: number;
|
|
3629
|
-
mapTopoData?: TopoNode$4[];
|
|
3630
|
-
/** 트래킹용 타깃 위치 (trackingAmrId 없을 때만 사용) */
|
|
3631
|
-
targetPosition?: {
|
|
3632
|
-
x: number;
|
|
3633
|
-
y: number;
|
|
3634
|
-
} | null;
|
|
3635
|
-
/** 트래킹 중인 AMR id. 있으면 IconLayer와 동일한(보간된) 데이터로 카메라 추적 */
|
|
3636
|
-
trackingAmrId?: string | null;
|
|
3637
|
-
/** 단발성 포커스용 위치 (노드/로봇 목록 클릭 시 잠깐 화면만 이동) */
|
|
3638
|
-
focusPosition?: {
|
|
3639
|
-
x: number;
|
|
3640
|
-
y: number;
|
|
3641
|
-
} | null;
|
|
3642
|
-
/** 노드 목록 클릭 시 맵에서 해당 노드를 잠시 테두리로 강조할 id. 일정 시간 후 자동 해제 */
|
|
3643
|
-
highlightedNodeId?: string | null;
|
|
3644
|
-
onGoalNodeClick?: (node: {
|
|
3645
|
-
id: string;
|
|
3646
|
-
name?: string;
|
|
3647
|
-
type: string;
|
|
3648
|
-
}) => void;
|
|
3649
|
-
moveStatusDataMap?: Map<string, MoveStatusMapValue | undefined>;
|
|
3650
|
-
/** AMR 목록 등에서 "이 로봇으로 시야 이동" 시 사용. 설정 시 moveStatusDataMap에서 위치 조회 후 포커스하고 onFocusAmrApplied 호출 */
|
|
3651
|
-
focusAmrId?: string | null;
|
|
3652
|
-
/** focusAmrId 적용 후 부모에서 focusAmrId 초기화할 때 호출 */
|
|
3653
|
-
onFocusAmrApplied?: () => void;
|
|
3654
|
-
/** AMR 아이콘·트래킹 보간 사용 여부. false면 수신값 즉시 반영(스냅) */
|
|
3655
|
-
useInterpolation: boolean;
|
|
3656
|
-
/** 페이지 이탈 시 true. 레이어를 비우고 리소스를 정리하여 메모리 해제를 촉진 */
|
|
3657
|
-
exiting?: boolean;
|
|
3658
|
-
/** 키맵 점군 (x,y 좌표 배열). 있으면 Scatter 레이어로 표시 */
|
|
3659
|
-
keymapContent?: {
|
|
3660
|
-
fileName: string;
|
|
3661
|
-
content: number[][];
|
|
3662
|
-
} | null;
|
|
3663
|
-
/** true면 keymap point cloud 레이어를 표시 */
|
|
3664
|
-
showKeymapPointCloudLayer?: boolean;
|
|
3665
|
-
/** topology에 포함된 Safety Zone */
|
|
3666
|
-
safetyZones?: readonly SafetyZoneInput[];
|
|
3667
|
-
/** 현재 map에 연결된 Traffic Zone JSON */
|
|
3668
|
-
trafficZoneData?: string | null;
|
|
3669
|
-
/** false면 Safety Zone 레이어를 표시하지 않음 */
|
|
3670
|
-
showSafetyZones?: boolean;
|
|
3671
|
-
/** false면 Traffic Zone 레이어를 표시하지 않음 */
|
|
3672
|
-
showTrafficZones?: boolean;
|
|
3673
|
-
/** LiDAR 클라우드 포인트 (절대 좌표계, [x, y, z]) - 대용량을 위해 이진 버퍼 사용 */
|
|
3674
|
-
lidarCloudPoints?: {
|
|
3675
|
-
positions: Float32Array;
|
|
3676
|
-
count: number;
|
|
3677
|
-
} | undefined;
|
|
3678
|
-
/** LiDAR 점멸 효과 사용 여부 */
|
|
3679
|
-
enableLidarFlashEffect?: boolean;
|
|
3680
|
-
/** 지도 드래그로 AMR 범위 선택 시 선택된 amr id 목록 전달. 빈 배열이면 선택 해제(ESC 등) */
|
|
3681
|
-
onAmrSelectionChange?: (amrIds: string[]) => void;
|
|
3682
|
-
/** Shift+드래그로 AMR 범위 선택을 시작할 때 호출. (검색 조건 초기화 등 외부 UI 동기화용) */
|
|
3683
|
-
onAmrSelectionStart?: () => void;
|
|
3684
|
-
/** Ctrl/Cmd+클릭으로 AMR 단일 토글 선택 시 호출. (맥: Command, Windows/Ubuntu: Ctrl) */
|
|
3685
|
-
onAmrToggleClick?: (amrId: string) => void;
|
|
3686
|
-
/** 지도/드래그로 선택된 AMR id 목록. 있으면 해당 AMR 아이콘을 선택 상태 색으로 표시 */
|
|
3687
|
-
selectedAmrIdsFromMap?: string[] | null;
|
|
3688
|
-
/** AMR 목록 클릭 등으로 포커스된 단일 AMR id (아이콘 강조용). 카메라 포커스용 focusAmrId와는 별도 */
|
|
3689
|
-
focusedAmrIdForIcon?: string | null;
|
|
3690
|
-
/** true면 AMR 이동 잔상(TripsLayer 꼬리)을 표시 */
|
|
3691
|
-
showAmrMovementTrail?: boolean;
|
|
3692
|
-
/** 컨베이어 PNG 위치·스케일·회전 조정 */
|
|
3693
|
-
conveyorBeltTransform?: ConveyorBeltTransform;
|
|
3694
|
-
/** 도킹 스테이션 위치·스케일·회전 조정 */
|
|
3695
|
-
dockingStationTransform?: DockingStationTransform;
|
|
3696
|
-
/** 컨베이어 벨트 아이콘 아틀라스 이미지 URL. 미제공 시 rb-components 내 기본 이미지 사용 */
|
|
3697
|
-
conveyorBeltIconAtlasUrl?: string;
|
|
3698
|
-
/** 도킹 스테이션 아이콘 아틀라스 이미지 URL */
|
|
3699
|
-
dockingStationIconAtlasUrl?: string;
|
|
3700
|
-
/** false면 컨베이어 벨트 레이어를 렌더링하지 않음 */
|
|
3701
|
-
showConveyorBelt?: boolean;
|
|
3702
|
-
/** false면 도킹 스테이션 레이어를 렌더링하지 않음 */
|
|
3703
|
-
showDockingStation?: boolean;
|
|
3704
|
-
/** 지도 표시 방식. control은 기존 마커/노드, real은 실제 AMR 이미지 표시용 확장값 */
|
|
3705
|
-
mapMode?: "control" | "real";
|
|
3706
|
-
/**
|
|
3707
|
-
* real 모드에서 사용할 AMR PNG 데이터 URL (base64 inline).
|
|
3708
|
-
* 제공 시 SVG 기반 real 아이콘 대신 실제 PNG 사진으로 아틀라스를 생성한다.
|
|
3709
|
-
*/
|
|
3710
|
-
amrIconPngDataUrl?: string;
|
|
3711
|
-
/** AMR id별 robot_model. real 모드 모델 이미지 분기에 사용한다. */
|
|
3712
|
-
amrRobotModelById?: ReadonlyMap<string, string>;
|
|
3713
|
-
/** robot_model prefix별 real 모드 이미지와 실제 크기. */
|
|
3714
|
-
amrModelIconVariants?: ReadonlyArray<{
|
|
3715
|
-
modelPrefix: string;
|
|
3716
|
-
pngDataUrl: string;
|
|
3717
|
-
pixelWidth: number;
|
|
3718
|
-
pixelHeight: number;
|
|
3719
|
-
sizeMeters: number;
|
|
3720
|
-
}>;
|
|
3721
|
-
layerColors?: Partial<{
|
|
3722
|
-
pointCloud: string;
|
|
3723
|
-
lidarSensor: string;
|
|
3724
|
-
localPath: string;
|
|
3725
|
-
globalPath: string;
|
|
3726
|
-
oneWayLink: string;
|
|
3727
|
-
twoWayLink: string;
|
|
3728
|
-
}>;
|
|
3729
|
-
/**
|
|
3730
|
-
* 뷰 회전 각(도). Deck.gl MapView `bearing`과 동일 — 월드(미터/포인트) 좌표는 그대로 두고 카메라만 회전.
|
|
3731
|
-
* 지정 시 해당 값이 우선(외부 제어). 미지정이면 내부 viewState.bearing 사용.
|
|
3732
|
-
*/
|
|
3733
|
-
viewBearingDeg?: number;
|
|
3734
|
-
/** AMR별 global path(맵 미터 웨이포인트) */
|
|
3735
|
-
amrGlobalPaths?: AmrPathWaypointsDatum[];
|
|
3736
|
-
/** AMR별 local path */
|
|
3737
|
-
amrLocalPaths?: AmrPathWaypointsDatum[];
|
|
3738
|
-
/** 줌 컨트롤 오버레이 위치 스타일 오버라이드 */
|
|
3739
|
-
zoomControlsStyle?: CSSProperties;
|
|
3740
|
-
/** 외부에서 초기 진입 시 적용할 메인 뷰 상태 */
|
|
3741
|
-
initialMainViewState?: {
|
|
3742
|
-
longitude: number;
|
|
3743
|
-
latitude: number;
|
|
3744
|
-
zoom: number;
|
|
3745
|
-
bearing: number;
|
|
3746
|
-
} | null;
|
|
3747
|
-
/** 현재 메인 뷰 상태 변경 알림 */
|
|
3748
|
-
onMainViewStateChange?: (viewState: {
|
|
3749
|
-
longitude: number;
|
|
3750
|
-
latitude: number;
|
|
3751
|
-
zoom: number;
|
|
3752
|
-
bearing: number;
|
|
3753
|
-
}) => void;
|
|
3754
|
-
/** false면 우상단 minimap을 렌더링하지 않음 */
|
|
3755
|
-
showMiniMap?: boolean;
|
|
3756
|
-
/** AMR 툴팁에 표시할 번역된 라벨 */
|
|
3757
|
-
tooltipLabels?: {
|
|
3758
|
-
currentNode?: string;
|
|
3759
|
-
goalNode?: string;
|
|
3760
|
-
};
|
|
3761
|
-
/** 지도 위 이미지형 요소를 직접 이동·크기 조절·회전하기 위한 편집 컨트롤 */
|
|
3762
|
-
imageTransformControl?: MapImageTransformGeometry | null;
|
|
3763
|
-
/** 지도 위 이미지형 요소의 편집 결과 */
|
|
3764
|
-
onImageTransformControlChange?: (geometry: MapImageTransformGeometry) => void;
|
|
3765
|
-
/** DeckGL WebGL context 생성·소실·복구·정리 진단 이벤트 */
|
|
3766
|
-
onWebGLContextEvent?: (event: FactoryMapWebGLContextEvent) => void;
|
|
3767
|
-
};
|
|
3768
|
-
type FactoryMapWebGLContextEvent = {
|
|
3769
|
-
phase: "created" | "lost" | "restored" | "finalized";
|
|
3770
|
-
activeContexts: number;
|
|
3771
|
-
vendor?: string;
|
|
3772
|
-
renderer?: string;
|
|
3773
|
-
version?: string;
|
|
3774
|
-
};
|
|
3775
|
-
declare const FactoryMap: ({ tileUrlTemplate, backgroundImageUrl, backgroundImageBounds, minZoom, maxZoom, mapTopoData, targetPosition, trackingAmrId, focusPosition, highlightedNodeId, onGoalNodeClick, moveStatusDataMap, focusAmrId, onFocusAmrApplied, useInterpolation, exiting, keymapContent, showKeymapPointCloudLayer, safetyZones, trafficZoneData, showSafetyZones, showTrafficZones, lidarCloudPoints, enableLidarFlashEffect, onAmrSelectionChange, onAmrSelectionStart, onAmrToggleClick, selectedAmrIdsFromMap, focusedAmrIdForIcon, showAmrMovementTrail, conveyorBeltTransform, dockingStationTransform, conveyorBeltIconAtlasUrl, dockingStationIconAtlasUrl, showConveyorBelt, showDockingStation, mapMode, amrIconPngDataUrl, amrRobotModelById, amrModelIconVariants, layerColors, viewBearingDeg, amrGlobalPaths, amrLocalPaths, zoomControlsStyle, initialMainViewState, onMainViewStateChange, showMiniMap, tooltipLabels, imageTransformControl, onImageTransformControlChange, onWebGLContextEvent, }: FactoryMapProps) => react_jsx_runtime.JSX.Element;
|
|
3776
|
-
|
|
3777
|
-
type TopoNode$3 = {
|
|
3778
|
-
id: string;
|
|
3779
|
-
name: string;
|
|
3780
|
-
pose: string | {
|
|
3781
|
-
x: number;
|
|
3782
|
-
y: number;
|
|
3783
|
-
z?: number;
|
|
3784
|
-
rx?: number;
|
|
3785
|
-
ry?: number;
|
|
3786
|
-
rz?: number;
|
|
3787
|
-
};
|
|
3788
|
-
links?: {
|
|
3789
|
-
id?: string;
|
|
3790
|
-
}[];
|
|
3791
|
-
type: string;
|
|
3792
|
-
info?: string;
|
|
3793
|
-
context?: string;
|
|
3794
|
-
features?: string[];
|
|
3795
|
-
};
|
|
3796
|
-
type Params$3 = {
|
|
3797
|
-
mapTopoData: TopoNode$3[];
|
|
3798
|
-
/** 노드 목록 클릭 등으로 포커스된 노드 id. 일치하면 테두리로 강조 */
|
|
3799
|
-
highlightedNodeId?: string;
|
|
3800
|
-
};
|
|
3801
|
-
declare const createArucoLayer: ({ mapTopoData, highlightedNodeId, }: Params$3) => PolygonLayer<any, {
|
|
3802
|
-
id: "aruco-nodes";
|
|
3803
|
-
data: {
|
|
3804
|
-
polygon: number[][];
|
|
3805
|
-
id: string;
|
|
3806
|
-
name: string;
|
|
3807
|
-
type: string;
|
|
3808
|
-
detail: string;
|
|
3809
|
-
features: string[];
|
|
3810
|
-
linkCount: number;
|
|
3811
|
-
}[];
|
|
3812
|
-
coordinateSystem: 2;
|
|
3813
|
-
coordinateOrigin: [number, number, number];
|
|
3814
|
-
getPolygon: (d: any) => any;
|
|
3815
|
-
getFillColor: [number, number, number, number];
|
|
3816
|
-
stroked: true;
|
|
3817
|
-
getLineColor: (d: any) => [number, number, number, number];
|
|
3818
|
-
getLineWidth: (d: any) => 0.04 | 0.02;
|
|
3819
|
-
lineWidthUnits: "meters";
|
|
3820
|
-
pickable: true;
|
|
3821
|
-
autoHighlight: true;
|
|
3822
|
-
highlightColor: number[];
|
|
3823
|
-
}>;
|
|
3824
|
-
|
|
3825
|
-
type TopoNode$2 = {
|
|
3826
|
-
id: string;
|
|
3827
|
-
name: string;
|
|
3828
|
-
pose: string | {
|
|
3829
|
-
x: number;
|
|
3830
|
-
y: number;
|
|
3831
|
-
z?: number;
|
|
3832
|
-
rx?: number;
|
|
3833
|
-
ry?: number;
|
|
3834
|
-
rz?: number;
|
|
3835
|
-
};
|
|
3836
|
-
links?: {
|
|
3837
|
-
id?: string;
|
|
3838
|
-
}[];
|
|
3839
|
-
type: string;
|
|
3840
|
-
info?: string;
|
|
3841
|
-
context?: string;
|
|
3842
|
-
features?: string[];
|
|
3843
|
-
};
|
|
3844
|
-
type Params$2 = {
|
|
3845
|
-
mapTopoData: TopoNode$2[];
|
|
3846
|
-
onGoalNodeClick?: (node: {
|
|
3847
|
-
id: string;
|
|
3848
|
-
name?: string;
|
|
3849
|
-
type: string;
|
|
3850
|
-
}) => void;
|
|
3851
|
-
highlightedNodeId?: string;
|
|
3852
|
-
mapMode?: "control" | "real";
|
|
3853
|
-
};
|
|
3854
|
-
declare const createGoalLayer: ({ mapTopoData, onGoalNodeClick, highlightedNodeId, mapMode, }: Params$2) => Layer[];
|
|
3855
|
-
|
|
3856
|
-
type TopoNode$1 = {
|
|
3857
|
-
id: string;
|
|
3858
|
-
pose: string | {
|
|
3859
|
-
x: number;
|
|
3860
|
-
y: number;
|
|
3861
|
-
z?: number;
|
|
3862
|
-
rx?: number;
|
|
3863
|
-
ry?: number;
|
|
3864
|
-
rz?: number;
|
|
3865
|
-
};
|
|
3866
|
-
links?: Array<string | {
|
|
3867
|
-
id?: string | {
|
|
3868
|
-
id?: string;
|
|
3869
|
-
};
|
|
3870
|
-
}>;
|
|
3871
|
-
};
|
|
3872
|
-
type Params$1 = {
|
|
3873
|
-
mapTopoData: TopoNode$1[];
|
|
3874
|
-
oneWayColor?: RgbaColor;
|
|
3875
|
-
twoWayColor?: RgbaColor;
|
|
3876
|
-
};
|
|
3877
|
-
declare const createLinkLayer: ({ mapTopoData, oneWayColor, twoWayColor, }: Params$1) => PathLayer<any, {
|
|
3878
|
-
id: "links";
|
|
3879
|
-
data: {
|
|
3880
|
-
path: Array<[number, number]>;
|
|
3881
|
-
color: [number, number, number, number];
|
|
3882
|
-
width: number;
|
|
3883
|
-
sourceId: string;
|
|
3884
|
-
targetId: string;
|
|
3885
|
-
isDirectionalMark?: boolean;
|
|
3886
|
-
}[];
|
|
3887
|
-
coordinateSystem: 2;
|
|
3888
|
-
coordinateOrigin: [number, number, number];
|
|
3889
|
-
getPath: (d: any) => any;
|
|
3890
|
-
getColor: (d: any) => any;
|
|
3891
|
-
getWidth: (d: any) => any;
|
|
3892
|
-
widthUnits: "meters";
|
|
3893
|
-
widthMinPixels: 1;
|
|
3894
|
-
pickable: false;
|
|
3895
|
-
autoHighlight: false;
|
|
3896
|
-
}>;
|
|
3897
|
-
|
|
3898
|
-
type TopoNode = {
|
|
3899
|
-
id: string;
|
|
3900
|
-
name: string;
|
|
3901
|
-
pose: string | {
|
|
3902
|
-
x: number;
|
|
3903
|
-
y: number;
|
|
3904
|
-
z?: number;
|
|
3905
|
-
rx?: number;
|
|
3906
|
-
ry?: number;
|
|
3907
|
-
rz?: number;
|
|
3908
|
-
};
|
|
3909
|
-
links?: {
|
|
3910
|
-
id?: string;
|
|
3911
|
-
}[];
|
|
3912
|
-
type: string;
|
|
3913
|
-
info?: string;
|
|
3914
|
-
context?: string;
|
|
3915
|
-
features?: string[];
|
|
3916
|
-
};
|
|
3917
|
-
type Params = {
|
|
3918
|
-
mapTopoData: TopoNode[];
|
|
3919
|
-
/** 노드 목록 클릭 등으로 포커스된 노드 id. 일치하면 테두리로 강조 */
|
|
3920
|
-
highlightedNodeId?: string;
|
|
3921
|
-
mapMode?: "control" | "real";
|
|
3922
|
-
};
|
|
3923
|
-
declare const createRouteLayer: ({ mapTopoData, highlightedNodeId, mapMode, }: Params) => Layer | null;
|
|
3924
|
-
|
|
3925
|
-
type TileKey = string;
|
|
3926
|
-
type KeymapTileIndex = Map<TileKey, number[][]>;
|
|
3927
|
-
declare const buildKeymapTileIndex: (keymapContent: {
|
|
3928
|
-
content: number[][];
|
|
3929
|
-
} | null | undefined, minZoom: number, maxZoom: number) => KeymapTileIndex;
|
|
3930
|
-
|
|
3931
|
-
declare const createKeymapPointCloudLayerByLod: ({ keymapTileIndex, zoom, longitude, latitude, viewportWidth, viewportHeight, pointSize, layerId, color, maxVisiblePoints, }: {
|
|
3932
|
-
keymapTileIndex: KeymapTileIndex;
|
|
3933
|
-
zoom: number;
|
|
3934
|
-
longitude: number;
|
|
3935
|
-
latitude: number;
|
|
3936
|
-
viewportWidth: number;
|
|
3937
|
-
viewportHeight: number;
|
|
3938
|
-
pointSize?: number;
|
|
3939
|
-
layerId?: string;
|
|
3940
|
-
color?: RgbaColor;
|
|
3941
|
-
maxVisiblePoints?: number;
|
|
3942
|
-
}) => PointCloudLayer<unknown, {}>;
|
|
3943
|
-
|
|
3944
|
-
declare const AMR_ICON_VARIANTS: readonly [{
|
|
3945
|
-
readonly key: "marker";
|
|
3946
|
-
readonly color: "#111111";
|
|
3947
|
-
readonly overlayOpacity: 0;
|
|
3948
|
-
}, {
|
|
3949
|
-
readonly key: "marker-selected";
|
|
3950
|
-
readonly color: "#F2E89A";
|
|
3951
|
-
readonly overlayOpacity: 0.3;
|
|
3952
|
-
}, {
|
|
3953
|
-
readonly key: "marker-focused";
|
|
3954
|
-
readonly color: "#155dfc";
|
|
3955
|
-
readonly overlayOpacity: 0.3;
|
|
3956
|
-
}];
|
|
3957
|
-
type AmrIconKey = (typeof AMR_ICON_VARIANTS)[number]["key"];
|
|
3958
|
-
type AmrIconMapping = {
|
|
3959
|
-
x: number;
|
|
3960
|
-
y: number;
|
|
3961
|
-
width: number;
|
|
3962
|
-
height: number;
|
|
3963
|
-
anchorX: number;
|
|
3964
|
-
anchorY: number;
|
|
3965
|
-
mask: false;
|
|
3966
|
-
};
|
|
3967
|
-
type AmrIconMode = "control" | "real";
|
|
3968
|
-
declare const AMR_ICON_MAPPING: Record<AmrIconKey, AmrIconMapping>;
|
|
3969
|
-
declare const getAmrIcon: (mode?: AmrIconMode) => string;
|
|
3970
|
-
|
|
3971
3539
|
interface PluginUIServices {
|
|
3972
3540
|
alert: (params: {
|
|
3973
3541
|
title?: string;
|
|
@@ -4070,5 +3638,5 @@ declare function useRbFormData<T = unknown>(): T | undefined;
|
|
|
4070
3638
|
*/
|
|
4071
3639
|
declare function useRbSave<T = unknown>(getPayload: () => T): void;
|
|
4072
3640
|
|
|
4073
|
-
export {
|
|
4074
|
-
export type { PropsType$t as AccordionProps, AccordionVariantProps,
|
|
3641
|
+
export { AmberWarningCircleIcon, GreenCheckCircleIcon, HStack, RBSelectOption as Option, RANGE_DATE_PRESETS, Accordion as RBAccordion, AccordionGroup as RBAccordionGroup, RBAlert, RBBadge, RBBattery, RBCard, RBCardAction, RBCardContent, RBCardDescription, RBCardFooter, RBCardHeader, RBCardHeaderText, RBCardPreviewSlot, RBCardTitle, CheckBox as RBCheckBox, RBCheckIconButton, RBCheckLabelButton, RBChipItem, RBChipTab, RBChipsBoxItem, RBChipsBoxTab, RBCommand, RBCommandDialog, RBCommandEmpty, RBCommandGroup, RBCommandInput, RBCommandItem, RBCommandList, RBCommandSelected, RBCommandSeparator, RBCommandShortcut, RBConfirm, DateInput as RBDateInput, RBDatePickerFooterButton, RBDatePickerFooterTime, RBDatePickerPreset, RBDialog, RBDialogClose, RBDialogContent, RBDialogDescription, RBDialogFooter, RBDialogHeader, RBDialogOverlay, RBDialogPortal, RBDialogTitle, RBDialogTrigger, RBDim, RBDivider, RBDrawer, RBDrawerBody, RBDrawerClose, RBDrawerContent, RBDrawerDescription, RBDrawerFooter, RBDrawerHeader, RBDrawerOverlay, RBDrawerPortal, RBDrawerTitle, RBDrawerTrigger, RBDropdownMenu, RBDropdownMenuCheckboxItem, RBDropdownMenuContent, RBDropdownMenuGroup, RBDropdownMenuItem, RBDropdownMenuLabel, RBDropdownMenuPortal, RBDropdownMenuRadioGroup, RBDropdownMenuRadioItem, RBDropdownMenuSeparator, RBDropdownMenuShortcut, RBDropdownMenuSub, RBDropdownMenuSubContent, RBDropdownMenuSubTrigger, RBDropdownMenuTrigger, RBEmptyView, RBIconButton, index as RBIcons, RBInlineLabelButton, RBJoyStick, RBLabelButton, RBLight, RBMenubar, RBMenubarCheckboxItem, RBMenubarContent, RBMenubarGroup, RBMenubarItem, RBMenubarLabel, RBMenubarMenu, RBMenubarPortal, RBMenubarRadioGroup, RBMenubarRadioItem, RBMenubarSeparator, RBMenubarShortcut, RBMenubarSub, RBMenubarSubContent, RBMenubarSubTrigger, RBMenubarTrigger, RBModal, MultiRangeInput as RBMultiRangeInput, RBNoData, RBPagination, RBPopover, RBPopoverAnchor, RBPopoverContent, RBPopoverPlacements, RBPopoverTrigger, RBPrompt, RBQrBarCodeGuideModal, RBRadioBox, RBRadioButton, RangeDateInput as RBRangeDateInput, RBResizable, RBResizableHandle, RBResizablePanel, RBResizable as RBResizablePanelGroup, RBSelectBox, RBSelectDropBox, RBSelectOption, Calendar as RBShadCalendar, RBSheet, RBSheetClose, RBSheetContent, RBSheetDescription, RBSheetFooter, RBSheetHeader, RBSheetOverlay, RBSheetPortal, RBSheetTitle, RBSheetTrigger, SideNumberInput as RBSideNumberInput, RBSimpleToast, RBSlider, RBSpinner, RBSwitch, RBSwitchField, RBTab, RBTabItem, RBTable, RBTableRow, RBTabs, RBTabsContent, RBTabsList, RBTabsTrigger, RBTdColumn, RBTdExpend, RBTextArea, RBTextField, RBTextHelperText, RBTextInput, RBTextLabel, RBToggle, RBToggleGroup, RBToggleGroupItem, RBTooltip, VStack, accordionVariants, badgeRootVariants, batteryFillVariants, cardRootVariants, checkBoxRootVariants, checkIconButtonVariants, checkLabelButtonVariants, chipRootVariants, dividerVariants, emptyViewRootVariants, getRangePresetDates, iconButtonVariants, inlineLabelButtonVariants, labelButtonVariants, lightColors, lightSizes, radioRootVariants, selectTriggerVariants, sideNumberInputVariants, tabRootVariants, textAreaVariants, textInputVariants, useRb, useRbFormData, useRbSave };
|
|
3642
|
+
export type { PropsType$t as AccordionProps, AccordionVariantProps, PropsType$a as BadgeProps, BadgeVariantProps, BatteryProps, BatteryVariantProps, CardVariantProps, Props$h as CheckBoxProps, CheckBoxVariantProps, Props$g as CheckIconButtonProps, PropsType$h as ChipItemProps, PropsType$i as ChipTabProps, ChipVariantProps, PropsType$f as ChipsBoxItemProps, PropsType$g as ChipsBoxTabProps, Props$d as DateInputProps, PropsType$2 as DatePickerFooterButtonProps, PropsType$4 as DatePickerPresetProps, DatePickerTimeValue, DatePickerValue, PropsType$q as DimProps, DividerProps, DividerVariantProps, DrawerSide, DropdownItemVariant, PropsType$9 as EmptyViewProps, EmptyViewVariantProps, PropsType$b as ExpendProps, PropsType$1 as HStackProps, HelperTone, IconButtonProps, IconButtonVariantProps, InlineLabelButtonProps, InlineLabelButtonVariantProps, Props$3 as JoyStickProps, LabelButtonProps, LabelButtonVariantProps, LightProps, LightVariantProps, MenubarItemVariant, Props$4 as MultiRangeInputProps, Props$7 as PaginationProps, Props$b as RBAlertProps, RBCardContentProps, RBCardFooterProps, RBCardHeaderProps, RBCardHeaderTextProps, RBCardPreviewSlotProps, RBCardProps, RBCardTitleProps, Props$a as RBConfirmProps, RBDialogContentProps, RBDrawerContentProps, RBDrawerProps, RBPopoverContentProps, RBPopoverPlacement, Props$9 as RBPromptProps, PropsType$l as RBRadioBoxProps, RBResizableHandleProps, RBResizablePanelProps, RBResizableProps, PropsType$p as RBSelectBoxProps, RBSelectBoxRef, RBSheetContentProps, Props$1 as RBSimpleToastProps, RBSliderProps, PropsType$5 as RBSwitchFieldProps, RBSwitchProps, RBTabsContentProps, RBTabsListProps, RBTabsProps, RBTabsTriggerProps, Props$e as RBTextAreaProps, RBToggleGroupItemProps, RBToggleGroupProps, RBToggleProps, Props$5 as RadioButtonProps, RadioVariantProps, Props$c as RangeDateInputProps, RangePresetKey, RbJoyStickEventData, RbSdk, PropsType$o as SelectOptionProps, SelectTriggerVariantProps, SheetSide, Props$6 as SideNumberInputProps, SideNumberInputVariantProps, SwitchControlPlacement, SwitchSize, SwitchTone, SwitchType, PropsType$j as TabItemProps, PropsType$k as TabProps, TabVariantProps, PropsType$e as TableProps, PropsType$d as TableRowProps, TabsSize, TabsVariant, PropsType$c as TdColumnProps, TextAreaVariantProps, PropsType$7 as TextFieldProps, PropsType$r as TextHelperTextProps, PropsType$s as TextInputProps, TextInputVariantProps, PropsType$8 as TextLabelProps, ToggleGroupOrientation, ToggleVariantProps, PropsType$6 as TooltipProps, PropsType as VStackProps };
|
package/package.json
CHANGED
package/src/manifest.ts
CHANGED
|
@@ -54,7 +54,7 @@ export interface PluginAction {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/** Allowed variable value types exposed to pyfm. */
|
|
57
|
-
export const VARIABLE_TYPES = ["number", "string", "array"] as const;
|
|
57
|
+
export const VARIABLE_TYPES = ["number", "string", "boolean", "array"] as const;
|
|
58
58
|
|
|
59
59
|
export type PluginVariableType = (typeof VARIABLE_TYPES)[number];
|
|
60
60
|
|
|
@@ -64,7 +64,7 @@ export interface PluginVariable {
|
|
|
64
64
|
name: `RBP_${string}`;
|
|
65
65
|
type: PluginVariableType;
|
|
66
66
|
/** Initial value — must match `type`. */
|
|
67
|
-
init: number | string | any[];
|
|
67
|
+
init: number | string | boolean | any[];
|
|
68
68
|
/** Optional. Without it the UI cannot explain what the variable is for. */
|
|
69
69
|
description?: string | Record<string, string>;
|
|
70
70
|
}
|