@aparte/core 0.12.1 → 0.13.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.
Files changed (94) hide show
  1. package/dist/client/aparte-client.d.ts +25 -0
  2. package/dist/client/aparte-client.d.ts.map +1 -1
  3. package/dist/components/bubble/aparte-chat-bubble.d.ts +117 -0
  4. package/dist/components/bubble/aparte-chat-bubble.d.ts.map +1 -1
  5. package/dist/components/chat/aparte-chat.d.ts +70 -15
  6. package/dist/components/chat/aparte-chat.d.ts.map +1 -1
  7. package/dist/components/composer/aparte-composer-action.d.ts +48 -7
  8. package/dist/components/composer/aparte-composer-action.d.ts.map +1 -1
  9. package/dist/components/composer/aparte-composer-add-attachment.d.ts +37 -4
  10. package/dist/components/composer/aparte-composer-add-attachment.d.ts.map +1 -1
  11. package/dist/components/composer/aparte-composer-attachments.d.ts +35 -3
  12. package/dist/components/composer/aparte-composer-attachments.d.ts.map +1 -1
  13. package/dist/components/composer/aparte-composer-cancel.d.ts +25 -2
  14. package/dist/components/composer/aparte-composer-cancel.d.ts.map +1 -1
  15. package/dist/components/composer/aparte-composer-input.d.ts +54 -5
  16. package/dist/components/composer/aparte-composer-input.d.ts.map +1 -1
  17. package/dist/components/composer/aparte-composer-send.d.ts +47 -4
  18. package/dist/components/composer/aparte-composer-send.d.ts.map +1 -1
  19. package/dist/components/composer/aparte-composer-toolbar.d.ts +15 -4
  20. package/dist/components/composer/aparte-composer-toolbar.d.ts.map +1 -1
  21. package/dist/components/composer/aparte-composer.d.ts +139 -7
  22. package/dist/components/composer/aparte-composer.d.ts.map +1 -1
  23. package/dist/components/composer/index.d.ts +1 -1
  24. package/dist/components/composer/index.d.ts.map +1 -1
  25. package/dist/components/conversation-list/aparte-conversation-list.d.ts +50 -8
  26. package/dist/components/conversation-list/aparte-conversation-list.d.ts.map +1 -1
  27. package/dist/components/elicitation/aparte-elicitation.d.ts +45 -0
  28. package/dist/components/elicitation/aparte-elicitation.d.ts.map +1 -1
  29. package/dist/components/index.d.ts +1 -1
  30. package/dist/components/index.d.ts.map +1 -1
  31. package/dist/components/status/aparte-chat-status.d.ts +47 -5
  32. package/dist/components/status/aparte-chat-status.d.ts.map +1 -1
  33. package/dist/components/viewport/aparte-chat-viewport.d.ts +78 -8
  34. package/dist/components/viewport/aparte-chat-viewport.d.ts.map +1 -1
  35. package/dist/config/aparte-config.d.ts +22 -0
  36. package/dist/config/aparte-config.d.ts.map +1 -1
  37. package/dist/config/icon-provider.d.ts +17 -15
  38. package/dist/config/icon-provider.d.ts.map +1 -1
  39. package/dist/custom-elements.json +6249 -4138
  40. package/dist/elicitation/approval-panel.d.ts.map +1 -1
  41. package/dist/elicitation/panel.d.ts +23 -2
  42. package/dist/elicitation/panel.d.ts.map +1 -1
  43. package/dist/generated/element-attributes.d.ts +21 -15
  44. package/dist/generated/element-attributes.d.ts.map +1 -1
  45. package/dist/glyphs-QXfbL3n_.js +81 -0
  46. package/dist/glyphs-QXfbL3n_.js.map +1 -0
  47. package/dist/icons/extended.d.ts +153 -0
  48. package/dist/icons/extended.d.ts.map +1 -0
  49. package/dist/icons/glyphs.d.ts +98 -0
  50. package/dist/icons/glyphs.d.ts.map +1 -0
  51. package/dist/icons/index.d.ts +24 -0
  52. package/dist/icons/index.d.ts.map +1 -0
  53. package/dist/icons.d.ts +14 -0
  54. package/dist/icons.d.ts.map +1 -0
  55. package/dist/icons.js +157 -0
  56. package/dist/icons.js.map +1 -0
  57. package/dist/index.css +5082 -2119
  58. package/dist/index.d.ts +37 -3
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +167 -67
  61. package/dist/index.js.map +1 -1
  62. package/dist/index.node.d.ts +2 -2
  63. package/dist/index.node.d.ts.map +1 -1
  64. package/dist/index.node.js +1 -1
  65. package/dist/index.node.js.map +1 -1
  66. package/dist/{is-awaiting-reply-BWTDvQ__.js → is-awaiting-reply-DrO_oR32.js} +333 -147
  67. package/dist/is-awaiting-reply-DrO_oR32.js.map +1 -0
  68. package/dist/primitives/icon/aparte-icon.d.ts +49 -0
  69. package/dist/primitives/icon/aparte-icon.d.ts.map +1 -0
  70. package/dist/primitives/icon/index.d.ts +2 -0
  71. package/dist/primitives/icon/index.d.ts.map +1 -0
  72. package/dist/primitives/index.d.ts +1 -0
  73. package/dist/primitives/index.d.ts.map +1 -1
  74. package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts +20 -5
  75. package/dist/primitives/progress-spinner/aparte-progress-spinner.d.ts.map +1 -1
  76. package/dist/primitives/select/aparte-optgroup.d.ts +30 -7
  77. package/dist/primitives/select/aparte-optgroup.d.ts.map +1 -1
  78. package/dist/primitives/select/aparte-option.d.ts +29 -3
  79. package/dist/primitives/select/aparte-option.d.ts.map +1 -1
  80. package/dist/primitives/select/aparte-select.d.ts +36 -11
  81. package/dist/primitives/select/aparte-select.d.ts.map +1 -1
  82. package/dist/renderers/segments/artifact/card.d.ts.map +1 -1
  83. package/dist/renderers/segments/thinking.d.ts.map +1 -1
  84. package/dist/renderers/segments/tool-call.d.ts.map +1 -1
  85. package/dist/types/element-map.d.ts +2 -0
  86. package/dist/types/element-map.d.ts.map +1 -1
  87. package/dist/types/index.d.ts +1 -1
  88. package/dist/types/index.d.ts.map +1 -1
  89. package/dist/types/segments.d.ts +92 -7
  90. package/dist/types/segments.d.ts.map +1 -1
  91. package/dist/types/tools.d.ts +2 -0
  92. package/dist/types/tools.d.ts.map +1 -1
  93. package/package.json +7 -1
  94. package/dist/is-awaiting-reply-BWTDvQ__.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ /**
2
+ * AparteIcon
3
+ *
4
+ * The library's icon set, reachable from MARKUP.
5
+ *
6
+ * It existed only in JavaScript. Core ships 25 glyphs and `setIconProvider` is sold as the
7
+ * lever that swaps them, but the only door in was `getIcon(name)` — so a consumer writing
8
+ * plain HTML could not place one, and the icon provider could not reach a single icon that
9
+ * consumer wrote themselves. `<aparte-composer-action>`'s own documentation tells you to
10
+ * put an `<svg>` inside it, which is the same gap stated as an instruction.
11
+ *
12
+ * That gap is why every example on the CSS-classes reference carried 265 characters of
13
+ * path data to demonstrate a 60-character class: there was no shorter way to say "an icon
14
+ * goes here" that actually drew one. `<aparte-icon name="copy">` is that way.
15
+ *
16
+ * It routes through `getIcon`, so it is not a second icon mechanism — it is a markup
17
+ * entrance to the one that exists. Register a provider and every `<aparte-icon>` on the
18
+ * page follows, including the ones in your own templates.
19
+ *
20
+ * ONE CONSEQUENCE, stated because it is the real cost: the 25 glyph NAMES become public
21
+ * API. `expand`, `copy`, `nextBranch` were internal identifiers; renaming one now breaks a
22
+ * consumer's markup.
23
+ *
24
+ * It renders into itself and takes no children — whatever you put inside is replaced. The
25
+ * SVG is `aria-hidden`, because an icon beside a label is decoration; when the icon IS the
26
+ * button's only content, name the BUTTON (`aria-label`), not this.
27
+ *
28
+ * @element aparte-icon
29
+ * @attr {string} name - Which glyph to draw. One of the names `setIconProvider` accepts;
30
+ * an unknown name draws nothing rather than a broken-image box.
31
+ *
32
+ * @cssprop [--aparte-icon-size=16px] - Width and height. `--sm`/`--lg`/`--xl` set it.
33
+ *
34
+ * @example
35
+ * <aparte-icon name="copy"></aparte-icon>
36
+ * <aparte-icon name="check" class="aparte-icon--lg"></aparte-icon>
37
+ * <button class="aparte-btn aparte-btn--icon" aria-label="Copy">
38
+ * <aparte-icon name="copy"></aparte-icon>
39
+ * </button>
40
+ */
41
+ export declare class AparteIcon extends HTMLElement {
42
+ static get observedAttributes(): string[];
43
+ private _unsubscribe;
44
+ connectedCallback(): void;
45
+ disconnectedCallback(): void;
46
+ attributeChangedCallback(): void;
47
+ private _render;
48
+ }
49
+ //# sourceMappingURL=aparte-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aparte-icon.d.ts","sourceRoot":"","sources":["../../../src/primitives/icon/aparte-icon.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACvC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAAqB;IAE9D,OAAO,CAAC,YAAY,CAA6B;IAEjD,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,IAAI,IAAI;IAIhC,OAAO,CAAC,OAAO;CAalB"}
@@ -0,0 +1,2 @@
1
+ export { AparteIcon } from './aparte-icon.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -5,4 +5,5 @@
5
5
  */
6
6
  export { AparteSelect, AparteOption, AparteOptgroup, type AparteSelectChangeDetail, type AparteOptgroupToggleEventDetail } from './select/index.js';
7
7
  export { AparteProgressSpinner } from './progress-spinner/index.js';
8
+ export { AparteIcon } from './icon/index.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,KAAK,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAGpJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,KAAK,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AAGpJ,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -5,14 +5,29 @@
5
5
  * - Indeterminate (no `value` attribute): continuous rotation animation
6
6
  * - Determinate (`value="0–100"`): fills the arc proportionally
7
7
  *
8
+ * The ABSENCE of the attribute is what selects indeterminate, so `value=""` is not
9
+ * "unknown progress" — it parses to 0, i.e. an empty determinate arc. `value` is clamped
10
+ * to 0–100 and anything non-numeric reads as 0; nothing throws.
11
+ *
12
+ * It renders its own SVG into itself on connect and on every `value` change, so it takes
13
+ * no children: whatever you put inside is overwritten. The SVG is `aria-hidden` and the
14
+ * ARIA lives on the host (`role="progressbar"`, `aria-valuemin`/`aria-valuemax`, plus
15
+ * `aria-valuenow` only when determinate) — there is no accessible NAME, so give the
16
+ * element an `aria-label` unless the surrounding text already says what is loading.
17
+ *
18
+ * It draws an arc; it does not manage a loading lifecycle — no delay before appearing, no
19
+ * timeout, no label, no live announcement. Under `prefers-reduced-motion: reduce` the
20
+ * rotation stops (aparte.css scopes that rule to the library's own elements), which is the
21
+ * other reason the indeterminate arc must not be the only signal that work is in flight.
22
+ *
8
23
  * @element aparte-progress-spinner
9
24
  * @attr {number} value - Progress percentage 0–100 (omit for indeterminate)
10
25
  *
11
- * @cssvar --aparte-spinner-size Size of the spinner. Default: 14px
12
- * @cssvar --aparte-spinner-stroke Stroke width in SVG units. Default: 2.5
13
- * @cssvar --aparte-spinner-color Fill arc stroke color. Default: currentColor
14
- * @cssvar --aparte-spinner-track Track arc stroke color. Default: 15% currentColor
15
- *
26
+ * @cssprop [--aparte-spinner-size=16px] - Width and height of the element; the SVG fills it.
27
+ * @cssprop [--aparte-spinner-stroke=2.5] - Stroke width of both arcs, in the units of the 24×24 viewBox.
28
+ * @cssprop [--aparte-spinner-color=currentColor] - Stroke of the filled (progress) arc.
29
+ * @cssprop [--aparte-spinner-track=color-mix(in srgb, currentColor 15%, transparent)] - Stroke of the track arc behind it.
30
+ *
16
31
  * @example
17
32
  * <!-- Omit `value` for the indeterminate spin; set it to show real progress. -->
18
33
  * <aparte-progress-spinner></aparte-progress-spinner>
@@ -1 +1 @@
1
- {"version":3,"file":"aparte-progress-spinner.d.ts","sourceRoot":"","sources":["../../../src/primitives/progress-spinner/aparte-progress-spinner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAAsB;IAE/D,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAK;IACxB,OAAO,KAAK,KAAK,GAA4C;IAE7D,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,IAAI,IAAI;IAEhC,OAAO,CAAC,OAAO;CAwBlB"}
1
+ {"version":3,"file":"aparte-progress-spinner.d.ts","sourceRoot":"","sources":["../../../src/primitives/progress-spinner/aparte-progress-spinner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAAsB;IAE/D,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAK;IACxB,OAAO,KAAK,KAAK,GAA4C;IAE7D,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,IAAI,IAAI;IAEhC,OAAO,CAAC,OAAO;CAwBlB"}
@@ -3,14 +3,37 @@
3
3
  *
4
4
  * Option group element for aparte-select dropdown.
5
5
  *
6
+ * A labelled band of options inside `<aparte-select>`. Presentational only: the group
7
+ * holds no value, and collapsing it just sets `display: none` on its `<aparte-option>`
8
+ * descendants — they stay in the DOM, which is what keeps the select's keyboard walk
9
+ * skipping them, since it works off `display`. The label header is inserted before the
10
+ * children and the loading row appended after them, so both live inside the group, and
11
+ * neither is hidden when it collapses: only the options are.
12
+ *
13
+ * Two consequences of that worth knowing before you reach for it. The select's search
14
+ * writes that same `display` property on every option in the select, so filtering can
15
+ * reveal matches inside a collapsed group. And the header is built once, on the first
16
+ * render that finds a `label`: changing `label` afterwards does not rewrite it — set the
17
+ * label before inserting the group, or replace the group.
18
+ *
19
+ * `loading` is a display state, not a fetch. It appends a spinner row to the group and
20
+ * nothing else happens — the host still owns the request. "Fetch on expand" is driven by
21
+ * `aparte-optgroup-toggle`, whose `detail.collapsed` says which way the group just went;
22
+ * the attribute and the options' `display` are already updated when it fires, since
23
+ * setting the attribute runs `attributeChangedCallback` synchronously.
24
+ *
6
25
  * @element aparte-optgroup
7
26
  * @attr {string} label - Group label
8
- * @attr {boolean} collapsible - Allow collapse/expand
27
+ * @attr {boolean} collapsible - Adds the chevron and the click handler to the header — so it needs a `label`, and it is read only when that header is first built.
9
28
  * @attr {boolean} collapsed - Collapsed state
10
- * @attr {boolean} loading - Shows a spinner in place of the group's options.
29
+ * @attr {boolean} loading - Appends a spinner row to the group; the options stay visible.
11
30
  *
12
31
  * @fires {CustomEvent<AparteOptgroupToggleEventDetail>} aparte-optgroup-toggle - The group was collapsed or expanded.
13
- *
32
+ *
33
+ * @cssprop --aparte-text-muted - Colour of the group header label and of the loading row.
34
+ * The shared theme token: there is no optgroup-specific override, so restyling one group's
35
+ * header means setting this on that element.
36
+ *
14
37
  * @example
15
38
  * <!-- Collapsed groups keep a long list readable; the label is the group's header. -->
16
39
  * <aparte-select grouped placeholder="Pick a model">
@@ -43,10 +66,10 @@ export declare class AparteOptgroup extends HTMLElement {
43
66
  /**
44
67
  * Detail payload for `aparte-optgroup-toggle`.
45
68
  *
46
- * Named in `types/event-map.ts` as an internal primitive event "carrying no
47
- * cross-package detail contract". `@aparte/plugin-model-selector` reads both of
48
- * its fields, from another package, through an untyped cast — and the event is
49
- * published in the generated CEM event table. It is a contract.
69
+ * `types/event-map.ts` types `aparte-optgroup-toggle` with this detail, and
70
+ * `@aparte/plugin-model-selector` reads both of its fields, from another package,
71
+ * through an untyped cast — while the event is published in the generated CEM event
72
+ * table. It is a contract.
50
73
  *
51
74
  * @event aparte-optgroup-toggle
52
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aparte-optgroup.d.ts","sourceRoot":"","sources":["../../../src/primitives/select/aparte-optgroup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qBAAa,cAAe,SAAQ,WAAW;IAC3C,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAKzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY9F,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAMzB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,EAGvB;IAED,OAAO,CAAC,OAAO;IA4Cf,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,qBAAqB;CAMhC;AAOD;;;;;;;;;GASG;AACH,MAAM,WAAW,+BAA+B;IAC5C,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"aparte-optgroup.d.ts","sourceRoot":"","sources":["../../../src/primitives/select/aparte-optgroup.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,qBAAa,cAAe,SAAQ,WAAW;IAC3C,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAKzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY9F,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAMzB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,EAGvB;IAED,OAAO,CAAC,OAAO;IAkDf,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,qBAAqB;CAMhC;AAOD;;;;;;;;;GASG;AACH,MAAM,WAAW,+BAA+B;IAC5C,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;CACtB"}
@@ -3,15 +3,41 @@
3
3
  *
4
4
  * Option element for aparte-select dropdown.
5
5
  *
6
+ * One selectable row. Only meaningful inside `<aparte-select>` (directly, or nested in an
7
+ * `<aparte-optgroup>`): the parent owns `selected` outright — on its first render, and on
8
+ * every value change after it, it sets that attribute on the option whose `value` matches
9
+ * its own and strips it from all the others. So `selected` written by hand does not
10
+ * survive; set `value` on the select instead. Outside a select nothing selects it: it only
11
+ * styles the row and sets `role="option"` / `aria-selected` from its own attributes.
12
+ *
13
+ * It is not an `<option>`. It carries no form value, `disabled` blocks the click and the
14
+ * keyboard walk but is not a form-disabled state, and when the `value` attribute is
15
+ * absent the trimmed text content is used as the value instead.
16
+ *
17
+ * Keep the label one text node: the `label` property reads only the FIRST text node — that
18
+ * is what keeps the injected status dot out of it — so wrapping the label in an element
19
+ * makes `label` fall back to `value`. The select's own trigger label and its search filter
20
+ * read the full `textContent`, so a wrapped label still displays and still matches.
21
+ *
22
+ * `data-status` is a rendering hook, not state core interprets: any non-empty value
23
+ * appends an `aria-hidden` `.aparte-status-dot` span as the last child, and only
24
+ * `ready`, `cached` and `not-downloaded` have a colour in the stylesheet — anything else
25
+ * renders an uncoloured dot until you style it.
26
+ *
6
27
  * @element aparte-option
7
28
  * @attr {string} value - Option value
8
29
  * @attr {boolean} disabled - Disabled state
9
30
  * @attr {boolean} selected - Selected state
10
31
  * @attr {string} data-status - Free-form status the host sets; styled, never read by core.
11
- *
32
+ *
33
+ * @cssprop [--aparte-select-text=var(--aparte-text, #1e293b)] - Option text colour.
34
+ * @cssprop [--aparte-select-option-hover=var(--aparte-surface-2, #f1f5f9)] - Background on hover, and for the keyboard-active row (`[data-active]`), which adds an inset `--aparte-primary` ring on top so the two are distinguishable.
35
+ * @cssprop [--aparte-select-option-selected=color-mix(in srgb, var(--aparte-primary, #3b82f6) 18%, transparent)] - Background of the selected row. A tint by default: a solid accent fill with white text failed WCAG AA in both themes.
36
+ * @cssprop [--aparte-select-option-selected-text=var(--aparte-select-text, var(--aparte-text, #1e293b))] - Text colour of the selected row. Set both this and the background to go back to a solid fill.
37
+ *
12
38
  * @example
13
- * <aparte-select placeholder="Pick a model">
14
- * <aparte-option value="gpt-4o-mini" selected>GPT-4o mini</aparte-option>
39
+ * <aparte-select placeholder="Pick a model" value="gpt-4o-mini">
40
+ * <aparte-option value="gpt-4o-mini">GPT-4o mini</aparte-option>
15
41
  * <aparte-option value="o3" disabled>o3 (no access)</aparte-option>
16
42
  * </aparte-select>
17
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aparte-option.d.ts","sourceRoot":"","sources":["../../../src/primitives/select/aparte-option.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,qBAAa,YAAa,SAAQ,WAAW;IACzC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAMzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY5C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,KAAK,IAAI,MAAM,CAIlB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAMxB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAMxB;IAED,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;CAkB3B"}
1
+ {"version":3,"file":"aparte-option.d.ts","sourceRoot":"","sources":["../../../src/primitives/select/aparte-option.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,qBAAa,YAAa,SAAQ,WAAW;IACzC,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAMzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY5C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,KAAK,IAAI,MAAM,CAIlB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAMxB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAMxB;IAED,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;CAkB3B"}
@@ -9,25 +9,51 @@ export interface AparteSelectChangeDetail {
9
9
  * Dropdown select for aparté — a vanilla web component with optional grouping, a
10
10
  * search filter and a keyboard-driven listbox.
11
11
  *
12
- * The tags above used to live in a docblock at the top of this file, separated from
13
- * the class by these imports and the interface. TypeScript associates only the
14
- * comment PHYSICALLY ADJACENT to a declaration, so the analyser never saw them: the
15
- * manifest still listed six attributes and three events (it reads
16
- * `observedAttributes` and `this.dispatchEvent` structurally) but with every
17
- * description dropped, and the generated CSS-of-record for this element read blank.
12
+ * The element is light DOM and takes `<aparte-option>` / `<aparte-optgroup>` children, in
13
+ * the order they should appear. On its first render it captures its children, keeps those
14
+ * two kinds and moves them into the `role="listbox"` container it builds, then rewrites
15
+ * its own `innerHTML` so any other child is dropped, and a wrapper element around your
16
+ * options takes the options down with it: only DIRECT children are captured.
17
+ *
18
+ * Children written later are picked up by a `subtree` MutationObserver and moved into that
19
+ * same container, and the keyboard highlight is re-asserted on the new elements. The move
20
+ * EMPTIES the container first, so a later write replaces the list instead of adding to it:
21
+ * write the whole list, not one option. Writing straight into `.aparte-select-options`
22
+ * skips the move (the observer then only re-asserts the highlight), and that is the path
23
+ * `@aparte/plugin-model-selector` takes to refresh a live list in place.
24
+ *
25
+ * It is not a form control: no `name`, no `multiple`, no participation in form submission.
26
+ * It holds exactly one value and reports it through `aparte-select-change`.
27
+ *
28
+ * The dropdown is `position: fixed` and placed from script so it escapes an
29
+ * `overflow: hidden` ancestor — which is why its stacking order is a variable
30
+ * (`--aparte-select-z`) rather than a fixed rule, and why an `open` dropdown does not
31
+ * scroll with the trigger.
18
32
  *
19
33
  * @element aparte-select
20
34
  * @attr {string} value - The selected option's value.
21
35
  * @attr {string} placeholder - Shown while nothing is selected.
22
- * @attr {boolean} disabled - Blocks opening and selection.
23
- * @attr {boolean} grouped - Renders `<aparte-optgroup>` children as collapsible groups.
24
- * @attr {boolean} searchable - Adds a filter field above the options.
36
+ * @attr {boolean} disabled - Blocks opening the dropdown.
37
+ * @attr {boolean} grouped - Observed, never read: `<aparte-optgroup>` children render as groups without it.
38
+ * @attr {boolean} searchable - Adds a filter field above the options. Read on the first render only.
25
39
  * @attr {boolean} open - Reflects (and controls) whether the dropdown is open.
26
40
  *
27
41
  * @fires {CustomEvent<AparteSelectChangeDetail>} aparte-select-change - The selection changed; carries the new value, its label and the previous value.
28
42
  * @fires aparte-select-open - The dropdown opened. No detail.
29
43
  * @fires aparte-select-close - The dropdown closed. No detail.
30
44
  *
45
+ * @cssprop [--aparte-select-bg=var(--aparte-surface-1, #fff)] - Trigger background — and, under `[data-aparte-theme="dark"]`, the dropdown panel's too.
46
+ * @cssprop [--aparte-select-border=var(--aparte-border, #e2e8f0)] - Border of the trigger and of the dropdown.
47
+ * @cssprop [--aparte-select-border-hover=var(--aparte-primary, #3b82f6)] - Trigger border on hover.
48
+ * @cssprop [--aparte-select-border-focus=var(--aparte-primary, #3b82f6)] - Trigger border while focused.
49
+ * @cssprop [--aparte-select-ring=rgba(59, 130, 246, 0.2)] - Colour of the 2px focus ring around the trigger.
50
+ * @cssprop [--aparte-select-radius=0.5rem] - Corner radius of the trigger and the dropdown.
51
+ * @cssprop [--aparte-select-text=var(--aparte-text, #1e293b)] - Colour of the trigger label (and of the options).
52
+ * @cssprop [--aparte-select-chevron=var(--aparte-text-muted, #94a3b8)] - Colour of the chevron, which rotates 180° while open.
53
+ * @cssprop [--aparte-select-dropdown-bg=var(--aparte-surface-1, #fff)] - Dropdown panel background in the light theme only; the `[data-aparte-theme="dark"]` rule is more specific and reads `--aparte-select-bg` instead.
54
+ * @cssprop [--aparte-select-shadow=0 4px 12px rgba(0, 0, 0, 0.1)] - Dropdown panel shadow.
55
+ * @cssprop [--aparte-select-z=1000] - `z-index` of the dropdown. It is `position: fixed`, so this is the one knob that decides whether it lands above the rest of your page.
56
+ *
31
57
  * @example
32
58
  * <aparte-select placeholder="Pick a model" searchable value="gpt-4o-mini">
33
59
  * <aparte-option value="gpt-4o-mini">GPT-4o mini</aparte-option>
@@ -63,8 +89,7 @@ export declare class AparteSelect extends HTMLElement {
63
89
  * document-level handlers and could not touch this one.
64
90
  *
65
91
  * This is verbatim the bug class `aparte-chat-viewport` documents having fixed
66
- * for its own listeners; a repo sweep found this as the last inline-arrow
67
- * listener on a persistent node.
92
+ * for its own listeners.
68
93
  */
69
94
  private _boundHandleOptionClick;
70
95
  private _boundHandleDocumentClick;
@@ -1 +1 @@
1
- {"version":3,"file":"aparte-select.d.ts","sourceRoot":"","sources":["../../../src/primitives/select/aparte-select.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,YAAa,SAAQ,WAAW;IACzC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAC7B,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,SAAS,CAAiC;IAGlD;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,uBAAuB,CAAsC;IACrE,OAAO,CAAC,yBAAyB,CAAwC;IACzE,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAsBhF,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAOpB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAMpB;IAMD,OAAO,CAAC,OAAO;IAwFf,OAAO,CAAC,sBAAsB;IAkB9B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,cAAc;IA0CtB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAMvB,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAOnB,uFAAuF;IACvF,OAAO,CAAC,UAAU;IAoBlB,+CAA+C;IAC/C,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,WAAW;CAatB"}
1
+ {"version":3,"file":"aparte-select.d.ts","sourceRoot":"","sources":["../../../src/primitives/select/aparte-select.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,sBAAsB,CAAC;AAG9B,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,qBAAa,YAAa,SAAQ,WAAW;IACzC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAC7B,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,SAAS,CAAiC;IAGlD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,uBAAuB,CAAsC;IACrE,OAAO,CAAC,yBAAyB,CAAwC;IACzE,OAAO,CAAC,mBAAmB,CAAkC;IAE7D,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAsBhF,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAOpB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAMpB;IAMD,OAAO,CAAC,OAAO;IAwFf,OAAO,CAAC,sBAAsB;IAkB9B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,cAAc;IA0CtB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAMvB,yEAAyE;IACzE,OAAO,CAAC,WAAW;IAOnB,uFAAuF;IACvF,OAAO,CAAC,UAAU;IAoBlB,+CAA+C;IAC/C,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,WAAW;CAatB"}
@@ -1 +1 @@
1
- {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/renderers/segments/artifact/card.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAkB5F,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CAwQzE,CAAC"}
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../src/renderers/segments/artifact/card.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAkB5F,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CAyTzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"thinking.d.ts","sourceRoot":"","sources":["../../../src/renderers/segments/thinking.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACR,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAa9B,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CAkEzE,CAAC"}
1
+ {"version":3,"file":"thinking.d.ts","sourceRoot":"","sources":["../../../src/renderers/segments/thinking.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACR,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AAa9B,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CAgFzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../../src/renderers/segments/tool-call.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACR,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AA8H9B,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CA8LzE,CAAC"}
1
+ {"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../../src/renderers/segments/tool-call.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACR,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,sBAAsB,CAAC;AA8H9B,eAAO,MAAM,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CA+LzE,CAAC"}
@@ -43,6 +43,7 @@ import type { AparteSelect } from '../primitives/select/aparte-select.js';
43
43
  import type { AparteOption } from '../primitives/select/aparte-option.js';
44
44
  import type { AparteOptgroup } from '../primitives/select/aparte-optgroup.js';
45
45
  import type { AparteProgressSpinner } from '../primitives/progress-spinner/aparte-progress-spinner.js';
46
+ import type { AparteIcon } from '../primitives/icon/aparte-icon.js';
46
47
  declare global {
47
48
  interface HTMLElementTagNameMap {
48
49
  'aparte-chat': AparteChat;
@@ -63,6 +64,7 @@ declare global {
63
64
  'aparte-option': AparteOption;
64
65
  'aparte-optgroup': AparteOptgroup;
65
66
  'aparte-progress-spinner': AparteProgressSpinner;
67
+ 'aparte-icon': AparteIcon;
66
68
  }
67
69
  }
68
70
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"element-map.d.ts","sourceRoot":"","sources":["../../src/types/element-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AAC5G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAC1G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAEvG,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAE3B,aAAa,EAAE,UAAU,CAAC;QAC1B,sBAAsB,EAAE,kBAAkB,CAAC;QAC3C,oBAAoB,EAAE,gBAAgB,CAAC;QACvC,oBAAoB,EAAE,gBAAgB,CAAC;QAGvC,iBAAiB,EAAE,cAAc,CAAC;QAClC,uBAAuB,EAAE,mBAAmB,CAAC;QAC7C,sBAAsB,EAAE,kBAAkB,CAAC;QAC3C,wBAAwB,EAAE,oBAAoB,CAAC;QAC/C,6BAA6B,EAAE,yBAAyB,CAAC;QACzD,gCAAgC,EAAE,2BAA2B,CAAC;QAC9D,wBAAwB,EAAE,oBAAoB,CAAC;QAC/C,yBAAyB,EAAE,qBAAqB,CAAC;QAGjD,0BAA0B,EAAE,sBAAsB,CAAC;QACnD,oBAAoB,EAAE,iBAAiB,CAAC;QAGxC,eAAe,EAAE,YAAY,CAAC;QAC9B,eAAe,EAAE,YAAY,CAAC;QAC9B,iBAAiB,EAAE,cAAc,CAAC;QAClC,yBAAyB,EAAE,qBAAqB,CAAC;KACpD;CACJ;AAED,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"element-map.d.ts","sourceRoot":"","sources":["../../src/types/element-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AACvG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0DAA0D,CAAC;AAC5G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAC7F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAC1G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AACvG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAE3B,aAAa,EAAE,UAAU,CAAC;QAC1B,sBAAsB,EAAE,kBAAkB,CAAC;QAC3C,oBAAoB,EAAE,gBAAgB,CAAC;QACvC,oBAAoB,EAAE,gBAAgB,CAAC;QAGvC,iBAAiB,EAAE,cAAc,CAAC;QAClC,uBAAuB,EAAE,mBAAmB,CAAC;QAC7C,sBAAsB,EAAE,kBAAkB,CAAC;QAC3C,wBAAwB,EAAE,oBAAoB,CAAC;QAC/C,6BAA6B,EAAE,yBAAyB,CAAC;QACzD,gCAAgC,EAAE,2BAA2B,CAAC;QAC9D,wBAAwB,EAAE,oBAAoB,CAAC;QAC/C,yBAAyB,EAAE,qBAAqB,CAAC;QAGjD,0BAA0B,EAAE,sBAAsB,CAAC;QACnD,oBAAoB,EAAE,iBAAiB,CAAC;QAGxC,eAAe,EAAE,YAAY,CAAC;QAC9B,eAAe,EAAE,YAAY,CAAC;QAC9B,iBAAiB,EAAE,cAAc,CAAC;QAClC,yBAAyB,EAAE,qBAAqB,CAAC;QACjD,aAAa,EAAE,UAAU,CAAC;KAC7B;CACJ;AAED,OAAO,EAAE,CAAC"}
@@ -9,7 +9,7 @@
9
9
  export type { AparteStatus, AparteBubbleRole, AparteAttachment, AparteMessage, AparteMessageBranch, AparteBubbleActionsConfig, AparteBubbleActionName, AparteViewportConfig, AparteInputConfig } from './models.js';
10
10
  export type { AparteSendEventDetail, AparteSiblingInfo, AparteBranchNavigateEventDetail, ApartePathChangedEventDetail, AparteRetryEventDetail, AparteEditEventDetail, AparteFeedbackEventDetail, AparteActionEventDetail } from './events.js';
11
11
  export type { AparteContentParser, AparteParserRegistry } from './parsers.js';
12
- export type { AparteSegmentBase, AparteSegmentDefaults, AparteSegmentTiming, AparteTextSegment, AparteThinkingSegment, AparteCodeSegment, AparteErrorSegment, AparteSegment, AparteCustomSegment, AparteToolCallSegment, AparteArtifactSegment, AparteSegmentType, AparteSegmentRenderer, AparteSegmentUpdateEventDetail } from './segments.js';
12
+ export type { AparteSegmentBase, AparteSegmentDefaults, AparteSegmentTiming, AparteTextSegment, AparteThinkingSegment, AparteCodeSegment, AparteErrorSegment, ApartePipelineWaitingSegment, AparteSegment, AparteCustomSegment, AparteToolCallSegment, AparteArtifactSegment, AparteSegmentType, AparteSegmentRenderer, AparteSegmentUpdateEventDetail } from './segments.js';
13
13
  export type { AparteThemeVariables } from './theming.js';
14
14
  export type { AparteAIModel, AparteAIProvider, AparteAIProviderConfigField, AparteAIProviderConfigSchema, AparteModelConfig, ModelStatus, ModelLoadProgress } from './model-provider.js';
15
15
  export type { AparteChatRequest, AparteChatResponse, AparteChatMessage, AparteContentPart, AparteTextPart, AparteImagePart, AparteFilePart, AparteStreamEvent, AparteStreamEventMap, AparteUsage } from './chat.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,aAAa,CAAC;AAMrB,YAAY,EACR,qBAAqB,EACrB,iBAAiB,EACjB,+BAA+B,EAC/B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EAC1B,MAAM,aAAa,CAAC;AAMrB,YAAY,EACR,mBAAmB,EACnB,oBAAoB,EACvB,MAAM,cAAc,CAAC;AAMtB,YAAY,EACR,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EACjC,MAAM,eAAe,CAAC;AAgBvB,YAAY,EACR,oBAAoB,EACvB,MAAM,cAAc,CAAC;AAMtB,YAAY,EACR,aAAa,EACb,gBAAgB,EAChB,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACR,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,GAClC,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,YAAY,EACR,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,mCAAmC,EACtC,MAAM,aAAa,CAAC;AAKrB,YAAY,EACR,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,qCAAqC,EACrC,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAClC,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACpB,MAAM,aAAa,CAAC;AAMrB,YAAY,EACR,qBAAqB,EACrB,iBAAiB,EACjB,+BAA+B,EAC/B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EAC1B,MAAM,aAAa,CAAC;AAMrB,YAAY,EACR,mBAAmB,EACnB,oBAAoB,EACvB,MAAM,cAAc,CAAC;AAMtB,YAAY,EACR,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,4BAA4B,EAC5B,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EACjC,MAAM,eAAe,CAAC;AAgBvB,YAAY,EACR,oBAAoB,EACvB,MAAM,cAAc,CAAC;AAMtB,YAAY,EACR,aAAa,EACb,gBAAgB,EAChB,2BAA2B,EAC3B,4BAA4B,EAC5B,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACR,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,GAClC,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D,YAAY,EACR,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,EAC9B,8BAA8B,EAC9B,mCAAmC,EACtC,MAAM,aAAa,CAAC;AAKrB,YAAY,EACR,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,qCAAqC,EACrC,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,+BAA+B,EAClC,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -68,7 +68,12 @@ export interface AparteSegmentTiming {
68
68
  */
69
69
  endedAt?: number;
70
70
  }
71
- /** Text segment - plain text content */
71
+ /**
72
+ * Text segment - plain text content
73
+ *
74
+ * @example
75
+ * { id: 's1', type: 'text', content: 'A transport is the object that talks to the model.' }
76
+ */
72
77
  export interface AparteTextSegment extends AparteSegmentBase {
73
78
  type: 'text';
74
79
  content: string;
@@ -83,7 +88,18 @@ export interface AparteTextSegment extends AparteSegmentBase {
83
88
  * every segment in a conversation the same one.
84
89
  */
85
90
  export type AparteSegmentDefaults = Readonly<Record<string, unknown>>;
86
- /** Thinking/reasoning segment - collapsible */
91
+ /**
92
+ * Thinking/reasoning segment - collapsible
93
+ *
94
+ * @example
95
+ * // No `collapsed` key, so it renders CLOSED — see the field's own note below.
96
+ * {
97
+ * id: 's1',
98
+ * type: 'thinking',
99
+ * label: 'Reasoning',
100
+ * content: 'The question is about transports, so name the two and say where the key lives.',
101
+ * }
102
+ */
87
103
  export interface AparteThinkingSegment extends AparteSegmentBase {
88
104
  type: 'thinking';
89
105
  content: string;
@@ -102,7 +118,21 @@ export interface AparteThinkingSegment extends AparteSegmentBase {
102
118
  collapsed?: boolean;
103
119
  label?: string;
104
120
  }
105
- /** Code segment - syntax highlighted code block */
121
+ /**
122
+ * Code segment - syntax highlighted code block
123
+ *
124
+ * Highlighting is a plugin you opt into; with none installed the block renders plain,
125
+ * which is what core's zero-dependency promise costs here.
126
+ *
127
+ * @example
128
+ * {
129
+ * id: 's1',
130
+ * type: 'code',
131
+ * language: 'ts',
132
+ * filename: 'transport.ts',
133
+ * content: "const transport = new AparteBackendTransport({ endpoint: '/api/chat' });",
134
+ * }
135
+ */
106
136
  export interface AparteCodeSegment extends AparteSegmentBase {
107
137
  type: 'code';
108
138
  content: string;
@@ -110,14 +140,38 @@ export interface AparteCodeSegment extends AparteSegmentBase {
110
140
  filename?: string;
111
141
  showLineNumbers?: boolean;
112
142
  }
113
- /** Error segment */
143
+ /**
144
+ * Error segment
145
+ *
146
+ * A failure card inside the turn that produced it, rather than a toast somewhere else on
147
+ * the page — so the reader can see which question failed.
148
+ *
149
+ * @example
150
+ * {
151
+ * id: 's1',
152
+ * type: 'error',
153
+ * content: 'The model did not answer.',
154
+ * details: 'HTTP 429 — rate limited. Retrying in 20s.',
155
+ * }
156
+ */
114
157
  export interface AparteErrorSegment extends AparteSegmentBase {
115
158
  type: 'error';
116
159
  content: string;
117
160
  details?: string;
118
161
  stack?: string;
119
162
  }
120
- /** Tool call segment - rendered while waiting for a tool handler to resolve */
163
+ /**
164
+ * Tool call segment - rendered while waiting for a tool handler to resolve
165
+ *
166
+ * @example
167
+ * {
168
+ * id: 's1',
169
+ * type: 'tool_call',
170
+ * status: 'resolved',
171
+ * toolCall: { id: 'call_1', name: 'get_weather', input: { city: 'Lille' } },
172
+ * result: '11°C, overcast.',
173
+ * }
174
+ */
121
175
  export interface AparteToolCallSegment extends AparteSegmentBase {
122
176
  type: 'tool_call';
123
177
  toolCall: import('./tools.js').AparteToolCall;
@@ -128,7 +182,20 @@ export interface AparteToolCallSegment extends AparteSegmentBase {
128
182
  status: 'pending' | 'resolved' | 'aborted' | 'awaiting-approval' | 'rejected';
129
183
  result?: string;
130
184
  }
131
- /** Custom segment - for framework-specific views (Onboarding, Tools, etc.) */
185
+ /**
186
+ * Custom segment - for framework-specific views (Onboarding, Tools, etc.)
187
+ *
188
+ * @example
189
+ * // With no renderer registered for `subType`, core draws `fallback` — which is why the
190
+ * // field exists: an unknown view degrades to a sentence instead of to nothing.
191
+ * {
192
+ * id: 's1',
193
+ * type: 'custom',
194
+ * subType: 'weather-widget',
195
+ * data: { city: 'Lille', celsius: 11 },
196
+ * fallback: 'Lille — 11°C, overcast.',
197
+ * }
198
+ */
132
199
  export interface AparteCustomSegment extends AparteSegmentBase {
133
200
  type: 'custom';
134
201
  /** Unique string structure to identify the view (e.g. 'onboarding', 'webcontainer', 'weather-widget') */
@@ -150,6 +217,16 @@ export interface AparteCustomSegment extends AparteSegmentBase {
150
217
  * - `application/vnd.ant.react` (or `application/vnd.ant.html`, etc.)
151
218
  * - `text/html`, `text/css`, `application/javascript`
152
219
  * - `image/svg+xml`
220
+ *
221
+ * @example
222
+ * {
223
+ * id: 's1',
224
+ * type: 'artifact',
225
+ * mimeType: 'image/svg+xml',
226
+ * artifactType: 'svg',
227
+ * title: 'Brass mark',
228
+ * content: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><circle cx="24" cy="24" r="18" fill="#d9a24b"/></svg>',
229
+ * }
153
230
  */
154
231
  export interface AparteArtifactSegment extends AparteSegmentBase {
155
232
  type: 'artifact';
@@ -172,7 +249,15 @@ export interface AparteArtifactSegment extends AparteSegmentBase {
172
249
  */
173
250
  inline?: boolean;
174
251
  }
175
- /** Transient waiting indicator shown between pipeline phases */
252
+ /**
253
+ * Transient waiting indicator shown between pipeline phases
254
+ *
255
+ * It carries no content of its own — the type IS the message — so the gap between two
256
+ * phases of a multi-step turn never reads as a hang.
257
+ *
258
+ * @example
259
+ * { id: 's1', type: 'pipeline-waiting' }
260
+ */
176
261
  export interface ApartePipelineWaitingSegment extends AparteSegmentBase {
177
262
  type: 'pipeline-waiting';
178
263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/types/segments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/types/segments.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,8 @@ export interface AparteTool {
49
49
  * it shipped with no presenter and no `approvalResolver`, and every `needsApproval` call
50
50
  * aborted with nothing clickable on screen. The sibling docblock on `needsApproval`
51
51
  * records the same correction; this one was missed in the same file.
52
+ *
53
+ * @event aparte-tool-approval-request
52
54
  */
53
55
  export interface AparteToolApprovalRequestDetail {
54
56
  toolCallId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,8GAA8G;IAC9G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,+BAA+B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC5B,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,iBAAiB,KAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,MAAM,GAAG,WAAW,CAAC;IACjE,8EAA8E;IAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvE,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,8GAA8G;IAC9G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,+BAA+B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,oDAAoD;AACpD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC5B,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,iBAAiB,KAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,MAAM,GAAG,WAAW,CAAC;IACjE,8EAA8E;IAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvE,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CAC5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aparte/core",
3
- "version": "0.12.1",
3
+ "version": "0.13.0",
4
4
  "description": "High-performance AI conversation engine - Zero-dependency Web Components",
5
5
  "type": "module",
6
6
  "//sideEffects": "The BROWSER entry defines the custom elements and imports CSS at module scope, so it must never be tree-shaken; the Node entry (`index.node`) and every other module are pure. Listing them explicitly is what lets a bundler drop the rest — the whole package was implicitly side-effectful before, the only one of the 14 without this field.",
@@ -25,6 +25,12 @@
25
25
  "import": "./dist/index.js",
26
26
  "default": "./dist/index.js"
27
27
  },
28
+ "./icons": {
29
+ "@aparte-workspace/source": "./src/icons.ts",
30
+ "types": "./dist/icons.d.ts",
31
+ "import": "./dist/icons.js",
32
+ "default": "./dist/icons.js"
33
+ },
28
34
  "./styles.css": {
29
35
  "@aparte-workspace/source": "./src/styles/bundle.css",
30
36
  "default": "./dist/index.css"