@aceshooting/lyra-ui 2.5.0 → 2.6.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/README.md +2 -1
- package/custom-elements.json +454 -2
- package/dist/components/chat-message/chat-message.class.d.ts +7 -1
- package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/chat-message/chat-message.class.js +15 -4
- package/dist/components/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/chip/chip.styles.d.ts.map +1 -1
- package/dist/components/chip/chip.styles.js +6 -1
- package/dist/components/chip/chip.styles.js.map +1 -1
- package/dist/components/empty/empty.styles.js +1 -1
- package/dist/components/heatmap/heatmap.class.d.ts +22 -1
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +38 -3
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/poll-status/poll-status.styles.d.ts.map +1 -1
- package/dist/components/poll-status/poll-status.styles.js +5 -6
- package/dist/components/poll-status/poll-status.styles.js.map +1 -1
- package/dist/components/segmented/segmented.class.d.ts +3 -0
- package/dist/components/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/segmented/segmented.class.js +1 -1
- package/dist/components/segmented/segmented.class.js.map +1 -1
- package/dist/components/segmented/segmented.styles.d.ts.map +1 -1
- package/dist/components/segmented/segmented.styles.js +7 -0
- package/dist/components/segmented/segmented.styles.js.map +1 -1
- package/dist/components/skeleton/skeleton.styles.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.styles.js +1 -0
- package/dist/components/skeleton/skeleton.styles.js.map +1 -1
- package/dist/components/stream-status/stream-status.styles.d.ts.map +1 -1
- package/dist/components/stream-status/stream-status.styles.js +4 -5
- package/dist/components/stream-status/stream-status.styles.js.map +1 -1
- package/dist/components/table/table.class.d.ts +12 -0
- package/dist/components/table/table.class.d.ts.map +1 -1
- package/dist/components/table/table.class.js +6 -1
- package/dist/components/table/table.class.js.map +1 -1
- package/dist/components/table/table.styles.d.ts.map +1 -1
- package/dist/components/table/table.styles.js +3 -0
- package/dist/components/table/table.styles.js.map +1 -1
- package/dist/components/textarea/textarea.class.d.ts +48 -0
- package/dist/components/textarea/textarea.class.d.ts.map +1 -0
- package/dist/components/textarea/textarea.class.js +80 -0
- package/dist/components/textarea/textarea.class.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +2 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -0
- package/dist/components/textarea/textarea.js +5 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/textarea/textarea.styles.d.ts +2 -0
- package/dist/components/textarea/textarea.styles.d.ts.map +1 -0
- package/dist/components/textarea/textarea.styles.js +31 -0
- package/dist/components/textarea/textarea.styles.js.map +1 -0
- package/dist/components/typing-indicator/typing-indicator.styles.js +18 -18
- package/dist/components/typing-indicator/typing-indicator.styles.js.map +1 -1
- package/dist/components/widget/widget.class.d.ts +5 -0
- package/dist/components/widget/widget.class.d.ts.map +1 -1
- package/dist/components/widget/widget.class.js +22 -1
- package/dist/components/widget/widget.class.js.map +1 -1
- package/dist/components/widget/widget.styles.d.ts.map +1 -1
- package/dist/components/widget/widget.styles.js +3 -2
- package/dist/components/widget/widget.styles.js.map +1 -1
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +1 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +1 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +6 -2
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +4 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +2 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +48 -4
- package/llms.txt +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -158,7 +158,7 @@ roving-tabindex list) to match. No per-component RTL flag or opt-in needed.
|
|
|
158
158
|
|
|
159
159
|
## Components
|
|
160
160
|
|
|
161
|
-
The catalog below lists all
|
|
161
|
+
The catalog below lists all 93 tags in the current Custom Elements Manifest, grouped by
|
|
162
162
|
capability. The manifest and live docs are the authoritative sources for the complete generated
|
|
163
163
|
API details.
|
|
164
164
|
|
|
@@ -172,6 +172,7 @@ API details.
|
|
|
172
172
|
| `<lyra-date-input>` | `wa-date-input` | Date field + calendar popover, form-associated |
|
|
173
173
|
| `<lyra-toast>` + `<lyra-toast-item>` + `toast()` | `wa-toast` / `wa-toast-item` | Stacking notifications |
|
|
174
174
|
| `<lyra-sparkline>` | `wa-sparkline` | Zero-dependency inline SVG |
|
|
175
|
+
| `<lyra-textarea>` | `wa-textarea` | Bare multiline plain-text input, form-associated |
|
|
175
176
|
| `<lyra-flag>` | — (extra) | Country/language flags for i18n pickers — needs the optional peer `@aceshooting/lyra-flags` |
|
|
176
177
|
|
|
177
178
|
**Dashboard atoms**
|
package/custom-elements.json
CHANGED
|
@@ -16830,7 +16830,7 @@
|
|
|
16830
16830
|
"name": "actions"
|
|
16831
16831
|
},
|
|
16832
16832
|
{
|
|
16833
|
-
"description": "File/image attachment chips, rendered below the message body
|
|
16833
|
+
"description": "File/image attachment chips, rendered below the message body by default; see `attachments-position`.",
|
|
16834
16834
|
"name": "attachments"
|
|
16835
16835
|
},
|
|
16836
16836
|
{
|
|
@@ -16852,6 +16852,16 @@
|
|
|
16852
16852
|
"privacy": "private",
|
|
16853
16853
|
"default": "'sent'"
|
|
16854
16854
|
},
|
|
16855
|
+
{
|
|
16856
|
+
"kind": "field",
|
|
16857
|
+
"name": "attachmentsPosition",
|
|
16858
|
+
"type": {
|
|
16859
|
+
"text": "'before' | 'after'"
|
|
16860
|
+
},
|
|
16861
|
+
"default": "'after'",
|
|
16862
|
+
"description": "Where the `attachments` slot renders relative to the message body.\n`'after'` (the default) reproduces today's exact DOM order. `'before'`\nrenders attachments immediately above the body -- both DOM and visual\norder move together (no CSS `order` trick), so reading/focus order\nalways matches what's on screen.",
|
|
16863
|
+
"attribute": "attachments-position"
|
|
16864
|
+
},
|
|
16855
16865
|
{
|
|
16856
16866
|
"kind": "field",
|
|
16857
16867
|
"name": "bodyId",
|
|
@@ -17296,6 +17306,15 @@
|
|
|
17296
17306
|
}
|
|
17297
17307
|
],
|
|
17298
17308
|
"attributes": [
|
|
17309
|
+
{
|
|
17310
|
+
"name": "attachments-position",
|
|
17311
|
+
"type": {
|
|
17312
|
+
"text": "'before' | 'after'"
|
|
17313
|
+
},
|
|
17314
|
+
"default": "'after'",
|
|
17315
|
+
"description": "Where the `attachments` slot renders relative to the message body.\n`'after'` (the default) reproduces today's exact DOM order. `'before'`\nrenders attachments immediately above the body -- both DOM and visual\norder move together (no CSS `order` trick), so reading/focus order\nalways matches what's on screen.",
|
|
17316
|
+
"fieldName": "attachmentsPosition"
|
|
17317
|
+
},
|
|
17299
17318
|
{
|
|
17300
17319
|
"name": "collapsed",
|
|
17301
17320
|
"type": {
|
|
@@ -33614,13 +33633,20 @@
|
|
|
33614
33633
|
},
|
|
33615
33634
|
"privacy": "private"
|
|
33616
33635
|
},
|
|
33636
|
+
{
|
|
33637
|
+
"kind": "field",
|
|
33638
|
+
"name": "canvasColorCache",
|
|
33639
|
+
"privacy": "private",
|
|
33640
|
+
"default": "new Map<string, string>()",
|
|
33641
|
+
"description": "Cache of resolved colors for the current draw pass, cleared at the top\nof drawCalendar()/drawMatrix() so a theme change is always picked up on\nthe very next full redraw, while repeated identical cellColor() outputs\nwithin the same pass resolve only once."
|
|
33642
|
+
},
|
|
33617
33643
|
{
|
|
33618
33644
|
"kind": "field",
|
|
33619
33645
|
"name": "cellColor",
|
|
33620
33646
|
"type": {
|
|
33621
33647
|
"text": "(pos: MatrixCellPos | CalendarCellPos, value: number) => string | undefined | undefined"
|
|
33622
33648
|
},
|
|
33623
|
-
"description": "Overrides a cell's computed ramp/no-data color entirely for an exact value -- receives the\ncell position (`MatrixCellPos` in matrix mode, `CalendarCellPos` in calendar mode) and its\nvalue, return a CSS color string to force that cell to it, or `undefined` to fall back to the\nnormal `colorSteps`/ramp math unchanged. Lets a consumer designate a value as categorically\noutside the ramp (e.g. a real zero-count day rendered as a neutral hairline, distinct from\nboth \"no data\" and the ramp's own lightest step) without a prepended synthetic ramp color,\nwhich can't safely reserve an exact value on a skewed dataset (the bucket selectors round by\ncontinuous ratio, with no equality-based reservation). Unset (the default) reproduces today's\nexact ramp/no-data behavior for every cell."
|
|
33649
|
+
"description": "Overrides a cell's computed ramp/no-data color entirely for an exact value -- receives the\ncell position (`MatrixCellPos` in matrix mode, `CalendarCellPos` in calendar mode) and its\nvalue, return a CSS color string to force that cell to it, or `undefined` to fall back to the\nnormal `colorSteps`/ramp math unchanged. Lets a consumer designate a value as categorically\noutside the ramp (e.g. a real zero-count day rendered as a neutral hairline, distinct from\nboth \"no data\" and the ramp's own lightest step) without a prepended synthetic ramp color,\nwhich can't safely reserve an exact value on a skewed dataset (the bucket selectors round by\ncontinuous ratio, with no equality-based reservation). Unset (the default) reproduces today's\nexact ramp/no-data behavior for every cell. A returned value containing a CSS custom property\n(e.g. `var(--x)`) or other browser-resolvable color syntax (e.g. `color-mix(...)`) is\nautomatically resolved before being used as a canvas fill color."
|
|
33624
33650
|
},
|
|
33625
33651
|
{
|
|
33626
33652
|
"kind": "field",
|
|
@@ -33655,6 +33681,14 @@
|
|
|
33655
33681
|
},
|
|
33656
33682
|
"default": "[]"
|
|
33657
33683
|
},
|
|
33684
|
+
{
|
|
33685
|
+
"kind": "field",
|
|
33686
|
+
"name": "colorProbe",
|
|
33687
|
+
"type": {
|
|
33688
|
+
"text": "HTMLSpanElement | undefined"
|
|
33689
|
+
},
|
|
33690
|
+
"privacy": "private"
|
|
33691
|
+
},
|
|
33658
33692
|
{
|
|
33659
33693
|
"kind": "field",
|
|
33660
33694
|
"name": "colorSchemeQuery",
|
|
@@ -33938,6 +33972,14 @@
|
|
|
33938
33972
|
},
|
|
33939
33973
|
"default": "[]"
|
|
33940
33974
|
},
|
|
33975
|
+
{
|
|
33976
|
+
"kind": "field",
|
|
33977
|
+
"name": "weekdayLabelText",
|
|
33978
|
+
"type": {
|
|
33979
|
+
"text": "(jsWeekday: number) => string | undefined | undefined"
|
|
33980
|
+
},
|
|
33981
|
+
"description": "Overrides the weekday-axis label text in calendar mode -- receives the real JS weekday index\n(`0` Sunday .. `6` Saturday) for a row that would otherwise render a label (today, only rows\n1/3/5 relative to `firstDayOfWeek` ever do) and, when it returns a string, uses it instead of\nthe built-in `Intl.DateTimeFormat`-derived short weekday name. Unset (the default) reproduces\ntoday's exact locale-derived output."
|
|
33982
|
+
},
|
|
33941
33983
|
{
|
|
33942
33984
|
"kind": "method",
|
|
33943
33985
|
"name": "addEventListener",
|
|
@@ -34647,6 +34689,25 @@
|
|
|
34647
34689
|
"module": "src/internal/lyra-element.ts"
|
|
34648
34690
|
}
|
|
34649
34691
|
},
|
|
34692
|
+
{
|
|
34693
|
+
"kind": "method",
|
|
34694
|
+
"name": "resolveCanvasColor",
|
|
34695
|
+
"privacy": "private",
|
|
34696
|
+
"return": {
|
|
34697
|
+
"type": {
|
|
34698
|
+
"text": "string"
|
|
34699
|
+
}
|
|
34700
|
+
},
|
|
34701
|
+
"parameters": [
|
|
34702
|
+
{
|
|
34703
|
+
"name": "value",
|
|
34704
|
+
"type": {
|
|
34705
|
+
"text": "string"
|
|
34706
|
+
}
|
|
34707
|
+
}
|
|
34708
|
+
],
|
|
34709
|
+
"description": "Resolves a cellColor() return value that may contain a CSS custom\nproperty (or any other CSS color syntax the browser understands, e.g.\ncolor-mix()) into a literal color canvas's fillStyle can actually use --\nfillStyle silently no-ops on an unparseable string, per the Canvas 2D\nspec, leaving whatever the previous cell painted. Falls back to\nnoDataFill() for a genuinely invalid color."
|
|
34710
|
+
},
|
|
34650
34711
|
{
|
|
34651
34712
|
"kind": "method",
|
|
34652
34713
|
"name": "resolveCellText",
|
|
@@ -52747,6 +52808,378 @@
|
|
|
52747
52808
|
}
|
|
52748
52809
|
]
|
|
52749
52810
|
},
|
|
52811
|
+
{
|
|
52812
|
+
"kind": "javascript-module",
|
|
52813
|
+
"path": "src/components/textarea/textarea.class.ts",
|
|
52814
|
+
"declarations": [
|
|
52815
|
+
{
|
|
52816
|
+
"kind": "class",
|
|
52817
|
+
"description": "`<lyra-textarea>` — a bare, multiline plain-text input primitive. Form-associated via the\n`FormAssociated` mixin (see `<lyra-chat-composer>`/`<lyra-date-input>` for the same shape), so it\nparticipates in native `<form>` submission/validation/reset like any other text control --\n`name`/`value`/`disabled`/`required`/`checkValidity()`/`reportValidity()` all come from that mixin.\n\nDeliberately no auto-resize and no label/hint/error chrome -- the thin `lyra-*` equivalent of a\nplain `wa-textarea`, not a rebuild of `<lyra-chat-composer>`. A consumer wanting a labeled field\nwraps this element in whatever form-field layout it already uses.",
|
|
52818
|
+
"name": "LyraTextarea",
|
|
52819
|
+
"cssParts": [
|
|
52820
|
+
{
|
|
52821
|
+
"description": "The native `<textarea>` element.",
|
|
52822
|
+
"name": "textarea"
|
|
52823
|
+
}
|
|
52824
|
+
],
|
|
52825
|
+
"members": [
|
|
52826
|
+
{
|
|
52827
|
+
"kind": "field",
|
|
52828
|
+
"name": "effectiveDirection",
|
|
52829
|
+
"type": {
|
|
52830
|
+
"text": "'ltr' | 'rtl'"
|
|
52831
|
+
},
|
|
52832
|
+
"privacy": "protected",
|
|
52833
|
+
"description": "The effective text direction, including inherited CSS direction.",
|
|
52834
|
+
"readonly": true,
|
|
52835
|
+
"inheritedFrom": {
|
|
52836
|
+
"name": "LyraElement",
|
|
52837
|
+
"module": "src/internal/lyra-element.ts"
|
|
52838
|
+
}
|
|
52839
|
+
},
|
|
52840
|
+
{
|
|
52841
|
+
"kind": "field",
|
|
52842
|
+
"name": "effectiveLocale",
|
|
52843
|
+
"type": {
|
|
52844
|
+
"text": "string"
|
|
52845
|
+
},
|
|
52846
|
+
"privacy": "protected",
|
|
52847
|
+
"description": "The effective locale used by this component.",
|
|
52848
|
+
"readonly": true,
|
|
52849
|
+
"inheritedFrom": {
|
|
52850
|
+
"name": "LyraElement",
|
|
52851
|
+
"module": "src/internal/lyra-element.ts"
|
|
52852
|
+
}
|
|
52853
|
+
},
|
|
52854
|
+
{
|
|
52855
|
+
"kind": "field",
|
|
52856
|
+
"name": "locale",
|
|
52857
|
+
"type": {
|
|
52858
|
+
"text": "string"
|
|
52859
|
+
},
|
|
52860
|
+
"default": "''",
|
|
52861
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.",
|
|
52862
|
+
"attribute": "locale",
|
|
52863
|
+
"reflects": true,
|
|
52864
|
+
"inheritedFrom": {
|
|
52865
|
+
"name": "LyraElement",
|
|
52866
|
+
"module": "src/internal/lyra-element.ts"
|
|
52867
|
+
}
|
|
52868
|
+
},
|
|
52869
|
+
{
|
|
52870
|
+
"kind": "field",
|
|
52871
|
+
"name": "onChange",
|
|
52872
|
+
"privacy": "private"
|
|
52873
|
+
},
|
|
52874
|
+
{
|
|
52875
|
+
"kind": "field",
|
|
52876
|
+
"name": "onInput",
|
|
52877
|
+
"privacy": "private"
|
|
52878
|
+
},
|
|
52879
|
+
{
|
|
52880
|
+
"kind": "field",
|
|
52881
|
+
"name": "placeholder",
|
|
52882
|
+
"type": {
|
|
52883
|
+
"text": "string"
|
|
52884
|
+
},
|
|
52885
|
+
"default": "''",
|
|
52886
|
+
"attribute": "placeholder"
|
|
52887
|
+
},
|
|
52888
|
+
{
|
|
52889
|
+
"kind": "field",
|
|
52890
|
+
"name": "resize",
|
|
52891
|
+
"type": {
|
|
52892
|
+
"text": "TextareaResize"
|
|
52893
|
+
},
|
|
52894
|
+
"default": "'vertical'",
|
|
52895
|
+
"description": "Native CSS `resize` behavior for the textarea.",
|
|
52896
|
+
"attribute": "resize"
|
|
52897
|
+
},
|
|
52898
|
+
{
|
|
52899
|
+
"kind": "field",
|
|
52900
|
+
"name": "rows",
|
|
52901
|
+
"type": {
|
|
52902
|
+
"text": "number"
|
|
52903
|
+
},
|
|
52904
|
+
"default": "3",
|
|
52905
|
+
"description": "Visible text rows.",
|
|
52906
|
+
"attribute": "rows"
|
|
52907
|
+
},
|
|
52908
|
+
{
|
|
52909
|
+
"kind": "field",
|
|
52910
|
+
"name": "stopLocaleSubscription",
|
|
52911
|
+
"type": {
|
|
52912
|
+
"text": "() => void | undefined"
|
|
52913
|
+
},
|
|
52914
|
+
"privacy": "private",
|
|
52915
|
+
"inheritedFrom": {
|
|
52916
|
+
"name": "LyraElement",
|
|
52917
|
+
"module": "src/internal/lyra-element.ts"
|
|
52918
|
+
}
|
|
52919
|
+
},
|
|
52920
|
+
{
|
|
52921
|
+
"kind": "field",
|
|
52922
|
+
"name": "strings",
|
|
52923
|
+
"type": {
|
|
52924
|
+
"text": "LyraLocaleStrings"
|
|
52925
|
+
},
|
|
52926
|
+
"default": "{}",
|
|
52927
|
+
"description": "Per-instance message overrides, useful for application-specific wording.",
|
|
52928
|
+
"inheritedFrom": {
|
|
52929
|
+
"name": "LyraElement",
|
|
52930
|
+
"module": "src/internal/lyra-element.ts"
|
|
52931
|
+
}
|
|
52932
|
+
},
|
|
52933
|
+
{
|
|
52934
|
+
"kind": "field",
|
|
52935
|
+
"name": "textareaEl",
|
|
52936
|
+
"type": {
|
|
52937
|
+
"text": "HTMLTextAreaElement | undefined"
|
|
52938
|
+
},
|
|
52939
|
+
"privacy": "private"
|
|
52940
|
+
},
|
|
52941
|
+
{
|
|
52942
|
+
"kind": "method",
|
|
52943
|
+
"name": "addEventListener",
|
|
52944
|
+
"return": {
|
|
52945
|
+
"type": {
|
|
52946
|
+
"text": "void"
|
|
52947
|
+
}
|
|
52948
|
+
},
|
|
52949
|
+
"parameters": [
|
|
52950
|
+
{
|
|
52951
|
+
"name": "type",
|
|
52952
|
+
"type": {
|
|
52953
|
+
"text": "K"
|
|
52954
|
+
}
|
|
52955
|
+
},
|
|
52956
|
+
{
|
|
52957
|
+
"name": "listener",
|
|
52958
|
+
"type": {
|
|
52959
|
+
"text": "(this: this, event: Events[K]) => unknown"
|
|
52960
|
+
}
|
|
52961
|
+
},
|
|
52962
|
+
{
|
|
52963
|
+
"name": "options",
|
|
52964
|
+
"optional": true,
|
|
52965
|
+
"type": {
|
|
52966
|
+
"text": "boolean | AddEventListenerOptions"
|
|
52967
|
+
}
|
|
52968
|
+
}
|
|
52969
|
+
],
|
|
52970
|
+
"inheritedFrom": {
|
|
52971
|
+
"name": "LyraElement",
|
|
52972
|
+
"module": "src/internal/lyra-element.ts"
|
|
52973
|
+
}
|
|
52974
|
+
},
|
|
52975
|
+
{
|
|
52976
|
+
"kind": "method",
|
|
52977
|
+
"name": "emit",
|
|
52978
|
+
"privacy": "protected",
|
|
52979
|
+
"return": {
|
|
52980
|
+
"type": {
|
|
52981
|
+
"text": "CustomEvent<T>"
|
|
52982
|
+
}
|
|
52983
|
+
},
|
|
52984
|
+
"parameters": [
|
|
52985
|
+
{
|
|
52986
|
+
"name": "name",
|
|
52987
|
+
"type": {
|
|
52988
|
+
"text": "string"
|
|
52989
|
+
}
|
|
52990
|
+
},
|
|
52991
|
+
{
|
|
52992
|
+
"name": "detail",
|
|
52993
|
+
"optional": true,
|
|
52994
|
+
"type": {
|
|
52995
|
+
"text": "T"
|
|
52996
|
+
}
|
|
52997
|
+
},
|
|
52998
|
+
{
|
|
52999
|
+
"name": "options",
|
|
53000
|
+
"optional": true,
|
|
53001
|
+
"type": {
|
|
53002
|
+
"text": "LyraEmitOptions"
|
|
53003
|
+
}
|
|
53004
|
+
}
|
|
53005
|
+
],
|
|
53006
|
+
"description": "Dispatch a composed, bubbling custom event; notifications are not veto points by default.",
|
|
53007
|
+
"inheritedFrom": {
|
|
53008
|
+
"name": "LyraElement",
|
|
53009
|
+
"module": "src/internal/lyra-element.ts"
|
|
53010
|
+
}
|
|
53011
|
+
},
|
|
53012
|
+
{
|
|
53013
|
+
"kind": "method",
|
|
53014
|
+
"name": "localize",
|
|
53015
|
+
"privacy": "protected",
|
|
53016
|
+
"return": {
|
|
53017
|
+
"type": {
|
|
53018
|
+
"text": "string"
|
|
53019
|
+
}
|
|
53020
|
+
},
|
|
53021
|
+
"parameters": [
|
|
53022
|
+
{
|
|
53023
|
+
"name": "key",
|
|
53024
|
+
"type": {
|
|
53025
|
+
"text": "string"
|
|
53026
|
+
}
|
|
53027
|
+
},
|
|
53028
|
+
{
|
|
53029
|
+
"name": "fallback",
|
|
53030
|
+
"optional": true,
|
|
53031
|
+
"type": {
|
|
53032
|
+
"text": "string"
|
|
53033
|
+
}
|
|
53034
|
+
},
|
|
53035
|
+
{
|
|
53036
|
+
"name": "values",
|
|
53037
|
+
"optional": true,
|
|
53038
|
+
"type": {
|
|
53039
|
+
"text": "Record<string, string | number>"
|
|
53040
|
+
}
|
|
53041
|
+
}
|
|
53042
|
+
],
|
|
53043
|
+
"description": "Resolve a localized message using this component's overrides and locale.",
|
|
53044
|
+
"inheritedFrom": {
|
|
53045
|
+
"name": "LyraElement",
|
|
53046
|
+
"module": "src/internal/lyra-element.ts"
|
|
53047
|
+
}
|
|
53048
|
+
},
|
|
53049
|
+
{
|
|
53050
|
+
"kind": "method",
|
|
53051
|
+
"name": "removeEventListener",
|
|
53052
|
+
"return": {
|
|
53053
|
+
"type": {
|
|
53054
|
+
"text": "void"
|
|
53055
|
+
}
|
|
53056
|
+
},
|
|
53057
|
+
"parameters": [
|
|
53058
|
+
{
|
|
53059
|
+
"name": "type",
|
|
53060
|
+
"type": {
|
|
53061
|
+
"text": "K"
|
|
53062
|
+
}
|
|
53063
|
+
},
|
|
53064
|
+
{
|
|
53065
|
+
"name": "listener",
|
|
53066
|
+
"type": {
|
|
53067
|
+
"text": "(this: this, event: Events[K]) => unknown"
|
|
53068
|
+
}
|
|
53069
|
+
},
|
|
53070
|
+
{
|
|
53071
|
+
"name": "options",
|
|
53072
|
+
"optional": true,
|
|
53073
|
+
"type": {
|
|
53074
|
+
"text": "boolean | EventListenerOptions"
|
|
53075
|
+
}
|
|
53076
|
+
}
|
|
53077
|
+
],
|
|
53078
|
+
"inheritedFrom": {
|
|
53079
|
+
"name": "LyraElement",
|
|
53080
|
+
"module": "src/internal/lyra-element.ts"
|
|
53081
|
+
}
|
|
53082
|
+
}
|
|
53083
|
+
],
|
|
53084
|
+
"events": [
|
|
53085
|
+
{
|
|
53086
|
+
"description": "Fired on the native `change` timing (control loses focus after a committed edit). `detail: { value }`.",
|
|
53087
|
+
"name": "lyra-change"
|
|
53088
|
+
},
|
|
53089
|
+
{
|
|
53090
|
+
"description": "Fired on every user-driven edit (not a programmatic `.value` assignment). `detail: { value }`.",
|
|
53091
|
+
"name": "lyra-input"
|
|
53092
|
+
}
|
|
53093
|
+
],
|
|
53094
|
+
"attributes": [
|
|
53095
|
+
{
|
|
53096
|
+
"name": "locale",
|
|
53097
|
+
"type": {
|
|
53098
|
+
"text": "string"
|
|
53099
|
+
},
|
|
53100
|
+
"default": "''",
|
|
53101
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.",
|
|
53102
|
+
"fieldName": "locale",
|
|
53103
|
+
"inheritedFrom": {
|
|
53104
|
+
"name": "LyraElement",
|
|
53105
|
+
"module": "src/internal/lyra-element.ts"
|
|
53106
|
+
}
|
|
53107
|
+
},
|
|
53108
|
+
{
|
|
53109
|
+
"name": "placeholder",
|
|
53110
|
+
"type": {
|
|
53111
|
+
"text": "string"
|
|
53112
|
+
},
|
|
53113
|
+
"default": "''",
|
|
53114
|
+
"fieldName": "placeholder"
|
|
53115
|
+
},
|
|
53116
|
+
{
|
|
53117
|
+
"name": "resize",
|
|
53118
|
+
"type": {
|
|
53119
|
+
"text": "TextareaResize"
|
|
53120
|
+
},
|
|
53121
|
+
"default": "'vertical'",
|
|
53122
|
+
"description": "Native CSS `resize` behavior for the textarea.",
|
|
53123
|
+
"fieldName": "resize"
|
|
53124
|
+
},
|
|
53125
|
+
{
|
|
53126
|
+
"name": "rows",
|
|
53127
|
+
"type": {
|
|
53128
|
+
"text": "number"
|
|
53129
|
+
},
|
|
53130
|
+
"default": "3",
|
|
53131
|
+
"description": "Visible text rows.",
|
|
53132
|
+
"fieldName": "rows"
|
|
53133
|
+
}
|
|
53134
|
+
],
|
|
53135
|
+
"mixins": [
|
|
53136
|
+
{
|
|
53137
|
+
"name": "FormAssociated",
|
|
53138
|
+
"module": "/src/internal/form-associated.js"
|
|
53139
|
+
}
|
|
53140
|
+
],
|
|
53141
|
+
"superclass": {
|
|
53142
|
+
"name": "LyraTextareaBase",
|
|
53143
|
+
"module": "src/components/textarea/textarea.class.ts"
|
|
53144
|
+
},
|
|
53145
|
+
"tagName": "lyra-textarea",
|
|
53146
|
+
"customElement": true
|
|
53147
|
+
}
|
|
53148
|
+
],
|
|
53149
|
+
"exports": [
|
|
53150
|
+
{
|
|
53151
|
+
"kind": "js",
|
|
53152
|
+
"name": "LyraTextarea",
|
|
53153
|
+
"declaration": {
|
|
53154
|
+
"name": "LyraTextarea",
|
|
53155
|
+
"module": "src/components/textarea/textarea.class.ts"
|
|
53156
|
+
}
|
|
53157
|
+
}
|
|
53158
|
+
]
|
|
53159
|
+
},
|
|
53160
|
+
{
|
|
53161
|
+
"kind": "javascript-module",
|
|
53162
|
+
"path": "src/components/textarea/textarea.ts",
|
|
53163
|
+
"declarations": [],
|
|
53164
|
+
"exports": [
|
|
53165
|
+
{
|
|
53166
|
+
"kind": "custom-element-definition",
|
|
53167
|
+
"name": "lyra-textarea",
|
|
53168
|
+
"declaration": {
|
|
53169
|
+
"name": "LyraTextarea",
|
|
53170
|
+
"module": "src/components/textarea/textarea.class.ts"
|
|
53171
|
+
}
|
|
53172
|
+
},
|
|
53173
|
+
{
|
|
53174
|
+
"kind": "js",
|
|
53175
|
+
"name": "*",
|
|
53176
|
+
"declaration": {
|
|
53177
|
+
"name": "*",
|
|
53178
|
+
"module": "src/components/textarea/textarea.class.js"
|
|
53179
|
+
}
|
|
53180
|
+
}
|
|
53181
|
+
]
|
|
53182
|
+
},
|
|
52750
53183
|
{
|
|
52751
53184
|
"kind": "javascript-module",
|
|
52752
53185
|
"path": "src/components/thinking-panel/thinking-panel.class.ts",
|
|
@@ -61012,6 +61445,16 @@
|
|
|
61012
61445
|
"default": "''",
|
|
61013
61446
|
"description": "The currently active view's `id` -- defaults to the first entry of `views` (or `''` when\n`views` is empty). Settable directly by a consumer wanting to control the active view\nexternally; also updated internally when a view toggle is clicked."
|
|
61014
61447
|
},
|
|
61448
|
+
{
|
|
61449
|
+
"kind": "field",
|
|
61450
|
+
"name": "backdropInset",
|
|
61451
|
+
"type": {
|
|
61452
|
+
"text": "string"
|
|
61453
|
+
},
|
|
61454
|
+
"default": "''",
|
|
61455
|
+
"description": "Overrides the fullscreen *backdrop*'s own inset independent of `fullscreen-inset` -- e.g.\n`\"0\"` to dim the full viewport-to-panel-edge region while the panel itself keeps a narrower\n`fullscreen-inset`. Unset (the default) falls back to `fullscreen-inset`, i.e. today's exact\ncoupled behavior.",
|
|
61456
|
+
"attribute": "backdrop-inset"
|
|
61457
|
+
},
|
|
61015
61458
|
{
|
|
61016
61459
|
"kind": "field",
|
|
61017
61460
|
"name": "bodyId",
|
|
@@ -61457,6 +61900,15 @@
|
|
|
61457
61900
|
}
|
|
61458
61901
|
],
|
|
61459
61902
|
"attributes": [
|
|
61903
|
+
{
|
|
61904
|
+
"name": "backdrop-inset",
|
|
61905
|
+
"type": {
|
|
61906
|
+
"text": "string"
|
|
61907
|
+
},
|
|
61908
|
+
"default": "''",
|
|
61909
|
+
"description": "Overrides the fullscreen *backdrop*'s own inset independent of `fullscreen-inset` -- e.g.\n`\"0\"` to dim the full viewport-to-panel-edge region while the panel itself keeps a narrower\n`fullscreen-inset`. Unset (the default) falls back to `fullscreen-inset`, i.e. today's exact\ncoupled behavior.",
|
|
61910
|
+
"fieldName": "backdropInset"
|
|
61911
|
+
},
|
|
61460
61912
|
{
|
|
61461
61913
|
"name": "collapsed",
|
|
61462
61914
|
"type": {
|
|
@@ -50,7 +50,7 @@ export interface LyraChatMessageEventMap {
|
|
|
50
50
|
* @slot avatar - An avatar/icon for the message author.
|
|
51
51
|
* @slot badges - Small status/metric chips (e.g. token count, latency, model name) — entirely app-supplied; this component computes none of that itself.
|
|
52
52
|
* @slot actions - Action controls (e.g. copy, retry), rendered at the end of the footer.
|
|
53
|
-
* @slot attachments - File/image attachment chips, rendered below the message body
|
|
53
|
+
* @slot attachments - File/image attachment chips, rendered below the message body by default; see `attachments-position`.
|
|
54
54
|
* @event lyra-retry - Fired by the built-in retry button, only rendered when `status="failed"`.
|
|
55
55
|
* @event lyra-collapse-toggle - `detail: boolean` (the new `collapsed` state) — fired when the user activates the built-in collapse button.
|
|
56
56
|
* @csspart bubble - The message bubble root. Programmatically focusable (`tabindex="-1"`) so focus has a stable place to land when the built-in retry button is removed (e.g. a `lyra-retry` listener flipping `status` away from `"failed"`).
|
|
@@ -93,6 +93,12 @@ export declare class LyraChatMessage extends LyraElement<LyraChatMessageEventMap
|
|
|
93
93
|
* built-in toggle button is rendered, mirroring `lyra-widget`'s identical
|
|
94
94
|
* `collapsible`/`collapsed` pair. */
|
|
95
95
|
collapsed: boolean;
|
|
96
|
+
/** Where the `attachments` slot renders relative to the message body.
|
|
97
|
+
* `'after'` (the default) reproduces today's exact DOM order. `'before'`
|
|
98
|
+
* renders attachments immediately above the body -- both DOM and visual
|
|
99
|
+
* order move together (no CSS `order` trick), so reading/focus order
|
|
100
|
+
* always matches what's on screen. */
|
|
101
|
+
attachmentsPosition: 'before' | 'after';
|
|
96
102
|
private hasAvatarSlot;
|
|
97
103
|
private hasBadgesSlot;
|
|
98
104
|
private hasAttachmentsSlot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message.class.d.ts","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAA0B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE3G,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,qCAAqC,CAAC;AAG7C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AA8C5E,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC9C;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,uBAAuB,CAAC;IACvE,MAAM,CAAC,MAAM,iCAAgC;IAO7C,MAAM,CAAC,UAAU;QACf,MAAM;YAAI,OAAO;YAAQ,UAAU;;MACnC;IAEF,6EAA6E;IACxB,IAAI,EAAE,eAAe,CAAe;IAEzF;;6DAEyD;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAE1D;;;0DAGsD;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAEzE,+DAA+D;IACnB,WAAW,UAAS;IAEhE;;;0CAGsC;IACM,SAAS,UAAS;
|
|
1
|
+
{"version":3,"file":"chat-message.class.d.ts","sourceRoot":"","sources":["../../../src/components/chat-message/chat-message.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAA0B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE3G,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,qCAAqC,CAAC;AAG7C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AA8C5E,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC9C;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,uBAAuB,CAAC;IACvE,MAAM,CAAC,MAAM,iCAAgC;IAO7C,MAAM,CAAC,UAAU;QACf,MAAM;YAAI,OAAO;YAAQ,UAAU;;MACnC;IAEF,6EAA6E;IACxB,IAAI,EAAE,eAAe,CAAe;IAEzF;;6DAEyD;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAE1D;;;0DAGsD;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAEzE,+DAA+D;IACnB,WAAW,UAAS;IAEhE;;;0CAGsC;IACM,SAAS,UAAS;IAE9D;;;;2CAIuC;IACU,mBAAmB,EAAE,QAAQ,GAAG,OAAO,CAAW;IAE1F,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,cAAc,CAAS;IAEb,OAAO,CAAC,UAAU,CAAC,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,CAAc;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEtD,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;;;;;sDAOkD;IAClD,OAAO,CAAC,cAAc,CAA6B;IAEnD;;;;;;iBAMa;IACb,OAAO,CAAC,UAAU,CAAQ;IAE1B;;;2CAGuC;IACvC,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAMlC;IAED,SAAS,CAAC,UAAU,IAAI,IAAI,CAO3B;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAM/C;IAED,OAAO,CAAC,UAAU;IAIlB,OAAO,KAAK,mBAAmB,GAI9B;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,eAAe,CAGrB;IAEF,OAAO,CAAC,YAAY,CAQlB;IAEF,MAAM,IAAI,cAAc,CA0DvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
|
|
@@ -94,7 +94,7 @@ const STATUS_TEXT_KEY = {
|
|
|
94
94
|
* @slot avatar - An avatar/icon for the message author.
|
|
95
95
|
* @slot badges - Small status/metric chips (e.g. token count, latency, model name) — entirely app-supplied; this component computes none of that itself.
|
|
96
96
|
* @slot actions - Action controls (e.g. copy, retry), rendered at the end of the footer.
|
|
97
|
-
* @slot attachments - File/image attachment chips, rendered below the message body
|
|
97
|
+
* @slot attachments - File/image attachment chips, rendered below the message body by default; see `attachments-position`.
|
|
98
98
|
* @event lyra-retry - Fired by the built-in retry button, only rendered when `status="failed"`.
|
|
99
99
|
* @event lyra-collapse-toggle - `detail: boolean` (the new `collapsed` state) — fired when the user activates the built-in collapse button.
|
|
100
100
|
* @csspart bubble - The message bubble root. Programmatically focusable (`tabindex="-1"`) so focus has a stable place to land when the built-in retry button is removed (e.g. a `lyra-retry` listener flipping `status` away from `"failed"`).
|
|
@@ -123,6 +123,12 @@ export class LyraChatMessage extends LyraElement {
|
|
|
123
123
|
* built-in toggle button is rendered, mirroring `lyra-widget`'s identical
|
|
124
124
|
* `collapsible`/`collapsed` pair. */
|
|
125
125
|
this.collapsed = false;
|
|
126
|
+
/** Where the `attachments` slot renders relative to the message body.
|
|
127
|
+
* `'after'` (the default) reproduces today's exact DOM order. `'before'`
|
|
128
|
+
* renders attachments immediately above the body -- both DOM and visual
|
|
129
|
+
* order move together (no CSS `order` trick), so reading/focus order
|
|
130
|
+
* always matches what's on screen. */
|
|
131
|
+
this.attachmentsPosition = 'after';
|
|
126
132
|
this.hasAvatarSlot = false;
|
|
127
133
|
this.hasBadgesSlot = false;
|
|
128
134
|
this.hasAttachmentsSlot = false;
|
|
@@ -246,6 +252,9 @@ export class LyraChatMessage extends LyraElement {
|
|
|
246
252
|
// `statusText` is already truthy whenever `status === 'failed'`, so it
|
|
247
253
|
// alone covers that case here too.
|
|
248
254
|
const showFooter = Boolean(statusText) || Boolean(ts) || this.hasActionsSlot;
|
|
255
|
+
const attachmentsBlock = html `<div part="attachments" ?hidden=${!this.hasAttachmentsSlot}>
|
|
256
|
+
<slot name="attachments" @slotchange=${this.onAttachmentsSlotChange}></slot>
|
|
257
|
+
</div>`;
|
|
249
258
|
return html `
|
|
250
259
|
<div part="bubble" tabindex="-1">
|
|
251
260
|
<div part="header" ?hidden=${!showHeader}>
|
|
@@ -268,12 +277,11 @@ export class LyraChatMessage extends LyraElement {
|
|
|
268
277
|
</button>`
|
|
269
278
|
: nothing}
|
|
270
279
|
</div>
|
|
280
|
+
${this.attachmentsPosition === 'before' ? attachmentsBlock : nothing}
|
|
271
281
|
<div part="body" id=${this.bodyId} ?hidden=${this.collapsed}>
|
|
272
282
|
<slot></slot>
|
|
273
283
|
</div>
|
|
274
|
-
|
|
275
|
-
<slot name="attachments" @slotchange=${this.onAttachmentsSlotChange}></slot>
|
|
276
|
-
</div>
|
|
284
|
+
${this.attachmentsPosition === 'before' ? nothing : attachmentsBlock}
|
|
277
285
|
<div part="footer" ?hidden=${!showFooter}>
|
|
278
286
|
${statusText
|
|
279
287
|
? html `<span part="status-indicator" aria-hidden="true"></span><span part="status-text"
|
|
@@ -310,6 +318,9 @@ __decorate([
|
|
|
310
318
|
__decorate([
|
|
311
319
|
property({ type: Boolean, reflect: true })
|
|
312
320
|
], LyraChatMessage.prototype, "collapsed", void 0);
|
|
321
|
+
__decorate([
|
|
322
|
+
property({ attribute: 'attachments-position' })
|
|
323
|
+
], LyraChatMessage.prototype, "attachmentsPosition", void 0);
|
|
313
324
|
__decorate([
|
|
314
325
|
state()
|
|
315
326
|
], LyraChatMessage.prototype, "hasAvatarSlot", void 0);
|