@nonoun/native-ai 1.0.19 → 1.0.23
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/a2ui/a2ui-element.d.ts.map +1 -1
- package/dist/a2ui/index.d.ts +2 -2
- package/dist/a2ui/index.d.ts.map +1 -1
- package/dist/a2ui/protocol/a2ui-component-map.d.ts +23 -0
- package/dist/a2ui/protocol/a2ui-component-map.d.ts.map +1 -1
- package/dist/a2ui/protocol/a2ui-composition-map.d.ts +101 -0
- package/dist/a2ui/protocol/a2ui-composition-map.d.ts.map +1 -0
- package/dist/a2ui/protocol/index.d.ts +3 -1
- package/dist/a2ui/protocol/index.d.ts.map +1 -1
- package/dist/a2ui/session/catalog.d.ts.map +1 -1
- package/dist/chat/chat-input-element.d.ts +3 -0
- package/dist/chat/chat-input-element.d.ts.map +1 -1
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat/message/chat-input-structured-element.d.ts.map +1 -1
- package/dist/chat/message/chat-message-seed-element.d.ts.map +1 -1
- package/dist/chat/register.d.ts +2 -2
- package/dist/chat/register.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/native-ai.css +159 -14
- package/dist/native-ai.js +1729 -231
- package/dist/register.js +976 -225
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2ui-element.d.ts","sourceRoot":"","sources":["../../src/a2ui/a2ui-element.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAA+C,MAAM,mBAAmB,CAAC;AAa/F,OAAO,8BAA8B,CAAC;AAqFtC,qBAAa,KAAM,SAAQ,aAAa;;IACtC,MAAM,CAAC,kBAAkB,WAAc;IAyDvC,IAAI,MAAM,IAAI,MAAM,CAA+B;IACnD,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAKrB;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASpF,OAAO,IAAI,IAAI;IACf,IAAI,IAAI,IAAI;IACZ,QAAQ,IAAI,IAAI;IAChB,KAAK,IAAI,IAAI;IAIb,KAAK,IAAI,IAAI;IAwJb,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"a2ui-element.d.ts","sourceRoot":"","sources":["../../src/a2ui/a2ui-element.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAA+C,MAAM,mBAAmB,CAAC;AAa/F,OAAO,8BAA8B,CAAC;AAqFtC,qBAAa,KAAM,SAAQ,aAAa;;IACtC,MAAM,CAAC,kBAAkB,WAAc;IAyDvC,IAAI,MAAM,IAAI,MAAM,CAA+B;IACnD,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,EAKrB;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IASpF,OAAO,IAAI,IAAI;IACf,IAAI,IAAI,IAAI;IACZ,QAAQ,IAAI,IAAI;IAChB,KAAK,IAAI,IAAI;IAIb,KAAK,IAAI,IAAI;IAwJb,QAAQ,IAAI,IAAI;CAq3CjB"}
|
package/dist/a2ui/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A2UIAdapter, createA2UIAdapter, SurfaceManager, createSurfaceManager, resolveJsonPointer, setJsonPointer, a2uiToUINode, uiNodeToA2UI, conversionToPlan, resolveNativeTag, resolveA2UIType, COMPONENT_MAP, getSupportedTypes, textVariantTag, textFieldInputType, dateTimeInputType, isDataBinding, isCreateSurface, isUpdateComponents, isUpdateDataModel, isDeleteSurface, isCatalogRequest, isCatalogResponse, isActionMessage, isErrorMessage, parseServerMessage, WebSocketTransport, SSETransport, createWebSocketTransport, createSSETransport, } from './protocol/index.ts';
|
|
2
|
-
export type { A2UIAdapterOptions, SurfaceState, ConversionResult, DataBindingEntry, ToUINodeOptions, ToA2UIOptions, ComponentMapping, ChildStrategy, A2UIProtocolVersion, A2UIServerMessage, A2UICreateSurface, A2UIUpdateComponents, A2UIUpdateDataModel, A2UIDeleteSurface, A2UICatalogRequest, A2UICatalogResponse, A2UIClientMessage, A2UIActionMessage, A2UIErrorMessage, A2UIComponent, A2UIComponentAction, A2UIDataBinding, A2UIStandardType, TransportState, TransportEvents, WebSocketTransportOptions, SSETransportOptions, } from './protocol/index.ts';
|
|
1
|
+
export { A2UIAdapter, createA2UIAdapter, SurfaceManager, createSurfaceManager, resolveJsonPointer, setJsonPointer, a2uiToUINode, uiNodeToA2UI, conversionToPlan, ComponentRegistry, defaultRegistry, resolveNativeTag, resolveA2UIType, COMPONENT_MAP, getSupportedTypes, getComponentCategory, getCompatibleTypes, textVariantTag, textFieldInputType, dateTimeInputType, CompositionRegistry, defaultCompositionRegistry, COMPOSITION_MAP, resolveComponent, isDataBinding, isCreateSurface, isUpdateComponents, isUpdateDataModel, isDeleteSurface, isCatalogRequest, isCatalogResponse, isActionMessage, isErrorMessage, parseServerMessage, WebSocketTransport, SSETransport, createWebSocketTransport, createSSETransport, } from './protocol/index.ts';
|
|
2
|
+
export type { A2UIAdapterOptions, SurfaceState, ConversionResult, DataBindingEntry, ToUINodeOptions, ToA2UIOptions, ComponentMapping, ChildStrategy, RegistrySnapshot, EventSpec, PropertySpec, MethodSpec, CompositionSpec, CompositionTemplate, TemplateNode, PropDelegation, StateProjection, EventBubble, CompositionGap, A2UIProtocolVersion, A2UIServerMessage, A2UICreateSurface, A2UIUpdateComponents, A2UIUpdateDataModel, A2UIDeleteSurface, A2UICatalogRequest, A2UICatalogResponse, A2UIClientMessage, A2UIActionMessage, A2UIErrorMessage, A2UIComponent, A2UIComponentAction, A2UIDataBinding, A2UIStandardType, TransportState, TransportEvents, WebSocketTransportOptions, SSETransportOptions, } from './protocol/index.ts';
|
|
3
3
|
export type { A2UIKernelBridge, UINode, UIPlan, PatchOp, UIPatch, PlanResult, CommandSource, Command, CommandFilter, CommandHandler, } from './protocol/kernel-bridge.ts';
|
|
4
4
|
export { installA2UI } from './install.ts';
|
|
5
5
|
export { NA2UI } from './a2ui-element.ts';
|
package/dist/a2ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EACxE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAC5C,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EACxE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAC5C,iBAAiB,EAAE,eAAe,EAClC,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EACpK,mBAAmB,EAAE,0BAA0B,EAAE,eAAe,EAAE,gBAAgB,EAClF,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EACrE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EACpD,eAAe,EAAE,cAAc,EAAE,kBAAkB,EACnD,kBAAkB,EAAE,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,GAC/E,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,kBAAkB,EAAE,YAAY,EAChC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAClE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EACtF,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAChH,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAC/E,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAC/E,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EACtD,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EACrE,cAAc,EAAE,eAAe,EAAE,yBAAyB,EAAE,mBAAmB,GAChF,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,gBAAgB,EAChB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAC5C,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,GACtD,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -10,6 +10,23 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { Signal } from '@nonoun/native-ui';
|
|
12
12
|
export type ChildStrategy = 'children' | 'textContent' | 'slot-label' | 'none';
|
|
13
|
+
export interface EventSpec {
|
|
14
|
+
readonly event: string;
|
|
15
|
+
readonly detail?: Readonly<Record<string, string>>;
|
|
16
|
+
readonly description: string;
|
|
17
|
+
}
|
|
18
|
+
export interface PropertySpec {
|
|
19
|
+
readonly attr: string;
|
|
20
|
+
readonly type: string;
|
|
21
|
+
readonly reactive?: boolean;
|
|
22
|
+
readonly note?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface MethodSpec {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly params?: Readonly<Record<string, string>>;
|
|
27
|
+
readonly returns?: string;
|
|
28
|
+
readonly description: string;
|
|
29
|
+
}
|
|
13
30
|
export interface ComponentMapping {
|
|
14
31
|
readonly a2uiType: string;
|
|
15
32
|
readonly nativeTag: string;
|
|
@@ -21,6 +38,12 @@ export interface ComponentMapping {
|
|
|
21
38
|
readonly variantMap?: Readonly<Record<string, string>>;
|
|
22
39
|
/** The native-ui event name that maps to A2UI action */
|
|
23
40
|
readonly actionEvent?: string;
|
|
41
|
+
/** Full event surface — supersedes actionEvent when present. */
|
|
42
|
+
readonly events?: readonly EventSpec[];
|
|
43
|
+
/** Full property surface — supersedes propertyMap when present. */
|
|
44
|
+
readonly properties?: readonly PropertySpec[];
|
|
45
|
+
/** Imperative methods on the rendered element. */
|
|
46
|
+
readonly methods?: readonly MethodSpec[];
|
|
24
47
|
}
|
|
25
48
|
export interface RegistrySnapshot {
|
|
26
49
|
readonly mappings: ComponentMapping[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2ui-component-map.d.ts","sourceRoot":"","sources":["../../../src/a2ui/protocol/a2ui-component-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAI/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,wDAAwD;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"a2ui-component-map.d.ts","sourceRoot":"","sources":["../../../src/a2ui/protocol/a2ui-component-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAI/E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,wDAAwD;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,mEAAmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC9C,kDAAkD;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CAC1C;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAID,qBAAa,iBAAiB;;gBAMhB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAYhG,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAA0B;IAIvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAC/C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAC1B,IAAI,IAAI,IAAI,MAAM,CAA+B;IACjD,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAChC,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;IAC5C,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,IAAI,GAAG,IAAI;IAGxG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAIjE,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAO,GAAG,IAAI;IAKnD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI;IASlF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ9B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOrD,MAAM,IAAI,gBAAgB;IAO1B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB;IAI1D,KAAK,IAAI,iBAAiB;IAM1B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAI3D,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI;IAiC1F,iBAAiB,IAAI,SAAS,MAAM,EAAE;IAItC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI9C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE;CAsBxD;AAqhBD,eAAO,MAAM,eAAe,mBAA8D,CAAC;AAE3F,kDAAkD;AAClD,eAAO,MAAM,aAAa,EAAE,iBAAmC,CAAC;AAIhE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAE1E;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC5C,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAEtE;AAeD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvD;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,CAAC,EAAE,OAAO,EACpB,UAAU,CAAC,EAAE,OAAO,GACnB,MAAM,CAIR;AAWD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2UI Composition Map
|
|
3
|
+
*
|
|
4
|
+
* Bridge between abstract A2UI schema types and native-ui primitives.
|
|
5
|
+
* Sits above the Component Map — while the Component Map handles 1:1
|
|
6
|
+
* mappings (A2UI type → native tag), the Composition Map handles
|
|
7
|
+
* complex types that require assembling multiple primitives into a
|
|
8
|
+
* coordinated template with prop delegation, state projection,
|
|
9
|
+
* and event bubbling.
|
|
10
|
+
*
|
|
11
|
+
* The `CompositionRegistry` class provides a mutable registry with
|
|
12
|
+
* change tracking via a signal. The default singleton
|
|
13
|
+
* (`defaultCompositionRegistry`) preserves backward compatibility.
|
|
14
|
+
*/
|
|
15
|
+
import type { Signal } from '@nonoun/native-ui';
|
|
16
|
+
import type { ComponentMapping, ComponentRegistry } from './a2ui-component-map.ts';
|
|
17
|
+
export interface TemplateNode {
|
|
18
|
+
readonly role: string;
|
|
19
|
+
readonly primitiveType: string;
|
|
20
|
+
readonly staticProps?: Readonly<Record<string, unknown>>;
|
|
21
|
+
readonly children?: readonly TemplateNode[];
|
|
22
|
+
readonly repeatFrom?: string;
|
|
23
|
+
}
|
|
24
|
+
export type CompositionTemplate = TemplateNode;
|
|
25
|
+
export interface PropDelegation {
|
|
26
|
+
readonly from: string;
|
|
27
|
+
readonly toRole: string;
|
|
28
|
+
readonly toProp: string;
|
|
29
|
+
readonly transform?: 'direct' | 'variantMap' | 'boolean' | 'count' | 'template';
|
|
30
|
+
readonly templateString?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface StateProjection {
|
|
33
|
+
readonly compositeState: string;
|
|
34
|
+
readonly childStates: Readonly<Record<string, string | Readonly<Record<string, unknown>>>>;
|
|
35
|
+
readonly description?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface EventBubble {
|
|
38
|
+
readonly fromRole: string;
|
|
39
|
+
readonly fromEvent: string;
|
|
40
|
+
readonly toAction: string;
|
|
41
|
+
readonly payloadStrategy?: 'passthrough' | 'index' | 'merge';
|
|
42
|
+
readonly mergePayload?: Readonly<Record<string, string>>;
|
|
43
|
+
}
|
|
44
|
+
export interface CompositionGap {
|
|
45
|
+
readonly need: string;
|
|
46
|
+
readonly impact: string;
|
|
47
|
+
readonly workaround?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface CompositionSpec {
|
|
50
|
+
readonly a2uiType: string;
|
|
51
|
+
readonly description: string;
|
|
52
|
+
readonly mappingStatus: 'none' | 'partial';
|
|
53
|
+
readonly template: CompositionTemplate;
|
|
54
|
+
readonly propDelegation: readonly PropDelegation[];
|
|
55
|
+
readonly stateProjection: readonly StateProjection[];
|
|
56
|
+
readonly eventBubbling: readonly EventBubble[];
|
|
57
|
+
readonly requiredStates: readonly string[];
|
|
58
|
+
readonly gaps?: readonly CompositionGap[];
|
|
59
|
+
}
|
|
60
|
+
export declare class CompositionRegistry {
|
|
61
|
+
#private;
|
|
62
|
+
constructor(specs: readonly CompositionSpec[]);
|
|
63
|
+
get version(): Signal<number>;
|
|
64
|
+
get(type: string): CompositionSpec | undefined;
|
|
65
|
+
has(type: string): boolean;
|
|
66
|
+
get size(): number;
|
|
67
|
+
keys(): IterableIterator<string>;
|
|
68
|
+
values(): IterableIterator<CompositionSpec>;
|
|
69
|
+
add(spec: CompositionSpec): void;
|
|
70
|
+
remove(a2uiType: string): void;
|
|
71
|
+
resolveStrategy(a2uiType: string, componentRegistry: ComponentRegistry): 'direct' | 'composition' | 'unknown';
|
|
72
|
+
toJSON(): {
|
|
73
|
+
compositions: CompositionSpec[];
|
|
74
|
+
};
|
|
75
|
+
static fromJSON(data: {
|
|
76
|
+
compositions: CompositionSpec[];
|
|
77
|
+
}): CompositionRegistry;
|
|
78
|
+
getAllGaps(): Array<{
|
|
79
|
+
a2uiType: string;
|
|
80
|
+
gap: CompositionGap;
|
|
81
|
+
}>;
|
|
82
|
+
coverageReport(componentRegistry: ComponentRegistry, allSchemaTypes: readonly string[]): {
|
|
83
|
+
direct: string[];
|
|
84
|
+
composed: string[];
|
|
85
|
+
unresolved: string[];
|
|
86
|
+
gapCount: number;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export declare function resolveComponent(a2uiType: string, compositionRegistry: CompositionRegistry, componentRegistry: ComponentRegistry): {
|
|
90
|
+
strategy: 'direct';
|
|
91
|
+
mapping: ComponentMapping;
|
|
92
|
+
} | {
|
|
93
|
+
strategy: 'composition';
|
|
94
|
+
spec: CompositionSpec;
|
|
95
|
+
} | {
|
|
96
|
+
strategy: 'unknown';
|
|
97
|
+
type: string;
|
|
98
|
+
};
|
|
99
|
+
export declare const defaultCompositionRegistry: CompositionRegistry;
|
|
100
|
+
export declare const COMPOSITION_MAP: CompositionRegistry;
|
|
101
|
+
//# sourceMappingURL=a2ui-composition-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a2ui-composition-map.d.ts","sourceRoot":"","sources":["../../../src/a2ui/protocol/a2ui-composition-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,9 @@ export type { SurfaceState } from './a2ui-surface.ts';
|
|
|
5
5
|
export { a2uiToUINode, uiNodeToA2UI, conversionToPlan } from './a2ui-converter.ts';
|
|
6
6
|
export type { ConversionResult, DataBindingEntry, ToUINodeOptions, ToA2UIOptions } from './a2ui-converter.ts';
|
|
7
7
|
export { ComponentRegistry, defaultRegistry, resolveNativeTag, resolveA2UIType, COMPONENT_MAP, getSupportedTypes, getComponentCategory, getCompatibleTypes, textVariantTag, textFieldInputType, dateTimeInputType } from './a2ui-component-map.ts';
|
|
8
|
-
export type { ComponentMapping, ChildStrategy, RegistrySnapshot } from './a2ui-component-map.ts';
|
|
8
|
+
export type { ComponentMapping, ChildStrategy, RegistrySnapshot, EventSpec, PropertySpec, MethodSpec } from './a2ui-component-map.ts';
|
|
9
|
+
export { CompositionRegistry, defaultCompositionRegistry, COMPOSITION_MAP, resolveComponent } from './a2ui-composition-map.ts';
|
|
10
|
+
export type { CompositionSpec, CompositionTemplate, TemplateNode, PropDelegation, StateProjection, EventBubble, CompositionGap } from './a2ui-composition-map.ts';
|
|
9
11
|
export { isDataBinding, isCreateSurface, isUpdateComponents, isUpdateDataModel, isDeleteSurface, isCatalogRequest, isCatalogResponse, isActionMessage, isErrorMessage, parseServerMessage, } from './a2ui-types.ts';
|
|
10
12
|
export type { A2UIProtocolVersion, A2UIServerMessage, A2UICreateSurface, A2UIUpdateComponents, A2UIUpdateDataModel, A2UIDeleteSurface, A2UICatalogRequest, A2UICatalogResponse, A2UIClientMessage, A2UIActionMessage, A2UIErrorMessage, A2UIComponent, A2UIComponentAction, A2UIDataBinding, A2UIStandardType, } from './a2ui-types.ts';
|
|
11
13
|
export { WebSocketTransport, SSETransport, createWebSocketTransport, createSSETransport } from './a2ui-transport.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a2ui/protocol/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7G,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACnP,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/a2ui/protocol/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC7G,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACnP,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtI,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC/H,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAClK,OAAO,EACL,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACrH,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/a2ui/session/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAID,qBAAa,QAAQ;;gBAGP,OAAO,EAAE,SAAS,aAAa,EAAE;IAM7C,2BAA2B;IAC3B,IAAI,OAAO,IAAI,SAAS,aAAa,EAAE,CAEtC;IAED,oDAAoD;IACpD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B,sCAAsC;IACtC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD;;OAEG;IACH,UAAU,IAAI,MAAM;IAapB;;;;OAIG;IACH,gBAAgB,CACd,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,GAC/C,aAAa,EAAE;CAsBnB;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/a2ui/session/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAID,qBAAa,QAAQ;;gBAGP,OAAO,EAAE,SAAS,aAAa,EAAE;IAM7C,2BAA2B;IAC3B,IAAI,OAAO,IAAI,SAAS,aAAa,EAAE,CAEtC;IAED,oDAAoD;IACpD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B,sCAAsC;IACtC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD;;OAEG;IACH,UAAU,IAAI,MAAM;IAapB;;;;OAIG;IACH,gBAAgB,CACd,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,GAC/C,aAAa,EAAE;CAsBnB;AAiBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,GAAE,MAAM,GAAG,WAAyB,GAAG,QAAQ,CAO5F"}
|
|
@@ -29,4 +29,7 @@ export declare class NChatInput extends NativeElement {
|
|
|
29
29
|
setup(): void;
|
|
30
30
|
teardown(): void;
|
|
31
31
|
}
|
|
32
|
+
/** Advanced multi-zone variant — same behavior, distinct tag for CSS targeting. */
|
|
33
|
+
export declare class NChatInputAdvanced extends NChatInput {
|
|
34
|
+
}
|
|
32
35
|
//# sourceMappingURL=chat-input-element.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-input-element.d.ts","sourceRoot":"","sources":["../../src/chat/chat-input-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAGhF;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,SAAQ,aAAa;;IAC3C,MAAM,CAAC,kBAAkB,WAAiC;;IAe1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAGpB;IAED,mCAAmC;IACnC,aAAa,IAAI,IAAI;IAKrB,kCAAkC;IAClC,YAAY,IAAI,IAAI;IAOpB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkBpF,KAAK,IAAI,IAAI;IA+Cb,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"chat-input-element.d.ts","sourceRoot":"","sources":["../../src/chat/chat-input-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAGhF;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,SAAQ,aAAa;;IAC3C,MAAM,CAAC,kBAAkB,WAAiC;;IAe1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAGpB;IAED,mCAAmC;IACnC,aAAa,IAAI,IAAI;IAKrB,kCAAkC;IAClC,YAAY,IAAI,IAAI;IAOpB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkBpF,KAAK,IAAI,IAAI;IA+Cb,QAAQ,IAAI,IAAI;CAsHjB;AAED,mFAAmF;AACnF,qBAAa,kBAAmB,SAAQ,UAAU;CAAG"}
|
package/dist/chat/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { NChatInput } from './chat-input-element.ts';
|
|
1
|
+
export { NChatInput, NChatInputAdvanced } from './chat-input-element.ts';
|
|
2
2
|
export { NChatPanel } from './chat-panel-element.ts';
|
|
3
3
|
export type { AutoFocusPolicy, ChatPanelOpenOptions, FocusComposerOptions, ModelOption } from './chat-panel-element.ts';
|
|
4
4
|
export { NChatFeed } from './feed/index.ts';
|
package/dist/chat/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGxH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGnF,YAAY,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,YAAY,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAGpG,YAAY,EACV,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-input-structured-element.d.ts","sourceRoot":"","sources":["../../../src/chat/message/chat-input-structured-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;;IACrD,MAAM,CAAC,kBAAkB,WAA2D;;IAiBpF,IAAI,QAAQ,IAAI,MAAM,CAAiC;IACvD,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAGvB;IAED,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAgC;IACjE,IAAI,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAGlC;IAED,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAGnC;IAED,IAAI,QAAQ,IAAI,OAAO,CAAiC;IACxD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAiBpF,KAAK,IAAI,IAAI;IAkCb,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"chat-input-structured-element.d.ts","sourceRoot":"","sources":["../../../src/chat/message/chat-input-structured-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;;IACrD,MAAM,CAAC,kBAAkB,WAA2D;;IAiBpF,IAAI,QAAQ,IAAI,MAAM,CAAiC;IACvD,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAGvB;IAED,IAAI,OAAO,IAAI,gBAAgB,EAAE,CAAgC;IACjE,IAAI,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAGlC;IAED,IAAI,UAAU,IAAI,gBAAgB,EAAE,CAGnC;IAED,IAAI,QAAQ,IAAI,OAAO,CAAiC;IACxD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAiBpF,KAAK,IAAI,IAAI;IAkCb,QAAQ,IAAI,IAAI;CA4HjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message-seed-element.d.ts","sourceRoot":"","sources":["../../../src/chat/message/chat-message-seed-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;;IACjD,MAAM,CAAC,kBAAkB,WAA2B;;IAapD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAgC;IAC3D,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAG5B;IAED,IAAI,QAAQ,IAAI,OAAO,CAAiC;IACxD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBpF,KAAK,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"chat-message-seed-element.d.ts","sourceRoot":"","sources":["../../../src/chat/message/chat-message-seed-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;;IACjD,MAAM,CAAC,kBAAkB,WAA2B;;IAapD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAgC;IAC3D,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAG5B;IAED,IAAI,QAAQ,IAAI,OAAO,CAAiC;IACxD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBpF,KAAK,IAAI,IAAI;IAyCb,QAAQ,IAAI,IAAI;CAsBjB"}
|
package/dist/chat/register.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NChatInput } from './chat-input-element.ts';
|
|
1
|
+
import { NChatInput, NChatInputAdvanced } from './chat-input-element.ts';
|
|
2
2
|
import { NChatPanel } from './chat-panel-element.ts';
|
|
3
3
|
import { NChatFeed } from './feed/chat-feed-element.ts';
|
|
4
4
|
import { NChatAvatar } from './avatar/chat-avatar-element.ts';
|
|
@@ -9,5 +9,5 @@ import { NChatMessageActivity } from './message/chat-message-activity-element.ts
|
|
|
9
9
|
import { NChatMessageSeed } from './message/chat-message-seed-element.ts';
|
|
10
10
|
import { NChatMessageGenUI } from './message/chat-message-genui-element.ts';
|
|
11
11
|
import { NChatInputStructured } from './message/chat-input-structured-element.ts';
|
|
12
|
-
export { NChatInput, NChatPanel, NChatFeed, NChatAvatar, NChatMessage, NChatMessages, NChatMessageText, NChatMessageActivity, NChatMessageSeed, NChatMessageGenUI, NChatInputStructured, };
|
|
12
|
+
export { NChatInput, NChatInputAdvanced, NChatPanel, NChatFeed, NChatAvatar, NChatMessage, NChatMessages, NChatMessageText, NChatMessageActivity, NChatMessageSeed, NChatMessageGenUI, NChatInputStructured, };
|
|
13
13
|
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/chat/register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/chat/register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAiElF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,GACrB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './a2ui/index.ts';
|
|
2
|
-
export { NChatInput, NChatPanel, NChatFeed, NChatAvatar, NChatMessage, NChatMessages, NChatMessageText, NChatMessageActivity, NChatMessageSeed, NChatMessageGenUI, NChatInputStructured, ACTION_REGISTRY, ROLE_DEFAULTS, renderMarkdown, renderInline, sanitizeHtml, parseSSE, parseNDJSON, parseJSON, detectFormat, createChatStream, createChatTransport, classifyStreamEnd, classifyHttpError, backoffDelay, CHAT_EVENTS, SAFE_FIELDS, SENSITIVE_FIELDS, scrubPII, createDefaultRedactor, TelemetryEmitter, } from './chat/index.ts';
|
|
2
|
+
export { NChatInput, NChatInputAdvanced, NChatPanel, NChatFeed, NChatAvatar, NChatMessage, NChatMessages, NChatMessageText, NChatMessageActivity, NChatMessageSeed, NChatMessageGenUI, NChatInputStructured, ACTION_REGISTRY, ROLE_DEFAULTS, renderMarkdown, renderInline, sanitizeHtml, parseSSE, parseNDJSON, parseJSON, detectFormat, createChatStream, createChatTransport, classifyStreamEnd, classifyHttpError, backoffDelay, CHAT_EVENTS, SAFE_FIELDS, SENSITIVE_FIELDS, scrubPII, createDefaultRedactor, TelemetryEmitter, } from './chat/index.ts';
|
|
3
3
|
export type { AutoFocusPolicy, ChatPanelOpenOptions, FocusComposerOptions, ModelOption, ChatMessageActionDef, SeedOption, StructuredOption, GenUINode, ChatStreamChunk, StreamFormat, ChatTransportOptions, ChatStreamEvent, ChatTransport, TransportStatus, TransportStateCallback, RetryOptions, StreamEndReason, TelemetryCorrelation, TelemetryTiming, TelemetryRetry, TelemetryLevel, TelemetryEvent, TelemetryRedactor, } from './chat/index.ts';
|
|
4
4
|
export type { TransportState as ChatTransportState } from './chat/index.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAIhC,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAAE,aAAa,EAC9B,cAAc,EAAE,YAAY,EAAE,YAAY,EAC1C,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAC9C,gBAAgB,EAAE,mBAAmB,EACrC,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAClD,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAC1C,QAAQ,EAAE,qBAAqB,EAAE,gBAAgB,GAClD,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EACxE,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EACpE,aAAa,EAAE,eAAe,EAAE,sBAAsB,EACtD,YAAY,EAAE,eAAe,EAC7B,oBAAoB,EAAE,eAAe,EAAE,cAAc,EACrD,cAAc,EAAE,cAAc,EAAE,iBAAiB,GAClD,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAIhC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAAE,aAAa,EAC9B,cAAc,EAAE,YAAY,EAAE,YAAY,EAC1C,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAC9C,gBAAgB,EAAE,mBAAmB,EACrC,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAClD,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAC1C,QAAQ,EAAE,qBAAqB,EAAE,gBAAgB,GAClD,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EACxE,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EACpE,aAAa,EAAE,eAAe,EAAE,sBAAsB,EACtD,YAAY,EAAE,eAAe,EAC7B,oBAAoB,EAAE,eAAe,EAAE,cAAc,EACrD,cAAc,EAAE,cAAc,EAAE,iBAAiB,GAClD,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/native-ai.css
CHANGED
|
@@ -595,10 +595,12 @@
|
|
|
595
595
|
--n-chat-message-gap: calc(var(--n-space) * 2);
|
|
596
596
|
|
|
597
597
|
/* Bubbles */
|
|
598
|
-
--n-chat-bubble-user: var(--n-
|
|
599
|
-
--n-chat-bubble-user-color:
|
|
600
|
-
--n-chat-bubble-
|
|
598
|
+
--n-chat-bubble-user: var(--n-surface-accent);
|
|
599
|
+
--n-chat-bubble-user-color: var(--n-surface-ink-accent);
|
|
600
|
+
--n-chat-bubble-user-border: transparent;
|
|
601
|
+
--n-chat-bubble-assistant: transparent;
|
|
601
602
|
--n-chat-bubble-assistant-color: var(--n-ink);
|
|
603
|
+
--n-chat-bubble-assistant-border: var(--n-border-muted);
|
|
602
604
|
--n-chat-bubble-radius: var(--n-radius);
|
|
603
605
|
--n-chat-bubble-radius-avatar-side: var(--n-chat-bubble-radius);
|
|
604
606
|
--n-chat-bubble-radius-far-side: var(--n-chat-bubble-radius);
|
|
@@ -686,7 +688,7 @@
|
|
|
686
688
|
|
|
687
689
|
:where(native-chat-panel) > :where(n-header) {
|
|
688
690
|
background: var(--n-chat-panel-header-background);
|
|
689
|
-
border-
|
|
691
|
+
border-block-end: 1px solid var(--n-chat-panel-header-border);
|
|
690
692
|
}
|
|
691
693
|
|
|
692
694
|
:where(native-chat-panel) > :where(n-header) :where([slot="label"]) {
|
|
@@ -706,7 +708,7 @@
|
|
|
706
708
|
|
|
707
709
|
:where(native-chat-panel) > :where(n-footer) {
|
|
708
710
|
background: var(--n-chat-panel-footer-background);
|
|
709
|
-
border-
|
|
711
|
+
border-block-start: 1px solid var(--n-chat-panel-footer-border);
|
|
710
712
|
}
|
|
711
713
|
|
|
712
714
|
/* ── Model picker ── */
|
|
@@ -811,6 +813,8 @@
|
|
|
811
813
|
align-self: end;
|
|
812
814
|
}
|
|
813
815
|
|
|
816
|
+
/* Assistant avatar: use default avatar tokens (bubble is transparent) */
|
|
817
|
+
|
|
814
818
|
/* Context area: col 2, row 1 — metadata above messages */
|
|
815
819
|
:where(n-chat-messages) > :where(.n-chat-context) {
|
|
816
820
|
grid-column: 2;
|
|
@@ -859,6 +863,8 @@
|
|
|
859
863
|
|
|
860
864
|
[data-role="user"]:where(n-chat-messages) > :where(n-chat-avatar) {
|
|
861
865
|
grid-column: 2;
|
|
866
|
+
background: var(--n-chat-bubble-user);
|
|
867
|
+
color: var(--n-chat-bubble-user-color);
|
|
862
868
|
}
|
|
863
869
|
|
|
864
870
|
[data-role="user"]:where(n-chat-messages) > :where(.n-chat-context),
|
|
@@ -917,6 +923,7 @@
|
|
|
917
923
|
display: flex;
|
|
918
924
|
flex-direction: column;
|
|
919
925
|
gap: var(--n-space);
|
|
926
|
+
min-width: 0;
|
|
920
927
|
overflow: hidden;
|
|
921
928
|
|
|
922
929
|
/* Asymmetric radius: assistant = avatar on left */
|
|
@@ -928,6 +935,7 @@
|
|
|
928
935
|
|
|
929
936
|
background: var(--n-chat-bubble-assistant);
|
|
930
937
|
color: var(--n-chat-bubble-assistant-color);
|
|
938
|
+
border: 1px solid var(--n-chat-bubble-assistant-border);
|
|
931
939
|
|
|
932
940
|
word-wrap: break-word;
|
|
933
941
|
overflow-wrap: break-word;
|
|
@@ -943,6 +951,7 @@
|
|
|
943
951
|
|
|
944
952
|
background: var(--n-chat-bubble-user);
|
|
945
953
|
color: var(--n-chat-bubble-user-color);
|
|
954
|
+
border-color: var(--n-chat-bubble-user-border);
|
|
946
955
|
}
|
|
947
956
|
|
|
948
957
|
/* Streaming status */
|
|
@@ -957,7 +966,7 @@
|
|
|
957
966
|
|
|
958
967
|
/* Partial status — stream ended without explicit completion */
|
|
959
968
|
[status="partial"]:where(n-chat-message) {
|
|
960
|
-
border-
|
|
969
|
+
border-block-end: 2px dashed var(--n-border-muted);
|
|
961
970
|
}
|
|
962
971
|
|
|
963
972
|
/* Typing status — waiting for first stream chunk */
|
|
@@ -1053,6 +1062,7 @@
|
|
|
1053
1062
|
display: flex;
|
|
1054
1063
|
flex-direction: column;
|
|
1055
1064
|
gap: var(--n-chat-prose-gap);
|
|
1065
|
+
min-width: 0;
|
|
1056
1066
|
}
|
|
1057
1067
|
|
|
1058
1068
|
/* Universal block margin reset — flexbox gap handles spacing,
|
|
@@ -1127,7 +1137,7 @@
|
|
|
1127
1137
|
|
|
1128
1138
|
:where(n-chat-message-text) :where(hr) {
|
|
1129
1139
|
border: none;
|
|
1130
|
-
border-
|
|
1140
|
+
border-block-start: 1px solid var(--n-border-muted);
|
|
1131
1141
|
}
|
|
1132
1142
|
|
|
1133
1143
|
:where(n-chat-message-text[hidden]) { display: none; }
|
|
@@ -1140,6 +1150,7 @@
|
|
|
1140
1150
|
display: flex;
|
|
1141
1151
|
flex-direction: column;
|
|
1142
1152
|
gap: var(--n-space);
|
|
1153
|
+
min-width: 0;
|
|
1143
1154
|
color: var(--n-chat-activity-color);
|
|
1144
1155
|
font-size: var(--n-font-size-sm);
|
|
1145
1156
|
padding-block: var(--n-space);
|
|
@@ -1263,6 +1274,7 @@
|
|
|
1263
1274
|
display: flex;
|
|
1264
1275
|
flex-direction: column;
|
|
1265
1276
|
gap: var(--n-space);
|
|
1277
|
+
min-width: 0;
|
|
1266
1278
|
}
|
|
1267
1279
|
|
|
1268
1280
|
:where(n-chat-message-genui) :where(.n-chat-genui-error) {
|
|
@@ -1289,6 +1301,7 @@
|
|
|
1289
1301
|
display: flex;
|
|
1290
1302
|
flex-direction: column;
|
|
1291
1303
|
gap: var(--n-chat-structured-gap);
|
|
1304
|
+
min-width: 0;
|
|
1292
1305
|
padding-block: var(--n-chat-structured-padding);
|
|
1293
1306
|
padding-inline: var(--n-chat-structured-padding);
|
|
1294
1307
|
--n-background: var(--n-card);
|
|
@@ -1330,6 +1343,7 @@
|
|
|
1330
1343
|
flex: 1 1 0%;
|
|
1331
1344
|
flex-direction: column;
|
|
1332
1345
|
min-width: 0;
|
|
1346
|
+
min-height: var(--n-size);
|
|
1333
1347
|
}
|
|
1334
1348
|
|
|
1335
1349
|
/* Compact: single row */
|
|
@@ -1338,6 +1352,12 @@
|
|
|
1338
1352
|
align-items: center;
|
|
1339
1353
|
}
|
|
1340
1354
|
|
|
1355
|
+
/* Textarea fills available space in both column and compact row */
|
|
1356
|
+
:where(n-chat-input) > :where(n-textarea) {
|
|
1357
|
+
flex: 1 1 auto;
|
|
1358
|
+
min-height: 4.5em;
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1341
1361
|
/* Textarea inside input — fully transparent, no padding */
|
|
1342
1362
|
:where(n-chat-input) > :where(n-textarea) {
|
|
1343
1363
|
--n-background: transparent;
|
|
@@ -1354,12 +1374,6 @@
|
|
|
1354
1374
|
resize: none;
|
|
1355
1375
|
}
|
|
1356
1376
|
|
|
1357
|
-
:where(n-chat-input) > :where(n-textarea):not(:state(empty)),
|
|
1358
|
-
:where(n-chat-input) > :where(n-textarea):not(:state(empty)):hover {
|
|
1359
|
-
background: transparent;
|
|
1360
|
-
border-color: transparent;
|
|
1361
|
-
}
|
|
1362
|
-
|
|
1363
1377
|
:where(n-chat-input) > :where(n-textarea):focus {
|
|
1364
1378
|
border-color: transparent;
|
|
1365
1379
|
outline: none;
|
|
@@ -1370,6 +1384,7 @@
|
|
|
1370
1384
|
:where(n-chat-input-attachments) {
|
|
1371
1385
|
display: flex;
|
|
1372
1386
|
flex-wrap: wrap;
|
|
1387
|
+
flex-shrink: 0;
|
|
1373
1388
|
gap: calc(var(--n-space) * 2);
|
|
1374
1389
|
}
|
|
1375
1390
|
|
|
@@ -1377,14 +1392,144 @@
|
|
|
1377
1392
|
|
|
1378
1393
|
:where(n-chat-input-actions) {
|
|
1379
1394
|
display: flex;
|
|
1395
|
+
flex-shrink: 0;
|
|
1380
1396
|
align-items: center;
|
|
1381
1397
|
justify-content: flex-end;
|
|
1382
1398
|
gap: calc(var(--n-space) * 2);
|
|
1383
1399
|
min-width: 0;
|
|
1384
1400
|
}
|
|
1385
1401
|
|
|
1386
|
-
|
|
1402
|
+
|
|
1403
|
+
/* ── n-chat-input-header ──
|
|
1404
|
+
Header bar above the textarea: model/agent indicators left,
|
|
1405
|
+
settings/activity right. Used in advanced multi-row layout. */
|
|
1406
|
+
|
|
1407
|
+
:where(n-chat-input-header) {
|
|
1408
|
+
display: grid;
|
|
1409
|
+
grid-template-columns: 1fr auto;
|
|
1410
|
+
align-items: center;
|
|
1411
|
+
gap: calc(var(--n-space) * 2);
|
|
1412
|
+
flex-shrink: 0;
|
|
1413
|
+
min-width: 0;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
:where(n-chat-input-header) > :where(nav) {
|
|
1417
|
+
display: flex;
|
|
1418
|
+
align-items: center;
|
|
1419
|
+
gap: calc(var(--n-space) * 2);
|
|
1420
|
+
min-width: 0;
|
|
1421
|
+
overflow: hidden;
|
|
1422
|
+
}
|
|
1423
|
+
|
|
1424
|
+
:where(n-chat-input-header) > :where(aside) {
|
|
1425
|
+
display: flex;
|
|
1426
|
+
align-items: center;
|
|
1427
|
+
gap: calc(var(--n-space) * 2);
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
/* ── n-chat-input-chips ──
|
|
1431
|
+
Suggestion chips below the actions row. Wraps on overflow. */
|
|
1432
|
+
|
|
1433
|
+
:where(n-chat-input-chips) {
|
|
1434
|
+
display: flex;
|
|
1435
|
+
flex-wrap: wrap;
|
|
1436
|
+
align-items: center;
|
|
1437
|
+
flex-shrink: 0;
|
|
1438
|
+
gap: calc(var(--n-space) * 1.5);
|
|
1439
|
+
padding-block-end: calc(var(--n-space) * 1.5);
|
|
1440
|
+
min-width: 0;
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
/* Chip buttons: outlined pill style, intrinsic width */
|
|
1444
|
+
:where(n-chat-input-chips) > :where(n-button) {
|
|
1387
1445
|
flex: none;
|
|
1446
|
+
width: auto;
|
|
1447
|
+
border: 1px solid var(--n-border-rest);
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
/* ══════════════════════════════════════════════════
|
|
1451
|
+
n-chat-input-advanced — multi-zone rich composer
|
|
1452
|
+
══════════════════════════════════════════════════
|
|
1453
|
+
|
|
1454
|
+
3 zones: header-bar (above), prompt-container (bordered), suggestion-chips (below).
|
|
1455
|
+
The prompt container holds textarea + improve button + toolbar.
|
|
1456
|
+
|
|
1457
|
+
HTML shape:
|
|
1458
|
+
<n-chat-input-advanced>
|
|
1459
|
+
<n-chat-input-header> … </n-chat-input-header>
|
|
1460
|
+
<n-chat-input-prompt>
|
|
1461
|
+
<n-textarea …></n-textarea>
|
|
1462
|
+
<n-button data-role="improve">✦</n-button>
|
|
1463
|
+
<n-toolbar variant="plain"> … </n-toolbar>
|
|
1464
|
+
</n-chat-input-prompt>
|
|
1465
|
+
<n-chat-input-chips> … </n-chat-input-chips>
|
|
1466
|
+
</n-chat-input-advanced>
|
|
1467
|
+
*/
|
|
1468
|
+
|
|
1469
|
+
:where(n-chat-input-advanced):not(:defined) { visibility: hidden; }
|
|
1470
|
+
|
|
1471
|
+
:where(n-chat-input-advanced) {
|
|
1472
|
+
display: flex;
|
|
1473
|
+
flex: 1 1 0%;
|
|
1474
|
+
flex-direction: column;
|
|
1475
|
+
gap: calc(var(--n-space) * 2);
|
|
1476
|
+
min-width: 0;
|
|
1477
|
+
min-height: var(--n-size);
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1480
|
+
/* ── Prompt container ──
|
|
1481
|
+
Bordered area containing textarea, improve button, and actions.
|
|
1482
|
+
Provides the nested rounded rect visible in the reference design. */
|
|
1483
|
+
|
|
1484
|
+
:where(n-chat-input-prompt) {
|
|
1485
|
+
position: relative;
|
|
1486
|
+
display: flex;
|
|
1487
|
+
flex-direction: column;
|
|
1488
|
+
flex: 1 1 auto;
|
|
1489
|
+
min-height: 0;
|
|
1490
|
+
border: 1px solid var(--n-border-rest);
|
|
1491
|
+
border-radius: var(--n-radius);
|
|
1492
|
+
transition: border-color var(--n-duration) var(--n-easing);
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
/* Textarea inside prompt container — transparent, no chrome */
|
|
1496
|
+
:where(n-chat-input-prompt) > :where(n-textarea) {
|
|
1497
|
+
flex: 1 1 auto;
|
|
1498
|
+
min-height: 4.5em;
|
|
1499
|
+
|
|
1500
|
+
--n-background: transparent;
|
|
1501
|
+
--n-background-hover: transparent;
|
|
1502
|
+
--n-border-color: transparent;
|
|
1503
|
+
--n-border-color-hover: transparent;
|
|
1504
|
+
|
|
1505
|
+
padding-block: calc(var(--n-space) * 2);
|
|
1506
|
+
padding-inline: calc(var(--n-space) * 3);
|
|
1507
|
+
border: none;
|
|
1508
|
+
border-radius: 0;
|
|
1509
|
+
resize: none;
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
:where(n-chat-input-prompt) > :where(n-textarea):focus {
|
|
1513
|
+
border-color: transparent;
|
|
1514
|
+
outline: none;
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
/* Focus ring on prompt container when textarea is focused */
|
|
1518
|
+
:where(n-chat-input-prompt):has(:where(n-textarea):focus) {
|
|
1519
|
+
border-color: var(--n-focus-ring);
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
/* Prompt-improvement button: pinned top-right inside the bordered area */
|
|
1523
|
+
:where(n-chat-input-prompt) > :where(n-button[data-role="improve"]) {
|
|
1524
|
+
position: absolute;
|
|
1525
|
+
inset-block-start: calc(var(--n-space) * 1.5);
|
|
1526
|
+
inset-inline-end: calc(var(--n-space) * 1.5);
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
/* Toolbar inside prompt container — sits below textarea */
|
|
1530
|
+
:where(n-chat-input-prompt) > :where(n-toolbar) {
|
|
1531
|
+
padding-inline: calc(var(--n-space) * 2);
|
|
1532
|
+
padding-block-end: calc(var(--n-space) * 1.5);
|
|
1388
1533
|
}
|
|
1389
1534
|
|
|
1390
1535
|
}
|