@aparte/core 0.19.3 → 0.20.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/client/aparte-client.d.ts +66 -95
- package/dist/client/aparte-client.d.ts.map +1 -1
- package/dist/client/stream-adapter.d.ts +7 -13
- package/dist/client/stream-adapter.d.ts.map +1 -1
- package/dist/client/wire-history.d.ts +4 -5
- package/dist/client/wire-history.d.ts.map +1 -1
- package/dist/components/bubble/aparte-chat-bubble.d.ts +88 -57
- package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
- package/dist/components/chat/aparte-chat.d.ts +15 -13
- package/dist/components/chat/aparte-chat.d.ts.map +1 -1
- package/dist/components/chat/glide-gate.d.ts +13 -0
- package/dist/components/chat/glide-gate.d.ts.map +1 -0
- package/dist/components/composer/aparte-composer-action.d.ts +2 -2
- package/dist/components/composer/aparte-composer-add-attachment.d.ts +1 -1
- package/dist/components/composer/aparte-composer-input.d.ts +1 -5
- package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer-send.d.ts +8 -10
- package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
- package/dist/components/composer/aparte-composer.d.ts +48 -80
- package/dist/components/composer/aparte-composer.d.ts.map +1 -1
- package/dist/components/context/aparte-context.d.ts +9 -4
- package/dist/components/context/aparte-context.d.ts.map +1 -1
- package/dist/components/conversation-list/aparte-conversation-list.d.ts +23 -13
- package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
- package/dist/components/elicitation/aparte-elicitation.d.ts +15 -22
- package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
- package/dist/components/scroll-rail/aparte-scroll-rail.d.ts +10 -11
- package/dist/components/scroll-rail/aparte-scroll-rail.d.ts.map +1 -1
- package/dist/components/sidebar/aparte-sidebar.d.ts +16 -3
- package/dist/components/sidebar/aparte-sidebar.d.ts.map +1 -1
- package/dist/components/split/aparte-split.d.ts +12 -3
- package/dist/components/split/aparte-split.d.ts.map +1 -1
- package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
- package/dist/components/suggestions/aparte-suggestions.d.ts +6 -9
- package/dist/components/suggestions/aparte-suggestions.d.ts.map +1 -1
- package/dist/components/viewport/aparte-chat-viewport.d.ts +70 -70
- package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
- package/dist/config/aparte-config.d.ts +87 -66
- package/dist/config/aparte-config.d.ts.map +1 -1
- package/dist/config/icon-provider.d.ts +19 -2
- package/dist/config/icon-provider.d.ts.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/locale.d.ts +57 -89
- package/dist/config/locale.d.ts.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/conversations/conversation-controller.d.ts +18 -3
- package/dist/conversations/conversation-controller.d.ts.map +1 -1
- package/dist/conversations/conversation-manager.d.ts +3 -3
- package/dist/conversations/conversation-manager.d.ts.map +1 -1
- package/dist/custom-elements.json +13054 -12334
- package/dist/{dialog-triggers-ChnPFG9M.js → dialog-triggers-3Rk7PuZa.js} +444 -287
- package/dist/dialog-triggers-3Rk7PuZa.js.map +1 -0
- package/dist/elicitation/approval-panel.d.ts.map +1 -1
- package/dist/elicitation/index.d.ts +6 -1
- package/dist/elicitation/index.d.ts.map +1 -1
- package/dist/elicitation/panel.d.ts +11 -21
- package/dist/elicitation/panel.d.ts.map +1 -1
- package/dist/elicitation/types.d.ts +19 -27
- package/dist/elicitation/types.d.ts.map +1 -1
- package/dist/generated/element-attributes.d.ts +11 -5
- package/dist/generated/element-attributes.d.ts.map +1 -1
- package/dist/host/aparte-chat-host.d.ts +17 -32
- package/dist/host/aparte-chat-host.d.ts.map +1 -1
- package/dist/icons/extended.d.ts +1 -2
- package/dist/icons/extended.d.ts.map +1 -1
- package/dist/icons.d.ts +6 -8
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +12 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +682 -327
- package/dist/index.js.map +1 -1
- package/dist/index.node.d.ts +6 -3
- package/dist/index.node.d.ts.map +1 -1
- package/dist/index.node.js +2 -2
- package/dist/index.node.js.map +1 -1
- package/dist/interop/dialog-triggers.d.ts +2 -2
- package/dist/interop/element-props.d.ts +16 -27
- package/dist/interop/element-props.d.ts.map +1 -1
- package/dist/primitives/icon/aparte-icon.d.ts.map +1 -1
- package/dist/primitives/select/aparte-option.d.ts +3 -2
- package/dist/primitives/select/aparte-option.d.ts.map +1 -1
- package/dist/primitives/select/aparte-select.d.ts +24 -21
- package/dist/primitives/select/aparte-select.d.ts.map +1 -1
- package/dist/renderers/markdown-stream.d.ts.map +1 -1
- package/dist/renderers/segment-renderers.d.ts +11 -17
- package/dist/renderers/segment-renderers.d.ts.map +1 -1
- package/dist/renderers/segments/code.d.ts.map +1 -1
- package/dist/renderers/segments/error.d.ts.map +1 -1
- package/dist/renderers/segments/text.d.ts.map +1 -1
- package/dist/renderers/segments/tool-call.d.ts.map +1 -1
- package/dist/runtime/message-repository.d.ts +8 -15
- package/dist/runtime/message-repository.d.ts.map +1 -1
- package/dist/transport/backend-handler.d.ts +4 -6
- package/dist/transport/backend-handler.d.ts.map +1 -1
- package/dist/transport/backend-transport.d.ts +14 -0
- package/dist/transport/backend-transport.d.ts.map +1 -1
- package/dist/transport/types.d.ts +7 -10
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/types/chat.d.ts +10 -18
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/element-attributes.d.ts +6 -12
- package/dist/types/element-attributes.d.ts.map +1 -1
- package/dist/types/element-map.d.ts +6 -19
- package/dist/types/element-map.d.ts.map +1 -1
- package/dist/types/event-map.d.ts +11 -17
- package/dist/types/event-map.d.ts.map +1 -1
- package/dist/types/events.d.ts +5 -14
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/model-provider.d.ts +7 -9
- package/dist/types/model-provider.d.ts.map +1 -1
- package/dist/types/segments.d.ts +21 -13
- package/dist/types/segments.d.ts.map +1 -1
- package/dist/types/tools.d.ts +20 -22
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/copy-text.d.ts +1 -2
- package/dist/utils/copy-text.d.ts.map +1 -1
- package/dist/utils/css-escape.d.ts +1 -1
- package/dist/utils/escape.d.ts +4 -19
- package/dist/utils/escape.d.ts.map +1 -1
- package/dist/utils/files-to-attachments.d.ts +2 -2
- package/dist/utils/fold-text.d.ts +13 -0
- package/dist/utils/fold-text.d.ts.map +1 -0
- package/dist/utils/is-awaiting-reply.d.ts +2 -5
- package/dist/utils/is-awaiting-reply.d.ts.map +1 -1
- package/dist/utils/presence.d.ts +5 -5
- package/dist/utils/segments.d.ts +54 -78
- package/dist/utils/segments.d.ts.map +1 -1
- package/dist/utils/tool-input.d.ts +1 -1
- package/dist/utils/tool-input.d.ts.map +1 -1
- package/dist/utils/transcript.d.ts +2 -2
- package/dist/utils/uuid.d.ts +0 -11
- package/dist/utils/uuid.d.ts.map +1 -1
- package/package.json +29 -3
- package/dist/dialog-triggers-ChnPFG9M.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-panel.d.ts","sourceRoot":"","sources":["../../src/elicitation/approval-panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAI7E,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,oEAAoE;IACpE,UAAU,IAAI,oBAAoB,CAAC;IACnC,uDAAuD;IACvD,UAAU,IAAI,OAAO,CAAC;IACtB,KAAK,IAAI,IAAI,CAAC;IACd,6DAA6D;IAC7D,OAAO,IAAI,IAAI,CAAC;CACnB;AAeD,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAChC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE,MAAM,GACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"approval-panel.d.ts","sourceRoot":"","sources":["../../src/elicitation/approval-panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAI7E,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,oEAAoE;IACpE,UAAU,IAAI,oBAAoB,CAAC;IACnC,uDAAuD;IACvD,UAAU,IAAI,OAAO,CAAC;IACtB,KAAK,IAAI,IAAI,CAAC;IACd,6DAA6D;IAC7D,OAAO,IAAI,IAAI,CAAC;CACnB;AAeD,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAChC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE,MAAM,GACjB,kBAAkB,CA0JpB"}
|
|
@@ -17,7 +17,12 @@ export type { BuiltApprovalPanel } from './approval-panel.js';
|
|
|
17
17
|
/**
|
|
18
18
|
* Ask the user for typed input and await their response, on the config
|
|
19
19
|
* governing `request.target` (its instance config, or the global default).
|
|
20
|
-
*
|
|
20
|
+
*
|
|
21
|
+
* Resolves `accept` with the value, or `decline` when the person declines. Rejects,
|
|
22
|
+
* with no answer, with an {@link AparteElicitationAbortError} whose `reason` is
|
|
23
|
+
* `'aborted'` (the turn was stopped, the signal fired, or another request took the
|
|
24
|
+
* question away) or `'no-presenter'` (nothing is mounted to ask it): `await` it in a
|
|
25
|
+
* `try`, or attach a `.catch()`.
|
|
21
26
|
*/
|
|
22
27
|
export declare function requestUserInput(request: AparteElicitationRequest): Promise<AparteElicitationResult>;
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/elicitation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEpF,YAAY,EACR,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/elicitation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAEpF,YAAY,EACR,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAEpG"}
|
|
@@ -11,17 +11,11 @@ export interface BuiltElicitationPanel {
|
|
|
11
11
|
* The corner where the presenter puts its escape from the WHOLE request.
|
|
12
12
|
*
|
|
13
13
|
* Top-right, away from anything that answers a question — and the position is the
|
|
14
|
-
* whole point.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* it declines everything (MCP's `decline`, including questions already answered).
|
|
14
|
+
* whole point. Beside the button that advances through the form, "Skip" would read
|
|
15
|
+
* as "skip THIS question", while it declines everything (MCP's `decline`,
|
|
16
|
+
* including questions already answered).
|
|
18
17
|
*
|
|
19
|
-
*
|
|
20
|
-
* had read as a preference for the glyph. It is not about the glyph.
|
|
21
|
-
*
|
|
22
|
-
* A row at the bottom is gone with it, and so is the reserved height it needed:
|
|
23
|
-
* with the composer's own button carrying advance-then-submit, the panel has no
|
|
24
|
-
* action of its own left to place.
|
|
18
|
+
* The panel has no action row of its own: the composer's button carries submit.
|
|
25
19
|
*/
|
|
26
20
|
readonly dismiss: HTMLElement;
|
|
27
21
|
/** The current response content, shaped to match the schema. */
|
|
@@ -34,14 +28,10 @@ export interface BuiltElicitationPanel {
|
|
|
34
28
|
* What the composer's one button means for this panel: `'submit'`, or `'none'`
|
|
35
29
|
* when the panel has no act for it and it should not be drawn.
|
|
36
30
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* more thing to explain. The reference products settle it the same way: a click
|
|
42
|
-
* on a choice selects, a tab switches question, one button submits the lot. So
|
|
43
|
-
* the button means submit throughout, enabled once every question has an answer,
|
|
44
|
-
* which is what `canProceed()` reports.
|
|
31
|
+
* The chips ARE the navigation through a form's questions, forwards and back: a
|
|
32
|
+
* click on a choice selects, a tab switches question, one button submits the lot.
|
|
33
|
+
* So the button means submit throughout, enabled once every question has an
|
|
34
|
+
* answer, which is what `canProceed()` reports.
|
|
45
35
|
*
|
|
46
36
|
* `'none'` is for the shape where the button has no meaning at all: a single
|
|
47
37
|
* question whose options settle on the click. Assignable to the composer's
|
|
@@ -58,14 +48,14 @@ export interface BuiltElicitationPanel {
|
|
|
58
48
|
* Settled from INSIDE the panel: an option was clicked and that click is the
|
|
59
49
|
* whole answer. The value is the content, shaped like `getContent()`.
|
|
60
50
|
*
|
|
61
|
-
* The same contract `BuiltApprovalPanel.onSettle
|
|
62
|
-
*
|
|
51
|
+
* The same contract as `BuiltApprovalPanel.onSettle`, presented by the same path —
|
|
52
|
+
* because it is the same act. A single-choice question is one
|
|
63
53
|
* gesture, not a value you pick and then submit: WCAG's SC 3.2.2 and its F36
|
|
64
54
|
* failure are about auto-submitting a form when an INPUT is set, which is why
|
|
65
55
|
* these options are buttons rather than radios that fire on change.
|
|
66
56
|
*
|
|
67
57
|
* Only ever called for that shape. A form, a multi-select and a text field all
|
|
68
|
-
* collect a value and resolve through the composer's button
|
|
58
|
+
* collect a value and resolve through the composer's button.
|
|
69
59
|
*/
|
|
70
60
|
onSettle(cb: (content: unknown) => void): void;
|
|
71
61
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/elicitation/panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,uBAAuB,EAK1B,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/elicitation/panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,uBAAuB,EAK1B,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,gEAAgE;IAChE,UAAU,IAAI,OAAO,CAAC;IACtB,yDAAyD;IACzD,UAAU,IAAI,OAAO,CAAC;IACtB,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;IACd;;;;;;;;;;;;;;OAcG;IACH,IAAI,IAAI,QAAQ,GAAG,MAAM,CAAC;IAC1B,wEAAwE;IACxE,UAAU,IAAI,OAAO,CAAC;IACtB,mGAAmG;IACnG,OAAO,IAAI,IAAI,CAAC;IAChB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/C;;;;;;;;;;;OAWG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB;AAyCD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,WAAW,CAalG;AA6aD,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,QAAQ,EAAE,MAAM,IAAI,GACrB,qBAAqB,CAevB"}
|
|
@@ -91,10 +91,9 @@ export interface AparteElicitationRequest {
|
|
|
91
91
|
/**
|
|
92
92
|
* The sentence above everything else. A string, or a function re-read on relabel.
|
|
93
93
|
*
|
|
94
|
-
* Same reason as an option's `label
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* re-derive from.
|
|
94
|
+
* Same reason as an option's `label`: the question has to follow a language switch
|
|
95
|
+
* too, or a panel asks "Run delete_file?" over buttons in another language. A
|
|
96
|
+
* resolved string has nothing to re-derive from.
|
|
98
97
|
*
|
|
99
98
|
* A function only makes sense when the text comes from the LOCALE, which is core's
|
|
100
99
|
* own approval question. A tool's question is model-authored: it is a string, and
|
|
@@ -105,11 +104,9 @@ export interface AparteElicitationRequest {
|
|
|
105
104
|
* The body under the question: what is actually being decided.
|
|
106
105
|
*
|
|
107
106
|
* TEXT, and shown as text — a preformatted block the panel renders through
|
|
108
|
-
* `textContent`. It
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* disclosure. A decision surface that omits what is being decided is asking for a
|
|
112
|
-
* signature on a blank page.
|
|
107
|
+
* `textContent`. It carries what a person is being asked to approve (for a tool,
|
|
108
|
+
* the arguments the model chose), so the decision surface shows what is being
|
|
109
|
+
* decided and not only the tool's name.
|
|
113
110
|
*
|
|
114
111
|
* Not markup, and not a render hook: the content here is model-authored, so the
|
|
115
112
|
* string arm of a hook would be a model-to-DOM XSS on the highest-stakes control
|
|
@@ -159,8 +156,8 @@ export interface AparteElicitationRequest {
|
|
|
159
156
|
*
|
|
160
157
|
* The requester writes the LABEL, always. Core cannot know that "and always for git
|
|
161
158
|
* commands" is meaningful, or that this workspace has somewhere to remember it — so an
|
|
162
|
-
* option offering a scope exists only because the host built it and can honour it
|
|
163
|
-
*
|
|
159
|
+
* option offering a scope exists only because the host built it and can honour it.
|
|
160
|
+
* Two options may share a `value` and differ only in scope,
|
|
164
161
|
* which is what "Yes" and "Yes, and always for X" are: the same verdict, a different
|
|
165
162
|
* reach.
|
|
166
163
|
*/
|
|
@@ -184,12 +181,11 @@ export interface AparteApprovalOption {
|
|
|
184
181
|
/**
|
|
185
182
|
* What choosing it commits to, drawn under the label — the scope of an "always".
|
|
186
183
|
*
|
|
187
|
-
* A label can say "Always allow" and not what that reaches:
|
|
188
|
-
* the first word of a command (`git`, for `git status`)
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
* `description: 'git status'` beside `description: 'git *'`.
|
|
184
|
+
* A label can say "Always allow" and not what that reaches: a host that remembers
|
|
185
|
+
* only the first word of a command (`git`, for `git status`) would have the user
|
|
186
|
+
* authorise every git command believing they had authorised one. Two options that
|
|
187
|
+
* differ only in reach differ on screen: `description: 'git status'` beside
|
|
188
|
+
* `description: 'git *'`.
|
|
193
189
|
*
|
|
194
190
|
* Same two arms as `label`, for the same reason: it follows a language switch
|
|
195
191
|
* while the request is open.
|
|
@@ -207,7 +203,7 @@ export interface AparteApprovalOption {
|
|
|
207
203
|
* `instruction` is the free-text arm — "no, do this instead" — and it is a separate
|
|
208
204
|
* field rather than a magic `option` value because only the host can name its options,
|
|
209
205
|
* and this text is the user's. It reaches the model as the refusal's reason, which is
|
|
210
|
-
* possible
|
|
206
|
+
* possible because a refusal hands the model a turn to read it in.
|
|
211
207
|
*/
|
|
212
208
|
export interface AparteApprovalAnswer {
|
|
213
209
|
/** The `value` of the option chosen, or `undefined` when only text was given. */
|
|
@@ -230,17 +226,13 @@ export type AparteElicitationResult = {
|
|
|
230
226
|
* The request ended without an answer: the turn was stopped, the signal fired, the
|
|
231
227
|
* question was taken away by another request, or nothing was mounted to ask it.
|
|
232
228
|
*
|
|
233
|
-
* A THROW, and not a third member of {@link AparteElicitationResult}.
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* had pressed Stop. A rejection cannot be mistaken for a decision by a caller that
|
|
238
|
-
* forgot a branch, which is the property `cancel` never had.
|
|
229
|
+
* A THROW, and not a third member of {@link AparteElicitationResult}. A value is easy
|
|
230
|
+
* to handle as though it were an answer: a cancelled request read as a refusal would
|
|
231
|
+
* tell the model "Tool execution was rejected by the user." when the user had pressed
|
|
232
|
+
* Stop. A rejection cannot be mistaken for a decision by a caller that forgot a branch.
|
|
239
233
|
*
|
|
240
234
|
* `name` is `'AbortError'`, so every `err.name === 'AbortError'` check already written
|
|
241
|
-
* treats it correctly
|
|
242
|
-
* conversion by hand. That hand-conversion existing is the evidence the shape is
|
|
243
|
-
* right, and it is gone.
|
|
235
|
+
* treats it correctly.
|
|
244
236
|
*/
|
|
245
237
|
export declare class AparteElicitationAbortError extends DOMException {
|
|
246
238
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/elicitation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,0EAA0E;AAC1E,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/F,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED,+CAA+C;AAC/C,MAAM,WAAW,6BAA6B;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,yBAAyB;AACzB,MAAM,WAAW,4BAA4B;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4BAA4B;AAC5B,MAAM,MAAM,sBAAsB,GAC5B,0BAA0B,GAC1B,6BAA6B,GAC7B,4BAA4B,CAAC;AAEnC,2DAA2D;AAC3D,MAAM,WAAW,6BAA6B;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACnD,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,+EAA+E;AAC/E,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG,6BAA6B,CAAC;AAE7F,MAAM,WAAW,wBAAwB;IACrC,sDAAsD;IACtD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/elicitation/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export interface AparteChatAttributes {
|
|
|
12
12
|
'center-empty'?: boolean;
|
|
13
13
|
/** Reflected BY the element while its viewport holds no `<aparte-chat-bubble>` and is not `loading` — set again when the conversation is cleared. With or without `center-empty`: the stylesheet centers the composer through `aparte-chat[center-empty][data-empty]`, and an app styles or scripts its own empty state against `aparte-chat[data-empty]`. Read-only. */
|
|
14
14
|
'data-empty'?: boolean;
|
|
15
|
+
/** Reflected BY the element at the first key or pointer in the page, or the first send: from then on `center-empty` slides the composer between the welcome and the conversation. Before it, a conversation a script restores on load lands in one frame. Read-only. */
|
|
16
|
+
'data-glide'?: boolean;
|
|
15
17
|
/** The ChatGPT anatomy, opt-in: the transcript's scroll surface spans the whole column and the composer (with the rest of the bottom stack) floats over it, so the scrollbar runs edge to edge instead of stopping at the composer's top. The viewport measures the stack and publishes `--aparte-bottom-inset`; content, spacer and the scroll button clear it. Read when the viewport wires its observers — set it in the initial markup. Also honoured on a wrapper's `[data-aparte-chat]` root. */
|
|
16
18
|
'overlay-composer'?: boolean;
|
|
17
19
|
/** The wrapper's explicit hands-off signal: set it and this element composes none of its own children, because the framework owns them. Read once at connect (it is not observed), so it has to be in the initial markup. Angular's wrapper sets it on this element — its component selector IS `aparte-chat`; React/Vue/Svelte render a `[data-aparte-chat]` div and never create this element at all. */
|
|
@@ -19,7 +21,7 @@ export interface AparteChatAttributes {
|
|
|
19
21
|
}
|
|
20
22
|
/** `<aparte-chat-bubble>` — One message: plain content or a list of rich segments, in light DOM. */
|
|
21
23
|
export interface AparteChatBubbleAttributes {
|
|
22
|
-
/** The message role, `user` or `assistant` — the one channel for it, and what the CSS keys off. (`role` is ARIA's attribute; this element sets it to `article` itself and
|
|
24
|
+
/** The message role, `user` or `assistant` — the one channel for it, and what the CSS keys off. (`role` is ARIA's attribute; this element sets it to `article` itself and does not read a message role from it.) */
|
|
23
25
|
'data-role'?: string;
|
|
24
26
|
/** Plain text content, for a bubble with no segments. */
|
|
25
27
|
content?: string;
|
|
@@ -29,7 +31,7 @@ export interface AparteChatBubbleAttributes {
|
|
|
29
31
|
'message-id'?: string;
|
|
30
32
|
/** Hides the action bar and shows the caret while a reply is in flight. */
|
|
31
33
|
streaming?: boolean;
|
|
32
|
-
/**
|
|
34
|
+
/** Who wrote the message: shown in the header, and the message's accessible name ("Message from {name}"). Leave it out for the reader and the assistant, whose names come from the locale. */
|
|
33
35
|
name?: string;
|
|
34
36
|
}
|
|
35
37
|
/** `<aparte-chat-status>` — A standalone status line — a light-DOM indicator the APP owns. Nothing in core turns it on: the framework host only ever flips it back OFF (on the first streamed token), and the four wrappers render one inside the viewport driven by their own `isTyping` prop. */
|
|
@@ -60,7 +62,7 @@ export interface AparteComposerAttributes {
|
|
|
60
62
|
disabled?: boolean;
|
|
61
63
|
/** The id of the `<aparte-chat>` this composer drives. */
|
|
62
64
|
target?: string;
|
|
63
|
-
/** Enter sends and Shift+Enter breaks the line (the default); set it to the string `"false"` to swap them. Read lazily by the `submitOnEnter` getter rather than observed
|
|
65
|
+
/** Enter sends and Shift+Enter breaks the line (the default); set it to the string `"false"` to swap them. Read lazily by the `submitOnEnter` getter rather than observed. */
|
|
64
66
|
'submit-on-enter'?: boolean | 'false';
|
|
65
67
|
/** Reflected BY the element while a panel (an elicitation, an approval) is mounted inside it; the shipped stylesheet keys off it. Read-only. */
|
|
66
68
|
'data-panel-active'?: boolean;
|
|
@@ -71,7 +73,7 @@ export interface AparteComposerAttributes {
|
|
|
71
73
|
}
|
|
72
74
|
/** `<aparte-composer-action>` — Generic action button primitive for `<aparte-composer>`. */
|
|
73
75
|
export interface AparteComposerActionAttributes {
|
|
74
|
-
/** Icon key for aparteGlobalConfig.getIcon(), or raw SVG/HTML starting with `<`. A key
|
|
76
|
+
/** Icon key for aparteGlobalConfig.getIcon(), or raw SVG/HTML starting with `<`. A key the icon set does not hold renders AS TEXT (`icon="star"` draws the word *star*), so add it with `registerIcons` or pass the SVG. */
|
|
75
77
|
icon?: string;
|
|
76
78
|
/** Accessible label (also used as tooltip) */
|
|
77
79
|
label?: string;
|
|
@@ -117,6 +119,8 @@ export interface AparteContextAttributes {
|
|
|
117
119
|
target?: string;
|
|
118
120
|
/** `bar` (default) or `ring`: a progress bar with the reading beside it, or a ring with the percentage. */
|
|
119
121
|
variant?: string;
|
|
122
|
+
/** Tokens in use before a turn of this page has reported any: a restored conversation's last usage. The next turn's usage replaces it. */
|
|
123
|
+
used?: number;
|
|
120
124
|
/** Dispatch `aparte-compact` on each turn that ends in `danger`, one request at a time. */
|
|
121
125
|
'auto-compact'?: boolean;
|
|
122
126
|
/** Reflected BY the element: `ok`, `warn` or `danger`. Read-only. */
|
|
@@ -134,6 +138,8 @@ export interface AparteConversationListAttributes {
|
|
|
134
138
|
loading?: boolean;
|
|
135
139
|
/** Let the list finish the gesture: rename, pin, unpin, archive, unarchive and delete are performed on the conversation manager registered with `setConversationManager()`, instead of leaving you six listeners to write. The event still fires first, and `preventDefault()` on it takes the gesture back. Off by default, and selecting stays yours either way. */
|
|
136
140
|
manage?: boolean;
|
|
141
|
+
/** Reflected BY the element while `filter()` holds a query no title matches. Read-only. */
|
|
142
|
+
'data-no-match'?: boolean;
|
|
137
143
|
}
|
|
138
144
|
/** `<aparte-icon>` — AparteIcon */
|
|
139
145
|
export interface AparteIconAttributes {
|
|
@@ -184,7 +190,7 @@ export interface AparteSelectAttributes {
|
|
|
184
190
|
placeholder?: string;
|
|
185
191
|
/** Blocks opening the dropdown. */
|
|
186
192
|
disabled?: boolean;
|
|
187
|
-
/** Adds a filter field above the options.
|
|
193
|
+
/** Adds a filter field above the options. Set or removed later, the field comes or goes. */
|
|
188
194
|
searchable?: boolean;
|
|
189
195
|
/** Reflects (and controls) whether the dropdown is open. */
|
|
190
196
|
open?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-attributes.d.ts","sourceRoot":"","sources":["../../src/generated/element-attributes.ts"],"names":[],"mappings":"AAIA,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACjC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iPAAiP;IACjP,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yLAAyL;IACzL,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sGAAsG;IACtG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yWAAyW;IACzW,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,ueAAue;IACve,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2YAA2Y;IAC3Y,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,oGAAoG;AACpG,MAAM,WAAW,0BAA0B;IACvC,
|
|
1
|
+
{"version":3,"file":"element-attributes.d.ts","sourceRoot":"","sources":["../../src/generated/element-attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,10 +35,9 @@ export interface AparteChatHostBinding {
|
|
|
35
35
|
* skeleton, the empty state kept off, the composer disabled.
|
|
36
36
|
*
|
|
37
37
|
* Declaring it makes the wait YOURS, `aria-busy` included: the host stops writing the
|
|
38
|
-
* viewport's `loading` attribute and leaves it to you,
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* the attribute written for it.
|
|
38
|
+
* viewport's `loading` attribute and leaves it to you, so two writers never disagree
|
|
39
|
+
* about when the wait ends. A binding without this callback keeps the attribute
|
|
40
|
+
* written for it.
|
|
42
41
|
*/
|
|
43
42
|
onLoadingChange?(loading: boolean): void;
|
|
44
43
|
}
|
|
@@ -150,11 +149,8 @@ export declare class AparteChatHost {
|
|
|
150
149
|
* the same direct path `appendToken` uses;
|
|
151
150
|
* 2. into the framework's message list, **coalesced to once per frame**.
|
|
152
151
|
*
|
|
153
|
-
*
|
|
154
|
-
* `
|
|
155
|
-
* framework render per token. At 60 tok/s from a local model that is unusable,
|
|
156
|
-
* and nothing in the imperative API hinted that `appendToSegment` cost so much
|
|
157
|
-
* more than `injectTokenStream`. Consumers had to write their own rAF batcher.
|
|
152
|
+
* Coalescing (2) avoids a full list rebuild plus `setMessages` +
|
|
153
|
+
* `onMessagesChange`, i.e. one complete framework render, for every chunk.
|
|
158
154
|
*
|
|
159
155
|
* Any structural change flushes the buffer first (see
|
|
160
156
|
* {@link _flushStreamState}), so ordering is never observable.
|
|
@@ -175,9 +171,7 @@ export declare class AparteChatHost {
|
|
|
175
171
|
/**
|
|
176
172
|
* Clear all messages + reset viewport state. The option travels to the viewport
|
|
177
173
|
* untouched: a compaction passes `{ revokeAttachments: false }` because it re-appends
|
|
178
|
-
* the turns it keeps and revokes the dropped ones' object URLs itself
|
|
179
|
-
* framework wrapper this bridge used to drop the argument, and every surviving
|
|
180
|
-
* attachment came back broken.
|
|
174
|
+
* the turns it keeps and revokes the dropped ones' object URLs itself.
|
|
181
175
|
*/
|
|
182
176
|
clearMessages(options?: {
|
|
183
177
|
revokeAttachments?: boolean;
|
|
@@ -198,10 +192,9 @@ export declare class AparteChatHost {
|
|
|
198
192
|
*
|
|
199
193
|
* Each token reaches the bubble immediately and the framework's message list
|
|
200
194
|
* is synced **once per frame** (same discipline as {@link appendToSegment}),
|
|
201
|
-
* with a guaranteed flush before completion and on abort
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
* bubble (which renders from that state) showed nothing at all.
|
|
195
|
+
* with a guaranteed flush before completion and on abort, so the framework list
|
|
196
|
+
* and the DOM agree and a custom bubble (which renders from that state) shows the
|
|
197
|
+
* reply.
|
|
205
198
|
*/
|
|
206
199
|
streamTokens(messageId: string, tokens: AsyncIterable<string>): Promise<void>;
|
|
207
200
|
/**
|
|
@@ -227,17 +220,10 @@ export declare class AparteChatHost {
|
|
|
227
220
|
* Write the branch counts onto their bubbles — and RESCHEDULE for the ones that are
|
|
228
221
|
* not on the page yet, instead of dropping them.
|
|
229
222
|
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
* It needed a framework that renders LATE, which is every framework here. React's
|
|
236
|
-
* `afterRender` is `requestAnimationFrame(() => cb())` — a bet that the next paint
|
|
237
|
-
* lands after React's commit, and it does not always; the repo has lost that same bet
|
|
238
|
-
* before (`25f356b`, "a bet on rAF phase"). The fix is here rather than in the
|
|
239
|
-
* wrapper's rAF call, because ANY binding whose `afterRender` can precede its commit
|
|
240
|
-
* hits this, and one fix at the host covers all four.
|
|
223
|
+
* Frameworks render LATE: a binding's `afterRender` can run before its commit, so a
|
|
224
|
+
* bubble may not exist yet when its count arrives. A count that was dropped would
|
|
225
|
+
* leave the bubble at one sibling, the picker hidden and the other version
|
|
226
|
+
* unreachable. The retry lives here rather than in a wrapper, so it covers all four.
|
|
241
227
|
*
|
|
242
228
|
* Bounded, because a sibling can legitimately never arrive — a message that left the
|
|
243
229
|
* path has no bubble and never will, and an unbounded retry would hold a callback for
|
|
@@ -252,12 +238,11 @@ export declare class AparteChatHost {
|
|
|
252
238
|
* The bubble the streaming writes below belong to: the one carrying that message's
|
|
253
239
|
* id, and NOTHING when it is not on the page yet.
|
|
254
240
|
*
|
|
255
|
-
* It
|
|
241
|
+
* It is not "the last bubble in the viewport", which is a different message
|
|
256
242
|
* whenever the DOM is a render behind the list — which is every framework here.
|
|
257
|
-
* `appendMessage` puts the new reply in
|
|
258
|
-
* schedule, so a first chunk arriving in between
|
|
259
|
-
*
|
|
260
|
-
* `data-segment-id` was on two bubbles.
|
|
243
|
+
* `appendMessage` puts the new reply in the framework's state and the framework
|
|
244
|
+
* paints it on its own schedule, so a first chunk arriving in between would go into
|
|
245
|
+
* the PREVIOUS reply's bubble.
|
|
261
246
|
*
|
|
262
247
|
* Skipping the paint is safe because it is only ever a paint: the message list is
|
|
263
248
|
* written either way, and `syncBubbles` — called by the framework after each render,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aparte-chat-host.d.ts","sourceRoot":"","sources":["../../src/host/aparte-chat-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EAIhB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EACH,4BAA4B,EAE/B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"aparte-chat-host.d.ts","sourceRoot":"","sources":["../../src/host/aparte-chat-host.ts"],"names":[],"mappings":"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"}
|
package/dist/icons/extended.d.ts
CHANGED
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Import three, pay for three. Nothing here is loaded by `@aparte/core` itself, so a
|
|
13
13
|
* consumer who never opens this module pays nothing at all — the same lever as
|
|
14
|
-
* `@aparte/plugin-shiki/core
|
|
15
|
-
* point, never by a flag).
|
|
14
|
+
* `@aparte/plugin-shiki/core`: weight is controlled by an entry point, never by a flag.
|
|
16
15
|
*
|
|
17
16
|
* Drawn here, like `glyphs.ts`: a 24-unit grid, a 2-unit round-capped stroke,
|
|
18
17
|
* `currentColor`, no size (the container declares `--aparte-icon-size`). The names are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extended.d.ts","sourceRoot":"","sources":["../../src/icons/extended.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"extended.d.ts","sourceRoot":"","sources":["../../src/icons/extended.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA4C,SAAS,EAAE,MAAM,aAAa,CAAC;AAElF,UAAU;AACV,eAAO,MAAM,QAAQ,0MAA0L,CAAC;AAEhN,aAAa;AACb,eAAO,MAAM,SAAS,gMAAgL,CAAC;AAEvM,oCAAoC;AACpC,eAAO,MAAM,UAAU,6OAAuN,CAAC;AAE/O,oBAAoB;AACpB,eAAO,MAAM,UAAU,uNAAuM,CAAC;AAE/N;yFACyF;AACzF,eAAO,MAAM,kBAAkB,gSAAW,CAAC;AAE3C,iCAAiC;AACjC,eAAO,MAAM,gBAAgB,gSAAgQ,CAAC;AAE9R;6DAC6D;AAC7D,eAAO,MAAM,eAAe,wMAAiB,CAAC;AAE9C,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,yMAAiB,CAAC;AAE/C,4BAA4B;AAC5B,eAAO,MAAM,WAAW,wNAAwM,CAAC;AAEjO,uBAAuB;AACvB,eAAO,MAAM,cAAc,uNAAuM,CAAC;AAEnO,4BAA4B;AAC5B,eAAO,MAAM,gBAAgB,8RAA4Q,CAAC;AAE1S,kBAAkB;AAClB,eAAO,MAAM,QAAQ,wUAAsT,CAAC;AAE5U,kBAAkB;AAClB,eAAO,MAAM,UAAU,yQAAyP,CAAC;AAEjR,kBAAkB;AAClB,eAAO,MAAM,QAAQ,oOAAoN,CAAC;AAE1O,0BAA0B;AAC1B,eAAO,MAAM,aAAa,yTAA+R,CAAC;AAE1T,sBAAsB;AAGtB,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,mBAAmB;AACnB,eAAO,MAAM,QAAQ,qTAAmS,CAAC;AAEzT,qBAAqB;AACrB,eAAO,MAAM,UAAU,8QAA4P,CAAC;AAEpR,kBAAkB;AAClB,eAAO,MAAM,YAAY,0WAA8U,CAAC;AAExW,eAAe;AACf,eAAO,MAAM,QAAQ,kPAA4N,CAAC;AAElP,oBAAoB;AACpB,eAAO,MAAM,OAAO,6TAA6R,CAAC;AAElT,2BAA2B;AAC3B,eAAO,MAAM,YAAY,2YAAyX,CAAC;AAEnZ,gCAAgC;AAChC,eAAO,MAAM,OAAO,wXAAoV,CAAC;AAEzW,cAAc;AACd,eAAO,MAAM,YAAY,6UAAmT,CAAC;AAE7U,2BAA2B;AAC3B,eAAO,MAAM,SAAS,0QAAoP,CAAC;AAE3Q,mBAAmB;AACnB,eAAO,MAAM,OAAO,mQAA6O,CAAC;AAElQ,YAAY;AACZ,eAAO,MAAM,OAAO,+RAAqQ,CAAC;AAE1R,YAAY;AACZ,eAAO,MAAM,UAAU,iXAA2V,CAAC;AAEnX,YAAY;AACZ,eAAO,MAAM,OAAO,oTAA8R,CAAC;AAEnT,aAAa;AACb,eAAO,MAAM,UAAU,wYAAoX,CAAC;AAE5Y,yBAAyB;AACzB,eAAO,MAAM,SAAS,2OAAqN,CAAC;AAE5O,yBAAyB;AACzB,eAAO,MAAM,WAAW,yPAAuO,CAAC;AAEhQ,gBAAgB;AAChB,eAAO,MAAM,QAAQ,0QAA0P,CAAC;AAEhR,qBAAqB;AACrB,eAAO,MAAM,SAAS,+UAA6S,CAAC;AAEpU,yBAAyB;AACzB,eAAO,MAAM,eAAe,kPAA4N,CAAC;AAEzP,2BAA2B;AAC3B,eAAO,MAAM,WAAW,6PAAuO,CAAC;AAEhQ,qBAAqB;AACrB,eAAO,MAAM,iBAAiB,gRAAgQ,CAAC;AAE/R,kBAAkB;AAClB,eAAO,MAAM,OAAO,gTAA0R,CAAC;AAE/S,iBAAiB;AACjB,eAAO,MAAM,QAAQ,kOAAkN,CAAC;AAExO;sEACsE;AACtE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC9B,CAAC"}
|
package/dist/icons.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `@aparte/core/icons` entry point.
|
|
3
3
|
*
|
|
4
|
-
* A flat re-export of `icons/index.ts
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* and
|
|
10
|
-
* caught. Flat here means `dist/icons.js` and `dist/icons.d.ts` are siblings and every
|
|
11
|
-
* resolution mode agrees.
|
|
4
|
+
* A flat re-export of `icons/index.ts`. `tsc` mirrors the source tree into `dist`, so a
|
|
5
|
+
* nested entry emits `dist/icons/index.d.ts` while Vite emits `dist/icons.js` beside it.
|
|
6
|
+
* Package `exports` can point `types` at the nested path (`publint` and `attw` both pass
|
|
7
|
+
* on that), but a consumer whose TypeScript resolves the older way looks for a
|
|
8
|
+
* declaration file NEXT TO the JavaScript, finds none, and gets `any`. Flat here means
|
|
9
|
+
* `dist/icons.js` and `dist/icons.d.ts` are siblings and every resolution mode agrees.
|
|
12
10
|
*/
|
|
13
11
|
export * from './icons/index.js';
|
|
14
12
|
//# sourceMappingURL=icons.d.ts.map
|
package/dist/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,kBAAkB,CAAC"}
|
package/dist/icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sources":["../src/icons/extended.ts"],"sourcesContent":["/**\n * The extended set — glyphs core itself never draws.\n *\n * SEPARATE ON PURPOSE, and the reason is mechanical rather than editorial.\n * `APARTE_DEFAULT_ICON_FALLBACKS` is read by a computed key (`getIcon(name)`), so a\n * bundler cannot tell which of its entries a build reaches and keeps the object whole.\n * Anything added there ships to every consumer, used or not. These are individual\n * exports behind their own entry point instead:\n *\n * import { searchIcon, trashIcon } from '@aparte/core/icons';\n *\n * Import three, pay for three. Nothing here is loaded by `@aparte/core` itself, so a\n * consumer who never opens this module pays nothing at all — the same lever as\n * `@aparte/plugin-shiki/core` (ratified decision #9b: weight is controlled by an entry\n * point, never by a flag).\n *\n * Drawn here, like `glyphs.ts`: a 24-unit grid, a 2-unit round-capped stroke,\n * `currentColor`, no size (the container declares `--aparte-icon-size`). The names are\n * the plain words for what each one shows — search, trash, folder — so a consumer can\n * find one without a legend. Nothing is imported from anywhere: core has no\n * dependencies, and the path data is ours.\n *\n * To wire one to a name core knows, pass it through an icon provider:\n *\n * aparteGlobalConfig.setIconProvider({ retry: () => historyIcon });\n */\n\nimport { prevBranchIcon, nextBranchIcon, moreIcon, trashIcon } from './glyphs.js';\n\n/** Add */\nexport const plusIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 4.5v15M4.5 12h15\"/></svg>`;\n\n/** Remove */\nexport const minusIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4.5 12h15\"/></svg>`;\n\n/** Search a list or a transcript */\nexport const searchIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10.5\" cy=\"10.5\" r=\"7\"/><path d=\"m16 16 5.5 5.5\"/></svg>`;\n\n/** Filter a list */\nexport const filterIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3.5 4.5h17l-6.5 8v6.5l-4 2v-8.5Z\"/></svg>`;\n\n/** Overflow menu, in a row. The conversation list draws it, so the path lives in\n * `glyphs.ts` as `more` — this is the alias under its shape name, like the chevrons. */\nexport const moreHorizontalIcon = moreIcon;\n\n/** Overflow menu, in a column */\nexport const moreVerticalIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"5.5\" r=\"1.1\"/><circle cx=\"12\" cy=\"12\" r=\"1.1\"/><circle cx=\"12\" cy=\"18.5\" r=\"1.1\"/></svg>`;\n\n/** Previous. The same drawing the branch picker uses, under its shape name rather\n * than its role name — an alias, so the path ships once. */\nexport const chevronLeftIcon = prevBranchIcon;\n\n/** Next. Alias of the branch picker glyph — see chevronLeftIcon. */\nexport const chevronRightIcon = nextBranchIcon;\n\n/** Send upward / move up */\nexport const arrowUpIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 19.5v-15M5.5 11 12 4.5l6.5 6.5\"/></svg>`;\n\n/** Continue / go to */\nexport const arrowRightIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4.5 12h15M13 5.5l6.5 6.5-6.5 6.5\"/></svg>`;\n\n/** Opens outside the app */\nexport const externalLinkIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 4.5H6.5a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V13\"/><path d=\"M14.5 4.5h5v5M19.5 4.5 11 13\"/></svg>`;\n\n/** A hyperlink */\nexport const linkIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10.5 13.5a4 4 0 0 0 5.66 0l2.83-2.83a4 4 0 0 0-5.66-5.66L12 6.34\"/><path d=\"M13.5 10.5a4 4 0 0 0-5.66 0l-2.83 2.83a4 4 0 0 0 5.66 5.66L12 17.66\"/></svg>`;\n\n/** A directory */\nexport const folderIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3.5 7.5a2 2 0 0 1 2-2h4.2l2 2h7.8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-14a2 2 0 0 1-2-2Z\"/></svg>`;\n\n/** Source code */\nexport const codeIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15.5 7.5 4.5 4.5-4.5 4.5M8.5 7.5 4 12l4.5 4.5\"/></svg>`;\n\n/** Paste / a clipboard */\nexport const clipboardIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"4.5\" width=\"14\" height=\"16\" rx=\"2.5\"/><path d=\"M9 4.5V4a1.5 1.5 0 0 1 1.5-1.5h3A1.5 1.5 0 0 1 15 4v.5M9 11h6M9 15h4\"/></svg>`;\n\n/** Delete for good */\n/* `trashIcon` moved to `glyphs.ts` when the conversation list's menu started drawing\n it; it is re-exported below so `import { trashIcon } from '@aparte/core/icons'` holds. */\nexport { trashIcon };\n\n/** Save to disk */\nexport const saveIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 4.5h11l3.5 3.5v11a1.5 1.5 0 0 1-1.5 1.5H5a1.5 1.5 0 0 1-1.5-1.5V6A1.5 1.5 0 0 1 5 4.5Z\"/><path d=\"M8 20.5v-6h8v6M8 4.5v4h5\"/></svg>`;\n\n/** Send a file up */\nexport const uploadIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4.5 15.5v3a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-3\"/><path d=\"M12 15V4M7.5 8.5 12 4l4.5 4.5\"/></svg>`;\n\n/** Preferences */\nexport const settingsIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"/><circle cx=\"12\" cy=\"12\" r=\"7\"/><path d=\"M12 2.5V5M12 19v2.5M2.5 12H5M19 12h2.5M5.3 5.3l1.8 1.8M16.9 16.9l1.8 1.8M5.3 18.7l1.8-1.8M16.9 7.1l1.8-1.8\"/></svg>`;\n\n/** A person */\nexport const userIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8\" r=\"3.5\"/><path d=\"M5 20.5a7 7 0 0 1 14 0\"/></svg>`;\n\n/** The assistant */\nexport const botIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"4\" y=\"8.5\" width=\"16\" height=\"11\" rx=\"3\"/><path d=\"M12 8.5V5.5M8.5 13.5V15M15.5 13.5V15\"/><circle cx=\"12\" cy=\"4.5\" r=\"1\"/></svg>`;\n\n/** Generated by a model */\nexport const sparklesIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5c.6 4.6 3.4 7.4 8 8-4.6.6-7.4 3.4-8 8-.6-4.6-3.4-7.4-8-8 4.6-.6 7.4-3.4 8-8Z\"/><path d=\"M19 16.5c.25 1.6 1.15 2.5 2.75 2.75-1.6.25-2.5 1.15-2.75 2.75-.25-1.6-1.15-2.5-2.75-2.75 1.6-.25 2.5-1.15 2.75-2.75Z\"/></svg>`;\n\n/** Local / on-device compute */\nexport const cpuIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" rx=\"2.5\"/><rect x=\"9.5\" y=\"9.5\" width=\"5\" height=\"5\" rx=\"1\"/><path d=\"M9 2.5V5M15 2.5V5M9 19v2.5M15 19v2.5M2.5 9H5M2.5 15H5M19 9h2.5M19 15h2.5\"/></svg>`;\n\n/** A store */\nexport const databaseIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><ellipse cx=\"12\" cy=\"6\" rx=\"7.5\" ry=\"3\"/><path d=\"M4.5 6v12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3V6\"/><path d=\"M4.5 12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3\"/></svg>`;\n\n/** Remote / the network */\nexport const globeIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M3 12h18M12 3a13 13 0 0 1 0 18a13 13 0 0 1 0-18\"/></svg>`;\n\n/** A credential */\nexport const keyIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"8\" cy=\"15\" r=\"4\"/><path d=\"M10.8 12.2 20 3M17 6l2.5 2.5M14.5 8.5l2 2\"/></svg>`;\n\n/** Speak */\nexport const micIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"3\" width=\"6\" height=\"11\" rx=\"3\"/><path d=\"M5.5 11.5a6.5 6.5 0 0 0 13 0M12 18v3.5M9 21.5h6\"/></svg>`;\n\n/** Muted */\nexport const micOffIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 10.5V6a3 3 0 0 0-5.7-1.3\"/><path d=\"M9 9.5V11a3 3 0 0 0 4.9 2.3\"/><path d=\"M5.5 11.5a6.5 6.5 0 0 0 10.2 5.3M18.5 11.5a6.4 6.4 0 0 1-.3 2\"/><path d=\"M12 18v3.5M9 21.5h6M4 4l16 16\"/></svg>`;\n\n/** Shown */\nexport const eyeIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2.5 12c2.2-4.2 5.4-6.5 9.5-6.5s7.3 2.3 9.5 6.5c-2.2 4.2-5.4 6.5-9.5 6.5S4.7 16.2 2.5 12Z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></svg>`;\n\n/** Hidden */\nexport const eyeOffIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10 6.1A9.6 9.6 0 0 1 12 5.5c4.1 0 7.3 2.3 9.5 6.5a15.7 15.7 0 0 1-2.7 3.6\"/><path d=\"M6.3 7.7A14 14 0 0 0 2.5 12c2.2 4.2 5.4 6.5 9.5 6.5a9.6 9.6 0 0 0 3.4-.6\"/><path d=\"M9.9 9.9a3 3 0 0 0 4.2 4.2M4 4l16 16\"/></svg>`;\n\n/** Duration / pending */\nexport const clockIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7.5V12l3.5 2\"/></svg>`;\n\n/** Past conversations */\nexport const historyIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3.5 12a8.5 8.5 0 1 0 2.5-6\"/><path d=\"M3.5 4v5h5M12 7.5V12l3 1.8\"/></svg>`;\n\n/** Favourite */\nexport const starIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"12 3 14.5 9.1 21 9.6 16 13.8 17.6 20.2 12 16.7 6.4 20.2 8 13.8 3 9.6 9.5 9.1\"/></svg>`;\n\n/** Send elsewhere */\nexport const shareIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"18\" cy=\"5.5\" r=\"2.5\"/><circle cx=\"6\" cy=\"12\" r=\"2.5\"/><circle cx=\"18\" cy=\"18.5\" r=\"2.5\"/><path d=\"m8.2 10.8 7.6-4.1M8.2 13.2l7.6 4.1\"/></svg>`;\n\n/** Done, emphatically */\nexport const checkCircleIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"m8 12.2 2.8 2.8 5.7-5.5\"/></svg>`;\n\n/** Failed, emphatically */\nexport const xCircleIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"m9.2 9.2 5.6 5.6M14.8 9.2l-5.6 5.6\"/></svg>`;\n\n/** A conversation */\nexport const messageSquareIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6.5 4h11A2.5 2.5 0 0 1 20 6.5v8a2.5 2.5 0 0 1-2.5 2.5H9.5L4.5 21V6.5A2.5 2.5 0 0 1 6.5 4Z\"/></svg>`;\n\n/** Light theme */\nexport const sunIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3.5\"/><path d=\"M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6 7 7M17 17l1.4 1.4M5.6 18.4 7 17M17 7l1.4-1.4\"/></svg>`;\n\n/** Dark theme */\nexport const moonIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z\"/></svg>`;\n\n/** Every extended glyph, by name. Importing this object defeats tree-shaking:\n * it is here for a gallery or a picker, not for drawing one icon. */\nexport const APARTE_EXTENDED_ICON_GLYPHS = {\n plus: plusIcon,\n minus: minusIcon,\n search: searchIcon,\n filter: filterIcon,\n moreHorizontal: moreHorizontalIcon,\n moreVertical: moreVerticalIcon,\n chevronLeft: chevronLeftIcon,\n chevronRight: chevronRightIcon,\n arrowUp: arrowUpIcon,\n arrowRight: arrowRightIcon,\n externalLink: externalLinkIcon,\n link: linkIcon,\n folder: folderIcon,\n code: codeIcon,\n clipboard: clipboardIcon,\n trash: trashIcon,\n save: saveIcon,\n upload: uploadIcon,\n settings: settingsIcon,\n user: userIcon,\n bot: botIcon,\n sparkles: sparklesIcon,\n cpu: cpuIcon,\n database: databaseIcon,\n globe: globeIcon,\n key: keyIcon,\n mic: micIcon,\n micOff: micOffIcon,\n eye: eyeIcon,\n eyeOff: eyeOffIcon,\n clock: clockIcon,\n history: historyIcon,\n star: starIcon,\n share: shareIcon,\n checkCircle: checkCircleIcon,\n xCircle: xCircleIcon,\n messageSquare: messageSquareIcon,\n sun: sunIcon,\n moon: moonIcon,\n} as const;\n"],"names":[],"mappings":";;AA8BO,MAAM,WAAW;AAGjB,MAAM,YAAY;AAGlB,MAAM,aAAa;AAGnB,MAAM,aAAa;AAInB,MAAM,qBAAqB;AAG3B,MAAM,mBAAmB;AAIzB,MAAM,kBAAkB;AAGxB,MAAM,mBAAmB;AAGzB,MAAM,cAAc;AAGpB,MAAM,iBAAiB;AAGvB,MAAM,mBAAmB;AAGzB,MAAM,WAAW;AAGjB,MAAM,aAAa;AAGnB,MAAM,WAAW;AAGjB,MAAM,gBAAgB;AAQtB,MAAM,WAAW;AAGjB,MAAM,aAAa;AAGnB,MAAM,eAAe;AAGrB,MAAM,WAAW;AAGjB,MAAM,UAAU;AAGhB,MAAM,eAAe;AAGrB,MAAM,UAAU;AAGhB,MAAM,eAAe;AAGrB,MAAM,YAAY;AAGlB,MAAM,UAAU;AAGhB,MAAM,UAAU;AAGhB,MAAM,aAAa;AAGnB,MAAM,UAAU;AAGhB,MAAM,aAAa;AAGnB,MAAM,YAAY;AAGlB,MAAM,cAAc;AAGpB,MAAM,WAAW;AAGjB,MAAM,YAAY;AAGlB,MAAM,kBAAkB;AAGxB,MAAM,cAAc;AAGpB,MAAM,oBAAoB;AAG1B,MAAM,UAAU;AAGhB,MAAM,WAAW;AAIjB,MAAM,8BAA8B;AAAA,EACvC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,UAAU;AAAA,EACV,OAAO;AAAA,EACP,KAAK;AAAA,EACL,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,SAAS;AAAA,EACT,eAAe;AAAA,EACf,KAAK;AAAA,EACL,MAAM;AACV;"}
|
|
1
|
+
{"version":3,"file":"icons.js","sources":["../src/icons/extended.ts"],"sourcesContent":["/**\n * The extended set — glyphs core itself never draws.\n *\n * SEPARATE ON PURPOSE, and the reason is mechanical rather than editorial.\n * `APARTE_DEFAULT_ICON_FALLBACKS` is read by a computed key (`getIcon(name)`), so a\n * bundler cannot tell which of its entries a build reaches and keeps the object whole.\n * Anything added there ships to every consumer, used or not. These are individual\n * exports behind their own entry point instead:\n *\n * import { searchIcon, trashIcon } from '@aparte/core/icons';\n *\n * Import three, pay for three. Nothing here is loaded by `@aparte/core` itself, so a\n * consumer who never opens this module pays nothing at all — the same lever as\n * `@aparte/plugin-shiki/core`: weight is controlled by an entry point, never by a flag.\n *\n * Drawn here, like `glyphs.ts`: a 24-unit grid, a 2-unit round-capped stroke,\n * `currentColor`, no size (the container declares `--aparte-icon-size`). The names are\n * the plain words for what each one shows — search, trash, folder — so a consumer can\n * find one without a legend. Nothing is imported from anywhere: core has no\n * dependencies, and the path data is ours.\n *\n * To wire one to a name core knows, pass it through an icon provider:\n *\n * aparteGlobalConfig.setIconProvider({ retry: () => historyIcon });\n */\n\nimport { prevBranchIcon, nextBranchIcon, moreIcon, trashIcon } from './glyphs.js';\n\n/** Add */\nexport const plusIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 4.5v15M4.5 12h15\"/></svg>`;\n\n/** Remove */\nexport const minusIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4.5 12h15\"/></svg>`;\n\n/** Search a list or a transcript */\nexport const searchIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"10.5\" cy=\"10.5\" r=\"7\"/><path d=\"m16 16 5.5 5.5\"/></svg>`;\n\n/** Filter a list */\nexport const filterIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3.5 4.5h17l-6.5 8v6.5l-4 2v-8.5Z\"/></svg>`;\n\n/** Overflow menu, in a row. The conversation list draws it, so the path lives in\n * `glyphs.ts` as `more` — this is the alias under its shape name, like the chevrons. */\nexport const moreHorizontalIcon = moreIcon;\n\n/** Overflow menu, in a column */\nexport const moreVerticalIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"5.5\" r=\"1.1\"/><circle cx=\"12\" cy=\"12\" r=\"1.1\"/><circle cx=\"12\" cy=\"18.5\" r=\"1.1\"/></svg>`;\n\n/** Previous. The same drawing the branch picker uses, under its shape name rather\n * than its role name — an alias, so the path ships once. */\nexport const chevronLeftIcon = prevBranchIcon;\n\n/** Next. Alias of the branch picker glyph — see chevronLeftIcon. */\nexport const chevronRightIcon = nextBranchIcon;\n\n/** Send upward / move up */\nexport const arrowUpIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 19.5v-15M5.5 11 12 4.5l6.5 6.5\"/></svg>`;\n\n/** Continue / go to */\nexport const arrowRightIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4.5 12h15M13 5.5l6.5 6.5-6.5 6.5\"/></svg>`;\n\n/** Opens outside the app */\nexport const externalLinkIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M11 4.5H6.5a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V13\"/><path d=\"M14.5 4.5h5v5M19.5 4.5 11 13\"/></svg>`;\n\n/** A hyperlink */\nexport const linkIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10.5 13.5a4 4 0 0 0 5.66 0l2.83-2.83a4 4 0 0 0-5.66-5.66L12 6.34\"/><path d=\"M13.5 10.5a4 4 0 0 0-5.66 0l-2.83 2.83a4 4 0 0 0 5.66 5.66L12 17.66\"/></svg>`;\n\n/** A directory */\nexport const folderIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3.5 7.5a2 2 0 0 1 2-2h4.2l2 2h7.8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-14a2 2 0 0 1-2-2Z\"/></svg>`;\n\n/** Source code */\nexport const codeIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m15.5 7.5 4.5 4.5-4.5 4.5M8.5 7.5 4 12l4.5 4.5\"/></svg>`;\n\n/** Paste / a clipboard */\nexport const clipboardIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"4.5\" width=\"14\" height=\"16\" rx=\"2.5\"/><path d=\"M9 4.5V4a1.5 1.5 0 0 1 1.5-1.5h3A1.5 1.5 0 0 1 15 4v.5M9 11h6M9 15h4\"/></svg>`;\n\n/** Delete for good */\n/* `trashIcon` moved to `glyphs.ts` when the conversation list's menu started drawing\n it; it is re-exported below so `import { trashIcon } from '@aparte/core/icons'` holds. */\nexport { trashIcon };\n\n/** Save to disk */\nexport const saveIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 4.5h11l3.5 3.5v11a1.5 1.5 0 0 1-1.5 1.5H5a1.5 1.5 0 0 1-1.5-1.5V6A1.5 1.5 0 0 1 5 4.5Z\"/><path d=\"M8 20.5v-6h8v6M8 4.5v4h5\"/></svg>`;\n\n/** Send a file up */\nexport const uploadIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4.5 15.5v3a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-3\"/><path d=\"M12 15V4M7.5 8.5 12 4l4.5 4.5\"/></svg>`;\n\n/** Preferences */\nexport const settingsIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3\"/><circle cx=\"12\" cy=\"12\" r=\"7\"/><path d=\"M12 2.5V5M12 19v2.5M2.5 12H5M19 12h2.5M5.3 5.3l1.8 1.8M16.9 16.9l1.8 1.8M5.3 18.7l1.8-1.8M16.9 7.1l1.8-1.8\"/></svg>`;\n\n/** A person */\nexport const userIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"8\" r=\"3.5\"/><path d=\"M5 20.5a7 7 0 0 1 14 0\"/></svg>`;\n\n/** The assistant */\nexport const botIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"4\" y=\"8.5\" width=\"16\" height=\"11\" rx=\"3\"/><path d=\"M12 8.5V5.5M8.5 13.5V15M15.5 13.5V15\"/><circle cx=\"12\" cy=\"4.5\" r=\"1\"/></svg>`;\n\n/** Generated by a model */\nexport const sparklesIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3.5c.6 4.6 3.4 7.4 8 8-4.6.6-7.4 3.4-8 8-.6-4.6-3.4-7.4-8-8 4.6-.6 7.4-3.4 8-8Z\"/><path d=\"M19 16.5c.25 1.6 1.15 2.5 2.75 2.75-1.6.25-2.5 1.15-2.75 2.75-.25-1.6-1.15-2.5-2.75-2.75 1.6-.25 2.5-1.15 2.75-2.75Z\"/></svg>`;\n\n/** Local / on-device compute */\nexport const cpuIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"5\" y=\"5\" width=\"14\" height=\"14\" rx=\"2.5\"/><rect x=\"9.5\" y=\"9.5\" width=\"5\" height=\"5\" rx=\"1\"/><path d=\"M9 2.5V5M15 2.5V5M9 19v2.5M15 19v2.5M2.5 9H5M2.5 15H5M19 9h2.5M19 15h2.5\"/></svg>`;\n\n/** A store */\nexport const databaseIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><ellipse cx=\"12\" cy=\"6\" rx=\"7.5\" ry=\"3\"/><path d=\"M4.5 6v12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3V6\"/><path d=\"M4.5 12c0 1.66 3.36 3 7.5 3s7.5-1.34 7.5-3\"/></svg>`;\n\n/** Remote / the network */\nexport const globeIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M3 12h18M12 3a13 13 0 0 1 0 18a13 13 0 0 1 0-18\"/></svg>`;\n\n/** A credential */\nexport const keyIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"8\" cy=\"15\" r=\"4\"/><path d=\"M10.8 12.2 20 3M17 6l2.5 2.5M14.5 8.5l2 2\"/></svg>`;\n\n/** Speak */\nexport const micIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"9\" y=\"3\" width=\"6\" height=\"11\" rx=\"3\"/><path d=\"M5.5 11.5a6.5 6.5 0 0 0 13 0M12 18v3.5M9 21.5h6\"/></svg>`;\n\n/** Muted */\nexport const micOffIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 10.5V6a3 3 0 0 0-5.7-1.3\"/><path d=\"M9 9.5V11a3 3 0 0 0 4.9 2.3\"/><path d=\"M5.5 11.5a6.5 6.5 0 0 0 10.2 5.3M18.5 11.5a6.4 6.4 0 0 1-.3 2\"/><path d=\"M12 18v3.5M9 21.5h6M4 4l16 16\"/></svg>`;\n\n/** Shown */\nexport const eyeIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2.5 12c2.2-4.2 5.4-6.5 9.5-6.5s7.3 2.3 9.5 6.5c-2.2 4.2-5.4 6.5-9.5 6.5S4.7 16.2 2.5 12Z\"/><circle cx=\"12\" cy=\"12\" r=\"3\"/></svg>`;\n\n/** Hidden */\nexport const eyeOffIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M10 6.1A9.6 9.6 0 0 1 12 5.5c4.1 0 7.3 2.3 9.5 6.5a15.7 15.7 0 0 1-2.7 3.6\"/><path d=\"M6.3 7.7A14 14 0 0 0 2.5 12c2.2 4.2 5.4 6.5 9.5 6.5a9.6 9.6 0 0 0 3.4-.6\"/><path d=\"M9.9 9.9a3 3 0 0 0 4.2 4.2M4 4l16 16\"/></svg>`;\n\n/** Duration / pending */\nexport const clockIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M12 7.5V12l3.5 2\"/></svg>`;\n\n/** Past conversations */\nexport const historyIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3.5 12a8.5 8.5 0 1 0 2.5-6\"/><path d=\"M3.5 4v5h5M12 7.5V12l3 1.8\"/></svg>`;\n\n/** Favourite */\nexport const starIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"12 3 14.5 9.1 21 9.6 16 13.8 17.6 20.2 12 16.7 6.4 20.2 8 13.8 3 9.6 9.5 9.1\"/></svg>`;\n\n/** Send elsewhere */\nexport const shareIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"18\" cy=\"5.5\" r=\"2.5\"/><circle cx=\"6\" cy=\"12\" r=\"2.5\"/><circle cx=\"18\" cy=\"18.5\" r=\"2.5\"/><path d=\"m8.2 10.8 7.6-4.1M8.2 13.2l7.6 4.1\"/></svg>`;\n\n/** Done, emphatically */\nexport const checkCircleIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"m8 12.2 2.8 2.8 5.7-5.5\"/></svg>`;\n\n/** Failed, emphatically */\nexport const xCircleIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"m9.2 9.2 5.6 5.6M14.8 9.2l-5.6 5.6\"/></svg>`;\n\n/** A conversation */\nexport const messageSquareIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6.5 4h11A2.5 2.5 0 0 1 20 6.5v8a2.5 2.5 0 0 1-2.5 2.5H9.5L4.5 21V6.5A2.5 2.5 0 0 1 6.5 4Z\"/></svg>`;\n\n/** Light theme */\nexport const sunIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"3.5\"/><path d=\"M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6 7 7M17 17l1.4 1.4M5.6 18.4 7 17M17 7l1.4-1.4\"/></svg>`;\n\n/** Dark theme */\nexport const moonIcon = `<svg class=\"aparte-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z\"/></svg>`;\n\n/** Every extended glyph, by name. Importing this object defeats tree-shaking:\n * it is here for a gallery or a picker, not for drawing one icon. */\nexport const APARTE_EXTENDED_ICON_GLYPHS = {\n plus: plusIcon,\n minus: minusIcon,\n search: searchIcon,\n filter: filterIcon,\n moreHorizontal: moreHorizontalIcon,\n moreVertical: moreVerticalIcon,\n chevronLeft: chevronLeftIcon,\n chevronRight: chevronRightIcon,\n arrowUp: arrowUpIcon,\n arrowRight: arrowRightIcon,\n externalLink: externalLinkIcon,\n link: linkIcon,\n folder: folderIcon,\n code: codeIcon,\n clipboard: clipboardIcon,\n trash: trashIcon,\n save: saveIcon,\n upload: uploadIcon,\n settings: settingsIcon,\n user: userIcon,\n bot: botIcon,\n sparkles: sparklesIcon,\n cpu: cpuIcon,\n database: databaseIcon,\n globe: globeIcon,\n key: keyIcon,\n mic: micIcon,\n micOff: micOffIcon,\n eye: eyeIcon,\n eyeOff: eyeOffIcon,\n clock: clockIcon,\n history: historyIcon,\n star: starIcon,\n share: shareIcon,\n checkCircle: checkCircleIcon,\n xCircle: xCircleIcon,\n messageSquare: messageSquareIcon,\n sun: sunIcon,\n moon: moonIcon,\n} as const;\n"],"names":[],"mappings":";;AA6BO,MAAM,WAAW;AAGjB,MAAM,YAAY;AAGlB,MAAM,aAAa;AAGnB,MAAM,aAAa;AAInB,MAAM,qBAAqB;AAG3B,MAAM,mBAAmB;AAIzB,MAAM,kBAAkB;AAGxB,MAAM,mBAAmB;AAGzB,MAAM,cAAc;AAGpB,MAAM,iBAAiB;AAGvB,MAAM,mBAAmB;AAGzB,MAAM,WAAW;AAGjB,MAAM,aAAa;AAGnB,MAAM,WAAW;AAGjB,MAAM,gBAAgB;AAQtB,MAAM,WAAW;AAGjB,MAAM,aAAa;AAGnB,MAAM,eAAe;AAGrB,MAAM,WAAW;AAGjB,MAAM,UAAU;AAGhB,MAAM,eAAe;AAGrB,MAAM,UAAU;AAGhB,MAAM,eAAe;AAGrB,MAAM,YAAY;AAGlB,MAAM,UAAU;AAGhB,MAAM,UAAU;AAGhB,MAAM,aAAa;AAGnB,MAAM,UAAU;AAGhB,MAAM,aAAa;AAGnB,MAAM,YAAY;AAGlB,MAAM,cAAc;AAGpB,MAAM,WAAW;AAGjB,MAAM,YAAY;AAGlB,MAAM,kBAAkB;AAGxB,MAAM,cAAc;AAGpB,MAAM,oBAAoB;AAG1B,MAAM,UAAU;AAGhB,MAAM,WAAW;AAIjB,MAAM,8BAA8B;AAAA,EACvC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,cAAc;AAAA,EACd,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,KAAK;AAAA,EACL,UAAU;AAAA,EACV,KAAK;AAAA,EACL,UAAU;AAAA,EACV,OAAO;AAAA,EACP,KAAK;AAAA,EACL,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,SAAS;AAAA,EACT,eAAe;AAAA,EACf,KAAK;AAAA,EACL,MAAM;AACV;"}
|