@atelier-ui/react 0.1.12 → 0.2.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 (160) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/src/index.d.ts +29 -29
  5. package/src/index.js +29 -29
  6. package/src/index.js.map +1 -1
  7. package/src/lib/accordion/{llm-accordion.css → atl-accordion.css} +8 -8
  8. package/src/lib/accordion/{llm-accordion.d.ts → atl-accordion.d.ts} +12 -12
  9. package/src/lib/accordion/{llm-accordion.d.ts.map → atl-accordion.d.ts.map} +1 -1
  10. package/src/lib/accordion/{llm-accordion.js → atl-accordion.js} +9 -9
  11. package/src/lib/accordion/{llm-accordion.js.map → atl-accordion.js.map} +1 -1
  12. package/src/lib/alert/{llm-alert.css → atl-alert.css} +10 -10
  13. package/src/lib/alert/{llm-alert.d.ts → atl-alert.d.ts} +8 -8
  14. package/src/lib/alert/{llm-alert.d.ts.map → atl-alert.d.ts.map} +1 -1
  15. package/src/lib/alert/{llm-alert.js → atl-alert.js} +4 -4
  16. package/src/lib/alert/{llm-alert.js.map → atl-alert.js.map} +1 -1
  17. package/src/lib/avatar/{llm-avatar.css → atl-avatar.css} +20 -20
  18. package/src/lib/avatar/{llm-avatar.d.ts → atl-avatar.d.ts} +10 -10
  19. package/src/lib/avatar/{llm-avatar.d.ts.map → atl-avatar.d.ts.map} +1 -1
  20. package/src/lib/avatar/{llm-avatar.js → atl-avatar.js} +6 -6
  21. package/src/lib/avatar/{llm-avatar.js.map → atl-avatar.js.map} +1 -1
  22. package/src/lib/badge/{llm-badge.css → atl-badge.css} +9 -9
  23. package/src/lib/badge/atl-badge.d.ts +27 -0
  24. package/src/lib/badge/{llm-badge.d.ts.map → atl-badge.d.ts.map} +1 -1
  25. package/src/lib/badge/{llm-badge.js → atl-badge.js} +4 -4
  26. package/src/lib/badge/{llm-badge.js.map → atl-badge.js.map} +1 -1
  27. package/src/lib/breadcrumbs/{llm-breadcrumbs.css → atl-breadcrumbs.css} +11 -11
  28. package/src/lib/breadcrumbs/atl-breadcrumbs.d.ts +38 -0
  29. package/src/lib/breadcrumbs/{llm-breadcrumbs.d.ts.map → atl-breadcrumbs.d.ts.map} +1 -1
  30. package/src/lib/breadcrumbs/{llm-breadcrumbs.js → atl-breadcrumbs.js} +7 -7
  31. package/src/lib/breadcrumbs/{llm-breadcrumbs.js.map → atl-breadcrumbs.js.map} +1 -1
  32. package/src/lib/button/{llm-button.css → atl-button.css} +20 -20
  33. package/src/lib/button/{llm-button.d.ts → atl-button.d.ts} +7 -7
  34. package/src/lib/button/{llm-button.d.ts.map → atl-button.d.ts.map} +1 -1
  35. package/src/lib/button/{llm-button.js → atl-button.js} +4 -4
  36. package/src/lib/button/{llm-button.js.map → atl-button.js.map} +1 -1
  37. package/src/lib/card/{llm-card.css → atl-card.css} +20 -20
  38. package/src/lib/card/{llm-card.d.ts → atl-card.d.ts} +13 -13
  39. package/src/lib/card/{llm-card.d.ts.map → atl-card.d.ts.map} +1 -1
  40. package/src/lib/card/atl-card.js +30 -0
  41. package/src/lib/card/{llm-card.js.map → atl-card.js.map} +1 -1
  42. package/src/lib/chat/{llm-chat.css → atl-chat.css} +55 -55
  43. package/src/lib/chat/{llm-chat.d.ts → atl-chat.d.ts} +26 -26
  44. package/src/lib/chat/{llm-chat.d.ts.map → atl-chat.d.ts.map} +1 -1
  45. package/src/lib/chat/{llm-chat.js → atl-chat.js} +21 -21
  46. package/src/lib/chat/{llm-chat.js.map → atl-chat.js.map} +1 -1
  47. package/src/lib/checkbox/{llm-checkbox.css → atl-checkbox.css} +19 -19
  48. package/src/lib/checkbox/{llm-checkbox.d.ts → atl-checkbox.d.ts} +6 -6
  49. package/src/lib/checkbox/{llm-checkbox.d.ts.map → atl-checkbox.d.ts.map} +1 -1
  50. package/src/lib/checkbox/{llm-checkbox.js → atl-checkbox.js} +4 -4
  51. package/src/lib/checkbox/{llm-checkbox.js.map → atl-checkbox.js.map} +1 -1
  52. package/src/lib/code-block/{llm-code-block.css → atl-code-block.css} +2 -2
  53. package/src/lib/code-block/{llm-code-block.d.ts → atl-code-block.d.ts} +4 -4
  54. package/src/lib/code-block/{llm-code-block.d.ts.map → atl-code-block.d.ts.map} +1 -1
  55. package/src/lib/code-block/{llm-code-block.js → atl-code-block.js} +4 -4
  56. package/src/lib/code-block/{llm-code-block.js.map → atl-code-block.js.map} +1 -1
  57. package/src/lib/combobox/{llm-combobox.css → atl-combobox.css} +24 -24
  58. package/src/lib/combobox/{llm-combobox.d.ts → atl-combobox.d.ts} +7 -7
  59. package/src/lib/combobox/{llm-combobox.d.ts.map → atl-combobox.d.ts.map} +1 -1
  60. package/src/lib/combobox/{llm-combobox.js → atl-combobox.js} +8 -8
  61. package/src/lib/combobox/{llm-combobox.js.map → atl-combobox.js.map} +1 -1
  62. package/src/lib/dialog/{llm-dialog.css → atl-dialog.css} +18 -18
  63. package/src/lib/dialog/{llm-dialog.d.ts → atl-dialog.d.ts} +12 -12
  64. package/src/lib/dialog/{llm-dialog.d.ts.map → atl-dialog.d.ts.map} +1 -1
  65. package/src/lib/dialog/{llm-dialog.js → atl-dialog.js} +13 -13
  66. package/src/lib/dialog/{llm-dialog.js.map → atl-dialog.js.map} +1 -1
  67. package/src/lib/drawer/{llm-drawer.css → atl-drawer.css} +35 -35
  68. package/src/lib/drawer/{llm-drawer.d.ts → atl-drawer.d.ts} +12 -12
  69. package/src/lib/drawer/{llm-drawer.d.ts.map → atl-drawer.d.ts.map} +1 -1
  70. package/src/lib/drawer/{llm-drawer.js → atl-drawer.js} +13 -13
  71. package/src/lib/drawer/{llm-drawer.js.map → atl-drawer.js.map} +1 -1
  72. package/src/lib/icon/{llm-icon.css → atl-icon.css} +4 -4
  73. package/src/lib/icon/atl-icon.d.ts +24 -0
  74. package/src/lib/icon/{llm-icon.d.ts.map → atl-icon.d.ts.map} +1 -1
  75. package/src/lib/icon/{llm-icon.js → atl-icon.js} +5 -5
  76. package/src/lib/icon/{llm-icon.js.map → atl-icon.js.map} +1 -1
  77. package/src/lib/input/{llm-input.css → atl-input.css} +14 -14
  78. package/src/lib/input/{llm-input.d.ts → atl-input.d.ts} +6 -6
  79. package/src/lib/input/{llm-input.d.ts.map → atl-input.d.ts.map} +1 -1
  80. package/src/lib/input/{llm-input.js → atl-input.js} +4 -4
  81. package/src/lib/input/{llm-input.js.map → atl-input.js.map} +1 -1
  82. package/src/lib/menu/{llm-menu.css → atl-menu.css} +11 -11
  83. package/src/lib/menu/{llm-menu.d.ts → atl-menu.d.ts} +13 -13
  84. package/src/lib/menu/{llm-menu.d.ts.map → atl-menu.d.ts.map} +1 -1
  85. package/src/lib/menu/{llm-menu.js → atl-menu.js} +10 -10
  86. package/src/lib/menu/{llm-menu.js.map → atl-menu.js.map} +1 -1
  87. package/src/lib/pagination/{llm-pagination.css → atl-pagination.css} +1 -1
  88. package/src/lib/pagination/{llm-pagination.d.ts → atl-pagination.d.ts} +6 -6
  89. package/src/lib/pagination/{llm-pagination.d.ts.map → atl-pagination.d.ts.map} +1 -1
  90. package/src/lib/pagination/{llm-pagination.js → atl-pagination.js} +4 -4
  91. package/src/lib/pagination/{llm-pagination.js.map → atl-pagination.js.map} +1 -1
  92. package/src/lib/progress/{llm-progress.css → atl-progress.css} +9 -9
  93. package/src/lib/progress/{llm-progress.d.ts → atl-progress.d.ts} +6 -6
  94. package/src/lib/progress/{llm-progress.d.ts.map → atl-progress.d.ts.map} +1 -1
  95. package/src/lib/progress/{llm-progress.js → atl-progress.js} +4 -4
  96. package/src/lib/progress/{llm-progress.js.map → atl-progress.js.map} +1 -1
  97. package/src/lib/radio/{llm-radio.css → atl-radio.css} +11 -11
  98. package/src/lib/radio/{llm-radio.d.ts → atl-radio.d.ts} +7 -7
  99. package/src/lib/radio/{llm-radio.d.ts.map → atl-radio.d.ts.map} +1 -1
  100. package/src/lib/radio/{llm-radio.js → atl-radio.js} +6 -6
  101. package/src/lib/radio/{llm-radio.js.map → atl-radio.js.map} +1 -1
  102. package/src/lib/radio-group/{llm-radio-group.css → atl-radio-group.css} +6 -6
  103. package/src/lib/radio-group/{llm-radio-group.d.ts → atl-radio-group.d.ts} +6 -6
  104. package/src/lib/radio-group/{llm-radio-group.d.ts.map → atl-radio-group.d.ts.map} +1 -1
  105. package/src/lib/radio-group/{llm-radio-group.js → atl-radio-group.js} +4 -4
  106. package/src/lib/radio-group/{llm-radio-group.js.map → atl-radio-group.js.map} +1 -1
  107. package/src/lib/select/{llm-select.css → atl-select.css} +11 -11
  108. package/src/lib/select/{llm-select.d.ts → atl-select.d.ts} +10 -10
  109. package/src/lib/select/{llm-select.d.ts.map → atl-select.d.ts.map} +1 -1
  110. package/src/lib/select/{llm-select.js → atl-select.js} +6 -6
  111. package/src/lib/select/{llm-select.js.map → atl-select.js.map} +1 -1
  112. package/src/lib/skeleton/{llm-skeleton.css → atl-skeleton.css} +6 -6
  113. package/src/lib/skeleton/{llm-skeleton.d.ts → atl-skeleton.d.ts} +6 -6
  114. package/src/lib/skeleton/{llm-skeleton.d.ts.map → atl-skeleton.d.ts.map} +1 -1
  115. package/src/lib/skeleton/{llm-skeleton.js → atl-skeleton.js} +4 -4
  116. package/src/lib/skeleton/{llm-skeleton.js.map → atl-skeleton.js.map} +1 -1
  117. package/src/lib/spec.d.ts +120 -120
  118. package/src/lib/spec.js.map +1 -1
  119. package/src/lib/stepper/{llm-stepper.css → atl-stepper.css} +5 -5
  120. package/src/lib/stepper/{llm-stepper.d.ts → atl-stepper.d.ts} +9 -9
  121. package/src/lib/stepper/{llm-stepper.d.ts.map → atl-stepper.d.ts.map} +1 -1
  122. package/src/lib/stepper/{llm-stepper.js → atl-stepper.js} +11 -11
  123. package/src/lib/stepper/{llm-stepper.js.map → atl-stepper.js.map} +1 -1
  124. package/src/lib/table/{llm-table.css → atl-table.css} +30 -30
  125. package/src/lib/table/atl-table.d.ts +40 -0
  126. package/src/lib/table/{llm-table.d.ts.map → atl-table.d.ts.map} +1 -1
  127. package/src/lib/table/{llm-table.js → atl-table.js} +14 -14
  128. package/src/lib/table/{llm-table.js.map → atl-table.js.map} +1 -1
  129. package/src/lib/tabs/{llm-tabs.css → atl-tabs.css} +17 -17
  130. package/src/lib/tabs/{llm-tabs.d.ts → atl-tabs.d.ts} +12 -12
  131. package/src/lib/tabs/{llm-tabs.d.ts.map → atl-tabs.d.ts.map} +1 -1
  132. package/src/lib/tabs/{llm-tabs.js → atl-tabs.js} +11 -11
  133. package/src/lib/tabs/{llm-tabs.js.map → atl-tabs.js.map} +1 -1
  134. package/src/lib/textarea/{llm-textarea.css → atl-textarea.css} +15 -15
  135. package/src/lib/textarea/{llm-textarea.d.ts → atl-textarea.d.ts} +6 -6
  136. package/src/lib/textarea/{llm-textarea.d.ts.map → atl-textarea.d.ts.map} +1 -1
  137. package/src/lib/textarea/{llm-textarea.js → atl-textarea.js} +4 -4
  138. package/src/lib/textarea/{llm-textarea.js.map → atl-textarea.js.map} +1 -1
  139. package/src/lib/toast/{llm-toast.css → atl-toast.css} +16 -16
  140. package/src/lib/toast/atl-toast.d.ts +54 -0
  141. package/src/lib/toast/{llm-toast.d.ts.map → atl-toast.d.ts.map} +1 -1
  142. package/src/lib/toast/{llm-toast.js → atl-toast.js} +12 -12
  143. package/src/lib/toast/{llm-toast.js.map → atl-toast.js.map} +1 -1
  144. package/src/lib/toggle/{llm-toggle.css → atl-toggle.css} +16 -16
  145. package/src/lib/toggle/{llm-toggle.d.ts → atl-toggle.d.ts} +6 -6
  146. package/src/lib/toggle/{llm-toggle.d.ts.map → atl-toggle.d.ts.map} +1 -1
  147. package/src/lib/toggle/{llm-toggle.js → atl-toggle.js} +4 -4
  148. package/src/lib/toggle/{llm-toggle.js.map → atl-toggle.js.map} +1 -1
  149. package/src/lib/tooltip/{llm-tooltip.css → atl-tooltip.css} +12 -12
  150. package/src/lib/tooltip/atl-tooltip.d.ts +17 -0
  151. package/src/lib/tooltip/{llm-tooltip.d.ts.map → atl-tooltip.d.ts.map} +1 -1
  152. package/src/lib/tooltip/{llm-tooltip.js → atl-tooltip.js} +7 -7
  153. package/src/lib/tooltip/{llm-tooltip.js.map → atl-tooltip.js.map} +1 -1
  154. package/src/lib/badge/llm-badge.d.ts +0 -27
  155. package/src/lib/breadcrumbs/llm-breadcrumbs.d.ts +0 -38
  156. package/src/lib/card/llm-card.js +0 -30
  157. package/src/lib/icon/llm-icon.d.ts +0 -24
  158. package/src/lib/table/llm-table.d.ts +0 -40
  159. package/src/lib/toast/llm-toast.d.ts +0 -54
  160. package/src/lib/tooltip/llm-tooltip.d.ts +0 -17
@@ -1,10 +1,10 @@
1
1
  /* ── Host wrapper ──────────────────────────────────────────────────────────── */
2
- .llm-chat {
2
+ .atl-chat {
3
3
  display: contents;
4
4
  }
5
5
 
6
6
  /* ── Shared surface (header / messages / input column) ─────────────────────── */
7
- .llm-chat .surface {
7
+ .atl-chat .surface {
8
8
  display: flex;
9
9
  flex-direction: column;
10
10
  background: var(--ui-color-surface);
@@ -15,7 +15,7 @@
15
15
  /* ═══════════════════════════════════════════════════════════════════════════ */
16
16
  /* DRAWER variant */
17
17
  /* ═══════════════════════════════════════════════════════════════════════════ */
18
- .llm-chat.variant-drawer dialog {
18
+ .atl-chat.variant-drawer dialog {
19
19
  all: unset;
20
20
  position: fixed;
21
21
  inset: 0 0 0 auto;
@@ -34,18 +34,18 @@
34
34
  overlay var(--ui-duration-slow) allow-discrete;
35
35
  }
36
36
 
37
- .llm-chat.variant-drawer dialog[open] {
37
+ .atl-chat.variant-drawer dialog[open] {
38
38
  display: flex;
39
39
  transform: translateX(0);
40
40
  }
41
41
 
42
42
  @starting-style {
43
- .llm-chat.variant-drawer dialog[open] {
43
+ .atl-chat.variant-drawer dialog[open] {
44
44
  transform: translateX(100%);
45
45
  }
46
46
  }
47
47
 
48
- .llm-chat.variant-drawer dialog::backdrop {
48
+ .atl-chat.variant-drawer dialog::backdrop {
49
49
  background: var(--ui-color-overlay);
50
50
  backdrop-filter: blur(2px);
51
51
  transition:
@@ -54,7 +54,7 @@
54
54
  overlay var(--ui-duration-slow) allow-discrete;
55
55
  }
56
56
 
57
- .llm-chat.variant-drawer .drawer-surface {
57
+ .atl-chat.variant-drawer .drawer-surface {
58
58
  width: 100%;
59
59
  height: 100%;
60
60
  }
@@ -62,7 +62,7 @@
62
62
  /* ═══════════════════════════════════════════════════════════════════════════ */
63
63
  /* POPUP variant */
64
64
  /* ═══════════════════════════════════════════════════════════════════════════ */
65
- .llm-chat.variant-popup .popup-surface {
65
+ .atl-chat.variant-popup .popup-surface {
66
66
  position: fixed;
67
67
  bottom: calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));
68
68
  right: var(--ui-spacing-6);
@@ -73,7 +73,7 @@
73
73
  z-index: 100;
74
74
  }
75
75
 
76
- .llm-chat.variant-popup .fab-bubble {
76
+ .atl-chat.variant-popup .fab-bubble {
77
77
  position: fixed;
78
78
  bottom: var(--ui-spacing-6);
79
79
  right: var(--ui-spacing-6);
@@ -94,12 +94,12 @@
94
94
  z-index: 101;
95
95
  }
96
96
 
97
- .llm-chat.variant-popup .fab-bubble:hover {
97
+ .atl-chat.variant-popup .fab-bubble:hover {
98
98
  transform: scale(1.05);
99
99
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
100
100
  }
101
101
 
102
- .llm-chat.variant-popup .fab-bubble:focus-visible {
102
+ .atl-chat.variant-popup .fab-bubble:focus-visible {
103
103
  outline: none;
104
104
  box-shadow: var(--ui-focus-ring), 0 6px 16px rgba(0, 0, 0, 0.18);
105
105
  }
@@ -107,7 +107,7 @@
107
107
  /* ═══════════════════════════════════════════════════════════════════════════ */
108
108
  /* INLINE variant */
109
109
  /* ═══════════════════════════════════════════════════════════════════════════ */
110
- .llm-chat.variant-inline .inline-surface {
110
+ .atl-chat.variant-inline .inline-surface {
111
111
  width: 100%;
112
112
  height: 100%;
113
113
  min-height: 24rem;
@@ -115,14 +115,14 @@
115
115
  border-radius: var(--ui-radius-xl);
116
116
  }
117
117
 
118
- .llm-chat.variant-inline .llm-chat-header .close-btn {
118
+ .atl-chat.variant-inline .atl-chat-header .close-btn {
119
119
  display: none;
120
120
  }
121
121
 
122
122
  /* ═══════════════════════════════════════════════════════════════════════════ */
123
123
  /* SUB-COMPONENT: header */
124
124
  /* ═══════════════════════════════════════════════════════════════════════════ */
125
- .llm-chat-header {
125
+ .atl-chat-header {
126
126
  display: flex;
127
127
  align-items: center;
128
128
  justify-content: space-between;
@@ -132,7 +132,7 @@
132
132
  flex-shrink: 0;
133
133
  }
134
134
 
135
- .llm-chat-header .title-block {
135
+ .atl-chat-header .title-block {
136
136
  display: flex;
137
137
  align-items: center;
138
138
  gap: var(--ui-spacing-3);
@@ -144,7 +144,7 @@
144
144
  min-width: 0;
145
145
  }
146
146
 
147
- .llm-chat-header .close-btn {
147
+ .atl-chat-header .close-btn {
148
148
  display: inline-flex;
149
149
  align-items: center;
150
150
  justify-content: center;
@@ -162,12 +162,12 @@
162
162
  color var(--ui-transition-fast);
163
163
  }
164
164
 
165
- .llm-chat-header .close-btn:hover {
165
+ .atl-chat-header .close-btn:hover {
166
166
  background-color: var(--ui-color-surface-sunken);
167
167
  color: var(--ui-color-text);
168
168
  }
169
169
 
170
- .llm-chat-header .close-btn:focus-visible {
170
+ .atl-chat-header .close-btn:focus-visible {
171
171
  outline: none;
172
172
  box-shadow: var(--ui-focus-ring);
173
173
  }
@@ -175,7 +175,7 @@
175
175
  /* ═══════════════════════════════════════════════════════════════════════════ */
176
176
  /* SUB-COMPONENT: messages */
177
177
  /* ═══════════════════════════════════════════════════════════════════════════ */
178
- .llm-chat-messages {
178
+ .atl-chat-messages {
179
179
  display: flex;
180
180
  flex-direction: column;
181
181
  gap: var(--ui-spacing-3);
@@ -190,7 +190,7 @@
190
190
  /* ═══════════════════════════════════════════════════════════════════════════ */
191
191
  /* SUB-COMPONENT: message bubble */
192
192
  /* ═══════════════════════════════════════════════════════════════════════════ */
193
- .llm-chat-message {
193
+ .atl-chat-message {
194
194
  display: block;
195
195
  max-width: 85%;
196
196
  padding: var(--ui-spacing-3) var(--ui-spacing-4);
@@ -200,25 +200,25 @@
200
200
  word-wrap: break-word;
201
201
  }
202
202
 
203
- .llm-chat-message.role-assistant,
204
- .llm-chat-message.role-system {
203
+ .atl-chat-message.role-assistant,
204
+ .atl-chat-message.role-system {
205
205
  background: var(--ui-color-surface-sunken);
206
206
  color: var(--ui-color-text);
207
207
  align-self: flex-start;
208
208
  }
209
209
 
210
- .llm-chat-message.role-user {
210
+ .atl-chat-message.role-user {
211
211
  background: var(--ui-color-primary);
212
212
  color: var(--ui-color-text-on-primary);
213
213
  align-self: flex-end;
214
214
  }
215
215
 
216
- .llm-chat-message.role-system {
216
+ .atl-chat-message.role-system {
217
217
  font-style: italic;
218
218
  color: var(--ui-color-text-muted);
219
219
  }
220
220
 
221
- .llm-chat-message.is-failed {
221
+ .atl-chat-message.is-failed {
222
222
  background: var(--ui-color-surface-sunken);
223
223
  border: 1px dashed var(--ui-color-danger);
224
224
  color: var(--ui-color-text);
@@ -227,7 +227,7 @@
227
227
  /* ═══════════════════════════════════════════════════════════════════════════ */
228
228
  /* SUB-COMPONENT: typing indicator */
229
229
  /* ═══════════════════════════════════════════════════════════════════════════ */
230
- .llm-chat-typing {
230
+ .atl-chat-typing {
231
231
  display: inline-flex;
232
232
  align-items: center;
233
233
  gap: var(--ui-spacing-1);
@@ -237,25 +237,25 @@
237
237
  align-self: flex-start;
238
238
  }
239
239
 
240
- .llm-chat-typing .dot {
240
+ .atl-chat-typing .dot {
241
241
  width: 0.375rem;
242
242
  height: 0.375rem;
243
243
  border-radius: 50%;
244
244
  background: var(--ui-color-text-muted);
245
- animation: llm-chat-typing 1.4s infinite ease-in-out;
245
+ animation: atl-chat-typing 1.4s infinite ease-in-out;
246
246
  }
247
247
 
248
- .llm-chat-typing .dot:nth-child(2) {
248
+ .atl-chat-typing .dot:nth-child(2) {
249
249
  animation-delay: 0.16s;
250
250
  }
251
251
 
252
- .llm-chat-typing .dot:nth-child(3) {
252
+ .atl-chat-typing .dot:nth-child(3) {
253
253
  animation-delay: 0.32s;
254
254
  }
255
255
 
256
256
  /* Inline cursor variant — drops the bubble chrome so the dots can sit at the
257
257
  end of a streaming assistant message. */
258
- .llm-chat-typing.is-inline {
258
+ .atl-chat-typing.is-inline {
259
259
  display: inline-flex;
260
260
  padding: 0;
261
261
  margin-left: var(--ui-spacing-1);
@@ -265,24 +265,24 @@
265
265
  align-self: auto;
266
266
  }
267
267
 
268
- .llm-chat-typing.is-inline .dot {
268
+ .atl-chat-typing.is-inline .dot {
269
269
  width: 0.25rem;
270
270
  height: 0.25rem;
271
271
  }
272
272
 
273
- @keyframes llm-chat-typing {
273
+ @keyframes atl-chat-typing {
274
274
  0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
275
275
  30% { opacity: 1; transform: translateY(-2px); }
276
276
  }
277
277
 
278
278
  @media (prefers-reduced-motion: reduce) {
279
- .llm-chat-typing .dot {
279
+ .atl-chat-typing .dot {
280
280
  animation: none;
281
281
  opacity: 0.6;
282
282
  }
283
283
  }
284
284
 
285
- .llm-chat-typing .sr-only {
285
+ .atl-chat-typing .sr-only {
286
286
  position: absolute;
287
287
  width: 1px;
288
288
  height: 1px;
@@ -297,11 +297,11 @@
297
297
  /* ═══════════════════════════════════════════════════════════════════════════ */
298
298
  /* SUB-COMPONENT: suggestion chip */
299
299
  /* ═══════════════════════════════════════════════════════════════════════════ */
300
- .llm-chat-suggestion {
300
+ .atl-chat-suggestion {
301
301
  display: block;
302
302
  }
303
303
 
304
- .llm-chat-suggestion .chip {
304
+ .atl-chat-suggestion .chip {
305
305
  display: flex;
306
306
  flex-direction: column;
307
307
  align-items: flex-start;
@@ -320,23 +320,23 @@
320
320
  border-color var(--ui-transition-fast);
321
321
  }
322
322
 
323
- .llm-chat-suggestion .chip:hover {
323
+ .atl-chat-suggestion .chip:hover {
324
324
  background-color: var(--ui-color-surface-sunken);
325
325
  border-color: var(--ui-color-border-hover);
326
326
  }
327
327
 
328
- .llm-chat-suggestion .chip:focus-visible {
328
+ .atl-chat-suggestion .chip:focus-visible {
329
329
  outline: none;
330
330
  box-shadow: var(--ui-focus-ring);
331
331
  }
332
332
 
333
- .llm-chat-suggestion .chip-label {
333
+ .atl-chat-suggestion .chip-label {
334
334
  font-size: var(--ui-font-size-sm);
335
335
  font-weight: var(--ui-font-weight-medium);
336
336
  color: var(--ui-color-text);
337
337
  }
338
338
 
339
- .llm-chat-suggestion .chip-hint {
339
+ .atl-chat-suggestion .chip-hint {
340
340
  font-size: var(--ui-font-size-xs);
341
341
  color: var(--ui-color-text-muted);
342
342
  }
@@ -344,7 +344,7 @@
344
344
  /* ═══════════════════════════════════════════════════════════════════════════ */
345
345
  /* SUB-COMPONENT: input footer */
346
346
  /* ═══════════════════════════════════════════════════════════════════════════ */
347
- .llm-chat-input {
347
+ .atl-chat-input {
348
348
  display: flex;
349
349
  align-items: flex-end;
350
350
  gap: var(--ui-spacing-2);
@@ -354,7 +354,7 @@
354
354
  flex-shrink: 0;
355
355
  }
356
356
 
357
- .llm-chat-input .field {
357
+ .atl-chat-input .field {
358
358
  flex: 1;
359
359
  min-width: 0;
360
360
  padding: var(--ui-spacing-2) var(--ui-spacing-3);
@@ -369,26 +369,26 @@
369
369
  transition: border-color var(--ui-transition-fast);
370
370
  }
371
371
 
372
- .llm-chat-input .field::placeholder {
372
+ .atl-chat-input .field::placeholder {
373
373
  color: var(--ui-color-text-muted);
374
374
  }
375
375
 
376
- .llm-chat-input .field:hover:not(:disabled) {
376
+ .atl-chat-input .field:hover:not(:disabled) {
377
377
  border-color: var(--ui-color-input-border-hover, var(--ui-color-border-hover));
378
378
  }
379
379
 
380
- .llm-chat-input .field:focus-visible {
380
+ .atl-chat-input .field:focus-visible {
381
381
  outline: none;
382
382
  border-color: var(--ui-color-primary);
383
383
  box-shadow: var(--ui-focus-ring);
384
384
  }
385
385
 
386
- .llm-chat-input .field:disabled {
386
+ .atl-chat-input .field:disabled {
387
387
  opacity: var(--ui-opacity-disabled);
388
388
  cursor: not-allowed;
389
389
  }
390
390
 
391
- .llm-chat-input .action-btn {
391
+ .atl-chat-input .action-btn {
392
392
  display: inline-flex;
393
393
  align-items: center;
394
394
  justify-content: center;
@@ -406,34 +406,34 @@
406
406
  transform var(--ui-transition-fast);
407
407
  }
408
408
 
409
- .llm-chat-input .action-btn.variant-primary {
409
+ .atl-chat-input .action-btn.variant-primary {
410
410
  background: var(--ui-color-primary);
411
411
  color: var(--ui-color-text-on-primary);
412
412
  border-color: var(--ui-color-primary);
413
413
  }
414
414
 
415
- .llm-chat-input .action-btn.variant-primary:hover:not(:disabled) {
415
+ .atl-chat-input .action-btn.variant-primary:hover:not(:disabled) {
416
416
  background: var(--ui-color-primary-hover);
417
417
  border-color: var(--ui-color-primary-hover);
418
418
  }
419
419
 
420
- .llm-chat-input .action-btn.variant-danger {
420
+ .atl-chat-input .action-btn.variant-danger {
421
421
  background: var(--ui-color-danger);
422
422
  color: var(--ui-color-text-on-danger);
423
423
  border-color: var(--ui-color-danger);
424
424
  }
425
425
 
426
- .llm-chat-input .action-btn.variant-danger:hover {
426
+ .atl-chat-input .action-btn.variant-danger:hover {
427
427
  background: var(--ui-color-danger-hover);
428
428
  border-color: var(--ui-color-danger-hover);
429
429
  }
430
430
 
431
- .llm-chat-input .action-btn:disabled {
431
+ .atl-chat-input .action-btn:disabled {
432
432
  opacity: var(--ui-opacity-disabled);
433
433
  cursor: not-allowed;
434
434
  }
435
435
 
436
- .llm-chat-input .action-btn:focus-visible {
436
+ .atl-chat-input .action-btn:focus-visible {
437
437
  outline: none;
438
438
  box-shadow: var(--ui-focus-ring);
439
439
  }
@@ -441,6 +441,6 @@
441
441
  /* ═══════════════════════════════════════════════════════════════════════════ */
442
442
  /* STATUS-aware tweaks */
443
443
  /* ═══════════════════════════════════════════════════════════════════════════ */
444
- .llm-chat.status-streaming .llm-chat-input .field {
444
+ .atl-chat.status-streaming .atl-chat-input .field {
445
445
  cursor: wait;
446
446
  }
@@ -1,14 +1,14 @@
1
1
  import { HTMLAttributes, ReactNode, TextareaHTMLAttributes } from 'react';
2
- import type { LlmChatMessageRole, LlmChatStatus, LlmChatVariant } from '../spec';
3
- import './llm-chat.css';
2
+ import type { AtlChatMessageRole, AtlChatStatus, AtlChatVariant } from '../spec';
3
+ import './atl-chat.css';
4
4
  /**
5
- * Properties for the LlmChat component.
5
+ * Properties for the AtlChat component.
6
6
  */
7
- export interface LlmChatProps {
7
+ export interface AtlChatProps {
8
8
  /** Layout variant. */
9
- variant?: LlmChatVariant;
9
+ variant?: AtlChatVariant;
10
10
  /** Connection / response status. */
11
- status?: LlmChatStatus;
11
+ status?: AtlChatStatus;
12
12
  /** Whether the chat is open (drawer / popup variants). */
13
13
  open?: boolean;
14
14
  /** Callback when open state should change. */
@@ -18,32 +18,32 @@ export interface LlmChatProps {
18
18
  /**
19
19
  * AI assistant surface. Three layout variants share the same content slots:
20
20
  * `drawer` (slide-in panel), `popup` (floating bubble + window), `inline`
21
- * (embedded card). Compose with `LlmChatHeader`, `LlmChatMessages`,
22
- * `LlmChatMessage`, `LlmChatTyping`, `LlmChatSuggestion`, `LlmChatInput`.
21
+ * (embedded card). Compose with `AtlChatHeader`, `AtlChatMessages`,
22
+ * `AtlChatMessage`, `AtlChatTyping`, `AtlChatSuggestion`, `AtlChatInput`.
23
23
  */
24
- export declare function LlmChat({ variant, status, open, onOpenChange, children, }: LlmChatProps): import("react").JSX.Element;
24
+ export declare function AtlChat({ variant, status, open, onOpenChange, children, }: AtlChatProps): import("react").JSX.Element;
25
25
  /**
26
- * Header slot for `LlmChat`. Holds the title block; the close button
26
+ * Header slot for `AtlChat`. Holds the title block; the close button
27
27
  * is rendered automatically (hidden on the inline variant via CSS).
28
28
  */
29
- export declare function LlmChatHeader({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
29
+ export declare function AtlChatHeader({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
30
30
  /**
31
- * Scrollable message list. Project `LlmChatMessage`, `LlmChatTyping`, or
32
- * `LlmChatSuggestion` children inside. Auto-scrolls to the bottom whenever
31
+ * Scrollable message list. Project `AtlChatMessage`, `AtlChatTyping`, or
32
+ * `AtlChatSuggestion` children inside. Auto-scrolls to the bottom whenever
33
33
  * children are added or content changes — important for streaming responses
34
34
  * where new tokens are appended live.
35
35
  */
36
- export declare function LlmChatMessages({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
36
+ export declare function AtlChatMessages({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
37
37
  /**
38
38
  * A single chat message. Role drives bubble alignment and color.
39
39
  */
40
- export interface LlmChatMessageProps extends HTMLAttributes<HTMLDivElement> {
40
+ export interface AtlChatMessageProps extends HTMLAttributes<HTMLDivElement> {
41
41
  /** Sender of the message. */
42
- role?: LlmChatMessageRole;
42
+ role?: AtlChatMessageRole;
43
43
  /** Marks the message as failed (red dashed border). */
44
44
  failed?: boolean;
45
45
  }
46
- export declare function LlmChatMessage({ role, failed, children, className, ...rest }: LlmChatMessageProps): import("react").JSX.Element;
46
+ export declare function AtlChatMessage({ role, failed, children, className, ...rest }: AtlChatMessageProps): import("react").JSX.Element;
47
47
  /**
48
48
  * Typing indicator (three animated dots).
49
49
  *
@@ -51,18 +51,18 @@ export declare function LlmChatMessage({ role, failed, children, className, ...r
51
51
  * - **Standalone bubble** (default) — render at the end of the message
52
52
  * list to show "the assistant is starting to respond".
53
53
  * - **Inline cursor** (`inline`) — render as the LAST child INSIDE the
54
- * currently-streaming `LlmChatMessage` so the dots read as a typing
54
+ * currently-streaming `AtlChatMessage` so the dots read as a typing
55
55
  * caret at the end of the partial text.
56
56
  */
57
- export interface LlmChatTypingProps extends HTMLAttributes<HTMLDivElement> {
57
+ export interface AtlChatTypingProps extends HTMLAttributes<HTMLDivElement> {
58
58
  /** When true, renders as an inline cursor without bubble chrome. */
59
59
  inline?: boolean;
60
60
  }
61
- export declare function LlmChatTyping({ inline, className, ...rest }: LlmChatTypingProps): import("react").JSX.Element;
61
+ export declare function AtlChatTyping({ inline, className, ...rest }: AtlChatTypingProps): import("react").JSX.Element;
62
62
  /**
63
63
  * Tappable suggestion chip used in the empty state to seed a conversation.
64
64
  */
65
- export interface LlmChatSuggestionProps {
65
+ export interface AtlChatSuggestionProps {
66
66
  /** Primary label of the suggestion. */
67
67
  label: string;
68
68
  /** Optional secondary hint text. */
@@ -71,15 +71,15 @@ export interface LlmChatSuggestionProps {
71
71
  onSelected?: (label: string) => void;
72
72
  className?: string;
73
73
  }
74
- export declare function LlmChatSuggestion({ label, hint, onSelected, className, }: LlmChatSuggestionProps): import("react").JSX.Element;
74
+ export declare function AtlChatSuggestion({ label, hint, onSelected, className, }: AtlChatSuggestionProps): import("react").JSX.Element;
75
75
  /**
76
- * Composable input footer for `LlmChat`. Wraps a textarea and emits
76
+ * Composable input footer for `AtlChat`. Wraps a textarea and emits
77
77
  * `onSend` (or `onStop` when the chat status is `'streaming'`).
78
78
  *
79
79
  * The action button automatically switches between primary "Send" and
80
80
  * danger "Stop" based on the parent chat's status.
81
81
  */
82
- export interface LlmChatInputProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange'> {
82
+ export interface AtlChatInputProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange'> {
83
83
  value?: string;
84
84
  onValueChange?: (value: string) => void;
85
85
  onSend?: (text: string) => void;
@@ -87,5 +87,5 @@ export interface LlmChatInputProps extends Omit<TextareaHTMLAttributes<HTMLTextA
87
87
  /** Accessible label for the input field. */
88
88
  ariaLabel?: string;
89
89
  }
90
- export declare function LlmChatInput({ value, onValueChange, onSend, onStop, placeholder, ariaLabel, ...rest }: LlmChatInputProps): import("react").JSX.Element;
91
- //# sourceMappingURL=llm-chat.d.ts.map
90
+ export declare function AtlChatInput({ value, onValueChange, onSend, onStop, placeholder, ariaLabel, ...rest }: AtlChatInputProps): import("react").JSX.Element;
91
+ //# sourceMappingURL=atl-chat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-chat.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/chat/llm-chat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGd,SAAS,EACT,sBAAsB,EAOvB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,gBAAgB,CAAC;AAgBxB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,oCAAoC;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAkB,EAClB,MAAe,EACf,IAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE,YAAY,+BAuHd;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,+BAiChC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,+BAoBhC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACzE,6BAA6B;IAC7B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAkB,EAClB,MAAc,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,mBAAmB,+BAcrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAc,EACd,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAcpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAI,EACJ,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,+BAexB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,WAAW,EACX,SAAuC,EACvC,GAAG,IAAI,EACR,EAAE,iBAAiB,+BAuEnB"}
1
+ {"version":3,"file":"atl-chat.d.ts","sourceRoot":"","sources":["../../../../../../libs/react/src/lib/chat/atl-chat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGd,SAAS,EACT,sBAAsB,EAOvB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,gBAAgB,CAAC;AAgBxB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,oCAAoC;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAkB,EAClB,MAAe,EACf,IAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE,YAAY,+BAuHd;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,+BAiChC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,cAAc,CAAC,+BAoBhC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACzE,6BAA6B;IAC7B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAkB,EAClB,MAAc,EACd,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,mBAAmB,+BAcrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAC5B,MAAc,EACd,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,+BAcpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,IAAI,EACJ,UAAU,EACV,SAAS,GACV,EAAE,sBAAsB,+BAexB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,WAAW,EACX,SAAuC,EACvC,GAAG,IAAI,EACR,EAAE,iBAAiB,+BAuEnB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { createContext, useContext, useEffect, useId, useRef, useState, } from 'react';
3
- import './llm-chat.css';
3
+ import './atl-chat.css';
4
4
  const ChatContext = createContext({
5
5
  headerId: '',
6
6
  status: 'idle',
@@ -10,10 +10,10 @@ const ChatContext = createContext({
10
10
  /**
11
11
  * AI assistant surface. Three layout variants share the same content slots:
12
12
  * `drawer` (slide-in panel), `popup` (floating bubble + window), `inline`
13
- * (embedded card). Compose with `LlmChatHeader`, `LlmChatMessages`,
14
- * `LlmChatMessage`, `LlmChatTyping`, `LlmChatSuggestion`, `LlmChatInput`.
13
+ * (embedded card). Compose with `AtlChatHeader`, `AtlChatMessages`,
14
+ * `AtlChatMessage`, `AtlChatTyping`, `AtlChatSuggestion`, `AtlChatInput`.
15
15
  */
16
- export function LlmChat({ variant = 'drawer', status = 'idle', open = false, onOpenChange, children, }) {
16
+ export function AtlChat({ variant = 'drawer', status = 'idle', open = false, onOpenChange, children, }) {
17
17
  const dialogRef = useRef(null);
18
18
  const headerId = useId();
19
19
  const triggerElRef = useRef(null);
@@ -72,7 +72,7 @@ export function LlmChat({ variant = 'drawer', status = 'idle', open = false, onO
72
72
  onOpenChange?.(false);
73
73
  };
74
74
  const hostClass = [
75
- 'llm-chat',
75
+ 'atl-chat',
76
76
  `variant-${variant}`,
77
77
  `status-${status}`,
78
78
  open && 'is-open',
@@ -88,20 +88,20 @@ export function LlmChat({ variant = 'drawer', status = 'idle', open = false, onO
88
88
  return (_jsx(ChatContext.Provider, { value: ctx, children: _jsxs("div", { ref: hostRef, className: hostClass, children: [variant === 'drawer' && (_jsx("dialog", { ref: dialogRef, "aria-labelledby": headerId, "aria-modal": "true", onClick: handleBackdropClick, children: _jsx("div", { className: "surface drawer-surface", onClick: (e) => e.stopPropagation(), children: children }) })), variant === 'popup' && (_jsxs(_Fragment, { children: [open && (_jsx("div", { className: "surface popup-surface", role: "dialog", "aria-labelledby": headerId, children: children })), _jsx("button", { type: "button", className: "fab-bubble", "aria-label": open ? 'Close AI assistant' : 'Open AI assistant', "aria-expanded": open, onClick: () => onOpenChange?.(!open), children: _jsx("span", { "aria-hidden": "true", children: "AI" }) })] })), variant === 'inline' && (_jsx("section", { className: "surface inline-surface", "aria-labelledby": headerId, children: children }))] }) }));
89
89
  }
90
90
  /**
91
- * Header slot for `LlmChat`. Holds the title block; the close button
91
+ * Header slot for `AtlChat`. Holds the title block; the close button
92
92
  * is rendered automatically (hidden on the inline variant via CSS).
93
93
  */
94
- export function LlmChatHeader({ children, className, ...rest }) {
94
+ export function AtlChatHeader({ children, className, ...rest }) {
95
95
  const ctx = useContext(ChatContext);
96
- return (_jsxs("div", { id: ctx.headerId, className: ['llm-chat-header', className].filter(Boolean).join(' '), ...rest, children: [_jsx("div", { className: "title-block", children: children }), _jsx("button", { type: "button", className: "close-btn", "aria-label": "Close chat", onClick: ctx.close, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) })] }));
96
+ return (_jsxs("div", { id: ctx.headerId, className: ['atl-chat-header', className].filter(Boolean).join(' '), ...rest, children: [_jsx("div", { className: "title-block", children: children }), _jsx("button", { type: "button", className: "close-btn", "aria-label": "Close chat", onClick: ctx.close, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) })] }));
97
97
  }
98
98
  /**
99
- * Scrollable message list. Project `LlmChatMessage`, `LlmChatTyping`, or
100
- * `LlmChatSuggestion` children inside. Auto-scrolls to the bottom whenever
99
+ * Scrollable message list. Project `AtlChatMessage`, `AtlChatTyping`, or
100
+ * `AtlChatSuggestion` children inside. Auto-scrolls to the bottom whenever
101
101
  * children are added or content changes — important for streaming responses
102
102
  * where new tokens are appended live.
103
103
  */
104
- export function LlmChatMessages({ children, className, ...rest }) {
104
+ export function AtlChatMessages({ children, className, ...rest }) {
105
105
  const ref = useRef(null);
106
106
  useEffect(() => {
107
107
  const el = ref.current;
@@ -113,11 +113,11 @@ export function LlmChatMessages({ children, className, ...rest }) {
113
113
  observer.observe(el, { childList: true, subtree: true, characterData: true });
114
114
  return () => observer.disconnect();
115
115
  }, []);
116
- return (_jsx("div", { ref: ref, className: ['llm-chat-messages', className].filter(Boolean).join(' '), ...rest, children: children }));
116
+ return (_jsx("div", { ref: ref, className: ['atl-chat-messages', className].filter(Boolean).join(' '), ...rest, children: children }));
117
117
  }
118
- export function LlmChatMessage({ role = 'assistant', failed = false, children, className, ...rest }) {
118
+ export function AtlChatMessage({ role = 'assistant', failed = false, children, className, ...rest }) {
119
119
  const classes = [
120
- 'llm-chat-message',
120
+ 'atl-chat-message',
121
121
  `role-${role}`,
122
122
  failed && 'is-failed',
123
123
  className,
@@ -126,18 +126,18 @@ export function LlmChatMessage({ role = 'assistant', failed = false, children, c
126
126
  .join(' ');
127
127
  return (_jsx("div", { role: "listitem", className: classes, ...rest, children: children }));
128
128
  }
129
- export function LlmChatTyping({ inline = false, className, ...rest }) {
129
+ export function AtlChatTyping({ inline = false, className, ...rest }) {
130
130
  const classes = [
131
- 'llm-chat-typing',
131
+ 'atl-chat-typing',
132
132
  inline && 'is-inline',
133
133
  className,
134
134
  ].filter(Boolean).join(' ');
135
135
  return (_jsxs("div", { role: "status", "aria-live": "polite", className: classes, ...rest, children: [_jsx("span", { className: "dot" }), _jsx("span", { className: "dot" }), _jsx("span", { className: "dot" }), _jsx("span", { className: "sr-only", children: "Assistant is typing" })] }));
136
136
  }
137
- export function LlmChatSuggestion({ label, hint, onSelected, className, }) {
138
- return (_jsx("div", { className: ['llm-chat-suggestion', className].filter(Boolean).join(' '), children: _jsxs("button", { type: "button", className: "chip", onClick: () => onSelected?.(label), children: [_jsx("span", { className: "chip-label", children: label }), hint && _jsx("span", { className: "chip-hint", children: hint })] }) }));
137
+ export function AtlChatSuggestion({ label, hint, onSelected, className, }) {
138
+ return (_jsx("div", { className: ['atl-chat-suggestion', className].filter(Boolean).join(' '), children: _jsxs("button", { type: "button", className: "chip", onClick: () => onSelected?.(label), children: [_jsx("span", { className: "chip-label", children: label }), hint && _jsx("span", { className: "chip-hint", children: hint })] }) }));
139
139
  }
140
- export function LlmChatInput({ value, onValueChange, onSend, onStop, placeholder, ariaLabel = 'Message your AI assistant', ...rest }) {
140
+ export function AtlChatInput({ value, onValueChange, onSend, onStop, placeholder, ariaLabel = 'Message your AI assistant', ...rest }) {
141
141
  const ctx = useContext(ChatContext);
142
142
  const isStreaming = ctx.status === 'streaming';
143
143
  const [internal, setInternal] = useState('');
@@ -170,6 +170,6 @@ export function LlmChatInput({ value, onValueChange, onSend, onStop, placeholder
170
170
  emitSend();
171
171
  }
172
172
  };
173
- return (_jsxs("div", { className: "llm-chat-input", children: [_jsx("textarea", { className: "field", rows: 1, value: current, placeholder: effectivePlaceholder, disabled: isStreaming, "aria-label": ariaLabel, onChange: handleChange, onKeyDown: handleKeyDown, ...rest }), isStreaming ? (_jsx("button", { type: "button", className: "action-btn variant-danger size-md", onClick: onStop, children: "Stop" })) : (_jsx("button", { type: "button", className: "action-btn variant-primary size-md", disabled: !current.trim(), onClick: emitSend, children: "Send" }))] }));
173
+ return (_jsxs("div", { className: "atl-chat-input", children: [_jsx("textarea", { className: "field", rows: 1, value: current, placeholder: effectivePlaceholder, disabled: isStreaming, "aria-label": ariaLabel, onChange: handleChange, onKeyDown: handleKeyDown, ...rest }), isStreaming ? (_jsx("button", { type: "button", className: "action-btn variant-danger size-md", onClick: onStop, children: "Stop" })) : (_jsx("button", { type: "button", className: "action-btn variant-primary size-md", disabled: !current.trim(), onClick: emitSend, children: "Send" }))] }));
174
174
  }
175
- //# sourceMappingURL=llm-chat.js.map
175
+ //# sourceMappingURL=atl-chat.js.map