@fusion.dev/helix 0.145.0 → 0.147.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 (291) hide show
  1. package/custom-elements.json +13218 -3717
  2. package/dist/accordion/item/accordion-item.css.js +4 -92
  3. package/dist/accordion/item/accordion-item.d.ts +8 -0
  4. package/dist/accordion/root/accordion-root.css.js +2 -28
  5. package/dist/announcement/root/announcement-root.css.js +10 -154
  6. package/dist/announcement/root/announcement-root.d.ts +3 -0
  7. package/dist/app-header/root/app-header-root.css.js +2 -118
  8. package/dist/area-chart/root/area-chart-root.css.js +4 -94
  9. package/dist/area-chart/root/area-chart-root.d.ts +1 -0
  10. package/dist/aura/root/aura-root.css.js +2 -54
  11. package/dist/aura/root/aura-root.d.ts +21 -9
  12. package/dist/aura/root/aura-root.js +23 -12
  13. package/dist/avatar/group/avatar-group.css.js +5 -36
  14. package/dist/avatar/group/avatar-group.d.ts +3 -0
  15. package/dist/avatar/root/avatar-root.css.js +1 -53
  16. package/dist/avatar/root/avatar-root.d.ts +2 -0
  17. package/dist/badge/root/badge-root.css.js +17 -142
  18. package/dist/badge/root/badge-root.d.ts +20 -0
  19. package/dist/badge/root/badge-root.js +6 -0
  20. package/dist/bar-chart/root/bar-chart-root.css.js +8 -292
  21. package/dist/blockquote/root/blockquote-root.css.js +1 -43
  22. package/dist/blockquote/root/blockquote-root.d.ts +2 -0
  23. package/dist/breadcrumbs/breadcrumb/breadcrumb.css.js +13 -98
  24. package/dist/breadcrumbs/root/breadcrumbs-root.css.js +7 -21
  25. package/dist/breadcrumbs/root/breadcrumbs-root.d.ts +18 -0
  26. package/dist/breadcrumbs/root/breadcrumbs-root.js +4 -0
  27. package/dist/button/root/button-root.css.js +16 -196
  28. package/dist/button/root/button-root.d.ts +3 -0
  29. package/dist/button-group/root/button-group-root.css.js +2 -52
  30. package/dist/callout/root/callout-root.css.js +5 -137
  31. package/dist/callout/root/callout-root.d.ts +8 -2
  32. package/dist/canvas/node/canvas-node.css.js +10 -367
  33. package/dist/canvas/root/canvas-root.css.js +7 -270
  34. package/dist/card/root/card-root.css.js +5 -134
  35. package/dist/card/root/card-root.d.ts +6 -0
  36. package/dist/carousel/root/carousel-root.css.js +20 -386
  37. package/dist/chat/composer/chat-composer.css.js +4 -105
  38. package/dist/chat/message/chat-message.css.js +5 -301
  39. package/dist/chat/message/chat-message.d.ts +5 -0
  40. package/dist/chat/message/chat-message.js +2 -1
  41. package/dist/chat/root/chat-root.css.js +5 -155
  42. package/dist/chat/root/chat-root.d.ts +2 -0
  43. package/dist/chat/root/chat-root.js +2 -1
  44. package/dist/chat/typing.css.d.ts +1 -0
  45. package/dist/chat/typing.css.js +25 -0
  46. package/dist/checkbox/root/checkbox-root.css.js +12 -162
  47. package/dist/checkbox/root/checkbox-root.d.ts +2 -1
  48. package/dist/checkbox-group/root/checkbox-group-root.css.js +1 -27
  49. package/dist/code/root/code-root.css.js +3 -25
  50. package/dist/code/root/code-root.d.ts +2 -0
  51. package/dist/code-block/root/code-block-root.css.js +9 -250
  52. package/dist/code-block/root/code-block-root.d.ts +2 -1
  53. package/dist/color-input/root/color-input-root.css.js +5 -104
  54. package/dist/color-picker/root/color-picker-root.css.js +39 -329
  55. package/dist/color-picker/root/color-picker-root.d.ts +3 -0
  56. package/dist/combobox/root/combobox-root.css.js +8 -147
  57. package/dist/command/root/command-root.css.js +3 -74
  58. package/dist/copy-button/root/copy-button-root.css.js +5 -36
  59. package/dist/copy-button/root/copy-button-root.d.ts +7 -0
  60. package/dist/data-table/root/data-table-root.css.js +24 -241
  61. package/dist/data-table/root/data-table-root.d.ts +12 -0
  62. package/dist/date-input/root/date-input-root.css.js +8 -93
  63. package/dist/date-picker/root/date-picker-root.css.js +16 -278
  64. package/dist/date-picker/root/date-picker-root.d.ts +1 -0
  65. package/dist/description-list/item/description-list-item.css.js +1 -41
  66. package/dist/description-list/item/description-list-item.d.ts +7 -0
  67. package/dist/description-list/root/description-list-root.css.js +1 -34
  68. package/dist/description-list/root/description-list-root.d.ts +1 -0
  69. package/dist/dialog/root/dialog-root.css.js +7 -221
  70. package/dist/dialog/root/dialog-root.d.ts +3 -0
  71. package/dist/divider/root/divider-root.css.js +6 -81
  72. package/dist/donut-chart/root/donut-chart-root.css.js +7 -174
  73. package/dist/donut-chart/root/donut-chart-root.d.ts +3 -0
  74. package/dist/drawer/root/drawer-root.css.js +14 -193
  75. package/dist/drawer/root/drawer-root.d.ts +5 -0
  76. package/dist/drilldown/item/drilldown-item.css.js +4 -51
  77. package/dist/drilldown/item/drilldown-item.d.ts +7 -0
  78. package/dist/drilldown/root/drilldown-root.css.js +8 -109
  79. package/dist/drilldown/root/drilldown-root.d.ts +10 -0
  80. package/dist/element-events.generated.js +19 -6
  81. package/dist/empty/root/empty-root.css.js +2 -42
  82. package/dist/file-input/root/file-input-root.css.js +7 -172
  83. package/dist/file-input/root/file-input-root.d.ts +15 -0
  84. package/dist/filter-input/chip/filter-chip.css.js +2 -84
  85. package/dist/filter-input/field/filter-field.css.js +1 -3
  86. package/dist/filter-input/menu/filter-menu.css.js +1 -3
  87. package/dist/filter-input/operator/filter-operator.css.js +1 -3
  88. package/dist/filter-input/root/filter-input-root.css.js +6 -112
  89. package/dist/filter-input/root/filter-input-root.d.ts +5 -0
  90. package/dist/flex/root/flex-root.css.js +4 -198
  91. package/dist/flex/root/flex-root.d.ts +19 -8
  92. package/dist/format-date/root/format-date-root.css.js +1 -13
  93. package/dist/graph/root/graph-root.css.js +12 -444
  94. package/dist/graph/root/graph-root.d.ts +8 -0
  95. package/dist/grid/root/grid-root.css.js +1 -171
  96. package/dist/grid/root/grid-root.d.ts +4 -1
  97. package/dist/heatmap/root/heatmap-root.css.js +8 -155
  98. package/dist/heatmap/root/heatmap-root.d.ts +2 -0
  99. package/dist/icon/index.d.ts +1 -1
  100. package/dist/icon/root/icon-root.css.js +1 -18
  101. package/dist/icon/root/index.d.ts +1 -1
  102. package/dist/icon-button/root/icon-button-root.css.js +63 -186
  103. package/dist/icon-button/root/icon-button-root.d.ts +5 -0
  104. package/dist/image/root/image-root.css.js +7 -65
  105. package/dist/image/root/image-root.d.ts +3 -0
  106. package/dist/input/root/input-root.css.js +6 -79
  107. package/dist/kbd/root/kbd-root.css.js +2 -44
  108. package/dist/kbd/root/kbd-root.d.ts +9 -0
  109. package/dist/legend/root/legend-root.css.js +9 -106
  110. package/dist/legend/root/legend-root.d.ts +2 -0
  111. package/dist/lightbox/item/lightbox-item.css.js +1 -33
  112. package/dist/lightbox/root/lightbox-root.css.js +40 -144
  113. package/dist/line-chart/root/line-chart-root.css.js +4 -154
  114. package/dist/line-chart/root/line-chart-root.d.ts +3 -0
  115. package/dist/list/item/list-item.css.js +2 -94
  116. package/dist/list/root/list-root.css.js +4 -88
  117. package/dist/listbox/root/listbox-root.css.js +4 -102
  118. package/dist/listbox/root/listbox-root.d.ts +1 -0
  119. package/dist/loader/root/loader-root.css.js +5 -171
  120. package/dist/loader/root/loader-root.d.ts +2 -0
  121. package/dist/map/area/map-area.css.js +1 -23
  122. package/dist/map/buildings/map-buildings.css.js +1 -26
  123. package/dist/map/contours/map-contours.css.js +2 -5
  124. package/dist/map/landcover/map-landcover.css.js +1 -4
  125. package/dist/map/marker/map-marker.css.js +14 -327
  126. package/dist/map/points/map-points.css.js +1 -86
  127. package/dist/map/position/map-position.css.js +8 -227
  128. package/dist/map/raster/map-raster.css.js +1 -3
  129. package/dist/map/root/map-root.css.js +10 -352
  130. package/dist/map/route/map-route.css.js +1 -24
  131. package/dist/map/terrain/map-terrain.css.js +3 -7
  132. package/dist/megamenu/root/megamenu-root.css.js +15 -163
  133. package/dist/megamenu/root/megamenu-root.d.ts +19 -0
  134. package/dist/menu/item/menu-item.css.js +9 -111
  135. package/dist/menu/item/menu-item.d.ts +1 -0
  136. package/dist/menu/root/menu-root.css.js +1 -110
  137. package/dist/menu/section/menu-section.css.js +1 -13
  138. package/dist/meter/root/meter-root.css.js +20 -207
  139. package/dist/meter/root/meter-root.d.ts +4 -0
  140. package/dist/navigation/root/navigation-root.css.js +2 -54
  141. package/dist/navigation/root/navigation-root.d.ts +7 -0
  142. package/dist/notifications/group/notification-group.css.js +1 -61
  143. package/dist/notifications/notification/notification.css.js +17 -264
  144. package/dist/notifications/root/notifications-root.css.js +7 -119
  145. package/dist/notifications/root/notifications-root.d.ts +3 -1
  146. package/dist/number-input/root/number-input-root.css.js +10 -100
  147. package/dist/number-input/root/number-input-root.d.ts +8 -0
  148. package/dist/object-inspector/root/object-inspector-root.css.js +11 -166
  149. package/dist/option/group/option-group.css.js +1 -22
  150. package/dist/option/index.d.ts +1 -0
  151. package/dist/option/index.js +1 -0
  152. package/dist/option/root/option-root.css.js +3 -85
  153. package/dist/option/separator/option-separator.css.d.ts +1 -0
  154. package/dist/option/separator/option-separator.css.js +3 -0
  155. package/dist/option/separator/option-separator.d.ts +26 -0
  156. package/dist/option/separator/option-separator.js +16 -0
  157. package/dist/orb/root/orb-root.css.js +1 -41
  158. package/dist/orb/root/orb-root.d.ts +14 -6
  159. package/dist/orb/root/orb-root.js +16 -27
  160. package/dist/outline/root/outline-root.css.js +24 -122
  161. package/dist/outline/root/outline-root.d.ts +17 -4
  162. package/dist/pagination/root/pagination-root.css.js +9 -105
  163. package/dist/pagination/size/pagination-size.css.js +1 -22
  164. package/dist/pagination/summary/pagination-summary.css.js +1 -7
  165. package/dist/pin-input/root/pin-input-root.css.js +2 -73
  166. package/dist/pin-input/root/pin-input-root.d.ts +12 -2
  167. package/dist/popover/root/popover-root.css.js +6 -127
  168. package/dist/progress/root/progress-root.css.js +7 -228
  169. package/dist/progress/root/progress-root.d.ts +5 -0
  170. package/dist/qr-code/root/qr-code-root.css.js +1 -57
  171. package/dist/quote/root/quote-root.css.js +1 -17
  172. package/dist/quote/root/quote-root.d.ts +2 -0
  173. package/dist/radio/group/radio-group.css.js +1 -21
  174. package/dist/radio/root/radio-root.css.js +5 -192
  175. package/dist/radio/root/radio-root.d.ts +2 -1
  176. package/dist/rating/root/rating-root.css.js +4 -117
  177. package/dist/sandbox/frame.d.ts +5 -3
  178. package/dist/sandbox/frame.js +20 -6
  179. package/dist/sandbox/index.d.ts +1 -0
  180. package/dist/sandbox/preview/sandbox-preview.css.js +1 -12
  181. package/dist/sandbox/preview/sandbox-preview.d.ts +19 -3
  182. package/dist/sandbox/preview/sandbox-preview.js +17 -11
  183. package/dist/sandbox/root/sandbox-root.css.js +3 -70
  184. package/dist/sandbox/root/sandbox-root.d.ts +16 -4
  185. package/dist/sandbox/root/sandbox-root.js +29 -50
  186. package/dist/sandbox/source/sandbox-source.css.js +3 -25
  187. package/dist/sandbox/source/sandbox-source.d.ts +40 -0
  188. package/dist/sandbox/source/sandbox-source.js +22 -0
  189. package/dist/sandbox/status-bar/sandbox-status-bar.css.js +1 -21
  190. package/dist/sandbox/terminal/sandbox-terminal.css.js +5 -106
  191. package/dist/sandbox/terminal/sandbox-terminal.d.ts +14 -2
  192. package/dist/sandbox/terminal/sandbox-terminal.js +20 -6
  193. package/dist/sandbox/tokens.d.ts +39 -0
  194. package/dist/sandbox/tokens.js +9 -0
  195. package/dist/sandbox/toolbar/sandbox-toolbar.css.js +1 -36
  196. package/dist/scatter-chart/root/scatter-chart-root.css.js +11 -137
  197. package/dist/scatter-chart/root/scatter-chart-root.d.ts +3 -0
  198. package/dist/scroll-area/root/scroll-area-root.css.js +14 -181
  199. package/dist/select/root/select-root.css.js +4 -124
  200. package/dist/shared/chart/series.css.js +1 -36
  201. package/dist/shared/chart/terminus.css.js +1 -47
  202. package/dist/shared/chart/tooltip.css.js +1 -68
  203. package/dist/shared/collection/state.css.js +1 -9
  204. package/dist/shared/field/field-frame.css.js +3 -33
  205. package/dist/shared/field/field-inline.css.js +1 -4
  206. package/dist/shared/field/field-segments.css.js +1 -39
  207. package/dist/shared/field/field-stacked.css.js +1 -5
  208. package/dist/shared/field/field.css.js +3 -57
  209. package/dist/shared/floating/entrance.css.js +3 -34
  210. package/dist/shared/floating/panel.css.js +2 -17
  211. package/dist/shared/glyph/glyph.css.js +1 -5
  212. package/dist/shared/live/live.css.js +1 -8
  213. package/dist/shared/tags/tags.css.js +1 -39
  214. package/dist/shared/viewport/viewport.css.js +8 -135
  215. package/dist/skeleton/root/skeleton-root.css.js +12 -120
  216. package/dist/skeleton/root/skeleton-root.d.ts +1 -0
  217. package/dist/skip-link/root/skip-link-root.css.js +2 -35
  218. package/dist/skip-link/root/skip-link-root.d.ts +3 -3
  219. package/dist/slider/root/slider-root.css.js +35 -320
  220. package/dist/slider/root/slider-root.d.ts +2 -0
  221. package/dist/sparkline/root/sparkline-root.css.js +10 -96
  222. package/dist/sparkline/root/sparkline-root.d.ts +8 -0
  223. package/dist/sparkline/root/sparkline-root.js +2 -1
  224. package/dist/speed-dial/item/speed-dial-item.css.js +6 -74
  225. package/dist/speed-dial/item/speed-dial-item.d.ts +3 -0
  226. package/dist/speed-dial/root/speed-dial-root.css.js +3 -144
  227. package/dist/speed-dial/root/speed-dial-root.d.ts +7 -1
  228. package/dist/speed-dial/root/speed-dial-root.js +0 -1
  229. package/dist/splitter/root/splitter-root.css.js +11 -176
  230. package/dist/stat/group/stat-group.css.js +1 -36
  231. package/dist/stat/root/stat-root.css.js +3 -58
  232. package/dist/steps/root/steps-root.css.js +13 -70
  233. package/dist/steps/root/steps-root.d.ts +5 -0
  234. package/dist/steps/step/step.css.js +5 -156
  235. package/dist/switch/root/switch-root.css.js +2 -110
  236. package/dist/table/cell/table-cell.css.js +1 -33
  237. package/dist/table/column/table-column.css.js +7 -105
  238. package/dist/table/root/table-root.css.js +1 -43
  239. package/dist/table/row/table-row.css.js +6 -18
  240. package/dist/table/row/table-row.d.ts +2 -0
  241. package/dist/tabs/panel/tab-panel.css.js +2 -17
  242. package/dist/tabs/root/tabs-root.css.js +6 -177
  243. package/dist/tabs/root/tabs-root.d.ts +4 -0
  244. package/dist/tabs/tab/tab.css.js +10 -51
  245. package/dist/tabs/tab/tab.d.ts +7 -0
  246. package/dist/tag/group/tag-group.css.js +1 -5
  247. package/dist/tag/root/tag-root.css.js +1 -166
  248. package/dist/tag/root/tag-root.d.ts +2 -0
  249. package/dist/text/clamp.d.ts +5 -2
  250. package/dist/text/clamp.js +3 -1
  251. package/dist/text/root/text-root.css.js +11 -206
  252. package/dist/text/root/text-root.d.ts +2 -1
  253. package/dist/textarea/root/textarea-root.css.js +3 -44
  254. package/dist/time-input/root/time-input-root.css.js +7 -106
  255. package/dist/time-picker/root/time-picker-root.css.js +10 -134
  256. package/dist/time-picker/root/time-picker-root.d.ts +1 -0
  257. package/dist/timeline/group/timeline-group.css.js +1 -31
  258. package/dist/timeline/item/timeline-item.css.js +3 -134
  259. package/dist/timeline/root/timeline-root.css.js +1 -66
  260. package/dist/toast/item/toast-item.css.js +8 -240
  261. package/dist/toast/root/toast-root.css.js +1 -85
  262. package/dist/toast/root/toast-root.d.ts +1 -0
  263. package/dist/toast/root/toast-root.js +3 -1
  264. package/dist/toggle/group/toggle-group.css.js +9 -125
  265. package/dist/toggle/group/toggle-group.d.ts +6 -1
  266. package/dist/toggle/root/toggle-root.css.js +1 -23
  267. package/dist/toggle/root/toggle-root.d.ts +6 -0
  268. package/dist/toolbar/root/toolbar-root.css.js +1 -35
  269. package/dist/toolbar/root/toolbar-root.d.ts +4 -0
  270. package/dist/tooltip/root/tooltip-root.css.js +5 -101
  271. package/dist/tooltip/root/tooltip-root.d.ts +6 -0
  272. package/dist/tour/root/tour-root.css.js +2 -28
  273. package/dist/tour/stop/tour-stop.css.js +2 -109
  274. package/dist/tree/item/tree-item.css.js +14 -230
  275. package/dist/tree/item/tree-item.d.ts +9 -0
  276. package/dist/tree/root/tree-root.css.js +1 -40
  277. package/dist/trend/root/trend-root.css.js +5 -55
  278. package/dist/trend/root/trend-root.d.ts +2 -2
  279. package/dist/video/root/video-root.css.js +16 -398
  280. package/dist/video-playlist/item/video-playlist-item.css.js +12 -86
  281. package/dist/video-playlist/item/video-playlist-item.d.ts +12 -0
  282. package/dist/video-playlist/menu/video-playlist-menu.css.js +1 -41
  283. package/dist/video-playlist/root/video-playlist-root.css.js +1 -19
  284. package/dist/video-playlist/root/video-playlist-root.d.ts +2 -0
  285. package/dist/virtual-list/root/virtual-list-root.css.js +5 -28
  286. package/dist/virtual-list/root/virtual-list-root.d.ts +7 -1
  287. package/lint.json +1 -1
  288. package/package.json +9 -9
  289. package/types/jsx.d.ts +6997 -1154
  290. package/types/svelte.d.ts +1 -0
  291. package/types/vue.d.ts +2081 -271
@@ -1,106 +1,5 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: block;
4
- }
5
-
6
- [part="composer"] {
7
- background-color: var(--chat-composer-background-color, var(--helix-color-surface));
8
- border: var(--chat-composer-border-width, var(--helix-border-thin)) solid
9
- var(--helix-color-border);
10
- border-radius: var(--helix-radii-md);
11
- display: grid;
12
- gap: var(--helix-space-2xs);
13
- padding: var(--helix-space-xs);
14
- }
15
-
16
- [part="composer"]:focus-within {
17
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
18
- outline-offset: 0;
19
- }
20
-
21
- [part="field"] {
22
- background-color: transparent;
23
- border: 0;
24
- color: var(--helix-color-foreground);
25
-
26
- field-sizing: content;
27
- font-family: var(--helix-font-sans);
28
- font-size: var(--helix-text-sm);
29
- line-height: var(--helix-leading-normal);
30
- max-block-size: var(--chat-composer-max-block-size, 12rem);
31
- padding-block: var(--helix-space-2xs);
32
- padding-inline: calc(var(--helix-space-sm) - var(--helix-space-xs) - var(--helix-border-thin));
33
- resize: none;
34
- }
35
-
36
- [part="field"]:focus-visible {
37
- outline: none;
38
- }
39
-
40
- [part="tools"] {
41
- align-items: center;
42
- display: flex;
43
- gap: var(--helix-space-2xs);
44
- justify-content: flex-end;
45
- }
46
-
47
- [part="start"],
48
- [part="end"] {
49
- --helix-size-control: var(--helix-size-control-sm);
50
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
51
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
52
- --helix-size-icon: var(--helix-size-icon-sm);
53
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
54
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
55
-
56
- align-items: center;
57
- display: flex;
58
- gap: var(--helix-space-2xs);
59
- }
60
-
61
- [part="start"] {
62
- margin-inline-end: auto;
63
- }
64
-
65
- [part="end"] {
66
- margin-inline-end: var(--helix-space-2xs);
67
- }
68
-
69
- [part="start"][data-empty],
70
- [part="end"][data-empty] {
71
- display: none;
72
- }
73
-
74
- [part="send"] {
75
- align-items: center;
76
- background-color: transparent;
77
- block-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));
78
- border: 0;
79
- border-radius: var(--helix-radii-sm);
80
- color: var(--helix-color-foreground-muted);
81
- cursor: pointer;
82
- display: inline-flex;
83
- inline-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));
84
- justify-content: center;
85
- padding: var(--helix-space-none);
86
- }
87
-
88
- [part="mark"] {
89
- block-size: var(--helix-size-icon-tight);
90
- inline-size: var(--helix-size-icon-tight);
91
- }
92
-
93
- [part="send"]:hover:not(:disabled) {
94
- background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);
95
- color: var(--helix-color-foreground);
96
- }
97
-
98
- [part="send"]:disabled {
99
- cursor: not-allowed;
100
- opacity: 0.5;
101
- }
102
-
103
- [part="send"]:focus-visible {
104
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
105
- outline-offset: var(--helix-size-focus-offset);
106
- }`);
2
+ export const styles = createSheet(`:host {display: block;}[part="composer"] {background-color: var(--chat-composer-background-color, var(--helix-color-surface));border: var(--chat-composer-border-width, var(--helix-border-thin)) solid
3
+ var(--helix-color-border);border-radius: var(--helix-radii-md);display: grid;gap: var(--helix-space-2xs);padding: var(--helix-space-xs);}[part="composer"]:focus-within {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: 0;}[part="field"] {background-color: transparent;border: 0;color: var(--helix-color-foreground);field-sizing: content;font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);line-height: var(--helix-leading-normal);max-block-size: var(--chat-composer-max-block-size, 12rem);padding-block: var(--helix-space-2xs);padding-inline: calc(var(--helix-space-sm) - var(--helix-space-xs) - var(--helix-border-thin));resize: none;}[part="field"]:focus-visible {outline: none;}[part="tools"] {align-items: center;display: flex;gap: var(--helix-space-2xs);justify-content: flex-end;}[part="start"],
4
+ [part="end"] {--helix-size-control: var(--helix-size-control-sm);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);align-items: center;display: flex;gap: var(--helix-space-2xs);}[part="start"] {margin-inline-end: auto;}[part="end"] {margin-inline-end: var(--helix-space-2xs);}[part="start"][data-empty],
5
+ [part="end"][data-empty] {display: none;}[part="send"] {align-items: center;background-color: transparent;block-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));border: 0;border-radius: var(--helix-radii-sm);color: var(--helix-color-foreground-muted);cursor: pointer;display: inline-flex;inline-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));justify-content: center;padding: var(--helix-space-none);}[part="mark"] {block-size: var(--helix-size-icon-tight);inline-size: var(--helix-size-icon-tight);}[part="send"]:hover:not(:disabled) {background-color: color-mix(in oklab, var(--helix-color-foreground) 8%, transparent);color: var(--helix-color-foreground);}[part="send"]:disabled {cursor: not-allowed;opacity: 0.5;}[part="send"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}`);
@@ -1,308 +1,12 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: block;
4
- }
5
-
6
- [part="message"] {
7
- align-items: start;
8
- display: grid;
9
- grid-template-columns: auto minmax(0, 1fr);
10
- }
11
-
12
- [part="avatar"] > slot::slotted(*) {
13
- margin-inline-end: var(--helix-space-sm);
14
- }
15
-
16
- [part="avatar"] {
17
- align-items: center;
18
- display: flex;
19
- font-size: var(--helix-text-sm);
20
- grid-column: 1;
21
- line-height: var(--helix-leading-normal);
22
- min-block-size: calc(1lh + var(--helix-space-xs) * 2);
23
- }
24
-
25
- [part="body"] {
26
- grid-column: 2;
27
- }
28
-
29
- :host([author="me"]) [part="avatar"] {
30
- display: none;
31
- }
32
-
33
- [part="body"] {
34
- display: grid;
35
- gap: var(--helix-space-2xs);
36
-
37
- justify-items: start;
38
-
39
- max-inline-size: min(var(--chat-message-measure, 42rem), 80%);
40
- }
41
-
42
- :host([author="me"]) [part="body"] {
43
- justify-items: end;
44
- justify-self: end;
45
- }
46
-
47
- [part="actions"] {
48
- opacity: 0;
49
- pointer-events: none;
50
- transition: opacity var(--helix-duration-fast) var(--helix-easing-standard);
51
- }
52
-
53
- :host(:hover) [part="actions"],
54
- :host(:focus-within) [part="actions"] {
55
- opacity: 1;
56
- pointer-events: auto;
57
- }
58
-
59
- @media (hover: none) {
60
- [part="actions"] {
61
- opacity: 1;
62
- pointer-events: auto;
63
- }
64
- }
65
-
66
- [part="actions"] {
67
-
68
- --helix-size-control: calc(var(--helix-size-control-sm) - var(--helix-space-2xs));
69
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
70
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
71
- --helix-size-icon: var(--helix-size-icon-sm);
72
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
73
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
74
-
75
- align-items: center;
76
- display: inline-flex;
77
- gap: var(--helix-space-2xs);
78
- }
79
-
80
- [part="actions"][hidden] {
81
- display: none;
82
- }
83
-
84
- [part="sources"] {
85
- --helix-size-avatar: var(--helix-size-avatar-sm);
86
- --helix-size-tag: var(--helix-size-tag-sm);
87
- --helix-size-icon: var(--helix-size-icon-sm);
88
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
89
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
90
-
91
- align-items: center;
92
- color: var(--helix-color-foreground-muted);
93
- display: flex;
94
- flex-wrap: wrap;
95
- font-family: var(--helix-font-sans);
96
- font-size: var(--helix-text-xs);
97
- gap: var(--helix-space-2xs);
98
- line-height: var(--helix-leading-normal);
99
- }
100
-
101
- [part="sources"][hidden] {
102
- display: none;
103
- }
104
-
105
- [part="content"] {
106
- background-color: var(
2
+ export const styles = createSheet(`:host {display: block;}[part="message"] {align-items: start;display: grid;grid-template-columns: auto minmax(0, 1fr);}[part="avatar"] > slot::slotted(*) {margin-inline-end: var(--helix-space-sm);}[part="avatar"] {align-items: center;display: flex;font-size: var(--helix-text-sm);grid-column: 1;line-height: var(--helix-leading-normal);min-block-size: calc(1lh + var(--helix-space-xs) * 2);}[part="body"] {grid-column: 2;}:host([author="me"]) [part="avatar"] {display: none;}[part="body"] {display: grid;gap: var(--helix-space-2xs);justify-items: start;max-inline-size: min(var(--chat-message-measure, 42rem), 80%);}:host([author="me"]) [part="body"] {justify-items: end;justify-self: end;}[part="actions"] {opacity: 0;pointer-events: none;transition: opacity var(--helix-duration-fast) var(--helix-easing-standard);}:host(:hover) [part="actions"],
3
+ :host(:focus-within) [part="actions"] {opacity: 1;pointer-events: auto;}@media (hover: none) {[part="actions"] {opacity: 1;pointer-events: auto;}}[part="actions"] {--helix-size-control: calc(var(--helix-size-control-sm) - var(--helix-space-2xs));--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);align-items: center;display: inline-flex;gap: var(--helix-space-2xs);}[part="actions"][hidden] {display: none;}[part="sources"] {--helix-size-avatar: var(--helix-size-avatar-sm);--helix-size-tag: var(--helix-size-tag-sm);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);align-items: center;color: var(--helix-color-foreground-muted);display: flex;flex-wrap: wrap;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);gap: var(--helix-space-2xs);line-height: var(--helix-leading-normal);}[part="sources"][hidden] {display: none;}[part="content"] {background-color: var(
107
4
  --chat-message-background-color,
108
5
  color-mix(in oklab, var(--helix-color-foreground) 14%, transparent)
109
- );
110
- border-radius: var(--helix-radii-md);
111
- color: var(--chat-message-color, var(--helix-color-foreground));
112
- font-family: var(--helix-font-sans);
113
- font-size: var(--helix-text-sm);
114
- line-height: var(--helix-leading-normal);
115
- padding-block: var(--helix-space-xs);
116
- padding-inline: var(--helix-space-sm);
117
- }
118
-
119
- :host([separation="plain"]) [part="content"] {
120
- background-color: transparent;
121
- padding-inline: var(--helix-space-none);
122
- }
123
-
124
- :host([separation="plain"]) [part="body"] {
125
- justify-items: stretch;
126
- max-inline-size: 100%;
127
- }
128
-
129
- :host([separation="plain"]) [part="content"] {
130
- inline-size: auto;
131
- }
132
-
133
- :host([author="me"]) [part="content"] {
134
- background-color: var(
6
+ );border-radius: var(--chat-message-radius, var(--helix-radii-md));color: var(--chat-message-color, var(--helix-color-foreground));font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);line-height: var(--helix-leading-normal);padding-block: var(--chat-message-padding-block, var(--helix-space-xs));padding-inline: var(--chat-message-padding-inline, var(--helix-space-sm));}:host([separation="plain"]) [part="content"] {background-color: transparent;padding-inline: var(--helix-space-none);}:host([separation="plain"]) [part="body"] {justify-items: stretch;max-inline-size: 100%;}:host([separation="plain"]) [part="content"] {inline-size: auto;}:host([author="me"]) [part="content"] {background-color: var(
135
7
  --chat-message-background-color-me,
136
8
  color-mix(in oklab, var(--helix-color-primary) 28%, transparent)
137
- );
138
- }
139
-
140
- [part="meta"] {
141
- align-items: center;
142
- color: var(--helix-color-foreground-muted);
143
- display: flex;
144
- font-family: var(--helix-font-sans);
145
- font-size: var(--helix-text-xs);
146
- gap: var(--helix-space-2xs);
147
- }
148
-
149
- :host([author="me"]) [part="meta"] {
150
- justify-content: flex-end;
151
- }
152
-
153
- [part="content"] {
154
- inline-size: fit-content;
155
- max-inline-size: 100%;
156
- min-inline-size: 0;
157
- overflow-x: auto;
158
- }
159
-
160
- [part="content"] slot[name="indicator"] {
161
- display: none;
162
- }
163
-
164
- :host([state="streaming"]) [part="content"][data-empty] slot[name="indicator"] {
165
- display: block;
166
- }
167
-
168
- slot[name="indicator"]::slotted(*) {
169
- background-color: var(--chat-indicator-background-color, var(--helix-color-surface-sunken));
170
- border-radius: var(--helix-radii-full);
171
-
172
- font-size: var(--helix-text-xs);
173
- padding-block: var(--helix-space-2xs);
174
- padding-inline: var(--helix-space-xs);
175
-
176
- --orb-size: var(--helix-size-icon-sm);
177
- }
178
-
179
- slot[name="indicator"]::slotted(helix-orb) {
180
- background-color: transparent;
181
- padding: var(--helix-space-none);
182
- }
183
-
184
- [part="indicator"] {
185
-
186
- --_chat-typing-cycle: 1.2s;
187
-
188
- animation: helix-chat-typing var(--_chat-typing-cycle) infinite ease-in-out;
189
- background-image:
190
- radial-gradient(circle closest-side, currentColor 90%, transparent),
191
- radial-gradient(circle closest-side, currentColor 90%, transparent),
192
- radial-gradient(circle closest-side, currentColor 90%, transparent);
193
- background-position:
194
- 0% 50%,
195
- 50% 50%,
196
- 100% 50%;
197
- background-repeat: no-repeat;
198
- background-size:
199
- 20% 30%,
200
- 20% 30%,
201
- 20% 30%;
202
- block-size: 1lh;
203
- display: block;
204
- inline-size: 1.75em;
205
- opacity: 0.7;
206
- }
207
-
208
- @keyframes helix-chat-typing {
209
- 0%,
210
- 60%,
211
- 100% {
212
- background-position:
213
- 0% 50%,
214
- 50% 50%,
215
- 100% 50%;
216
- }
217
-
218
- 20% {
219
- background-position:
220
- 0% 10%,
221
- 50% 50%,
222
- 100% 50%;
223
- }
224
-
225
- 33% {
226
- background-position:
227
- 0% 50%,
228
- 50% 10%,
229
- 100% 50%;
230
- }
231
-
232
- 46% {
233
- background-position:
234
- 0% 50%,
235
- 50% 50%,
236
- 100% 10%;
237
- }
238
- }
239
-
240
- @media (prefers-reduced-motion: reduce) {
241
- [part="indicator"] {
242
- animation: none;
243
- }
244
- }
245
-
246
- :host([state="failed"]) [part="meta"] {
247
- color: var(--helix-color-danger);
248
- }
249
-
250
- [part="state"] {
251
- align-items: center;
252
- display: inline-flex;
253
- font-weight: var(--helix-weight-medium);
254
- gap: var(--helix-space-2xs);
255
- }
256
-
257
- [part="mark"] {
258
- block-size: var(--helix-size-icon-tight);
259
- flex: 0 0 auto;
260
- inline-size: var(--helix-size-icon-tight);
261
- }
262
-
263
- :host([state="sending"]) [part="content"] {
264
- opacity: 0.6;
265
- }
266
-
267
- [part="retry"] {
268
- background: none;
269
- border: 0;
270
- border-radius: var(--helix-radii-sm);
271
- color: var(--helix-color-foreground);
272
- cursor: pointer;
273
- font: inherit;
274
- font-weight: var(--helix-weight-medium);
275
-
276
- margin-inline-end: calc(var(--helix-space-2xs) * -1);
277
- min-block-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));
278
- padding-block: var(--helix-space-2xs);
279
- padding-inline: var(--helix-space-2xs);
280
- text-decoration: underline;
281
- text-underline-offset: 0.2em;
282
- }
283
-
284
- [part="retry"]:hover {
285
- background-color: light-dark(
9
+ );color: var(--chat-message-color-me, var(--chat-message-color, var(--helix-color-foreground)));}[part="meta"] {align-items: center;color: var(--chat-message-meta-color, var(--helix-color-foreground-muted));display: flex;font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);gap: var(--helix-space-2xs);}:host([author="me"]) [part="meta"] {justify-content: flex-end;}[part="content"] {inline-size: fit-content;max-inline-size: 100%;min-inline-size: 0;overflow-x: auto;}[part="content"] slot[name="indicator"] {display: none;}:host([state="streaming"]) [part="content"][data-empty] slot[name="indicator"] {display: block;}slot[name="indicator"]::slotted(*) {background-color: var(--chat-indicator-background-color, var(--helix-color-surface-sunken));border-radius: var(--helix-radii-full);font-size: var(--helix-text-xs);padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-xs);--orb-size: var(--helix-size-icon-sm);}slot[name="indicator"]::slotted(helix-orb) {background-color: transparent;padding: var(--helix-space-none);}:host([state="failed"]) [part="meta"] {color: var(--helix-color-danger);}[part="state"] {align-items: center;display: inline-flex;font-weight: var(--helix-weight-medium);gap: var(--helix-space-2xs);}[part="mark"] {block-size: var(--helix-size-icon-tight);flex: 0 0 auto;inline-size: var(--helix-size-icon-tight);}:host([state="sending"]) [part="content"] {opacity: 0.6;}[part="retry"] {background: none;border: 0;border-radius: var(--helix-radii-sm);color: var(--helix-color-foreground);cursor: pointer;font: inherit;font-weight: var(--helix-weight-medium);margin-inline-end: calc(var(--helix-space-2xs) * -1);min-block-size: calc(var(--helix-size-control-tight) - var(--helix-space-2xs));padding-block: var(--helix-space-2xs);padding-inline: var(--helix-space-2xs);text-decoration: underline;text-underline-offset: 0.2em;}[part="retry"]:hover {background-color: light-dark(
286
10
  color-mix(in oklab, var(--helix-color-foreground) 8%, transparent),
287
11
  color-mix(in oklab, var(--helix-color-foreground) 12%, transparent)
288
- );
289
- }
290
-
291
- [part="retry"]:focus-visible {
292
- outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
293
- outline-offset: var(--helix-size-focus-offset);
294
- }
295
-
296
- @media print {
297
- [part="retry"] {
298
- display: none;
299
- }
300
-
301
- [part="actions"] {
302
- display: none;
303
- }
304
-
305
- [part="content"] slot[name="indicator"] {
306
- display: none;
307
- }
308
- }`);
12
+ );}[part="retry"]:focus-visible {outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);outline-offset: var(--helix-size-focus-offset);}@media print {[part="retry"] {display: none;}[part="actions"] {display: none;}[part="content"] slot[name="indicator"] {display: none;}}`);
@@ -29,7 +29,12 @@ import type { CSSResultGroup } from 'lit';
29
29
  * @cssproperty --chat-message-background-color - Fill behind a turn.
30
30
  * @cssproperty --chat-message-background-color-me - Fill behind turns by `me`.
31
31
  * @cssproperty --chat-message-color - Text color in a turn.
32
+ * @cssproperty --chat-message-color-me - Text color in turns by `me`.
32
33
  * @cssproperty --chat-message-measure - Maximum width of a turn before its text wraps.
34
+ * @cssproperty --chat-message-meta-color - Color of the line under a turn, with its time and state.
35
+ * @cssproperty --chat-message-padding-block - Space above and below a turn's content inside its bubble.
36
+ * @cssproperty --chat-message-padding-inline - Space either side of a turn's content inside its bubble.
37
+ * @cssproperty --chat-message-radius - Corner radius of a turn's bubble.
33
38
  */
34
39
  export declare class HelixChatMessage extends HelixHeadlessChatMessage {
35
40
  static tier: string;
@@ -7,10 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessChatMessage } from '@fusion.dev/helix-headless/chat';
9
9
  import { property } from 'lit/decorators.js';
10
+ import { styles as typingStyles } from '../typing.css.js';
10
11
  import { styles } from './chat-message.css.js';
11
12
  let HelixChatMessage = class HelixChatMessage extends HelixHeadlessChatMessage {
12
13
  static { this.tier = 'helix-'; }
13
- static { this.styles = styles; }
14
+ static { this.styles = [typingStyles, styles]; }
14
15
  };
15
16
  __decorate([
16
17
  property({ reflect: true })
@@ -1,157 +1,7 @@
1
1
  import { createSheet } from '@fusion.dev/helix-core';
2
- export const styles = createSheet(`:host {
3
- display: grid;
4
- grid-template-rows: auto minmax(0, 1fr) auto auto auto;
5
- max-block-size: var(--chat-max-block-size, none);
6
- min-block-size: 0;
7
- }
8
-
9
- [part="header"] {
10
- grid-row: 1;
11
- }
12
-
13
- [part="log"] {
14
- grid-row: 2;
15
- }
16
-
17
- [part="resume"] {
18
- grid-row: 3;
19
- }
20
-
21
- [part="status"] {
22
- grid-row: 4;
23
- }
24
-
25
- [part="composer"] {
26
- grid-row: 5;
27
- }
28
-
29
- [part="log"] {
30
- display: flex;
31
- flex-direction: column;
32
- scrollbar-color: var(--helix-color-border) transparent;
33
- scrollbar-width: thin;
34
- gap: var(--chat-gap, var(--helix-space-md));
35
- overflow-y: auto;
36
- padding-block: var(--helix-space-md);
37
- padding-inline: var(--chat-padding-inline, var(--helix-space-md));
38
-
39
- justify-content: safe flex-end;
40
- }
41
-
42
- [part="header"][hidden],
2
+ export const styles = createSheet(`:host {display: grid;grid-template-rows: auto minmax(0, 1fr) auto auto auto;max-block-size: var(--chat-max-block-size, none);min-block-size: 0;}[part="header"] {grid-row: 1;}[part="log"] {grid-row: 2;}[part="resume"] {grid-row: 3;}[part="status"] {grid-row: 4;}[part="composer"] {grid-row: 5;}[part="log"] {display: flex;flex-direction: column;scrollbar-color: var(--helix-color-border) transparent;scrollbar-width: thin;gap: var(--chat-gap, var(--helix-space-md));overflow-y: auto;padding-block: var(--helix-space-md);padding-inline: var(--chat-padding-inline, var(--helix-space-md));justify-content: safe flex-end;}[part="header"][hidden],
43
3
  [part="resume"][hidden],
44
- [part="composer"][hidden] {
45
- display: none;
46
- }
47
-
48
- [part="status"][data-empty] {
49
- padding-block: 0;
50
- }
51
-
52
- [part="header"] {
53
-
54
- --helix-size-tag: var(--helix-size-tag-sm);
55
-
56
- align-items: center;
57
- border-block-end: var(--helix-border-thin) solid var(--chat-rule, var(--helix-color-border));
58
- display: flex;
59
- gap: var(--helix-space-sm);
60
- justify-content: space-between;
61
- min-block-size: var(--helix-size-control);
62
- padding-block: var(--helix-space-2xs);
63
- padding-inline: var(--chat-padding-inline, var(--helix-space-md));
64
- }
65
-
66
- [part="header"] > [part="actions"] {
67
- --helix-size-control: var(--helix-size-control-sm);
68
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
69
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
70
- --helix-size-icon: var(--helix-size-icon-sm);
71
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
72
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
73
-
74
- align-items: center;
75
- display: flex;
76
- flex: 0 0 auto;
77
- gap: var(--helix-space-2xs);
78
- }
79
-
80
- [part="header"] > [part="actions"][hidden] {
81
- display: none;
82
- }
83
-
84
- [part="resume"] {
85
- display: grid;
86
- justify-items: center;
87
- margin-block-start: calc(var(--helix-space-xl) * -1);
88
- pointer-events: none;
89
- position: relative;
90
- }
91
-
92
- [part="resume"] > * {
93
- pointer-events: auto;
94
- }
95
-
96
- [part="resume"] slot::slotted(*) {
97
-
98
- border: var(--chat-resume-border-width, var(--helix-border-floating)) solid
99
- var(--chat-resume-border-color, var(--helix-color-border));
100
- box-shadow: var(--chat-resume-shadow, var(--helix-shadow-floating));
101
- }
102
-
103
- [part="status"] {
104
- color: var(--helix-color-foreground-muted);
105
- font-family: var(--helix-font-sans);
106
- font-size: var(--helix-text-xs);
107
- padding-block-end: var(--helix-space-2xs);
108
- padding-block-start: var(--helix-space-xs);
109
- padding-inline: var(--chat-padding-inline, var(--helix-space-md));
110
- }
111
-
112
- [part="composer"] {
113
- padding-block: var(--helix-space-sm);
114
- padding-inline: var(--chat-padding-inline, var(--helix-space-md));
115
- }
116
-
117
- [part="empty"],
118
- [part="loading"] {
119
- --_collection-inset-block: var(--helix-space-lg);
120
- --_collection-inset-inline: var(--helix-space-none);
121
- }
122
-
123
- [part="history"] {
124
- color: var(--helix-color-foreground-subtle);
125
- font-family: var(--helix-font-sans);
126
- font-size: var(--helix-text-sm);
127
- margin: var(--helix-space-none);
128
- padding-block: var(--helix-space-lg);
129
- text-align: center;
130
- }
131
-
132
- [part="log"][data-windowed] {
133
- gap: var(--helix-space-none);
134
- }
135
-
136
- [part="turn"] {
137
- flex: none;
138
- }
139
-
140
- [part="turn"]:not([data-index="0"]) {
141
- padding-block-start: var(--chat-gap, var(--helix-space-md));
142
- }
143
-
144
- @media print {
145
- :host {
146
- max-block-size: none;
147
- }
148
-
149
- [part="log"] {
150
- overflow-y: visible;
151
- }
152
-
153
- [part="composer"],
154
- [part="resume"] {
155
- display: none;
156
- }
157
- }`);
4
+ [part="composer"][hidden] {display: none;}[part="status"][data-empty] {padding-block: 0;}[part="header"] {--helix-size-tag: var(--helix-size-tag-sm);align-items: center;border-block-end: var(--helix-border-thin) solid var(--chat-rule, var(--helix-color-border));display: flex;gap: var(--helix-space-sm);justify-content: space-between;min-block-size: var(--helix-size-control);padding-block: var(--helix-space-2xs);padding-inline: var(--chat-padding-inline, var(--helix-space-md));}[part="header"] > [part="actions"] {--helix-size-control: var(--helix-size-control-sm);--helix-size-control-loose: calc(var(--helix-size-control) * 1.2);--helix-size-control-tight: calc(var(--helix-size-control) * 0.8);--helix-size-icon: var(--helix-size-icon-sm);--helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);--helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);align-items: center;display: flex;flex: 0 0 auto;gap: var(--helix-space-2xs);}[part="header"] > [part="actions"][hidden] {display: none;}[part="resume"] {display: grid;justify-items: center;margin-block-start: calc(var(--helix-space-xl) * -1);pointer-events: none;position: relative;}[part="resume"] > * {pointer-events: auto;}[part="resume"] slot::slotted(*) {border: var(--chat-resume-border-width, var(--helix-border-floating)) solid
5
+ var(--chat-resume-border-color, var(--helix-color-border));box-shadow: var(--chat-resume-shadow, var(--helix-shadow-floating));}[part="status"] {color: var(--helix-color-foreground-muted);font-family: var(--helix-font-sans);font-size: var(--helix-text-xs);padding-block-end: var(--helix-space-2xs);padding-block-start: var(--helix-space-xs);padding-inline: var(--chat-padding-inline, var(--helix-space-md));}[part="typing"] {align-items: center;color: var(--chat-typing-color, var(--helix-color-foreground-muted));display: inline-flex;gap: var(--chat-typing-gap, var(--helix-space-xs));}[part="composer"] {padding-block: var(--helix-space-sm);padding-inline: var(--chat-padding-inline, var(--helix-space-md));}[part="empty"],
6
+ [part="loading"] {--_collection-inset-block: var(--helix-space-lg);--_collection-inset-inline: var(--helix-space-none);}[part="history"] {color: var(--helix-color-foreground-subtle);font-family: var(--helix-font-sans);font-size: var(--helix-text-sm);margin: var(--helix-space-none);padding-block: var(--helix-space-lg);text-align: center;}[part="log"][data-windowed] {gap: var(--helix-space-none);}[part="turn"] {flex: none;}[part="turn"]:not([data-index="0"]) {padding-block-start: var(--chat-gap, var(--helix-space-md));}@media print {:host {max-block-size: none;}[part="log"] {overflow-y: visible;}[part="composer"],
7
+ [part="resume"] {display: none;}}`);
@@ -36,6 +36,8 @@ import '../message/chat-message.js';
36
36
  * @cssproperty --chat-resume-border-width - Width of the edge around the resume control, which sits over content.
37
37
  * @cssproperty --chat-resume-shadow - Shadow under the resume control, which floats over the transcript.
38
38
  * @cssproperty --chat-rule - The hairline under the header.
39
+ * @cssproperty --chat-typing-color - The color of the dots and the words that say who is typing.
40
+ * @cssproperty --chat-typing-gap - The space between the dots and the words that say who is typing.
39
41
  */
40
42
  export declare class HelixChat extends HelixHeadlessChat {
41
43
  static tier: string;
@@ -8,12 +8,13 @@ import { customElement } from '@fusion.dev/helix-core';
8
8
  import { HelixHeadlessChat } from '@fusion.dev/helix-headless/chat';
9
9
  import { styles as collectionStateStyles } from '../../shared/collection/state.css.js';
10
10
  import { styles as liveStyles } from '../../shared/live/live.css.js';
11
+ import { styles as typingStyles } from '../typing.css.js';
11
12
  import { styles } from './chat-root.css.js';
12
13
  import '../composer/chat-composer.js';
13
14
  import '../message/chat-message.js';
14
15
  let HelixChat = class HelixChat extends HelixHeadlessChat {
15
16
  static { this.tier = 'helix-'; }
16
- static { this.styles = [liveStyles, collectionStateStyles, styles]; }
17
+ static { this.styles = [liveStyles, collectionStateStyles, typingStyles, styles]; }
17
18
  };
18
19
  HelixChat = __decorate([
19
20
  customElement('helix-chat')
@@ -0,0 +1 @@
1
+ export declare const styles: import("lit").CSSResult;
@@ -0,0 +1,25 @@
1
+ import { createSheet } from '@fusion.dev/helix-core';
2
+ export const styles = createSheet(`[part="indicator"] {--_chat-typing-cycle: 1.2s;animation: helix-chat-typing var(--_chat-typing-cycle) infinite ease-in-out;background-image:
3
+ radial-gradient(circle closest-side, currentColor 90%, transparent),
4
+ radial-gradient(circle closest-side, currentColor 90%, transparent),
5
+ radial-gradient(circle closest-side, currentColor 90%, transparent);background-position:
6
+ 0% 50%,
7
+ 50% 50%,
8
+ 100% 50%;background-repeat: no-repeat;background-size:
9
+ 20% 30%,
10
+ 20% 30%,
11
+ 20% 30%;block-size: 1lh;display: block;inline-size: 1.75em;opacity: 0.7;}@keyframes helix-chat-typing {0%,
12
+ 60%,
13
+ 100% {background-position:
14
+ 0% 50%,
15
+ 50% 50%,
16
+ 100% 50%;}20% {background-position:
17
+ 0% 10%,
18
+ 50% 50%,
19
+ 100% 50%;}33% {background-position:
20
+ 0% 50%,
21
+ 50% 10%,
22
+ 100% 50%;}46% {background-position:
23
+ 0% 50%,
24
+ 50% 50%,
25
+ 100% 10%;}}@media (prefers-reduced-motion: reduce) {[part="indicator"] {animation: none;}}`);