@tolle_/tolle-ui 18.2.28 → 18.2.30

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 (279) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +5 -11
  2. package/esm2022/lib/accordion.component.mjs +4 -9
  3. package/esm2022/lib/alert-dialog-dynamic.component.mjs +5 -10
  4. package/esm2022/lib/alert-dialog.component.mjs +44 -59
  5. package/esm2022/lib/alert.component.mjs +5 -11
  6. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  7. package/esm2022/lib/attachment.component.mjs +334 -0
  8. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  9. package/esm2022/lib/avatar.component.mjs +4 -9
  10. package/esm2022/lib/badge.component.mjs +4 -9
  11. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  12. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  15. package/esm2022/lib/bubble.component.mjs +301 -0
  16. package/esm2022/lib/button.component.mjs +5 -11
  17. package/esm2022/lib/calendar.component.mjs +5 -11
  18. package/esm2022/lib/card.component.mjs +14 -43
  19. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  20. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  21. package/esm2022/lib/chart-pie.component.mjs +386 -0
  22. package/esm2022/lib/chart.component.mjs +1146 -0
  23. package/esm2022/lib/chart.service.mjs +555 -0
  24. package/esm2022/lib/checkbox.component.mjs +5 -11
  25. package/esm2022/lib/checkpoint.component.mjs +134 -0
  26. package/esm2022/lib/collapsible.component.mjs +4 -11
  27. package/esm2022/lib/combobox.component.mjs +372 -0
  28. package/esm2022/lib/command-dialog.component.mjs +164 -0
  29. package/esm2022/lib/command.component.mjs +514 -0
  30. package/esm2022/lib/command.service.mjs +130 -0
  31. package/esm2022/lib/confirmation.component.mjs +219 -0
  32. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  33. package/esm2022/lib/context-menu.component.mjs +460 -0
  34. package/esm2022/lib/context-menu.service.mjs +121 -0
  35. package/esm2022/lib/context.component.mjs +377 -0
  36. package/esm2022/lib/conversation.component.mjs +442 -0
  37. package/esm2022/lib/country-selector.component.mjs +5 -11
  38. package/esm2022/lib/data-table.component.mjs +63 -12
  39. package/esm2022/lib/date-picker.component.mjs +251 -198
  40. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  41. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  42. package/esm2022/lib/direction.component.mjs +79 -0
  43. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  44. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  48. package/esm2022/lib/empty-state.component.mjs +4 -9
  49. package/esm2022/lib/field.component.mjs +394 -0
  50. package/esm2022/lib/hover-card.component.mjs +6 -16
  51. package/esm2022/lib/inline-citation.component.mjs +263 -0
  52. package/esm2022/lib/input-group.component.mjs +418 -0
  53. package/esm2022/lib/input.component.mjs +5 -11
  54. package/esm2022/lib/item.component.mjs +243 -0
  55. package/esm2022/lib/kbd.component.mjs +82 -0
  56. package/esm2022/lib/label.component.mjs +4 -9
  57. package/esm2022/lib/marker.component.mjs +135 -0
  58. package/esm2022/lib/masked-input.component.mjs +5 -11
  59. package/esm2022/lib/menubar.component.mjs +683 -0
  60. package/esm2022/lib/message-scroller.component.mjs +353 -0
  61. package/esm2022/lib/message-scroller.service.mjs +157 -0
  62. package/esm2022/lib/message.component.mjs +228 -0
  63. package/esm2022/lib/model-selector.component.mjs +310 -0
  64. package/esm2022/lib/multi-select.component.mjs +155 -72
  65. package/esm2022/lib/native-select.component.mjs +201 -0
  66. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  67. package/esm2022/lib/otp-group.component.mjs +3 -3
  68. package/esm2022/lib/otp-slot.component.mjs +4 -9
  69. package/esm2022/lib/otp.component.mjs +5 -11
  70. package/esm2022/lib/pagination.component.mjs +7 -10
  71. package/esm2022/lib/plan.component.mjs +335 -0
  72. package/esm2022/lib/popover-content.component.mjs +4 -9
  73. package/esm2022/lib/popover.component.mjs +15 -13
  74. package/esm2022/lib/progress.component.mjs +4 -9
  75. package/esm2022/lib/prompt-input.component.mjs +526 -0
  76. package/esm2022/lib/queue.component.mjs +280 -0
  77. package/esm2022/lib/radio-group.component.mjs +6 -13
  78. package/esm2022/lib/radio-item.component.mjs +4 -9
  79. package/esm2022/lib/range-calendar.component.mjs +5 -11
  80. package/esm2022/lib/reasoning.component.mjs +335 -0
  81. package/esm2022/lib/resizable.component.mjs +219 -0
  82. package/esm2022/lib/segment.component.mjs +17 -7
  83. package/esm2022/lib/select-group.component.mjs +4 -8
  84. package/esm2022/lib/select-item.component.mjs +4 -9
  85. package/esm2022/lib/select-separator.component.mjs +4 -8
  86. package/esm2022/lib/select.component.mjs +133 -49
  87. package/esm2022/lib/separator.component.mjs +4 -9
  88. package/esm2022/lib/sheet.component.mjs +38 -56
  89. package/esm2022/lib/shimmer.component.mjs +84 -0
  90. package/esm2022/lib/sidebar.component.mjs +11 -1
  91. package/esm2022/lib/skeleton.component.mjs +4 -9
  92. package/esm2022/lib/sources.component.mjs +452 -0
  93. package/esm2022/lib/spinner.component.mjs +68 -0
  94. package/esm2022/lib/suggestion.component.mjs +207 -0
  95. package/esm2022/lib/switch.component.mjs +5 -11
  96. package/esm2022/lib/table.component.mjs +213 -0
  97. package/esm2022/lib/tabs.component.mjs +4 -11
  98. package/esm2022/lib/tag-input.component.mjs +5 -11
  99. package/esm2022/lib/task.component.mjs +359 -0
  100. package/esm2022/lib/textarea.component.mjs +5 -11
  101. package/esm2022/lib/theme.service.mjs +17 -6
  102. package/esm2022/lib/time-picker.component.mjs +923 -0
  103. package/esm2022/lib/toast.service.mjs +3 -2
  104. package/esm2022/lib/toaster.component.mjs +76 -39
  105. package/esm2022/lib/toggle-group.component.mjs +4 -9
  106. package/esm2022/lib/toggle.component.mjs +5 -11
  107. package/esm2022/lib/tool.component.mjs +462 -0
  108. package/esm2022/lib/typography.component.mjs +83 -0
  109. package/esm2022/lib/utils/color.mjs +140 -19
  110. package/esm2022/public-api.mjs +61 -1
  111. package/fesm2022/tolle-ui.mjs +16457 -1024
  112. package/fesm2022/tolle-ui.mjs.map +1 -1
  113. package/lib/alert-dialog.component.d.ts +10 -2
  114. package/lib/aspect-ratio.component.d.ts +20 -0
  115. package/lib/attachment.component.d.ts +101 -0
  116. package/lib/bubble.component.d.ts +112 -0
  117. package/lib/chain-of-thought.component.d.ts +166 -0
  118. package/lib/chart-pie.component.d.ts +108 -0
  119. package/lib/chart.component.d.ts +369 -0
  120. package/lib/chart.service.d.ts +222 -0
  121. package/lib/checkpoint.component.d.ts +51 -0
  122. package/lib/combobox.component.d.ts +90 -0
  123. package/lib/command-dialog.component.d.ts +53 -0
  124. package/lib/command.component.d.ts +189 -0
  125. package/lib/command.service.d.ts +67 -0
  126. package/lib/confirmation.component.d.ts +70 -0
  127. package/lib/context-menu-trigger.directive.d.ts +12 -0
  128. package/lib/context-menu.component.d.ts +41 -0
  129. package/lib/context-menu.service.d.ts +38 -0
  130. package/lib/context.component.d.ts +134 -0
  131. package/lib/conversation.component.d.ts +165 -0
  132. package/lib/data-table.component.d.ts +27 -1
  133. package/lib/date-picker.component.d.ts +72 -11
  134. package/lib/date-range-picker.component.d.ts +63 -6
  135. package/lib/date-time-picker.component.d.ts +119 -0
  136. package/lib/direction.component.d.ts +45 -0
  137. package/lib/field.component.d.ts +201 -0
  138. package/lib/inline-citation.component.d.ts +103 -0
  139. package/lib/input-group.component.d.ts +150 -0
  140. package/lib/item.component.d.ts +154 -0
  141. package/lib/kbd.component.d.ts +50 -0
  142. package/lib/marker.component.d.ts +58 -0
  143. package/lib/menubar.component.d.ts +247 -0
  144. package/lib/message-scroller.component.d.ts +159 -0
  145. package/lib/message-scroller.service.d.ts +73 -0
  146. package/lib/message.component.d.ts +128 -0
  147. package/lib/model-selector.component.d.ts +103 -0
  148. package/lib/multi-select.component.d.ts +66 -14
  149. package/lib/native-select.component.d.ts +57 -0
  150. package/lib/navigation-menu.component.d.ts +230 -0
  151. package/lib/plan.component.d.ts +120 -0
  152. package/lib/popover.component.d.ts +1 -0
  153. package/lib/prompt-input.component.d.ts +194 -0
  154. package/lib/queue.component.d.ts +106 -0
  155. package/lib/reasoning.component.d.ts +127 -0
  156. package/lib/resizable.component.d.ts +43 -0
  157. package/lib/segment.component.d.ts +13 -3
  158. package/lib/select.component.d.ts +37 -5
  159. package/lib/sheet.component.d.ts +3 -0
  160. package/lib/shimmer.component.d.ts +38 -0
  161. package/lib/sidebar.component.d.ts +2 -0
  162. package/lib/sources.component.d.ts +156 -0
  163. package/lib/spinner.component.d.ts +29 -0
  164. package/lib/suggestion.component.d.ts +96 -0
  165. package/lib/table.component.d.ts +106 -0
  166. package/lib/task.component.d.ts +151 -0
  167. package/lib/theme.service.d.ts +9 -0
  168. package/lib/time-picker.component.d.ts +243 -0
  169. package/lib/toast.service.d.ts +3 -1
  170. package/lib/toaster.component.d.ts +26 -9
  171. package/lib/tool.component.d.ts +158 -0
  172. package/lib/typography.component.d.ts +32 -0
  173. package/lib/utils/color.d.ts +19 -5
  174. package/package.json +1 -1
  175. package/public-api.d.ts +50 -0
  176. package/registry/docs-content.json +8497 -1553
  177. package/registry/llms-full.txt +2679 -318
  178. package/registry/llms.txt +43 -4
  179. package/registry/manifest.json +9093 -1739
  180. package/registry/r/accordion-item.json +1 -1
  181. package/registry/r/accordion.json +1 -1
  182. package/registry/r/alert-dialog-dynamic.json +1 -1
  183. package/registry/r/alert-dialog.json +1 -1
  184. package/registry/r/alert.json +1 -1
  185. package/registry/r/attachment.json +23 -0
  186. package/registry/r/avatar-fallback.json +1 -1
  187. package/registry/r/avatar.json +1 -1
  188. package/registry/r/badge.json +1 -1
  189. package/registry/r/breadcrumb-item.json +1 -1
  190. package/registry/r/breadcrumb-link.json +1 -1
  191. package/registry/r/breadcrumb-separator.json +1 -1
  192. package/registry/r/breadcrumb.json +1 -1
  193. package/registry/r/bubble.json +23 -0
  194. package/registry/r/button.json +1 -1
  195. package/registry/r/calendar.json +1 -1
  196. package/registry/r/card.json +1 -1
  197. package/registry/r/carousel.json +1 -1
  198. package/registry/r/chain-of-thought.json +23 -0
  199. package/registry/r/chart-pie.json +30 -0
  200. package/registry/r/chart.json +28 -0
  201. package/registry/r/checkbox.json +1 -1
  202. package/registry/r/checkpoint.json +23 -0
  203. package/registry/r/collapsible.json +1 -1
  204. package/registry/r/combobox.json +31 -0
  205. package/registry/r/command-dialog.json +21 -0
  206. package/registry/r/command.json +26 -0
  207. package/registry/r/confirmation.json +23 -0
  208. package/registry/r/context.json +26 -0
  209. package/registry/r/conversation.json +23 -0
  210. package/registry/r/country-selector.json +1 -1
  211. package/registry/r/data-table.json +1 -1
  212. package/registry/r/date-picker.json +4 -4
  213. package/registry/r/date-range-picker.json +3 -3
  214. package/registry/r/date-time-picker.json +28 -0
  215. package/registry/r/direction.json +16 -0
  216. package/registry/r/dropdown-item.json +1 -1
  217. package/registry/r/dropdown-label.json +1 -1
  218. package/registry/r/dropdown-menu.json +1 -1
  219. package/registry/r/dropdown-separator.json +1 -1
  220. package/registry/r/dropdown-trigger.json +1 -1
  221. package/registry/r/empty-state.json +1 -1
  222. package/registry/r/field.json +23 -0
  223. package/registry/r/hover-card.json +1 -1
  224. package/registry/r/inline-citation.json +26 -0
  225. package/registry/r/input-group.json +23 -0
  226. package/registry/r/input.json +1 -1
  227. package/registry/r/item.json +23 -0
  228. package/registry/r/kbd.json +23 -0
  229. package/registry/r/label.json +1 -1
  230. package/registry/r/marker.json +23 -0
  231. package/registry/r/masked-input.json +1 -1
  232. package/registry/r/menubar.json +24 -0
  233. package/registry/r/message-scroller.json +26 -0
  234. package/registry/r/message.json +23 -0
  235. package/registry/r/model-selector.json +32 -0
  236. package/registry/r/multi-select.json +2 -2
  237. package/registry/r/native-select.json +23 -0
  238. package/registry/r/navigation-menu.json +24 -0
  239. package/registry/r/otp-group.json +1 -1
  240. package/registry/r/otp-slot.json +1 -1
  241. package/registry/r/otp.json +1 -1
  242. package/registry/r/pagination.json +3 -2
  243. package/registry/r/plan.json +23 -0
  244. package/registry/r/popover-content.json +1 -1
  245. package/registry/r/popover.json +1 -1
  246. package/registry/r/progress.json +1 -1
  247. package/registry/r/prompt-input.json +23 -0
  248. package/registry/r/queue.json +23 -0
  249. package/registry/r/radio-group.json +1 -1
  250. package/registry/r/radio-item.json +1 -1
  251. package/registry/r/range-calendar.json +1 -1
  252. package/registry/r/reasoning.json +23 -0
  253. package/registry/r/segment.json +1 -1
  254. package/registry/r/select-group.json +1 -1
  255. package/registry/r/select-item.json +1 -1
  256. package/registry/r/select-separator.json +1 -1
  257. package/registry/r/select.json +4 -3
  258. package/registry/r/separator.json +1 -1
  259. package/registry/r/sheet.json +1 -1
  260. package/registry/r/shimmer.json +23 -0
  261. package/registry/r/sidebar.json +1 -1
  262. package/registry/r/skeleton.json +1 -1
  263. package/registry/r/sources.json +23 -0
  264. package/registry/r/spinner.json +23 -0
  265. package/registry/r/suggestion.json +23 -0
  266. package/registry/r/switch.json +1 -1
  267. package/registry/r/table.json +21 -0
  268. package/registry/r/tabs.json +1 -1
  269. package/registry/r/tag-input.json +1 -1
  270. package/registry/r/task.json +23 -0
  271. package/registry/r/textarea.json +1 -1
  272. package/registry/r/time-picker.json +24 -0
  273. package/registry/r/toaster.json +2 -2
  274. package/registry/r/toggle-group.json +1 -1
  275. package/registry/r/toggle.json +1 -1
  276. package/registry/r/tool.json +23 -0
  277. package/registry/r/typography.json +23 -0
  278. package/registry/registry.json +915 -22
  279. package/theme.css +109 -8
@@ -144,10 +144,22 @@ Slots: _default_
144
144
 
145
145
  ### `<tolle-alert-dialog-action>`
146
146
 
147
+ Outputs:
148
+
149
+ | Name | Payload | Description |
150
+ | --- | --- | --- |
151
+ | confirmed | `MouseEvent` | Fires before the dialog closes, so consumers can run the confirmed action. |
152
+
147
153
  Slots: _default_
148
154
 
149
155
  ### `<tolle-alert-dialog-cancel>`
150
156
 
157
+ Outputs:
158
+
159
+ | Name | Payload | Description |
160
+ | --- | --- | --- |
161
+ | cancelled | `MouseEvent` | Fires before the dialog closes, so consumers can react to a dismissal. |
162
+
151
163
  Slots: _default_
152
164
 
153
165
  ## Alert Dialog Dynamic
@@ -173,6 +185,63 @@ Inputs:
173
185
 
174
186
  Slots: _default_
175
187
 
188
+ ## Attachment
189
+
190
+ - Install: `npx @tolle_/cli add attachment`
191
+ - Import: `import { AttachmentComponent, AttachmentGroupComponent, AttachmentActionsComponent } from '@tolle_/tolle-ui';`
192
+
193
+ ### `<tolle-attachment>`
194
+
195
+ Inputs:
196
+
197
+ | Name | Type | Default | Description |
198
+ | --- | --- | --- | --- |
199
+ | name | `string` | `''` | File name shown as the card's title. |
200
+ | size | `number` | `0` | File size in bytes; rendered as B / KB / MB. |
201
+ | type | `string` | `''` | MIME type, e.g. 'image/png'. Chooses the thumbnail or the file icon. |
202
+ | url | `string` | `''` | Source for the thumbnail and the target of `open`. |
203
+ | state | `'idle' | 'uploading' | 'error'` | `'idle'` | Upload lifecycle state of the attachment. |
204
+ | progress | `number` | `0` | Upload progress from 0 to 100; only shown while uploading. |
205
+ | density | `'sm' | 'default'` | `'default'` | Density of the card. |
206
+ | removable | `boolean` | `false` | Shows a trailing remove button that emits `remove`. |
207
+ | removeLabel | `string` | `'Remove attachment'` | Accessible label for the remove button. |
208
+ | errorLabel | `string` | `'Upload failed'` | Text shown in place of the size when the state is 'error'. |
209
+ | class | `string` | `''` | Extra Tailwind classes merged onto the card via `cn()` (last-wins). |
210
+
211
+ Outputs:
212
+
213
+ | Name | Payload | Description |
214
+ | --- | --- | --- |
215
+ | remove | `Event` | Emitted when the remove button is pressed. |
216
+ | open | `Event` | Emitted when the card is activated by click, Enter, or Space. |
217
+
218
+ Slots: _default_
219
+
220
+ Variants:
221
+ - `state`: `idle`, `uploading`, `error` (default `idle`)
222
+ - `size`: `sm`, `default` (default `default`)
223
+
224
+ ### `<tolle-attachment-group>`
225
+
226
+ Inputs:
227
+
228
+ | Name | Type | Default | Description |
229
+ | --- | --- | --- | --- |
230
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
231
+
232
+ Slots: _default_
233
+
234
+ ### `<tolle-attachment-actions>`
235
+
236
+ Inputs:
237
+
238
+ | Name | Type | Default | Description |
239
+ | --- | --- | --- | --- |
240
+ | alwaysVisible | `boolean` | `false` | Keeps the actions visible instead of revealing them on hover or focus. |
241
+ | class | `string` | `''` | Extra Tailwind classes merged onto the slot via `cn()` (last-wins). |
242
+
243
+ Slots: _default_
244
+
176
245
  ## Avatar
177
246
 
178
247
  - Install: `npx @tolle_/cli add avatar`
@@ -282,6 +351,70 @@ Slots: _default_
282
351
 
283
352
  Slots: _default_
284
353
 
354
+ ## Bubble
355
+
356
+ - Install: `npx @tolle_/cli add bubble`
357
+ - Import: `import { BubbleComponent, BubbleActionsComponent, BubbleReactionsComponent } from '@tolle_/tolle-ui';`
358
+
359
+ ### `<tolle-bubble>`
360
+
361
+ Inputs:
362
+
363
+ | Name | Type | Default | Description |
364
+ | --- | --- | --- | --- |
365
+ | variant | `'default' | 'primary' | 'muted' | 'outline'` | `'default'` | Visual style of the surface. |
366
+ | align | `'start' | 'end'` | `'start'` | Which edge the bubble hangs off; squares the matching bottom corner. |
367
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Padding and text scale of the surface. |
368
+ | collapsible | `boolean` | `false` | Shows a show-more / show-less toggle for long content. |
369
+ | collapsed | `boolean` | `true` | Whether the content is currently clamped. Only has an effect with `collapsible`. |
370
+ | collapsedHeight | `string` | `'6rem'` | Max height of the clamped content, as a CSS length. |
371
+ | expandLabel | `string` | `'Show more'` | Label of the toggle while the content is clamped. |
372
+ | collapseLabel | `string` | `'Show less'` | Label of the toggle while the content is expanded. |
373
+ | interactive | `boolean` | `false` | Makes the whole surface a keyboard-focusable trigger that emits `bubbleClick`. |
374
+ | class | `string` | `''` | Extra Tailwind classes merged onto the surface via `cn()` (last-wins). |
375
+
376
+ Outputs:
377
+
378
+ | Name | Payload | Description |
379
+ | --- | --- | --- |
380
+ | collapsedChange | `boolean` | Emitted with the new collapsed state when the show-more toggle is pressed. |
381
+ | bubbleClick | `Event` | Emitted when an interactive bubble is activated by click, Enter, or Space. |
382
+
383
+ Slots: _default_, `[bubbleFooter]`
384
+
385
+ Variants:
386
+ - `variant`: `default`, `primary`, `muted`, `outline` (default `default`)
387
+ - `align`: `start`, `end` (default `start`)
388
+ - `size`: `sm`, `default`, `lg` (default `default`)
389
+
390
+ ### `<tolle-bubble-actions>`
391
+
392
+ Inputs:
393
+
394
+ | Name | Type | Default | Description |
395
+ | --- | --- | --- | --- |
396
+ | alwaysVisible | `boolean` | `false` | Keeps the row permanently visible instead of revealing it on hover or focus. |
397
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
398
+
399
+ Slots: _default_
400
+
401
+ ### `<tolle-bubble-reactions>`
402
+
403
+ Inputs:
404
+
405
+ | Name | Type | Default | Description |
406
+ | --- | --- | --- | --- |
407
+ | reactions | `BubbleReaction[]` | `[]` | Reaction chips to render, in display order. |
408
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
409
+
410
+ Outputs:
411
+
412
+ | Name | Payload | Description |
413
+ | --- | --- | --- |
414
+ | react | `BubbleReaction` | Emitted with the reaction whose chip was clicked. |
415
+
416
+ Slots: _default_
417
+
285
418
  ## Button
286
419
 
287
420
  - Install: `npx @tolle_/cli add button`
@@ -449,402 +582,1958 @@ Slots: _default_
449
582
 
450
583
  ### `<[tolleCarouselNext]>` (directive)
451
584
 
452
- ## Checkbox
585
+ ## Chain Of Thought
453
586
 
454
- - Install: `npx @tolle_/cli add checkbox`
455
- - Import: `import { CheckboxComponent } from '@tolle_/tolle-ui';`
587
+ - Install: `npx @tolle_/cli add chain-of-thought`
588
+ - Import: `import { ChainOfThoughtComponent, ChainOfThoughtHeaderComponent, ChainOfThoughtContentComponent, ChainOfThoughtStepComponent, ChainOfThoughtSearchResultsComponent, ChainOfThoughtSearchResultComponent } from '@tolle_/tolle-ui';`
456
589
 
457
- ### `<tolle-checkbox>`
590
+ ### `<tolle-chain-of-thought>`
458
591
 
459
592
  Inputs:
460
593
 
461
594
  | Name | Type | Default | Description |
462
595
  | --- | --- | --- | --- |
463
- | class | `string` | `''` | Extra Tailwind classes merged onto the checkbox via `cn()` (last-wins). |
464
- | disabled | `boolean` | `false` | Disables the checkbox and blocks toggling. |
465
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Size of the checkbox. |
596
+ | open | `boolean` | `false` | Whether the reasoning steps are expanded. |
597
+ | size | `'sm' | 'default'` | `'default'` | Text scale of the whole trace. |
598
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trace via `cn()` (last-wins). |
599
+
600
+ Outputs:
601
+
602
+ | Name | Payload | Description |
603
+ | --- | --- | --- |
604
+ | openChange | `boolean` | Emitted with the new expanded state whenever the trace opens or closes. |
605
+
606
+ Slots: _default_
466
607
 
467
608
  Variants:
468
- - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
469
- - `checked`: `true`, `false` (default `false`)
609
+ - `size`: `sm`, `default` (default `default`)
470
610
 
471
- ## Collapsible
611
+ ### `<tolle-chain-of-thought-header>`
472
612
 
473
- - Install: `npx @tolle_/cli add collapsible`
474
- - Import: `import { CollapsibleComponent, CollapsibleTriggerComponent, CollapsibleContentComponent } from '@tolle_/tolle-ui';`
613
+ Inputs:
475
614
 
476
- ### `<tolle-collapsible>`
615
+ | Name | Type | Default | Description |
616
+ | --- | --- | --- | --- |
617
+ | label | `string` | `'Chain of Thought'` | Text shown in the header. |
618
+ | class | `string` | `''` | Extra Tailwind classes merged onto the header via `cn()` (last-wins). |
619
+
620
+ Slots: _default_
621
+
622
+ ### `<tolle-chain-of-thought-content>`
477
623
 
478
624
  Inputs:
479
625
 
480
626
  | Name | Type | Default | Description |
481
627
  | --- | --- | --- | --- |
482
- | class | `string` | `''` | |
483
- | open | `boolean` | — | |
628
+ | class | `string` | `''` | Extra Tailwind classes merged onto the content via `cn()` (last-wins). |
484
629
 
485
- Outputs:
630
+ Slots: _default_
486
631
 
487
- | Name | Payload | Description |
488
- | --- | --- | --- |
489
- | openChange | `boolean` | |
632
+ ### `<tolle-chain-of-thought-step>`
633
+
634
+ Inputs:
635
+
636
+ | Name | Type | Default | Description |
637
+ | --- | --- | --- | --- |
638
+ | label | `string` | `''` | Text describing what happened in this step. |
639
+ | status | `ChainOfThoughtStepStatus` | `'complete'` | Progress of this step; drives the marker colour. |
640
+ | icon | `string` | `'ri-checkbox-blank-circle-fill'` | Remixicon class shown inside the step marker. |
641
+ | class | `string` | `''` | Extra Tailwind classes merged onto the step via `cn()` (last-wins). |
490
642
 
491
643
  Slots: _default_
492
644
 
493
- ### `<tolle-collapsible-trigger>`
645
+ ### `<tolle-chain-of-thought-search-results>`
494
646
 
495
647
  Inputs:
496
648
 
497
649
  | Name | Type | Default | Description |
498
650
  | --- | --- | --- | --- |
499
- | class | `string` | `''` | |
651
+ | class | `string` | `''` | Extra Tailwind classes merged onto the results row via `cn()` (last-wins). |
500
652
 
501
653
  Slots: _default_
502
654
 
503
- ### `<tolle-collapsible-content>`
655
+ ### `<tolle-chain-of-thought-search-result>`
504
656
 
505
657
  Inputs:
506
658
 
507
659
  | Name | Type | Default | Description |
508
660
  | --- | --- | --- | --- |
509
- | class | `string` | `''` | |
661
+ | icon | `string` | `''` | Optional remixicon class shown before the label. |
662
+ | class | `string` | `''` | Extra Tailwind classes merged onto the chip via `cn()` (last-wins). |
510
663
 
511
664
  Slots: _default_
512
665
 
513
- ## Context Menu
666
+ ## Chart
514
667
 
515
- - Install: `npx @tolle_/cli add context-menu`
516
- - Import: `import { ContextMenuComponent } from '@tolle_/tolle-ui';`
668
+ - Install: `npx @tolle_/cli add chart`
669
+ - Import: `import { ChartChild, ChartTooltipComponent, ChartLegendComponent, ChartTableComponent, ChartComponent, ChartGridComponent, ChartXAxisComponent, ChartYAxisComponent, ChartLineComponent, ChartAreaComponent, ChartBarComponent } from '@tolle_/tolle-ui';`
517
670
 
518
- ### `<tolle-context-menu>`
671
+ ### `<ChartChild>` (directive)
519
672
 
520
- ## Context Menu Trigger
673
+ ### `<tolle-chart-tooltip>`
521
674
 
522
- - Install: `npx @tolle_/cli add context-menu-trigger`
523
- - Import: `import { ContextMenuTriggerDirective } from '@tolle_/tolle-ui';`
675
+ Inputs:
524
676
 
525
- ### `<[tolleContextMenuTrigger]>` (directive)
677
+ | Name | Type | Default | Description |
678
+ | --- | --- | --- | --- |
679
+ | offset | `number` | `12` | Distance in px the tooltip sits from the crosshair. |
680
+ | estimatedWidth | `number` | `160` | Assumed tooltip width in px, used to flip it near the right edge. |
681
+ | class | `string` | `''` | Extra Tailwind classes merged onto the tooltip via `cn()` (last-wins). |
682
+
683
+ ### `<tolle-chart-legend>`
526
684
 
527
685
  Inputs:
528
686
 
529
687
  | Name | Type | Default | Description |
530
688
  | --- | --- | --- | --- |
531
- | items | `ContextMenuItem[]` | `[]` | |
689
+ | align | `'start' | 'center' | 'end'` | `'center'` | Horizontal alignment of the legend row. |
690
+ | size | `'sm' | 'default'` | `'default'` | Text size of the legend. |
691
+ | class | `string` | `''` | Extra Tailwind classes merged onto the legend via `cn()` (last-wins). |
532
692
 
533
- Outputs:
693
+ Variants:
694
+ - `align`: `start`, `center`, `end` (default `center`)
695
+ - `size`: `sm`, `default` (default `default`)
534
696
 
535
- | Name | Payload | Description |
536
- | --- | --- | --- |
537
- | action | `string` | |
697
+ ### `<tolle-chart-table>`
538
698
 
539
- ## Country Selector
699
+ Inputs:
540
700
 
541
- - Install: `npx @tolle_/cli add country-selector`
542
- - Import: `import { CountrySelectorComponent } from '@tolle_/tolle-ui';`
701
+ | Name | Type | Default | Description |
702
+ | --- | --- | --- | --- |
703
+ | visible | `boolean` | `false` | Shows the table instead of hiding it from sighted readers. |
704
+ | tableId | `string` | `''` | Id applied to the wrapper, for the chart's `aria-describedby`. |
705
+ | xHeader | `string` | `'Category'` | Column header for the x category. |
706
+ | caption | `string` | `'Chart data'` | Accessible caption for the table. |
707
+ | class | `string` | `''` | Extra Tailwind classes merged onto the table via `cn()` (last-wins). |
543
708
 
544
- ### `<tolle-country-selector>`
709
+ ### `<tolle-chart>`
545
710
 
546
711
  Inputs:
547
712
 
548
713
  | Name | Type | Default | Description |
549
714
  | --- | --- | --- | --- |
550
- | id | `any` | ``country-selector-${Math.random().toString(36).substr(2, 9)}`` | |
551
- | label | `string` | `''` | |
552
- | hint | `string` | `''` | |
553
- | errorMessage | `string` | `''` | |
554
- | error | `boolean` | `false` | |
555
- | hideHintOnFocus | `boolean` | `true` | |
556
- | placeholder | `string` | `'Select country'` | |
557
- | class | `string` | `''` | |
558
- | disabled | `boolean` | `false` | |
559
- | readonly | `boolean` | `false` | |
560
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
561
- | defaultCountryCode | `string` | `'GH'` | |
562
- | returnValue | `'object' | 'isoAlpha2' | 'dialCode' | 'name'` | `'isoAlpha2'` | |
563
- | showName | `boolean` | `true` | |
564
- | externalFocused | `boolean | undefined` | — | |
715
+ | data | `Record<string, any>[]` | `[]` | Rows to plot, in x order. |
716
+ | series | `ChartSeries[]` | `[]` | Series to draw, in the order they take palette steps `--chart-1`..`--chart-5`. |
717
+ | xKey | `string` | `''` | Row key holding each row's x category label. |
718
+ | height | `number` | `260` | Height of the chart in px. |
719
+ | margin | `ChartMargin` | `{ top: 8, right: 8, bottom: 24, left: 44 }` | Space reserved around the plot for axis labels. |
720
+ | ariaLabel | `string` | `''` | Accessible name for the chart, used as the svg `<title>`. |
721
+ | description | `string` | `''` | Longer summary used as the svg `<desc>`. Falls back to `ariaLabel`. |
722
+ | stacked | `boolean` | `false` | Stacks marks on a shared baseline instead of grouping them. |
723
+ | hover | `boolean` | `true` | Renders the crosshair, hit layer and shared tooltip. |
724
+ | showTable | `boolean` | `false` | Shows the data table instead of leaving it visually hidden. |
725
+ | xHeader | `string` | `'Category'` | Column header the table fallback gives the x category. |
726
+ | variant | `'default' | 'card'` | `'default'` | Visual treatment of the chart frame. |
727
+ | density | `'default' | 'compact'` | `'default'` | Text density of the chart chrome. |
728
+ | class | `string` | `''` | Extra Tailwind classes merged onto the chart via `cn()` (last-wins). |
565
729
 
566
730
  Outputs:
567
731
 
568
732
  | Name | Payload | Description |
569
733
  | --- | --- | --- |
570
- | onSelect | `any` | |
571
- | onFocusChange | `void` | |
572
- | onBlurChange | `void` | |
734
+ | activeIndexChange | `number | null` | Emitted with the hovered row index, or null when the pointer leaves. |
573
735
 
574
- ## Data Table
736
+ Slots: _default_
575
737
 
576
- - Install: `npx @tolle_/cli add data-table`
577
- - Import: `import { DataTableComponent } from '@tolle_/tolle-ui';`
738
+ Variants:
739
+ - `variant`: `default`, `card` (default `default`)
740
+ - `density`: `default`, `compact` (default `default`)
578
741
 
579
- ### `<tolle-data-table>`
742
+ ### `<svg:g[tolle-chart-grid]>`
580
743
 
581
744
  Inputs:
582
745
 
583
746
  | Name | Type | Default | Description |
584
747
  | --- | --- | --- | --- |
585
- | data | `any[]` | `[]` | |
586
- | columns | `TableColumn[]` | `[]` | |
587
- | searchable | `boolean` | `true` | |
588
- | paginate | `boolean` | `true` | |
589
- | pageSizeOptions | `number[]` | `[]` | |
590
- | pageSize | `number` | `10` | |
591
- | expandable | `boolean` | `false` | |
592
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
593
- | stickyHeader | `boolean` | `false` | |
594
- | maxHeight | `string` | — | |
595
- | allowColumnHiding | `boolean` | `true` | |
596
- | showSettings | `boolean` | `true` | |
597
- | expandedTemplate | `TemplateRef<any>` | — | |
748
+ | vertical | `boolean` | `false` | Also draws a rule at every x position. |
749
+ | class | `string` | `''` | Extra Tailwind classes merged onto each rule via `cn()` (last-wins). |
598
750
 
599
- ## Date Picker
600
-
601
- - Install: `npx @tolle_/cli add date-picker`
602
- - Import: `import { DatePickerComponent } from '@tolle_/tolle-ui';`
603
-
604
- ### `<tolle-date-picker>`
751
+ ### `<svg:g[tolle-chart-x-axis]>`
605
752
 
606
753
  Inputs:
607
754
 
608
755
  | Name | Type | Default | Description |
609
756
  | --- | --- | --- | --- |
610
- | placeholder | `string` | `'MM/DD/YYYY'` | |
611
- | disabled | `boolean` | `false` | |
612
- | class | `string` | `''` | |
613
- | disablePastDates | `boolean` | `false` | |
614
- | showClear | `boolean` | `true` | |
615
- | showQuickActions | `boolean` | `true` | |
616
- | minDate | `Date` | — | |
617
- | maxDate | `Date` | — | |
618
- | mode | `CalendarMode` | `'date'` | |
619
- | formatMonthFn | `(date: Date) => string` | — | |
620
- | formatYearFn | `(date: Date) => string` | — | |
621
- | displayFormat | `(date: Date, mode: CalendarMode) => string` | — | |
622
-
623
- ## Date Range Picker
624
-
625
- - Install: `npx @tolle_/cli add date-range-picker`
626
- - Import: `import { DateRangePickerComponent } from '@tolle_/tolle-ui';`
757
+ | charWidth | `number` | `7` | Approximate px per character, used to decide when labels would collide. |
758
+ | class | `string` | `''` | Extra Tailwind classes merged onto each label via `cn()` (last-wins). |
627
759
 
628
- ### `<tolle-date-range-picker>`
760
+ ### `<svg:g[tolle-chart-y-axis]>`
629
761
 
630
762
  Inputs:
631
763
 
632
764
  | Name | Type | Default | Description |
633
765
  | --- | --- | --- | --- |
634
- | disabled | `boolean` | `false` | |
635
- | placeholder | `string` | `'Pick a date range'` | |
636
- | class | `string` | `''` | |
637
- | disablePastDates | `boolean` | `false` | |
638
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
639
- | numberOfMonths | `number` | `1` | Consecutive months shown in the popover (e.g. `2` for a two-month picker). |
766
+ | offset | `number` | `8` | Gap in px between the labels and the plot edge. |
767
+ | class | `string` | `''` | Extra Tailwind classes merged onto each label via `cn()` (last-wins). |
640
768
 
641
- ## Dropdown Item
769
+ ### `<svg:g[tolle-chart-line]>`
642
770
 
643
- - Install: `npx @tolle_/cli add dropdown-item`
644
- - Import: `import { DropdownItemComponent } from '@tolle_/tolle-ui';`
771
+ Inputs:
645
772
 
646
- ### `<tolle-dropdown-item>`
773
+ | Name | Type | Default | Description |
774
+ | --- | --- | --- | --- |
775
+ | seriesKey | `string` | `''` | Key of the series to draw. |
776
+ | curve | `'linear' | 'smooth'` | `'linear'` | Interpolation between points; smooth is monotone cubic, so it never overshoots. |
777
+ | showDots | `boolean` | `false` | Draws a marker at every point. |
778
+ | dotRadius | `number` | `4` | Marker radius in px; 4 gives the 8px minimum diameter. |
779
+ | class | `string` | `''` | Extra Tailwind classes merged onto the path via `cn()` (last-wins). |
780
+
781
+ ### `<svg:g[tolle-chart-area]>`
647
782
 
648
783
  Inputs:
649
784
 
650
785
  | Name | Type | Default | Description |
651
786
  | --- | --- | --- | --- |
652
- | class | `string` | `''` | |
653
- | disabled | `boolean` | `false` | |
787
+ | seriesKey | `string` | `''` | Key of the series to draw. |
788
+ | curve | `'linear' | 'smooth'` | `'linear'` | Interpolation between points. |
789
+ | fillOpacity | `number` | `0.1` | Opacity of the fill — a wash, never a saturated block. |
790
+ | class | `string` | `''` | Extra Tailwind classes merged onto the stroke via `cn()` (last-wins). |
654
791
 
655
- Slots: _default_
656
-
657
- ## Dropdown Label
792
+ ### `<svg:g[tolle-chart-bar]>`
658
793
 
659
- - Install: `npx @tolle_/cli add dropdown-label`
660
- - Import: `import { DropdownLabelComponent } from '@tolle_/tolle-ui';`
794
+ Inputs:
661
795
 
662
- ### `<tolle-dropdown-label>`
796
+ | Name | Type | Default | Description |
797
+ | --- | --- | --- | --- |
798
+ | seriesKey | `string` | `''` | Key of the series to draw. |
799
+ | radius | `number` | `4` | Corner radius on the data end in px. |
800
+ | maxWidth | `number` | `24` | Largest bar thickness in px; a wider band becomes air, not a fatter bar. |
801
+ | gap | `number` | `2` | Gap in px between adjacent bars and between stacked segments. |
802
+ | class | `string` | `''` | Extra Tailwind classes merged onto each bar via `cn()` (last-wins). |
663
803
 
664
- Slots: _default_
804
+ ## Chart Pie
665
805
 
666
- ## Dropdown Menu
806
+ - Install: `npx @tolle_/cli add chart-pie`
807
+ - Import: `import { ChartPieComponent } from '@tolle_/tolle-ui';`
667
808
 
668
- - Install: `npx @tolle_/cli add dropdown-menu`
669
- - Import: `import { DropdownMenuComponent } from '@tolle_/tolle-ui';`
809
+ ### `<tolle-chart-pie>`
670
810
 
671
- ### `<tolle-dropdown-menu>`
811
+ Inputs:
672
812
 
673
- Slots: _default_
813
+ | Name | Type | Default | Description |
814
+ | --- | --- | --- | --- |
815
+ | data | `Record<string, any>[]` | `[]` | Rows to plot, one slice each. |
816
+ | valueKey | `string` | `'value'` | Row key holding each slice's numeric value. |
817
+ | labelKey | `string` | `'label'` | Row key holding each slice's label. |
818
+ | donut | `boolean` | `false` | Cuts a hole in the middle, making it a donut. |
819
+ | innerRadius | `number` | `0.6` | Hole size as a fraction of the outer radius, used when `donut` is set. |
820
+ | size | `number` | `240` | Width and height of the square plot in px. |
821
+ | gap | `number` | `2` | Angular gap between slices, expressed in px of arc at the outer edge. |
822
+ | ariaLabel | `string` | `''` | Accessible name for the chart, used as the svg `<title>`. |
823
+ | description | `string` | `''` | Longer summary used as the svg `<desc>`. Falls back to `ariaLabel`. |
824
+ | showTable | `boolean` | `false` | Shows the data table instead of leaving it visually hidden. |
825
+ | labelHeader | `string` | `'Category'` | Column header the table fallback gives the label column. |
826
+ | valueHeader | `string` | `'Value'` | Column header the table fallback gives the value column. |
827
+ | variant | `'default' | 'card'` | `'default'` | Visual treatment of the chart frame. |
828
+ | class | `string` | `''` | Extra Tailwind classes merged onto the chart via `cn()` (last-wins). |
674
829
 
675
- ## Dropdown Separator
830
+ Outputs:
676
831
 
677
- - Install: `npx @tolle_/cli add dropdown-separator`
678
- - Import: `import { DropdownSeparatorComponent } from '@tolle_/tolle-ui';`
832
+ | Name | Payload | Description |
833
+ | --- | --- | --- |
834
+ | activeIndexChange | `number | null` | Emitted with the hovered slice index, or null when the pointer leaves. |
679
835
 
680
- ### `<tolle-dropdown-separator>`
836
+ Variants:
837
+ - `variant`: `default`, `card` (default `default`)
681
838
 
682
- ## Dropdown Trigger
839
+ ## Checkbox
683
840
 
684
- - Install: `npx @tolle_/cli add dropdown-trigger`
685
- - Import: `import { DropdownTriggerDirective } from '@tolle_/tolle-ui';`
841
+ - Install: `npx @tolle_/cli add checkbox`
842
+ - Import: `import { CheckboxComponent } from '@tolle_/tolle-ui';`
686
843
 
687
- ### `<[tolleDropdownTrigger]>` (directive)
844
+ ### `<tolle-checkbox>`
688
845
 
689
846
  Inputs:
690
847
 
691
848
  | Name | Type | Default | Description |
692
849
  | --- | --- | --- | --- |
693
- | menu | `DropdownMenuComponent` | | |
694
-
850
+ | class | `string` | `''` | Extra Tailwind classes merged onto the checkbox via `cn()` (last-wins). |
851
+ | disabled | `boolean` | `false` | Disables the checkbox and blocks toggling. |
852
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Size of the checkbox. |
853
+
854
+ Variants:
855
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
856
+ - `checked`: `true`, `false` (default `false`)
857
+
858
+ ## Checkpoint
859
+
860
+ - Install: `npx @tolle_/cli add checkpoint`
861
+ - Import: `import { CheckpointComponent } from '@tolle_/tolle-ui';`
862
+
863
+ ### `<tolle-checkpoint>`
864
+
865
+ Inputs:
866
+
867
+ | Name | Type | Default | Description |
868
+ | --- | --- | --- | --- |
869
+ | label | `string` | `'Checkpoint'` | Name of the checkpoint shown in the pill. |
870
+ | timestamp | `string` | `''` | Pre-formatted time shown after the label. |
871
+ | active | `boolean` | `false` | Highlights this checkpoint as the one currently restored to. |
872
+ | disabled | `boolean` | `false` | Prevents the pill from being activated. |
873
+ | restoreLabel | `string` | `'Restore checkpoint'` | Verb used to build the pill's accessible name. |
874
+ | ariaLabel | `string` | `''` | Overrides the pill's accessible name entirely. |
875
+ | icon | `string` | `'ri-history-line'` | Remixicon class shown before the label. |
876
+ | size | `'sm' | 'default'` | `'default'` | Size of the pill. |
877
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
878
+
879
+ Outputs:
880
+
881
+ | Name | Payload | Description |
882
+ | --- | --- | --- |
883
+ | restore | `void` | Emitted when the user asks to restore this checkpoint. |
884
+
885
+ Slots: _default_
886
+
887
+ Variants:
888
+ - `active`: `true`, `false` (default `false`)
889
+ - `size`: `sm`, `default` (default `default`)
890
+
891
+ ## Collapsible
892
+
893
+ - Install: `npx @tolle_/cli add collapsible`
894
+ - Import: `import { CollapsibleComponent, CollapsibleTriggerComponent, CollapsibleContentComponent } from '@tolle_/tolle-ui';`
895
+
896
+ ### `<tolle-collapsible>`
897
+
898
+ Inputs:
899
+
900
+ | Name | Type | Default | Description |
901
+ | --- | --- | --- | --- |
902
+ | class | `string` | `''` | |
903
+ | open | `boolean` | — | |
904
+
905
+ Outputs:
906
+
907
+ | Name | Payload | Description |
908
+ | --- | --- | --- |
909
+ | openChange | `boolean` | |
910
+
911
+ Slots: _default_
912
+
913
+ ### `<tolle-collapsible-trigger>`
914
+
915
+ Inputs:
916
+
917
+ | Name | Type | Default | Description |
918
+ | --- | --- | --- | --- |
919
+ | class | `string` | `''` | |
920
+
921
+ Slots: _default_
922
+
923
+ ### `<tolle-collapsible-content>`
924
+
925
+ Inputs:
926
+
927
+ | Name | Type | Default | Description |
928
+ | --- | --- | --- | --- |
929
+ | class | `string` | `''` | |
930
+
931
+ Slots: _default_
932
+
933
+ ## Combobox
934
+
935
+ - Install: `npx @tolle_/cli add combobox`
936
+ - Import: `import { ComboboxComponent } from '@tolle_/tolle-ui';`
937
+
938
+ ### `<tolle-combobox>`
939
+
940
+ Inputs:
941
+
942
+ | Name | Type | Default | Description |
943
+ | --- | --- | --- | --- |
944
+ | options | `ComboboxOption[]` | `[]` | Options to choose from. |
945
+ | placeholder | `string` | `'Select an option…'` | Text shown on the trigger when nothing is selected. |
946
+ | searchPlaceholder | `string` | `'Search…'` | Placeholder inside the search box. |
947
+ | emptyMessage | `string` | `'No results found.'` | Message shown when the query matches no option. |
948
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger. |
949
+ | invalid | `boolean` | `false` | Applies the destructive border and focus ring. |
950
+ | disabled | `boolean` | `false` | Disables the control. |
951
+ | shouldFilter | `boolean` | `true` | Set false to filter the options yourself, e.g. server-side. |
952
+ | closeOnSelect | `boolean` | `true` | Close the panel after a value is chosen. |
953
+ | placement | `'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'` | `'bottom-start'` | Where the panel opens relative to the trigger. |
954
+ | ariaLabel | `string` | `''` | Accessible name when there is no associated visible label. |
955
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
956
+
957
+ Outputs:
958
+
959
+ | Name | Payload | Description |
960
+ | --- | --- | --- |
961
+ | valueChange | `any` | Emitted with the chosen value whenever the selection changes. |
962
+ | searchChange | `string` | Emitted with the query text as the user searches. |
963
+ | opened | `void` | Emitted when the panel opens. |
964
+ | closed | `void` | Emitted when the panel closes. |
965
+
966
+ Variants:
967
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
968
+ - `invalid`: `true`, `false` (default `false`)
969
+
970
+ ## Command
971
+
972
+ - Install: `npx @tolle_/cli add command`
973
+ - Import: `import { CommandComponent, CommandInputComponent, CommandListComponent, CommandEmptyComponent, CommandGroupComponent, CommandItemComponent, CommandSeparatorComponent, CommandShortcutComponent } from '@tolle_/tolle-ui';`
974
+
975
+ ### `<tolle-command>`
976
+
977
+ Inputs:
978
+
979
+ | Name | Type | Default | Description |
980
+ | --- | --- | --- | --- |
981
+ | shouldFilter | `boolean` | `true` | Set false to keep every item visible and filter the list yourself —
982
+ for server-side or fuzzy search. |
983
+ | ariaLabel | `string` | `''` | Accessible name for the command menu. |
984
+ | class | `string` | `''` | Extra Tailwind classes merged onto the menu via `cn()` (last-wins). |
985
+
986
+ Outputs:
987
+
988
+ | Name | Payload | Description |
989
+ | --- | --- | --- |
990
+ | selected | `any` | Emitted with the chosen item's `value` when the user selects one. |
991
+ | queryChange | `string` | Emitted with the query text whenever the search input changes. |
992
+
993
+ Slots: _default_
994
+
995
+ ### `<tolle-command-input>`
996
+
997
+ Inputs:
998
+
999
+ | Name | Type | Default | Description |
1000
+ | --- | --- | --- | --- |
1001
+ | placeholder | `string` | `'Type a command or search…'` | Placeholder shown when the query is empty. |
1002
+ | ariaLabel | `string` | `''` | Accessible name for the search box. |
1003
+ | class | `string` | `''` | Extra Tailwind classes merged onto the search row via `cn()` (last-wins). |
1004
+ | inputClass | `string` | `''` | Extra Tailwind classes merged onto the `<input>` itself via `cn()` (last-wins). |
1005
+
1006
+ ### `<tolle-command-list>`
1007
+
1008
+ Inputs:
1009
+
1010
+ | Name | Type | Default | Description |
1011
+ | --- | --- | --- | --- |
1012
+ | ariaLabel | `string` | `''` | Accessible name for the list. |
1013
+ | class | `string` | `''` | Extra Tailwind classes merged onto the list via `cn()` (last-wins). |
1014
+
1015
+ Slots: _default_
1016
+
1017
+ ### `<tolle-command-empty>`
1018
+
1019
+ Inputs:
1020
+
1021
+ | Name | Type | Default | Description |
1022
+ | --- | --- | --- | --- |
1023
+ | class | `string` | `''` | Extra Tailwind classes merged onto the empty state via `cn()` (last-wins). |
1024
+
1025
+ Slots: _default_
1026
+
1027
+ ### `<tolle-command-group>`
1028
+
1029
+ Inputs:
1030
+
1031
+ | Name | Type | Default | Description |
1032
+ | --- | --- | --- | --- |
1033
+ | heading | `string` | `''` | Section heading. |
1034
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
1035
+
1036
+ Slots: _default_
1037
+
1038
+ ### `<tolle-command-item>`
1039
+
1040
+ Inputs:
1041
+
1042
+ | Name | Type | Default | Description |
1043
+ | --- | --- | --- | --- |
1044
+ | value | `any` | `null` | Value emitted from the menu's `selected` output when this row is chosen. |
1045
+ | label | `string` | `''` | Text matched against the query. Defaults to `value` when omitted — set it
1046
+ explicitly whenever the row's visible text differs from its value. |
1047
+ | keywords | `string[]` | `[]` | Extra terms that should also match this row, e.g. synonyms. |
1048
+ | disabled | `boolean` | `false` | Makes the row unselectable and skipped by the arrow keys. |
1049
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
1050
+
1051
+ Outputs:
1052
+
1053
+ | Name | Payload | Description |
1054
+ | --- | --- | --- |
1055
+ | selected | `any` | Emitted when this specific row is chosen. |
1056
+
1057
+ Slots: _default_
1058
+
1059
+ ### `<tolle-command-separator>`
1060
+
1061
+ Inputs:
1062
+
1063
+ | Name | Type | Default | Description |
1064
+ | --- | --- | --- | --- |
1065
+ | class | `string` | `''` | Extra Tailwind classes merged onto the separator via `cn()` (last-wins). |
1066
+
1067
+ ### `<tolle-command-shortcut>`
1068
+
1069
+ Inputs:
1070
+
1071
+ | Name | Type | Default | Description |
1072
+ | --- | --- | --- | --- |
1073
+ | class | `string` | `''` | Extra Tailwind classes merged onto the shortcut via `cn()` (last-wins). |
1074
+
1075
+ Slots: _default_
1076
+
1077
+ ## Command Dialog
1078
+
1079
+ - Install: `npx @tolle_/cli add command-dialog`
1080
+ - Import: `import { CommandDialogComponent } from '@tolle_/tolle-ui';`
1081
+
1082
+ ### `<tolle-command-dialog>`
1083
+
1084
+ Inputs:
1085
+
1086
+ | Name | Type | Default | Description |
1087
+ | --- | --- | --- | --- |
1088
+ | open | `boolean` | `false` | Whether the palette is visible. Supports two-way binding via `[(open)]`. |
1089
+ | shortcut | `string` | `'mod+k'` | Global hotkey that toggles the palette, as `mod+key` where `mod` maps to ⌘
1090
+ on macOS and Ctrl elsewhere. Set to `''` to disable the binding. |
1091
+ | closeOnBackdrop | `boolean` | `true` | Close the palette when the backdrop is clicked. |
1092
+ | ariaLabel | `string` | `'Command palette'` | Accessible name for the dialog. |
1093
+ | class | `string` | `''` | Extra Tailwind classes merged onto the panel via `cn()` (last-wins). |
1094
+
1095
+ Outputs:
1096
+
1097
+ | Name | Payload | Description |
1098
+ | --- | --- | --- |
1099
+ | openChange | `boolean` | Two-way binding partner for `open`. |
1100
+ | opened | `void` | Emitted when the palette opens. |
1101
+ | closed | `void` | Emitted when the palette closes. |
1102
+
1103
+ Slots: _default_
1104
+
1105
+ ## Confirmation
1106
+
1107
+ - Install: `npx @tolle_/cli add confirmation`
1108
+ - Import: `import { ConfirmationComponent } from '@tolle_/tolle-ui';`
1109
+
1110
+ ### `<tolle-confirmation>`
1111
+
1112
+ Inputs:
1113
+
1114
+ | Name | Type | Default | Description |
1115
+ | --- | --- | --- | --- |
1116
+ | title | `string` | `''` | Headline describing the action awaiting approval. |
1117
+ | description | `string` | `''` | Supporting detail shown under the title. |
1118
+ | confirmLabel | `string` | `'Approve'` | Label of the approve button. |
1119
+ | cancelLabel | `string` | `'Deny'` | Label of the deny button. |
1120
+ | confirmedLabel | `string` | `'Approved'` | Text shown in the resolved row after approval. |
1121
+ | cancelledLabel | `string` | `'Denied'` | Text shown in the resolved row after denial. |
1122
+ | state | `ConfirmationState` | `'pending'` | Whether the prompt is still open, and how it was answered. |
1123
+ | disabled | `boolean` | `false` | Blocks both buttons without resolving the prompt. |
1124
+ | class | `string` | `''` | Extra Tailwind classes merged onto the prompt via `cn()` (last-wins). |
1125
+
1126
+ Outputs:
1127
+
1128
+ | Name | Payload | Description |
1129
+ | --- | --- | --- |
1130
+ | confirmed | `void` | Emitted when the user approves the action. |
1131
+ | cancelled | `void` | Emitted when the user denies the action. |
1132
+
1133
+ Slots: _default_
1134
+
1135
+ ## Context
1136
+
1137
+ - Install: `npx @tolle_/cli add context`
1138
+ - Import: `import { ContextComponent, ContextTriggerComponent, ContextContentComponent } from '@tolle_/tolle-ui';`
1139
+
1140
+ ### `<tolle-context>`
1141
+
1142
+ Inputs:
1143
+
1144
+ | Name | Type | Default | Description |
1145
+ | --- | --- | --- | --- |
1146
+ | used | `number` | `0` | Tokens consumed so far. |
1147
+ | total | `number` | `0` | Size of the context window in tokens. |
1148
+ | inputTokens | `number | null` | `null` | Tokens spent on the prompt, shown in the breakdown. |
1149
+ | outputTokens | `number | null` | `null` | Tokens produced by the model, shown in the breakdown. |
1150
+ | cost | `number | null` | `null` | Spend for this context, shown in the breakdown. |
1151
+ | warningThreshold | `number` | `0.75` | Ratio at or above which the indicator turns warning-coloured. |
1152
+ | criticalThreshold | `number` | `0.9` | Ratio at or above which the indicator turns destructive-coloured. |
1153
+ | placement | `'top' | 'bottom' | 'left' | 'right'` | `'top'` | Side of the indicator the breakdown opens on. |
1154
+ | openDelay | `number` | `150` | Milliseconds to wait before opening the breakdown. |
1155
+ | closeDelay | `number` | `200` | Milliseconds to wait before closing the breakdown. |
1156
+ | class | `string` | `''` | Extra Tailwind classes merged onto the indicator via `cn()` (last-wins). |
1157
+
1158
+ ### `<tolle-context-trigger>`
1159
+
1160
+ Inputs:
1161
+
1162
+ | Name | Type | Default | Description |
1163
+ | --- | --- | --- | --- |
1164
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
1165
+
1166
+ Slots: _default_
1167
+
1168
+ ### `<tolle-context-content>`
1169
+
1170
+ Inputs:
1171
+
1172
+ | Name | Type | Default | Description |
1173
+ | --- | --- | --- | --- |
1174
+ | currency | `string` | `'$'` | Symbol prefixed to the cost figure. |
1175
+ | class | `string` | `''` | Extra Tailwind classes merged onto the breakdown via `cn()` (last-wins). |
1176
+
1177
+ Slots: _default_
1178
+
1179
+ ## Context Menu
1180
+
1181
+ - Install: `npx @tolle_/cli add context-menu`
1182
+ - Import: `import { ContextMenuComponent } from '@tolle_/tolle-ui';`
1183
+
1184
+ ### `<tolle-context-menu>`
1185
+
1186
+ ## Context Menu Trigger
1187
+
1188
+ - Install: `npx @tolle_/cli add context-menu-trigger`
1189
+ - Import: `import { ContextMenuTriggerDirective } from '@tolle_/tolle-ui';`
1190
+
1191
+ ### `<[tolleContextMenuTrigger]>` (directive)
1192
+
1193
+ Inputs:
1194
+
1195
+ | Name | Type | Default | Description |
1196
+ | --- | --- | --- | --- |
1197
+ | items | `ContextMenuItem[]` | `[]` | |
1198
+
1199
+ Outputs:
1200
+
1201
+ | Name | Payload | Description |
1202
+ | --- | --- | --- |
1203
+ | action | `string` | |
1204
+
1205
+ ## Conversation
1206
+
1207
+ - Install: `npx @tolle_/cli add conversation`
1208
+ - Import: `import { ConversationComponent, ConversationContentComponent, ConversationEmptyStateComponent, ConversationScrollButtonComponent } from '@tolle_/tolle-ui';`
1209
+
1210
+ ### `<tolle-conversation>`
1211
+
1212
+ Inputs:
1213
+
1214
+ | Name | Type | Default | Description |
1215
+ | --- | --- | --- | --- |
1216
+ | size | `'sm' | 'default' | 'lg' | 'full'` | `'default'` | Height preset for the scroll region. |
1217
+ | autoScroll | `boolean` | `true` | Keeps the newest message in view while the reader is already at the bottom. |
1218
+ | empty | `boolean` | `false` | Set true before the first message so the empty state shows. |
1219
+ | threshold | `number` | `32` | Distance from the bottom, in px, still counted as "at the bottom". |
1220
+ | ariaLabel | `string` | `''` | Accessible name for the transcript. |
1221
+ | class | `string` | `''` | Extra Tailwind classes merged onto the transcript via `cn()` (last-wins). |
1222
+ | viewportClass | `string` | `''` | Extra Tailwind classes merged onto the scrolling viewport via `cn()` (last-wins). |
1223
+
1224
+ Outputs:
1225
+
1226
+ | Name | Payload | Description |
1227
+ | --- | --- | --- |
1228
+ | atBottomChange | `boolean` | Emitted whenever the transcript becomes pinned to, or leaves, the bottom. |
1229
+
1230
+ Slots: _default_, `tolle-conversation-scroll-button`
1231
+
1232
+ Variants:
1233
+ - `size`: `sm`, `default`, `lg`, `full` (default `default`)
1234
+
1235
+ ### `<tolle-conversation-content>`
1236
+
1237
+ Inputs:
1238
+
1239
+ | Name | Type | Default | Description |
1240
+ | --- | --- | --- | --- |
1241
+ | class | `string` | `''` | Extra Tailwind classes merged onto the stack via `cn()` (last-wins). |
1242
+
1243
+ Slots: _default_
1244
+
1245
+ ### `<tolle-conversation-empty-state>`
1246
+
1247
+ Inputs:
1248
+
1249
+ | Name | Type | Default | Description |
1250
+ | --- | --- | --- | --- |
1251
+ | icon | `string` | `'ri-chat-3-line'` | Remixicon class for the illustration. |
1252
+ | title | `string` | `'No messages yet'` | Headline shown above the description. |
1253
+ | description | `string` | `'Start the conversation by sending a message.'` | Supporting copy under the headline. |
1254
+ | class | `string` | `''` | Extra Tailwind classes merged onto the empty state via `cn()` (last-wins). |
1255
+
1256
+ Slots: _default_
1257
+
1258
+ ### `<tolle-conversation-scroll-button>`
1259
+
1260
+ Inputs:
1261
+
1262
+ | Name | Type | Default | Description |
1263
+ | --- | --- | --- | --- |
1264
+ | variant | `'default' | 'secondary' | 'outline'` | `'outline'` | Visual style of the button. |
1265
+ | size | `'sm' | 'default' | 'icon'` | `'default'` | Size of the button; 'icon' drops the text label. |
1266
+ | label | `string` | `'Jump to latest'` | Button text and accessible name. |
1267
+ | class | `string` | `''` | Extra Tailwind classes merged onto the button via `cn()` (last-wins). |
1268
+
1269
+ Outputs:
1270
+
1271
+ | Name | Payload | Description |
1272
+ | --- | --- | --- |
1273
+ | jumped | `void` | Emitted when the reader jumps back to the newest message. |
1274
+
1275
+ Variants:
1276
+ - `variant`: `default`, `secondary`, `outline` (default `outline`)
1277
+ - `size`: `sm`, `default`, `icon` (default `default`)
1278
+
1279
+ ## Country Selector
1280
+
1281
+ - Install: `npx @tolle_/cli add country-selector`
1282
+ - Import: `import { CountrySelectorComponent } from '@tolle_/tolle-ui';`
1283
+
1284
+ ### `<tolle-country-selector>`
1285
+
1286
+ Inputs:
1287
+
1288
+ | Name | Type | Default | Description |
1289
+ | --- | --- | --- | --- |
1290
+ | id | `any` | ``country-selector-${Math.random().toString(36).substr(2, 9)}`` | |
1291
+ | label | `string` | `''` | |
1292
+ | hint | `string` | `''` | |
1293
+ | errorMessage | `string` | `''` | |
1294
+ | error | `boolean` | `false` | |
1295
+ | hideHintOnFocus | `boolean` | `true` | |
1296
+ | placeholder | `string` | `'Select country'` | |
1297
+ | class | `string` | `''` | |
1298
+ | disabled | `boolean` | `false` | |
1299
+ | readonly | `boolean` | `false` | |
1300
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
1301
+ | defaultCountryCode | `string` | `'GH'` | |
1302
+ | returnValue | `'object' | 'isoAlpha2' | 'dialCode' | 'name'` | `'isoAlpha2'` | |
1303
+ | showName | `boolean` | `true` | |
1304
+ | externalFocused | `boolean | undefined` | — | |
1305
+
1306
+ Outputs:
1307
+
1308
+ | Name | Payload | Description |
1309
+ | --- | --- | --- |
1310
+ | onSelect | `any` | |
1311
+ | onFocusChange | `void` | |
1312
+ | onBlurChange | `void` | |
1313
+
1314
+ ## Data Table
1315
+
1316
+ - Install: `npx @tolle_/cli add data-table`
1317
+ - Import: `import { DataTableComponent } from '@tolle_/tolle-ui';`
1318
+
1319
+ ### `<tolle-data-table>`
1320
+
1321
+ Inputs:
1322
+
1323
+ | Name | Type | Default | Description |
1324
+ | --- | --- | --- | --- |
1325
+ | data | `any[]` | `[]` | |
1326
+ | columns | `TableColumn[]` | `[]` | |
1327
+ | searchable | `boolean` | `true` | |
1328
+ | paginate | `boolean` | `true` | |
1329
+ | pageSizeOptions | `number[]` | `[]` | |
1330
+ | pageSize | `number` | `10` | |
1331
+ | expandable | `boolean` | `false` | |
1332
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
1333
+ | stickyHeader | `boolean` | `false` | |
1334
+ | maxHeight | `string` | — | |
1335
+ | bordered | `boolean` | `true` | |
1336
+ | tableBackground | `string` | `''` | Background for the table surface, behind both header and rows. |
1337
+ | headerBackground | `string` | `'bg-background'` | Background for the header row. Must be opaque when `stickyHeader` is on,
1338
+ otherwise rows scroll visibly through the header — hence the default
1339
+ `bg-background` rather than transparent. |
1340
+ | striped | `boolean` | `false` | Alternating row backgrounds. Applied to odd rows only. |
1341
+ | stripeBackground | `string` | `'bg-muted/30'` | Background applied to odd rows when `striped` is on. |
1342
+ | rowBackground | `(row: any, index: number) => string` | — | Per-row background, resolved against the row's own data — e.g.
1343
+ `[rowBackground]="r => r.overdue ? 'bg-destructive/10' : ''"`.
1344
+ Takes precedence over `striped`. |
1345
+ | allowColumnHiding | `boolean` | `true` | |
1346
+ | showSettings | `boolean` | `true` | |
1347
+ | expandedTemplate | `TemplateRef<any>` | — | |
1348
+
1349
+ ## Date Picker
1350
+
1351
+ - Install: `npx @tolle_/cli add date-picker`
1352
+ - Import: `import { DatePickerComponent } from '@tolle_/tolle-ui';`
1353
+
1354
+ ### `<tolle-date-picker>`
1355
+
1356
+ Inputs:
1357
+
1358
+ | Name | Type | Default | Description |
1359
+ | --- | --- | --- | --- |
1360
+ | placeholder | `string` | `'Pick a date'` | Text shown on the trigger when no date is selected. |
1361
+ | disabled | `boolean` | `false` | Disables the control. |
1362
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
1363
+ | disablePastDates | `boolean` | `false` | Disables every day before today in the calendar. |
1364
+ | showClear | `boolean` | `true` | Shows the footer's Clear button. |
1365
+ | showQuickActions | `boolean` | `true` | Shows the panel's Clear / Done footer. |
1366
+ | minDate | `Date` | — | Earliest selectable date; earlier days are disabled. |
1367
+ | maxDate | `Date` | — | Latest selectable date; later days are disabled. |
1368
+ | mode | `CalendarMode` | `'date'` | Whether the control picks a day, a month or a year. |
1369
+ | formatMonthFn | `(date: Date) => string` | — | Overrides how a month is labelled in the calendar header. |
1370
+ | formatYearFn | `(date: Date) => string` | — | Overrides how a year is labelled in the calendar header. |
1371
+ | displayFormat | `(date: Date, mode: CalendarMode) => string` | — | Overrides how the selected date is rendered on the trigger. |
1372
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger. |
1373
+ | invalid | `boolean` | `false` | Applies the destructive border and focus ring. |
1374
+ | ariaLabel | `string` | `''` | Accessible name when there is no associated visible label. |
1375
+
1376
+ Outputs:
1377
+
1378
+ | Name | Payload | Description |
1379
+ | --- | --- | --- |
1380
+ | valueChange | `Date | null` | Emitted with the chosen date, or `null` when the value is cleared. |
1381
+ | opened | `void` | Emitted when the calendar panel opens. |
1382
+ | closed | `void` | Emitted when the calendar panel closes. |
1383
+
1384
+ Variants:
1385
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
1386
+ - `invalid`: `true`, `false` (default `false`)
1387
+
1388
+ ## Date Range Picker
1389
+
1390
+ - Install: `npx @tolle_/cli add date-range-picker`
1391
+ - Import: `import { DateRangePickerComponent } from '@tolle_/tolle-ui';`
1392
+
1393
+ ### `<tolle-date-range-picker>`
1394
+
1395
+ Inputs:
1396
+
1397
+ | Name | Type | Default | Description |
1398
+ | --- | --- | --- | --- |
1399
+ | disabled | `boolean` | `false` | Disables the control. |
1400
+ | placeholder | `string` | `'Pick a date range'` | Text shown on the trigger when no range is selected. |
1401
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
1402
+ | disablePastDates | `boolean` | `false` | Disables every day before today in the calendar. |
1403
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger. |
1404
+ | numberOfMonths | `number` | `1` | Consecutive months shown in the popover (e.g. `2` for a two-month picker). |
1405
+ | invalid | `boolean` | `false` | Applies the destructive border and focus ring. |
1406
+ | ariaLabel | `string` | `''` | Accessible name when there is no associated visible label. |
1407
+
1408
+ Outputs:
1409
+
1410
+ | Name | Payload | Description |
1411
+ | --- | --- | --- |
1412
+ | valueChange | `DateRange` | Emitted with the selected range, including the half-made `{ start, end: null }` state. |
1413
+ | opened | `void` | Emitted when the calendar panel opens. |
1414
+ | closed | `void` | Emitted when the calendar panel closes. |
1415
+
1416
+ Variants:
1417
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
1418
+ - `invalid`: `true`, `false` (default `false`)
1419
+
1420
+ ## Date Time Picker
1421
+
1422
+ - Install: `npx @tolle_/cli add date-time-picker`
1423
+ - Import: `import { DateTimePickerComponent } from '@tolle_/tolle-ui';`
1424
+
1425
+ ### `<tolle-date-time-picker>`
1426
+
1427
+ Inputs:
1428
+
1429
+ | Name | Type | Default | Description |
1430
+ | --- | --- | --- | --- |
1431
+ | placeholder | `string` | `'Select date and time'` | Text shown on the trigger when nothing is selected. |
1432
+ | disabled | `boolean` | `false` | Disables the control. |
1433
+ | use12Hours | `boolean` | `false` | Renders a 12-hour face with an AM/PM column. |
1434
+ | showSeconds | `boolean` | `false` | Adds a seconds column. |
1435
+ | minuteStep | `number` | `1` | Interval between minute entries, in minutes. |
1436
+ | min | `Date` | — | Earliest selectable moment; earlier days and times are disabled. |
1437
+ | max | `Date` | — | Latest selectable moment; later days and times are disabled. |
1438
+ | displayFormat | `string` | `'MMM d, yyyy h:mm a'` | date-fns pattern used to render the value on the trigger. |
1439
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger and entries. |
1440
+ | invalid | `boolean` | `false` | Applies the destructive border and focus ring. |
1441
+ | ariaLabel | `string` | `''` | Accessible name when there is no associated visible label. |
1442
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
1443
+
1444
+ Outputs:
1445
+
1446
+ | Name | Payload | Description |
1447
+ | --- | --- | --- |
1448
+ | valueChange | `Date | null` | Emitted with the chosen moment, or `null` when the value is cleared. |
1449
+ | opened | `void` | Emitted when the panel opens. |
1450
+ | closed | `void` | Emitted when the panel closes. |
1451
+
1452
+ Variants:
1453
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
1454
+ - `invalid`: `true`, `false` (default `false`)
1455
+
1456
+ ## Direction
1457
+
1458
+ - Install: `npx @tolle_/cli add direction`
1459
+ - Import: `import { DirectionDirective } from '@tolle_/tolle-ui';`
1460
+
1461
+ ### `<[tolleDirection]>` (directive)
1462
+
1463
+ Inputs:
1464
+
1465
+ | Name | Type | Default | Description |
1466
+ | --- | --- | --- | --- |
1467
+ | tolleDirection | `Direction` | `'ltr'` | Writing direction applied to the host's `dir` attribute. |
1468
+ | tolleDirectionPublish | `boolean` | `true` | Whether to publish this direction to the app-wide `DirectionService`. |
1469
+
1470
+ Outputs:
1471
+
1472
+ | Name | Payload | Description |
1473
+ | --- | --- | --- |
1474
+ | directionChange | `Direction` | Emitted with the direction whenever it changes. |
1475
+
1476
+ ## Dropdown Item
1477
+
1478
+ - Install: `npx @tolle_/cli add dropdown-item`
1479
+ - Import: `import { DropdownItemComponent } from '@tolle_/tolle-ui';`
1480
+
1481
+ ### `<tolle-dropdown-item>`
1482
+
1483
+ Inputs:
1484
+
1485
+ | Name | Type | Default | Description |
1486
+ | --- | --- | --- | --- |
1487
+ | class | `string` | `''` | |
1488
+ | disabled | `boolean` | `false` | |
1489
+
1490
+ Slots: _default_
1491
+
1492
+ ## Dropdown Label
1493
+
1494
+ - Install: `npx @tolle_/cli add dropdown-label`
1495
+ - Import: `import { DropdownLabelComponent } from '@tolle_/tolle-ui';`
1496
+
1497
+ ### `<tolle-dropdown-label>`
1498
+
1499
+ Slots: _default_
1500
+
1501
+ ## Dropdown Menu
1502
+
1503
+ - Install: `npx @tolle_/cli add dropdown-menu`
1504
+ - Import: `import { DropdownMenuComponent } from '@tolle_/tolle-ui';`
1505
+
1506
+ ### `<tolle-dropdown-menu>`
1507
+
1508
+ Slots: _default_
1509
+
1510
+ ## Dropdown Separator
1511
+
1512
+ - Install: `npx @tolle_/cli add dropdown-separator`
1513
+ - Import: `import { DropdownSeparatorComponent } from '@tolle_/tolle-ui';`
1514
+
1515
+ ### `<tolle-dropdown-separator>`
1516
+
1517
+ ## Dropdown Trigger
1518
+
1519
+ - Install: `npx @tolle_/cli add dropdown-trigger`
1520
+ - Import: `import { DropdownTriggerDirective } from '@tolle_/tolle-ui';`
1521
+
1522
+ ### `<[tolleDropdownTrigger]>` (directive)
1523
+
1524
+ Inputs:
1525
+
1526
+ | Name | Type | Default | Description |
1527
+ | --- | --- | --- | --- |
1528
+ | menu | `DropdownMenuComponent` | — | |
1529
+
695
1530
  ## Empty State
696
1531
 
697
- - Install: `npx @tolle_/cli add empty-state`
698
- - Import: `import { EmptyStateComponent } from '@tolle_/tolle-ui';`
1532
+ - Install: `npx @tolle_/cli add empty-state`
1533
+ - Import: `import { EmptyStateComponent } from '@tolle_/tolle-ui';`
1534
+
1535
+ ### `<tolle-empty-state>`
1536
+
1537
+ Inputs:
1538
+
1539
+ | Name | Type | Default | Description |
1540
+ | --- | --- | --- | --- |
1541
+ | variant | `'default' | 'minimal'` | `'default'` | |
1542
+ | title | `string` | `'No items found'` | |
1543
+ | description | `string` | — | |
1544
+ | class | `string` | `''` | |
1545
+
1546
+ Slots: `[icon]`, `[actions]`
1547
+
1548
+ Variants:
1549
+ - `variant`: `default`, `minimal` (default `default`)
1550
+
1551
+ ## Field
1552
+
1553
+ - Install: `npx @tolle_/cli add field`
1554
+ - Import: `import { FieldComponent, FieldLabelComponent, FieldContentComponent, FieldDescriptionComponent, FieldErrorComponent, FieldGroupComponent, FieldSetComponent, FieldLegendComponent, FieldSeparatorComponent, FieldTitleComponent } from '@tolle_/tolle-ui';`
1555
+
1556
+ ### `<tolle-field>`
1557
+
1558
+ Inputs:
1559
+
1560
+ | Name | Type | Default | Description |
1561
+ | --- | --- | --- | --- |
1562
+ | orientation | `'vertical' | 'horizontal' | 'responsive'` | `'vertical'` | Layout direction; `responsive` goes horizontal at the `@md` container width. |
1563
+ | invalid | `boolean` | `false` | Marks the field invalid, turning on the destructive styling for descendants. |
1564
+ | class | `string` | `''` | Extra Tailwind classes merged onto the field via `cn()` (last-wins). |
1565
+
1566
+ Slots: _default_
1567
+
1568
+ Variants:
1569
+ - `orientation`: `vertical`, `horizontal`, `responsive` (default `vertical`)
1570
+
1571
+ ### `<tolle-field-label>`
1572
+
1573
+ Inputs:
1574
+
1575
+ | Name | Type | Default | Description |
1576
+ | --- | --- | --- | --- |
1577
+ | for | `string` | `''` | Id of the control this label describes; wire it to the control's `id`. |
1578
+ | required | `boolean` | `false` | Appends a required marker (*) after the label text. |
1579
+ | class | `string` | `''` | Extra Tailwind classes merged onto the label via `cn()` (last-wins). |
1580
+
1581
+ Slots: _default_
1582
+
1583
+ ### `<tolle-field-content>`
1584
+
1585
+ Inputs:
1586
+
1587
+ | Name | Type | Default | Description |
1588
+ | --- | --- | --- | --- |
1589
+ | class | `string` | `''` | Extra Tailwind classes merged onto the content column via `cn()` (last-wins). |
1590
+
1591
+ Slots: _default_
1592
+
1593
+ ### `<tolle-field-description>`
1594
+
1595
+ Inputs:
1596
+
1597
+ | Name | Type | Default | Description |
1598
+ | --- | --- | --- | --- |
1599
+ | id | `string` | `''` | Id to reference from the control's `aria-describedby`. |
1600
+ | class | `string` | `''` | Extra Tailwind classes merged onto the description via `cn()` (last-wins). |
1601
+
1602
+ Slots: _default_
1603
+
1604
+ ### `<tolle-field-error>`
1605
+
1606
+ Inputs:
1607
+
1608
+ | Name | Type | Default | Description |
1609
+ | --- | --- | --- | --- |
1610
+ | errors | `string | string[] | Record<string, any> | null` | `''` | Validation message(s). Accepts a single string, an array of strings, or an
1611
+ Angular `ValidationErrors`-style object whose values are messages. |
1612
+ | id | `string` | `''` | Id to reference from the control's `aria-describedby`. |
1613
+ | class | `string` | `''` | Extra Tailwind classes merged onto the error text via `cn()` (last-wins). |
1614
+
1615
+ ### `<tolle-field-group>`
1616
+
1617
+ Inputs:
1618
+
1619
+ | Name | Type | Default | Description |
1620
+ | --- | --- | --- | --- |
1621
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
1622
+
1623
+ Slots: _default_
1624
+
1625
+ ### `<tolle-field-set>`
1626
+
1627
+ Inputs:
1628
+
1629
+ | Name | Type | Default | Description |
1630
+ | --- | --- | --- | --- |
1631
+ | class | `string` | `''` | Extra Tailwind classes merged onto the fieldset via `cn()` (last-wins). |
1632
+
1633
+ Slots: _default_
1634
+
1635
+ ### `<tolle-field-legend>`
1636
+
1637
+ Inputs:
1638
+
1639
+ | Name | Type | Default | Description |
1640
+ | --- | --- | --- | --- |
1641
+ | variant | `'legend' | 'label'` | `'legend'` | Type scale of the legend. |
1642
+ | class | `string` | `''` | Extra Tailwind classes merged onto the legend via `cn()` (last-wins). |
1643
+
1644
+ Slots: _default_
1645
+
1646
+ Variants:
1647
+ - `variant`: `legend`, `label` (default `legend`)
1648
+
1649
+ ### `<tolle-field-separator>`
1650
+
1651
+ Inputs:
1652
+
1653
+ | Name | Type | Default | Description |
1654
+ | --- | --- | --- | --- |
1655
+ | class | `string` | `''` | Extra Tailwind classes merged onto the separator via `cn()` (last-wins). |
1656
+
1657
+ ### `<tolle-field-title>`
1658
+
1659
+ Inputs:
1660
+
1661
+ | Name | Type | Default | Description |
1662
+ | --- | --- | --- | --- |
1663
+ | class | `string` | `''` | Extra Tailwind classes merged onto the title via `cn()` (last-wins). |
1664
+
1665
+ Slots: _default_
1666
+
1667
+ ## Hover Card
1668
+
1669
+ - Install: `npx @tolle_/cli add hover-card`
1670
+ - Import: `import { HoverCardComponent, HoverCardTriggerComponent, HoverCardContentComponent } from '@tolle_/tolle-ui';`
1671
+
1672
+ ### `<tolle-hover-card>`
1673
+
1674
+ Inputs:
1675
+
1676
+ | Name | Type | Default | Description |
1677
+ | --- | --- | --- | --- |
1678
+ | openDelay | `number` | `700` | |
1679
+ | closeDelay | `number` | `300` | |
1680
+ | placement | `'top' | 'bottom' | 'left' | 'right'` | `'bottom'` | |
1681
+
1682
+ Slots: _default_
1683
+
1684
+ ### `<tolle-hover-card-trigger>`
1685
+
1686
+ Slots: _default_
1687
+
1688
+ ### `<tolle-hover-card-content>`
1689
+
1690
+ Inputs:
1691
+
1692
+ | Name | Type | Default | Description |
1693
+ | --- | --- | --- | --- |
1694
+ | class | `string` | `''` | |
1695
+
1696
+ Slots: _default_
1697
+
1698
+ ## Inline Citation
1699
+
1700
+ - Install: `npx @tolle_/cli add inline-citation`
1701
+ - Import: `import { InlineCitationComponent, InlineCitationCardComponent, InlineCitationQuoteComponent } from '@tolle_/tolle-ui';`
1702
+
1703
+ ### `<tolle-inline-citation>`
1704
+
1705
+ Inputs:
1706
+
1707
+ | Name | Type | Default | Description |
1708
+ | --- | --- | --- | --- |
1709
+ | index | `number | string` | `1` | Number rendered in the superscript marker. |
1710
+ | variant | `'default' | 'muted' | 'subtle'` | `'default'` | Colour treatment of the marker. |
1711
+ | size | `'sm' | 'default'` | `'default'` | Text size of the marker. |
1712
+ | placement | `'top' | 'bottom' | 'left' | 'right'` | `'top'` | Side of the marker the source card opens on. |
1713
+ | openDelay | `number` | `150` | Milliseconds to wait before opening the card. |
1714
+ | closeDelay | `number` | `200` | Milliseconds to wait before closing the card. |
1715
+ | ariaLabel | `string` | `''` | Accessible label for the marker; falls back to "Citation {index}". |
1716
+ | class | `string` | `''` | Extra Tailwind classes merged onto the marker via `cn()` (last-wins). |
1717
+ | cardClass | `string` | `''` | Extra Tailwind classes merged onto the hover card panel via `cn()` (last-wins). |
1718
+
1719
+ Slots: _default_
1720
+
1721
+ Variants:
1722
+ - `variant`: `default`, `muted`, `subtle` (default `default`)
1723
+ - `size`: `sm`, `default` (default `default`)
1724
+
1725
+ ### `<tolle-inline-citation-card>`
1726
+
1727
+ Inputs:
1728
+
1729
+ | Name | Type | Default | Description |
1730
+ | --- | --- | --- | --- |
1731
+ | title | `string` | `''` | Title of the cited source. |
1732
+ | url | `string` | `''` | Link to the cited source. |
1733
+ | snippet | `string` | `''` | Short excerpt from the source. |
1734
+ | class | `string` | `''` | Extra Tailwind classes merged onto the card via `cn()` (last-wins). |
1735
+
1736
+ Slots: _default_
1737
+
1738
+ ### `<tolle-inline-citation-quote>`
1739
+
1740
+ Inputs:
1741
+
1742
+ | Name | Type | Default | Description |
1743
+ | --- | --- | --- | --- |
1744
+ | cite | `string` | `''` | Attribution shown beneath the quote. |
1745
+ | class | `string` | `''` | Extra Tailwind classes merged onto the quote via `cn()` (last-wins). |
1746
+
1747
+ Slots: _default_
1748
+
1749
+ ## Input
1750
+
1751
+ - Install: `npx @tolle_/cli add input`
1752
+ - Import: `import { InputComponent } from '@tolle_/tolle-ui';`
1753
+
1754
+ ### `<tolle-input>`
1755
+
1756
+ Inputs:
1757
+
1758
+ | Name | Type | Default | Description |
1759
+ | --- | --- | --- | --- |
1760
+ | id | `string` | ``input-${Math.random().toString(36).substr(2, 9)}`` | |
1761
+ | label | `string` | `''` | |
1762
+ | hint | `string` | `''` | |
1763
+ | errorMessage | `string` | `''` | |
1764
+ | type | `string` | `'text'` | |
1765
+ | placeholder | `string` | `''` | |
1766
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
1767
+ | containerClass | `string` | `''` | |
1768
+ | class | `string` | `''` | |
1769
+ | disabled | `boolean` | `false` | |
1770
+ | readonly | `boolean` | `false` | |
1771
+ | error | `boolean` | `false` | |
1772
+ | hideHintOnFocus | `boolean` | `true` | |
1773
+
1774
+ Slots: `[prefix]`, `[suffix]`
1775
+
1776
+ ## Input Group
1777
+
1778
+ - Install: `npx @tolle_/cli add input-group`
1779
+ - Import: `import { InputGroupComponent, InputGroupAddonComponent, InputGroupButtonComponent, InputGroupTextComponent, InputGroupInputComponent, InputGroupTextareaComponent } from '@tolle_/tolle-ui';`
1780
+
1781
+ ### `<tolle-input-group>`
1782
+
1783
+ Inputs:
1784
+
1785
+ | Name | Type | Default | Description |
1786
+ | --- | --- | --- | --- |
1787
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the group; match it to the input inside. |
1788
+ | invalid | `boolean` | `false` | Applies the destructive border and focus ring. |
1789
+ | stacked | `boolean` | `false` | Switches to a stacked column layout for `block-start`/`block-end` addons. |
1790
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
1791
+
1792
+ Slots: _default_
1793
+
1794
+ Variants:
1795
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
1796
+ - `invalid`: `true`, `false` (default `false`)
1797
+ - `stacked`: `true`, `false` (default `false`)
1798
+
1799
+ ### `<tolle-input-group-addon>`
1800
+
1801
+ Inputs:
1802
+
1803
+ | Name | Type | Default | Description |
1804
+ | --- | --- | --- | --- |
1805
+ | align | `'inline-start' | 'inline-end' | 'block-start' | 'block-end'` | `'inline-start'` | Where the addon sits relative to the input. |
1806
+ | class | `string` | `''` | Extra Tailwind classes merged onto the addon via `cn()` (last-wins). |
1807
+
1808
+ Slots: _default_
1809
+
1810
+ Variants:
1811
+ - `align`: `inline-start`, `inline-end`, `block-start`, `block-end` (default `inline-start`)
1812
+
1813
+ ### `<tolle-input-group-button>`
1814
+
1815
+ Inputs:
1816
+
1817
+ | Name | Type | Default | Description |
1818
+ | --- | --- | --- | --- |
1819
+ | variant | `'default' | 'secondary' | 'outline' | 'ghost' | 'destructive'` | `'ghost'` | Visual style of the button. |
1820
+ | size | `'xs' | 'sm' | 'icon-xs' | 'icon-sm'` | `'icon-sm'` | Size of the button; the `icon-*` sizes render a square. |
1821
+ | type | `'button' | 'submit' | 'reset'` | `'button'` | Native button type. |
1822
+ | disabled | `boolean` | `false` | Disables the button. |
1823
+ | ariaLabel | `string` | `''` | Accessible name — required when the button shows only an icon. |
1824
+ | class | `string` | `''` | Extra Tailwind classes merged onto the button via `cn()` (last-wins). |
1825
+
1826
+ Outputs:
1827
+
1828
+ | Name | Payload | Description |
1829
+ | --- | --- | --- |
1830
+ | clicked | `MouseEvent` | Emitted with the click event when the button is pressed. |
1831
+
1832
+ Slots: _default_
1833
+
1834
+ Variants:
1835
+ - `variant`: `default`, `secondary`, `outline`, `ghost`, `destructive` (default `ghost`)
1836
+ - `size`: `xs`, `sm`, `icon-xs`, `icon-sm` (default `icon-sm`)
1837
+
1838
+ ### `<tolle-input-group-text>`
1839
+
1840
+ Inputs:
1841
+
1842
+ | Name | Type | Default | Description |
1843
+ | --- | --- | --- | --- |
1844
+ | class | `string` | `''` | Extra Tailwind classes merged onto the text via `cn()` (last-wins). |
1845
+
1846
+ Slots: _default_
1847
+
1848
+ ### `<tolle-input-group-input>`
1849
+
1850
+ Inputs:
1851
+
1852
+ | Name | Type | Default | Description |
1853
+ | --- | --- | --- | --- |
1854
+ | id | `any` | ``input-group-input-${Math.random().toString(36).slice(2, 11)}`` | Id applied to the underlying `<input>`. |
1855
+ | type | `string` | `'text'` | Native input type. |
1856
+ | placeholder | `string` | `''` | Placeholder text. |
1857
+ | disabled | `boolean` | `false` | Disables the input. |
1858
+ | readonly | `boolean` | `false` | Makes the input read-only. |
1859
+ | ariaDescribedby | `string` | `''` | Id of the element describing this input, for `aria-describedby`. |
1860
+ | class | `string` | `''` | Extra Tailwind classes merged onto the input via `cn()` (last-wins). |
1861
+
1862
+ Outputs:
1863
+
1864
+ | Name | Payload | Description |
1865
+ | --- | --- | --- |
1866
+ | valueChange | `string` | Emitted with the new value on every keystroke. |
1867
+
1868
+ ### `<tolle-input-group-textarea>`
1869
+
1870
+ Inputs:
1871
+
1872
+ | Name | Type | Default | Description |
1873
+ | --- | --- | --- | --- |
1874
+ | id | `any` | ``input-group-textarea-${Math.random().toString(36).slice(2, 11)}`` | Id applied to the underlying `<textarea>`. |
1875
+ | rows | `number` | `3` | Visible rows. |
1876
+ | placeholder | `string` | `''` | Placeholder text. |
1877
+ | disabled | `boolean` | `false` | Disables the textarea. |
1878
+ | readonly | `boolean` | `false` | Makes the textarea read-only. |
1879
+ | ariaDescribedby | `string` | `''` | Id of the element describing this textarea, for `aria-describedby`. |
1880
+ | class | `string` | `''` | Extra Tailwind classes merged onto the textarea via `cn()` (last-wins). |
1881
+
1882
+ Outputs:
1883
+
1884
+ | Name | Payload | Description |
1885
+ | --- | --- | --- |
1886
+ | valueChange | `string` | Emitted with the new value on every keystroke. |
1887
+
1888
+ ## Item
1889
+
1890
+ - Install: `npx @tolle_/cli add item`
1891
+ - Import: `import { ItemComponent, ItemGroupComponent, ItemMediaComponent, ItemContentComponent, ItemTitleComponent, ItemDescriptionComponent, ItemActionsComponent, ItemHeaderComponent, ItemFooterComponent } from '@tolle_/tolle-ui';`
1892
+
1893
+ ### `<tolle-item>`
1894
+
1895
+ Inputs:
1896
+
1897
+ | Name | Type | Default | Description |
1898
+ | --- | --- | --- | --- |
1899
+ | variant | `'default' | 'outline' | 'muted'` | `'default'` | Visual style of the row. |
1900
+ | size | `'xs' | 'sm' | 'default'` | `'default'` | Padding and gap density of the row. |
1901
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
1902
+
1903
+ Slots: _default_
1904
+
1905
+ Variants:
1906
+ - `variant`: `default`, `outline`, `muted` (default `default`)
1907
+ - `size`: `xs`, `sm`, `default` (default `default`)
1908
+
1909
+ ### `<tolle-item-group>`
1910
+
1911
+ Inputs:
1912
+
1913
+ | Name | Type | Default | Description |
1914
+ | --- | --- | --- | --- |
1915
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
1916
+
1917
+ Slots: _default_
1918
+
1919
+ ### `<tolle-item-media>`
1920
+
1921
+ Inputs:
1922
+
1923
+ | Name | Type | Default | Description |
1924
+ | --- | --- | --- | --- |
1925
+ | class | `string` | `''` | Extra Tailwind classes merged onto the media slot via `cn()` (last-wins). |
1926
+
1927
+ Slots: _default_
1928
+
1929
+ ### `<tolle-item-content>`
1930
+
1931
+ Inputs:
1932
+
1933
+ | Name | Type | Default | Description |
1934
+ | --- | --- | --- | --- |
1935
+ | class | `string` | `''` | Extra Tailwind classes merged onto the content column via `cn()` (last-wins). |
1936
+
1937
+ Slots: _default_
1938
+
1939
+ ### `<tolle-item-title>`
1940
+
1941
+ Inputs:
1942
+
1943
+ | Name | Type | Default | Description |
1944
+ | --- | --- | --- | --- |
1945
+ | class | `string` | `''` | Extra Tailwind classes merged onto the title via `cn()` (last-wins). |
1946
+
1947
+ Slots: _default_
1948
+
1949
+ ### `<tolle-item-description>`
1950
+
1951
+ Inputs:
1952
+
1953
+ | Name | Type | Default | Description |
1954
+ | --- | --- | --- | --- |
1955
+ | class | `string` | `''` | Extra Tailwind classes merged onto the description via `cn()` (last-wins). |
1956
+
1957
+ Slots: _default_
1958
+
1959
+ ### `<tolle-item-actions>`
1960
+
1961
+ Inputs:
1962
+
1963
+ | Name | Type | Default | Description |
1964
+ | --- | --- | --- | --- |
1965
+ | class | `string` | `''` | Extra Tailwind classes merged onto the actions slot via `cn()` (last-wins). |
1966
+
1967
+ Slots: _default_
1968
+
1969
+ ### `<tolle-item-header>`
1970
+
1971
+ Inputs:
1972
+
1973
+ | Name | Type | Default | Description |
1974
+ | --- | --- | --- | --- |
1975
+ | class | `string` | `''` | Extra Tailwind classes merged onto the header via `cn()` (last-wins). |
1976
+
1977
+ Slots: _default_
1978
+
1979
+ ### `<tolle-item-footer>`
1980
+
1981
+ Inputs:
1982
+
1983
+ | Name | Type | Default | Description |
1984
+ | --- | --- | --- | --- |
1985
+ | class | `string` | `''` | Extra Tailwind classes merged onto the footer via `cn()` (last-wins). |
1986
+
1987
+ Slots: _default_
1988
+
1989
+ ## Kbd
1990
+
1991
+ - Install: `npx @tolle_/cli add kbd`
1992
+ - Import: `import { KbdComponent, KbdGroupComponent } from '@tolle_/tolle-ui';`
1993
+
1994
+ ### `<tolle-kbd>`
1995
+
1996
+ Inputs:
1997
+
1998
+ | Name | Type | Default | Description |
1999
+ | --- | --- | --- | --- |
2000
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Size of the key cap. |
2001
+ | variant | `'default' | 'outline'` | `'default'` | Visual style of the key cap. |
2002
+ | class | `string` | `''` | Extra Tailwind classes merged onto the key cap via `cn()` (last-wins). |
2003
+
2004
+ Slots: _default_
2005
+
2006
+ Variants:
2007
+ - `size`: `sm`, `default`, `lg` (default `default`)
2008
+ - `variant`: `default`, `outline` (default `default`)
2009
+
2010
+ ### `<tolle-kbd-group>`
2011
+
2012
+ Inputs:
2013
+
2014
+ | Name | Type | Default | Description |
2015
+ | --- | --- | --- | --- |
2016
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
2017
+
2018
+ Slots: _default_
2019
+
2020
+ ## Label
2021
+
2022
+ - Install: `npx @tolle_/cli add label`
2023
+ - Import: `import { LabelComponent } from '@tolle_/tolle-ui';`
2024
+
2025
+ ### `<tolle-label>`
2026
+
2027
+ Inputs:
2028
+
2029
+ | Name | Type | Default | Description |
2030
+ | --- | --- | --- | --- |
2031
+ | for | `string` | — | |
2032
+ | class | `string` | `''` | |
2033
+
2034
+ Slots: _default_
2035
+
2036
+ ## Marker
2037
+
2038
+ - Install: `npx @tolle_/cli add marker`
2039
+ - Import: `import { MarkerComponent, MarkerGroupComponent } from '@tolle_/tolle-ui';`
2040
+
2041
+ ### `<tolle-marker>`
2042
+
2043
+ Inputs:
2044
+
2045
+ | Name | Type | Default | Description |
2046
+ | --- | --- | --- | --- |
2047
+ | variant | `'default' | 'separator' | 'status' | 'error'` | `'default'` | Kind of transcript marker this row represents. |
2048
+ | label | `string` | `''` | Text for the marker — the date on a separator, or the status wording. |
2049
+ | icon | `string` | `''` | Remixicon class for a leading icon, e.g. 'ri-tools-line'. |
2050
+ | shimmer | `boolean` | `false` | Applies the shimmer text sweep, for live status such as "Thinking…". |
2051
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
2052
+
2053
+ Slots: _default_
2054
+
2055
+ Variants:
2056
+ - `variant`: `default`, `separator`, `status`, `error` (default `default`)
2057
+
2058
+ ### `<tolle-marker-group>`
2059
+
2060
+ Inputs:
2061
+
2062
+ | Name | Type | Default | Description |
2063
+ | --- | --- | --- | --- |
2064
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
2065
+
2066
+ Slots: _default_
2067
+
2068
+ ## Masked Input
2069
+
2070
+ - Install: `npx @tolle_/cli add masked-input`
2071
+ - Import: `import { MaskedInputComponent } from '@tolle_/tolle-ui';`
2072
+
2073
+ ### `<tolle-masked-input>`
2074
+
2075
+ Inputs:
2076
+
2077
+ | Name | Type | Default | Description |
2078
+ | --- | --- | --- | --- |
2079
+ | id | `string` | ``masked-input-${Math.random().toString(36).substr(2, 9)}`` | |
2080
+ | label | `string` | `''` | |
2081
+ | hint | `string` | `''` | |
2082
+ | errorMessage | `string` | `''` | |
2083
+ | mask | `string` | `''` | |
2084
+ | placeholder | `string` | `''` | |
2085
+ | type | `string` | `'text'` | |
2086
+ | disabled | `boolean` | `false` | |
2087
+ | readonly | `boolean` | `false` | |
2088
+ | class | `string` | `''` | |
2089
+ | containerClass | `string` | `''` | |
2090
+ | error | `boolean` | `false` | |
2091
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
2092
+ | returnRaw | `boolean` | `false` | |
2093
+ | hideHintOnFocus | `boolean` | `true` | |
2094
+ | externalFocused | `boolean | undefined` | — | |
2095
+
2096
+ Slots: `[prefix]`, `[suffix]`
2097
+
2098
+ ## Menubar
2099
+
2100
+ - Install: `npx @tolle_/cli add menubar`
2101
+ - Import: `import { MenubarComponent, MenubarMenuComponent, MenubarTriggerComponent, MenubarContentComponent, MenubarItemComponent, MenubarLabelComponent, MenubarSeparatorComponent } from '@tolle_/tolle-ui';`
2102
+
2103
+ ### `<tolle-menubar>`
2104
+
2105
+ Inputs:
2106
+
2107
+ | Name | Type | Default | Description |
2108
+ | --- | --- | --- | --- |
2109
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Height/padding scale, inherited by every trigger in the bar. |
2110
+ | class | `string` | `''` | Extra Tailwind classes merged onto the bar via `cn()` (last-wins). |
2111
+
2112
+ Outputs:
2113
+
2114
+ | Name | Payload | Description |
2115
+ | --- | --- | --- |
2116
+ | openChange | `string | null` | Emitted with the id of the menu that opened, or `null` when the bar closes. |
2117
+
2118
+ Slots: _default_
2119
+
2120
+ Variants:
2121
+ - `size`: `sm`, `default`, `lg` (default `default`)
2122
+
2123
+ ### `<tolle-menubar-menu>`
2124
+
2125
+ Inputs:
2126
+
2127
+ | Name | Type | Default | Description |
2128
+ | --- | --- | --- | --- |
2129
+ | id | `any` | ``tolle-menubar-menu-${menubarMenuCounter++}`` | Explicit id for the menu; one is generated when omitted. |
2130
+
2131
+ Slots: _default_
2132
+
2133
+ ### `<tolle-menubar-trigger>`
2134
+
2135
+ Inputs:
2136
+
2137
+ | Name | Type | Default | Description |
2138
+ | --- | --- | --- | --- |
2139
+ | disabled | `boolean` | `false` | Prevents the menu from opening. |
2140
+ | size | `'sm' | 'default' | 'lg'` | — | Overrides the size inherited from `tolle-menubar`. |
2141
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
2142
+
2143
+ Slots: _default_
2144
+
2145
+ Variants:
2146
+ - `size`: `sm`, `default`, `lg` (default `default`)
2147
+
2148
+ ### `<tolle-menubar-content>`
2149
+
2150
+ Inputs:
2151
+
2152
+ | Name | Type | Default | Description |
2153
+ | --- | --- | --- | --- |
2154
+ | placement | `'bottom-start' | 'bottom-end' | 'top-start' | 'top-end'` | `'bottom-start'` | Preferred side of the trigger to render on; flips when space is tight. |
2155
+ | sideOffset | `number` | `4` | Gap in pixels between the trigger and the panel. |
2156
+ | class | `string` | `''` | Extra Tailwind classes merged onto the panel via `cn()` (last-wins). |
2157
+
2158
+ Slots: _default_
2159
+
2160
+ ### `<tolle-menubar-item>`
2161
+
2162
+ Inputs:
2163
+
2164
+ | Name | Type | Default | Description |
2165
+ | --- | --- | --- | --- |
2166
+ | variant | `'default' | 'destructive'` | `'default'` | Visual style of the item. |
2167
+ | inset | `boolean` | `false` | Adds left padding so the label lines up with items that have icons. |
2168
+ | disabled | `boolean` | `false` | Blocks activation and dims the item. |
2169
+ | class | `string` | `''` | Extra Tailwind classes merged onto the item via `cn()` (last-wins). |
2170
+
2171
+ Outputs:
2172
+
2173
+ | Name | Payload | Description |
2174
+ | --- | --- | --- |
2175
+ | select | `Event` | Emitted when the item is clicked or activated with Enter/Space. |
2176
+
2177
+ Slots: `[prefix]`, _default_, `[shortcut]`
2178
+
2179
+ Variants:
2180
+ - `variant`: `default`, `destructive` (default `default`)
2181
+ - `inset`: `true`, `false` (default `false`)
2182
+
2183
+ ### `<tolle-menubar-label>`
2184
+
2185
+ Inputs:
2186
+
2187
+ | Name | Type | Default | Description |
2188
+ | --- | --- | --- | --- |
2189
+ | inset | `boolean` | `false` | Adds left padding so the label lines up with items that have icons. |
2190
+ | class | `string` | `''` | Extra Tailwind classes merged onto the label via `cn()` (last-wins). |
2191
+
2192
+ Slots: _default_
2193
+
2194
+ ### `<tolle-menubar-separator>`
2195
+
2196
+ Inputs:
2197
+
2198
+ | Name | Type | Default | Description |
2199
+ | --- | --- | --- | --- |
2200
+ | class | `string` | `''` | Extra Tailwind classes merged onto the separator via `cn()` (last-wins). |
2201
+
2202
+ ## Message
2203
+
2204
+ - Install: `npx @tolle_/cli add message`
2205
+ - Import: `import { MessageAlignAware, MessageComponent, MessageGroupComponent, MessageAvatarComponent, MessageContentComponent, MessageHeaderComponent, MessageFooterComponent } from '@tolle_/tolle-ui';`
2206
+
2207
+ ### `<MessageAlignAware>` (directive)
2208
+
2209
+ Inputs:
2210
+
2211
+ | Name | Type | Default | Description |
2212
+ | --- | --- | --- | --- |
2213
+ | class | `string` | `''` | Extra Tailwind classes merged onto the element via `cn()` (last-wins). |
2214
+
2215
+ ### `<tolle-message>`
2216
+
2217
+ Inputs:
2218
+
2219
+ | Name | Type | Default | Description |
2220
+ | --- | --- | --- | --- |
2221
+ | align | `'start' | 'end'` | `'start'` | Which edge the message hangs off — 'start' for incoming, 'end' for outgoing. |
2222
+ | size | `'sm' | 'default'` | `'default'` | Gap density of the row. |
2223
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
2224
+
2225
+ Slots: _default_
2226
+
2227
+ Variants:
2228
+ - `align`: `start`, `end` (default `start`)
2229
+ - `size`: `sm`, `default` (default `default`)
2230
+
2231
+ ### `<tolle-message-group>`
2232
+
2233
+ Inputs:
2234
+
2235
+ | Name | Type | Default | Description |
2236
+ | --- | --- | --- | --- |
2237
+ | align | `'start' | 'end'` | `'start'` | Edge the grouped messages hang off. |
2238
+ | spacing | `'tight' | 'default' | 'loose'` | `'default'` | Vertical gap between the grouped messages. |
2239
+ | class | `string` | `''` | Extra Tailwind classes merged onto the group via `cn()` (last-wins). |
2240
+
2241
+ Slots: _default_
2242
+
2243
+ Variants:
2244
+ - `align`: `start`, `end` (default `start`)
2245
+ - `spacing`: `tight`, `default`, `loose` (default `default`)
2246
+
2247
+ ### `<tolle-message-avatar>`
2248
+
2249
+ Slots: _default_
2250
+
2251
+ ### `<tolle-message-content>`
2252
+
2253
+ Slots: _default_
2254
+
2255
+ ### `<tolle-message-header>`
2256
+
2257
+ Slots: _default_
2258
+
2259
+ ### `<tolle-message-footer>`
2260
+
2261
+ Slots: _default_
2262
+
2263
+ ## Message Scroller
2264
+
2265
+ - Install: `npx @tolle_/cli add message-scroller`
2266
+ - Import: `import { MessageScrollerComponent, MessageScrollerViewportComponent, MessageScrollerContentComponent, MessageScrollerItemDirective, MessageScrollerButtonComponent } from '@tolle_/tolle-ui';`
2267
+
2268
+ ### `<tolle-message-scroller>`
2269
+
2270
+ Inputs:
2271
+
2272
+ | Name | Type | Default | Description |
2273
+ | --- | --- | --- | --- |
2274
+ | startPosition | `ScrollStartPosition` | `'last-anchor'` | Where to land when the transcript first renders. `last-anchor` opens at the
2275
+ newest turn so a long answer starts from its first line. |
2276
+ | scrollPreviousItemPeek | `number` | `48` | Pixels of the previous turn kept visible above an anchored turn, so the
2277
+ reader can see what the reply is responding to. |
2278
+ | threshold | `number` | `32` | Distance from the bottom, in px, still treated as the live edge. |
2279
+ | class | `string` | `''` | Extra Tailwind classes merged onto the frame via `cn()` (last-wins). |
2280
+
2281
+ Outputs:
2282
+
2283
+ | Name | Payload | Description |
2284
+ | --- | --- | --- |
2285
+ | atBottomChange | `boolean` | Emitted when the reader arrives at, or leaves, the live edge. |
2286
+
2287
+ Slots: _default_
2288
+
2289
+ ### `<tolle-message-scroller-viewport>`
2290
+
2291
+ Inputs:
2292
+
2293
+ | Name | Type | Default | Description |
2294
+ | --- | --- | --- | --- |
2295
+ | class | `string` | `''` | Extra Tailwind classes merged onto the viewport via `cn()` (last-wins). |
2296
+
2297
+ Slots: _default_
2298
+
2299
+ ### `<tolle-message-scroller-content>`
2300
+
2301
+ Inputs:
2302
+
2303
+ | Name | Type | Default | Description |
2304
+ | --- | --- | --- | --- |
2305
+ | class | `string` | `''` | Extra Tailwind classes merged onto the transcript via `cn()` (last-wins). |
699
2306
 
700
- ### `<tolle-empty-state>`
2307
+ Slots: _default_
2308
+
2309
+ ### `<[tolleMessageScrollerItem]>` (directive)
701
2310
 
702
2311
  Inputs:
703
2312
 
704
2313
  | Name | Type | Default | Description |
705
2314
  | --- | --- | --- | --- |
706
- | variant | `'default' | 'minimal'` | `'default'` | |
707
- | title | `string` | `'No items found'` | |
708
- | description | `string` | — | |
709
- | class | `string` | `''` | |
2315
+ | scrollAnchor | `boolean` | `false` | Marks this row as the start of a turn. |
710
2316
 
711
- Slots: `[icon]`, `[actions]`
2317
+ ### `<tolle-message-scroller-button>`
2318
+
2319
+ Inputs:
2320
+
2321
+ | Name | Type | Default | Description |
2322
+ | --- | --- | --- | --- |
2323
+ | ariaLabel | `string` | `'Jump to latest messages'` | Accessible name for the jump control. |
2324
+ | class | `string` | `''` | Extra Tailwind classes merged onto the button via `cn()` (last-wins). |
2325
+
2326
+ Slots: _default_
2327
+
2328
+ ## Modal
2329
+
2330
+ - Install: `npx @tolle_/cli add modal`
2331
+ - Import: `import { ModalComponent } from '@tolle_/tolle-ui';`
2332
+
2333
+ ### `<tolle-modal>`
2334
+
2335
+ ## Model Selector
2336
+
2337
+ - Install: `npx @tolle_/cli add model-selector`
2338
+ - Import: `import { ModelSelectorComponent } from '@tolle_/tolle-ui';`
2339
+
2340
+ ### `<tolle-model-selector>`
2341
+
2342
+ Inputs:
2343
+
2344
+ | Name | Type | Default | Description |
2345
+ | --- | --- | --- | --- |
2346
+ | models | `ModelOption[]` | `[]` | Models to choose from; grouped by `provider` when that field is set. |
2347
+ | placeholder | `string` | `'Select a model'` | Text shown on the trigger when nothing is selected. |
2348
+ | searchPlaceholder | `string` | `'Search models…'` | Placeholder inside the search box. |
2349
+ | emptyMessage | `string` | `'No models found.'` | Message shown when the query matches no model. |
2350
+ | searchable | `boolean` | `true` | Shows the search box above the list. |
2351
+ | showProviderOnTrigger | `boolean` | `false` | Prefixes the selected model's name with its provider on the trigger. |
2352
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger. |
2353
+ | variant | `'default' | 'ghost'` | `'default'` | Visual style of the trigger. |
2354
+ | icon | `string` | `'ri-sparkling-line'` | Optional remixicon class shown at the start of the trigger. |
2355
+ | placement | `'top-start' | 'top-end' | 'bottom-start' | 'bottom-end'` | `'bottom-start'` | Where the list opens relative to the trigger. |
2356
+ | disabled | `boolean` | `false` | Disables the control. |
2357
+ | ariaLabel | `string` | `''` | Accessible name for the trigger and list. |
2358
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
2359
+
2360
+ Outputs:
2361
+
2362
+ | Name | Payload | Description |
2363
+ | --- | --- | --- |
2364
+ | valueChange | `string | null` | Emitted with the chosen model's `id` whenever the selection changes. |
2365
+ | modelChange | `ModelOption | null` | Emitted with the whole `ModelOption` whenever the selection changes. |
712
2366
 
713
2367
  Variants:
714
- - `variant`: `default`, `minimal` (default `default`)
2368
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
2369
+ - `variant`: `default`, `ghost` (default `default`)
715
2370
 
716
- ## Hover Card
2371
+ ## Multi Select
717
2372
 
718
- - Install: `npx @tolle_/cli add hover-card`
719
- - Import: `import { HoverCardComponent, HoverCardTriggerComponent, HoverCardContentComponent } from '@tolle_/tolle-ui';`
2373
+ - Install: `npx @tolle_/cli add multi-select`
2374
+ - Import: `import { MultiSelectComponent } from '@tolle_/tolle-ui';`
720
2375
 
721
- ### `<tolle-hover-card>`
2376
+ ### `<tolle-multi-select>`
722
2377
 
723
2378
  Inputs:
724
2379
 
725
2380
  | Name | Type | Default | Description |
726
2381
  | --- | --- | --- | --- |
727
- | openDelay | `number` | `700` | |
728
- | closeDelay | `number` | `300` | |
729
- | placement | `'top' | 'bottom' | 'left' | 'right'` | `'bottom'` | |
2382
+ | placeholder | `string` | `'Select options...'` | Text shown on the trigger when nothing is selected. |
2383
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Padding and text size of the trigger. |
2384
+ | searchable | `boolean` | `false` | Adds a search box that filters the projected options. |
2385
+ | disabled | `boolean` | `false` | Disables the control and blocks opening the panel. |
2386
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
2387
+ | maxSelections | `number` | — | Largest number of values that can be selected at once; leave unset for no cap. |
2388
+ | maxDisplayItems | `number` | `3` | How many chips to render before collapsing the rest into a "+N more" hint. |
2389
+ | error | `boolean` | `false` | Applies the destructive border and focus ring. |
730
2390
 
731
- Slots: _default_
2391
+ Outputs:
732
2392
 
733
- ### `<tolle-hover-card-trigger>`
2393
+ | Name | Payload | Description |
2394
+ | --- | --- | --- |
2395
+ | valueChange | `any[]` | Emitted with the full array of selected values whenever the selection changes. |
2396
+ | opened | `void` | Emitted when the panel opens. |
2397
+ | closed | `void` | Emitted when the panel closes. |
734
2398
 
735
2399
  Slots: _default_
736
2400
 
737
- ### `<tolle-hover-card-content>`
2401
+ Variants:
2402
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
2403
+ - `error`: `true`, `false` (default `false`)
2404
+ - `disabled`: `true`, `false` (default `false`)
2405
+
2406
+ ## Native Select
2407
+
2408
+ - Install: `npx @tolle_/cli add native-select`
2409
+ - Import: `import { NativeSelectComponent } from '@tolle_/tolle-ui';`
2410
+
2411
+ ### `<tolle-native-select>`
738
2412
 
739
2413
  Inputs:
740
2414
 
741
2415
  | Name | Type | Default | Description |
742
2416
  | --- | --- | --- | --- |
743
- | class | `string` | `''` | |
2417
+ | id | `any` | ``native-select-${Math.random().toString(36).slice(2, 11)}`` | Id applied to the underlying `<select>`; pair it with a `tolle-label`. |
2418
+ | options | `NativeSelectOption[]` | `[]` | Options to render. Omit and project `<option>` elements for custom markup. |
2419
+ | placeholder | `string` | `''` | Non-selectable prompt shown when no value is set. |
2420
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the control. |
2421
+ | invalid | `boolean` | `false` | Applies the destructive border and sets `aria-invalid`. |
2422
+ | disabled | `boolean` | `false` | Disables the control. |
2423
+ | ariaLabel | `string` | `''` | Accessible name when there is no associated visible label. |
2424
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<select>` via `cn()` (last-wins). |
2425
+
2426
+ Outputs:
2427
+
2428
+ | Name | Payload | Description |
2429
+ | --- | --- | --- |
2430
+ | valueChange | `any` | Emitted with the newly selected value whenever the user picks an option. |
744
2431
 
745
2432
  Slots: _default_
746
2433
 
747
- ## Input
2434
+ Variants:
2435
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
2436
+ - `invalid`: `true`, `false` (default `false`)
748
2437
 
749
- - Install: `npx @tolle_/cli add input`
750
- - Import: `import { InputComponent } from '@tolle_/tolle-ui';`
2438
+ ## Navigation Menu
751
2439
 
752
- ### `<tolle-input>`
2440
+ - Install: `npx @tolle_/cli add navigation-menu`
2441
+ - Import: `import { NavigationMenuComponent, NavigationMenuListComponent, NavigationMenuItemComponent, NavigationMenuTriggerComponent, NavigationMenuContentComponent, NavigationMenuLinkComponent } from '@tolle_/tolle-ui';`
2442
+
2443
+ ### `<tolle-navigation-menu>`
753
2444
 
754
2445
  Inputs:
755
2446
 
756
2447
  | Name | Type | Default | Description |
757
2448
  | --- | --- | --- | --- |
758
- | id | `string` | ``input-${Math.random().toString(36).substr(2, 9)}`` | |
759
- | label | `string` | `''` | |
760
- | hint | `string` | `''` | |
761
- | errorMessage | `string` | `''` | |
762
- | type | `string` | `'text'` | |
763
- | placeholder | `string` | `''` | |
764
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
765
- | containerClass | `string` | `''` | |
766
- | class | `string` | `''` | |
767
- | disabled | `boolean` | `false` | |
768
- | readonly | `boolean` | `false` | |
769
- | error | `boolean` | `false` | |
770
- | hideHintOnFocus | `boolean` | `true` | |
2449
+ | align | `'start' | 'center' | 'end'` | `'center'` | Horizontal alignment of the list within the nav. |
2450
+ | ariaLabel | `string` | `'Main'` | Accessible name for the `<nav>` landmark. |
2451
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<nav>` via `cn()` (last-wins). |
2452
+ | closeDelay | `number` | `150` | Milliseconds before a panel closes after the pointer leaves — the grace
2453
+ period that lets the pointer travel diagonally into the panel. |
771
2454
 
772
- Slots: `[prefix]`, `[suffix]`
2455
+ Outputs:
773
2456
 
774
- ## Label
2457
+ | Name | Payload | Description |
2458
+ | --- | --- | --- |
2459
+ | openChange | `string | null` | Emitted with the id of the item that opened, or `null` when the menu closes. |
775
2460
 
776
- - Install: `npx @tolle_/cli add label`
777
- - Import: `import { LabelComponent } from '@tolle_/tolle-ui';`
2461
+ Slots: _default_
778
2462
 
779
- ### `<tolle-label>`
2463
+ Variants:
2464
+ - `align`: `start`, `center`, `end` (default `center`)
2465
+
2466
+ ### `<tolle-navigation-menu-list>`
780
2467
 
781
2468
  Inputs:
782
2469
 
783
2470
  | Name | Type | Default | Description |
784
2471
  | --- | --- | --- | --- |
785
- | for | `string` | | |
786
- | class | `string` | `''` | |
2472
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<ul>` via `cn()` (last-wins). |
787
2473
 
788
2474
  Slots: _default_
789
2475
 
790
- ## Masked Input
2476
+ ### `<tolle-navigation-menu-item>`
791
2477
 
792
- - Install: `npx @tolle_/cli add masked-input`
793
- - Import: `import { MaskedInputComponent } from '@tolle_/tolle-ui';`
2478
+ Inputs:
794
2479
 
795
- ### `<tolle-masked-input>`
2480
+ | Name | Type | Default | Description |
2481
+ | --- | --- | --- | --- |
2482
+ | id | `any` | ``tolle-navigation-menu-item-${navigationMenuItemCounter++}`` | Explicit id for the item; one is generated when omitted. |
2483
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<li>` via `cn()` (last-wins). |
2484
+
2485
+ Slots: _default_
2486
+
2487
+ ### `<tolle-navigation-menu-trigger>`
796
2488
 
797
2489
  Inputs:
798
2490
 
799
2491
  | Name | Type | Default | Description |
800
2492
  | --- | --- | --- | --- |
801
- | id | `string` | ``masked-input-${Math.random().toString(36).substr(2, 9)}`` | |
802
- | label | `string` | `''` | |
803
- | hint | `string` | `''` | |
804
- | errorMessage | `string` | `''` | |
805
- | mask | `string` | `''` | |
806
- | placeholder | `string` | `''` | |
807
- | type | `string` | `'text'` | |
808
- | disabled | `boolean` | `false` | |
809
- | readonly | `boolean` | `false` | |
810
- | class | `string` | `''` | |
811
- | containerClass | `string` | `''` | |
812
- | error | `boolean` | `false` | |
813
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
814
- | returnRaw | `boolean` | `false` | |
815
- | hideHintOnFocus | `boolean` | `true` | |
816
- | externalFocused | `boolean | undefined` | — | |
2493
+ | disabled | `boolean` | `false` | Prevents the panel from opening. |
2494
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Height/padding scale of the trigger. |
2495
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
817
2496
 
818
- Slots: `[prefix]`, `[suffix]`
2497
+ Slots: _default_
819
2498
 
820
- ## Modal
2499
+ Variants:
2500
+ - `size`: `sm`, `default`, `lg` (default `default`)
821
2501
 
822
- - Install: `npx @tolle_/cli add modal`
823
- - Import: `import { ModalComponent } from '@tolle_/tolle-ui';`
2502
+ ### `<tolle-navigation-menu-content>`
824
2503
 
825
- ### `<tolle-modal>`
2504
+ Inputs:
826
2505
 
827
- ## Multi Select
2506
+ | Name | Type | Default | Description |
2507
+ | --- | --- | --- | --- |
2508
+ | placement | `'bottom' | 'bottom-start' | 'bottom-end' | 'top' | 'top-start' | 'top-end'` | `'bottom'` | Preferred side of the trigger to render on; flips when space is tight. |
2509
+ | sideOffset | `number` | `8` | Gap in pixels between the trigger and the panel. |
2510
+ | class | `string` | `''` | Extra Tailwind classes merged onto the panel via `cn()` (last-wins). |
828
2511
 
829
- - Install: `npx @tolle_/cli add multi-select`
830
- - Import: `import { MultiSelectComponent } from '@tolle_/tolle-ui';`
2512
+ Slots: _default_
831
2513
 
832
- ### `<tolle-multi-select>`
2514
+ ### `<tolle-navigation-menu-link>`
833
2515
 
834
2516
  Inputs:
835
2517
 
836
2518
  | Name | Type | Default | Description |
837
2519
  | --- | --- | --- | --- |
838
- | placeholder | `string` | `'Select options...'` | |
839
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
840
- | searchable | `boolean` | `false` | |
841
- | disabled | `boolean` | `false` | |
842
- | class | `string` | `''` | |
843
- | maxSelections | `number` | — | |
844
- | maxDisplayItems | `number` | `3` | |
845
- | error | `boolean` | `false` | |
2520
+ | href | `string` | `''` | Destination URL. Omit to render a non-navigating item. |
2521
+ | target | `string` | `''` | Anchor target; `_blank` also sets a safe `rel`. |
2522
+ | active | `boolean` | `false` | Marks the link as the current page. |
2523
+ | variant | `'default' | 'muted'` | `'default'` | Visual style of the link. |
2524
+ | class | `string` | `''` | Extra Tailwind classes merged onto the anchor via `cn()` (last-wins). |
846
2525
 
847
- Slots: _default_
2526
+ Outputs:
2527
+
2528
+ | Name | Payload | Description |
2529
+ | --- | --- | --- |
2530
+ | navigate | `MouseEvent` | Emitted with the click event when the link is activated. |
2531
+
2532
+ Slots: `[label]`, _default_, `[description]`
2533
+
2534
+ Variants:
2535
+ - `variant`: `default`, `muted` (default `default`)
2536
+ - `active`: `true`, `false` (default `false`)
848
2537
 
849
2538
  ## Otp
850
2539
 
@@ -950,6 +2639,47 @@ Outputs:
950
2639
  | --- | --- | --- |
951
2640
  | onSelect | `any` | |
952
2641
 
2642
+ ## Plan
2643
+
2644
+ - Install: `npx @tolle_/cli add plan`
2645
+ - Import: `import { PlanComponent, PlanStepComponent } from '@tolle_/tolle-ui';`
2646
+
2647
+ ### `<tolle-plan>`
2648
+
2649
+ Inputs:
2650
+
2651
+ | Name | Type | Default | Description |
2652
+ | --- | --- | --- | --- |
2653
+ | title | `string` | `'Plan'` | Heading shown above the steps. |
2654
+ | collapsed | `boolean` | `false` | Shows only the header and its "Step N of M" summary. |
2655
+ | collapsible | `boolean` | `true` | Lets the user collapse and expand the plan by clicking the header. |
2656
+ | size | `'sm' | 'default'` | `'default'` | Padding and text scale of the plan. |
2657
+ | class | `string` | `''` | Extra Tailwind classes merged onto the plan via `cn()` (last-wins). |
2658
+
2659
+ Outputs:
2660
+
2661
+ | Name | Payload | Description |
2662
+ | --- | --- | --- |
2663
+ | collapsedChange | `boolean` | Emitted with the new collapsed state when the header is toggled. |
2664
+
2665
+ Slots: _default_
2666
+
2667
+ Variants:
2668
+ - `size`: `sm`, `default` (default `default`)
2669
+
2670
+ ### `<tolle-plan-step>`
2671
+
2672
+ Inputs:
2673
+
2674
+ | Name | Type | Default | Description |
2675
+ | --- | --- | --- | --- |
2676
+ | label | `string` | `''` | What this step does. |
2677
+ | description | `string` | `''` | Supporting detail shown under the label. |
2678
+ | status | `PlanStepStatus` | `'pending'` | Progress of this step; drives the badge colour and glyph. |
2679
+ | class | `string` | `''` | Extra Tailwind classes merged onto the step via `cn()` (last-wins). |
2680
+
2681
+ Slots: _default_
2682
+
953
2683
  ## Popover
954
2684
 
955
2685
  - Install: `npx @tolle_/cli add popover`
@@ -996,10 +2726,130 @@ Slots: _default_
996
2726
 
997
2727
  Inputs:
998
2728
 
999
- | Name | Type | Default | Description |
1000
- | --- | --- | --- | --- |
1001
- | value | `number | null` | `0` | |
1002
- | class | `string` | `''` | |
2729
+ | Name | Type | Default | Description |
2730
+ | --- | --- | --- | --- |
2731
+ | value | `number | null` | `0` | |
2732
+ | class | `string` | `''` | |
2733
+
2734
+ ## Prompt Input
2735
+
2736
+ - Install: `npx @tolle_/cli add prompt-input`
2737
+ - Import: `import { PromptInputComponent, PromptInputToolbarComponent, PromptInputToolsComponent, PromptInputSubmitComponent } from '@tolle_/tolle-ui';`
2738
+
2739
+ ### `<tolle-prompt-input>`
2740
+
2741
+ Inputs:
2742
+
2743
+ | Name | Type | Default | Description |
2744
+ | --- | --- | --- | --- |
2745
+ | placeholder | `string` | `'Send a message…'` | Placeholder shown while the composer is empty. |
2746
+ | disabled | `boolean` | `false` | Blocks typing and submission. |
2747
+ | maxRows | `number` | `8` | Rows the textarea may grow to before it starts scrolling. |
2748
+ | status | `PromptInputStatus` | `'ready'` | Lifecycle of the response being composed. |
2749
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Size scale of the composer. |
2750
+ | submitOnEnter | `boolean` | `true` | Submit on Enter, keeping Shift+Enter for newlines. |
2751
+ | clearOnSubmit | `boolean` | `true` | Clears the composer after a successful submit. |
2752
+ | ariaLabel | `string` | `''` | Accessible name for the textarea. |
2753
+ | class | `string` | `''` | Extra Tailwind classes merged onto the composer via `cn()` (last-wins). |
2754
+ | textareaClass | `string` | `''` | Extra Tailwind classes merged onto the textarea via `cn()` (last-wins). |
2755
+
2756
+ Outputs:
2757
+
2758
+ | Name | Payload | Description |
2759
+ | --- | --- | --- |
2760
+ | submitted | `string` | Emitted with the trimmed message text when the user submits. |
2761
+ | stopped | `void` | Emitted when the user cancels an in-flight streaming response. |
2762
+ | valueChange | `string` | Emitted with the message text whenever it changes. |
2763
+
2764
+ Slots: _default_
2765
+
2766
+ Variants:
2767
+ - `status`: `ready`, `streaming`, `error` (default `ready`)
2768
+ - `size`: `sm`, `default`, `lg` (default `default`)
2769
+
2770
+ ### `<tolle-prompt-input-toolbar>`
2771
+
2772
+ Inputs:
2773
+
2774
+ | Name | Type | Default | Description |
2775
+ | --- | --- | --- | --- |
2776
+ | class | `string` | `''` | Extra Tailwind classes merged onto the toolbar via `cn()` (last-wins). |
2777
+
2778
+ Slots: _default_
2779
+
2780
+ ### `<tolle-prompt-input-tools>`
2781
+
2782
+ Inputs:
2783
+
2784
+ | Name | Type | Default | Description |
2785
+ | --- | --- | --- | --- |
2786
+ | class | `string` | `''` | Extra Tailwind classes merged onto the tool row via `cn()` (last-wins). |
2787
+
2788
+ Slots: _default_
2789
+
2790
+ ### `<tolle-prompt-input-submit>`
2791
+
2792
+ Inputs:
2793
+
2794
+ | Name | Type | Default | Description |
2795
+ | --- | --- | --- | --- |
2796
+ | variant | `'default' | 'secondary' | 'ghost'` | `'default'` | Visual style of the button. |
2797
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Size of the button. |
2798
+ | submitLabel | `string` | `'Send message'` | Accessible name while the composer is idle. |
2799
+ | stopLabel | `string` | `'Stop generating'` | Accessible name while the composer is streaming. |
2800
+ | showLabel | `boolean` | `false` | Renders the label next to the icon. |
2801
+ | class | `string` | `''` | Extra Tailwind classes merged onto the button via `cn()` (last-wins). |
2802
+
2803
+ Variants:
2804
+ - `variant`: `default`, `secondary`, `ghost` (default `default`)
2805
+ - `size`: `sm`, `default`, `lg` (default `default`)
2806
+
2807
+ ## Queue
2808
+
2809
+ - Install: `npx @tolle_/cli add queue`
2810
+ - Import: `import { QueueComponent, QueueItemComponent } from '@tolle_/tolle-ui';`
2811
+
2812
+ ### `<tolle-queue>`
2813
+
2814
+ Inputs:
2815
+
2816
+ | Name | Type | Default | Description |
2817
+ | --- | --- | --- | --- |
2818
+ | title | `string` | `'Queue'` | Heading shown above the queued items. |
2819
+ | emptyMessage | `string` | `'Nothing queued.'` | Text shown while the queue holds nothing. |
2820
+ | size | `'sm' | 'default'` | `'default'` | Padding and text scale of the queue. |
2821
+ | class | `string` | `''` | Extra Tailwind classes merged onto the queue via `cn()` (last-wins). |
2822
+
2823
+ Outputs:
2824
+
2825
+ | Name | Payload | Description |
2826
+ | --- | --- | --- |
2827
+ | countsChange | `QueueCounts` | Emitted with the queue's tallies whenever its items change. |
2828
+
2829
+ Slots: _default_
2830
+
2831
+ Variants:
2832
+ - `size`: `sm`, `default` (default `default`)
2833
+
2834
+ ### `<tolle-queue-item>`
2835
+
2836
+ Inputs:
2837
+
2838
+ | Name | Type | Default | Description |
2839
+ | --- | --- | --- | --- |
2840
+ | label | `string` | `''` | Text describing the queued work. |
2841
+ | status | `QueueItemStatus` | `'queued'` | Lifecycle state of this entry. |
2842
+ | removable | `boolean` | `true` | Shows the trailing dismiss button that emits `remove`. |
2843
+ | removeLabel | `string` | `'Remove from queue'` | Accessible label for the dismiss button. |
2844
+ | class | `string` | `''` | Extra Tailwind classes merged onto the entry via `cn()` (last-wins). |
2845
+
2846
+ Outputs:
2847
+
2848
+ | Name | Payload | Description |
2849
+ | --- | --- | --- |
2850
+ | remove | `void` | Emitted when the user dismisses this entry. |
2851
+
2852
+ Slots: _default_
1003
2853
 
1004
2854
  ## Radio Group
1005
2855
 
@@ -1058,6 +2908,58 @@ Outputs:
1058
2908
  | --- | --- | --- |
1059
2909
  | rangeSelect | `DateRange` | |
1060
2910
 
2911
+ ## Reasoning
2912
+
2913
+ - Install: `npx @tolle_/cli add reasoning`
2914
+ - Import: `import { ReasoningComponent, ReasoningTriggerComponent, ReasoningContentComponent } from '@tolle_/tolle-ui';`
2915
+
2916
+ ### `<tolle-reasoning>`
2917
+
2918
+ Inputs:
2919
+
2920
+ | Name | Type | Default | Description |
2921
+ | --- | --- | --- | --- |
2922
+ | open | `boolean` | `false` | Whether the trace is expanded. |
2923
+ | streaming | `boolean` | `false` | True while the model is still producing the trace. |
2924
+ | duration | `number` | `0` | Seconds the model spent reasoning, shown once streaming finishes. |
2925
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Text scale of the trace. |
2926
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trace via `cn()` (last-wins). |
2927
+
2928
+ Outputs:
2929
+
2930
+ | Name | Payload | Description |
2931
+ | --- | --- | --- |
2932
+ | openChange | `boolean` | Emitted with the new state whenever the trace is expanded or collapsed. |
2933
+
2934
+ Slots: _default_
2935
+
2936
+ Variants:
2937
+ - `size`: `sm`, `default`, `lg` (default `default`)
2938
+
2939
+ ### `<tolle-reasoning-trigger>`
2940
+
2941
+ Inputs:
2942
+
2943
+ | Name | Type | Default | Description |
2944
+ | --- | --- | --- | --- |
2945
+ | icon | `string` | `'ri-brain-line'` | Remixicon class shown before the label. |
2946
+ | thinkingLabel | `string` | `'Thinking…'` | Label shown while the trace is streaming. |
2947
+ | fallbackLabel | `string` | `'Thought for a few seconds'` | Label used when the trace finished without a measured duration. |
2948
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
2949
+
2950
+ Slots: _default_
2951
+
2952
+ ### `<tolle-reasoning-content>`
2953
+
2954
+ Inputs:
2955
+
2956
+ | Name | Type | Default | Description |
2957
+ | --- | --- | --- | --- |
2958
+ | text | `string` | `''` | Reasoning text to render; project your own markup instead when richer. |
2959
+ | class | `string` | `''` | Extra Tailwind classes merged onto the content via `cn()` (last-wins). |
2960
+
2961
+ Slots: _default_
2962
+
1061
2963
  ## Resizable
1062
2964
 
1063
2965
  - Install: `npx @tolle_/cli add resizable`
@@ -1145,7 +3047,7 @@ Slots: _default_
1145
3047
  ## Segment
1146
3048
 
1147
3049
  - Install: `npx @tolle_/cli add segment`
1148
- - Import: `import { SegmentedComponent } from '@tolle_/tolle-ui';`
3050
+ - Import: `import { SegmentComponent } from '@tolle_/tolle-ui';`
1149
3051
 
1150
3052
  ### `<tolle-segment>`
1151
3053
 
@@ -1169,15 +3071,28 @@ Inputs:
1169
3071
 
1170
3072
  | Name | Type | Default | Description |
1171
3073
  | --- | --- | --- | --- |
1172
- | placeholder | `string` | `'Select an option'` | |
1173
- | class | `string` | `''` | |
1174
- | disabled | `boolean` | `false` | |
1175
- | searchable | `boolean` | `false` | |
1176
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | |
1177
- | readonly | `boolean` | `false` | |
3074
+ | placeholder | `string` | `'Select an option'` | Text shown on the trigger when nothing is selected. |
3075
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
3076
+ | disabled | `boolean` | `false` | Disables the control and blocks opening the panel. |
3077
+ | searchable | `boolean` | `false` | Adds a search box that filters the projected options. |
3078
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger. |
3079
+ | readonly | `boolean` | `false` | Shows the current value but blocks opening the panel. |
3080
+
3081
+ Outputs:
3082
+
3083
+ | Name | Payload | Description |
3084
+ | --- | --- | --- |
3085
+ | valueChange | `any` | Emitted with the chosen value whenever the selection changes. |
3086
+ | opened | `void` | Emitted when the panel opens. |
3087
+ | closed | `void` | Emitted when the panel closes. |
1178
3088
 
1179
3089
  Slots: _default_
1180
3090
 
3091
+ Variants:
3092
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
3093
+ - `disabled`: `true`, `false` (default `false`)
3094
+ - `readonly`: `true`, `false` (default `false`)
3095
+
1181
3096
  ## Select Group
1182
3097
 
1183
3098
  - Install: `npx @tolle_/cli add select-group`
@@ -1198,185 +3113,418 @@ Slots: _default_
1198
3113
  - Install: `npx @tolle_/cli add select-item`
1199
3114
  - Import: `import { SelectItemComponent } from '@tolle_/tolle-ui';`
1200
3115
 
1201
- ### `<tolle-select-item>`
3116
+ ### `<tolle-select-item>`
3117
+
3118
+ Inputs:
3119
+
3120
+ | Name | Type | Default | Description |
3121
+ | --- | --- | --- | --- |
3122
+ | value | `any` | — | |
3123
+ | class | `string` | `''` | |
3124
+ | selected | `boolean` | `false` | |
3125
+ | disabled | `boolean` | `false` | |
3126
+ | multiSelect | `boolean` | `false` | |
3127
+ | id | `any` | ``select-item-${Math.random().toString(36).substr(2, 9)}`` | |
3128
+ | active | `boolean` | `false` | |
3129
+
3130
+ Slots: _default_
3131
+
3132
+ ## Select Separator
3133
+
3134
+ - Install: `npx @tolle_/cli add select-separator`
3135
+ - Import: `import { SelectSeparatorComponent } from '@tolle_/tolle-ui';`
3136
+
3137
+ ### `<tolle-select-separator>`
3138
+
3139
+ Inputs:
3140
+
3141
+ | Name | Type | Default | Description |
3142
+ | --- | --- | --- | --- |
3143
+ | class | `string` | `''` | |
3144
+
3145
+ ## Separator
3146
+
3147
+ - Install: `npx @tolle_/cli add separator`
3148
+ - Import: `import { SeparatorComponent } from '@tolle_/tolle-ui';`
3149
+
3150
+ ### `<tolle-separator>`
3151
+
3152
+ Inputs:
3153
+
3154
+ | Name | Type | Default | Description |
3155
+ | --- | --- | --- | --- |
3156
+ | orientation | `'horizontal' | 'vertical'` | `'horizontal'` | Orientation of the rule. |
3157
+ | decorative | `boolean` | `true` | When true, the separator is purely visual (aria-hidden, role="none"). |
3158
+ | class | `string` | `''` | |
3159
+
3160
+ ## Sheet
3161
+
3162
+ - Install: `npx @tolle_/cli add sheet`
3163
+ - Import: `import { SheetComponent, SheetTriggerComponent, SheetContentComponent, SheetHeaderComponent, SheetFooterComponent, SheetTitleComponent, SheetDescriptionComponent } from '@tolle_/tolle-ui';`
3164
+
3165
+ ### `<tolle-sheet>`
3166
+
3167
+ Inputs:
3168
+
3169
+ | Name | Type | Default | Description |
3170
+ | --- | --- | --- | --- |
3171
+ | isOpen | `boolean` | `false` | |
3172
+ | hasBackdrop | `boolean` | `true` | |
3173
+
3174
+ Outputs:
3175
+
3176
+ | Name | Payload | Description |
3177
+ | --- | --- | --- |
3178
+ | isOpenChange | `boolean` | |
3179
+
3180
+ Slots: _default_
3181
+
3182
+ ### `<tolle-sheet-trigger>`
3183
+
3184
+ Slots: _default_
3185
+
3186
+ ### `<tolle-sheet-content>`
3187
+
3188
+ Inputs:
3189
+
3190
+ | Name | Type | Default | Description |
3191
+ | --- | --- | --- | --- |
3192
+ | side | `'top' | 'bottom' | 'left' | 'right'` | `'right'` | |
3193
+ | rounded | `boolean` | `false` | |
3194
+ | class | `string` | `''` | |
3195
+
3196
+ Slots: _default_
3197
+
3198
+ ### `<tolle-sheet-header>`
3199
+
3200
+ Slots: _default_
3201
+
3202
+ ### `<tolle-sheet-footer>`
3203
+
3204
+ Slots: _default_
3205
+
3206
+ ### `<tolle-sheet-title>`
3207
+
3208
+ Slots: _default_
3209
+
3210
+ ### `<tolle-sheet-description>`
3211
+
3212
+ Slots: _default_
3213
+
3214
+ ## Sheet Wrapper
3215
+
3216
+ - Install: `npx @tolle_/cli add sheet-wrapper`
3217
+ - Import: `import { SheetWrapperComponent } from '@tolle_/tolle-ui';`
3218
+
3219
+ ### `<tolle-sheet-wrapper>`
3220
+
3221
+ ## Shimmer
3222
+
3223
+ - Install: `npx @tolle_/cli add shimmer`
3224
+ - Import: `import { ShimmerComponent } from '@tolle_/tolle-ui';`
3225
+
3226
+ ### `<tolle-shimmer>`
3227
+
3228
+ Inputs:
3229
+
3230
+ | Name | Type | Default | Description |
3231
+ | --- | --- | --- | --- |
3232
+ | active | `boolean` | `true` | Runs the shimmer animation; false renders plain static text. |
3233
+ | size | `'xs' | 'sm' | 'default' | 'lg' | 'xl'` | `'default'` | Text size of the label. |
3234
+ | class | `string` | `''` | Extra Tailwind classes merged onto the label via `cn()` (last-wins). |
3235
+
3236
+ Slots: _default_
3237
+
3238
+ Variants:
3239
+ - `size`: `xs`, `sm`, `default`, `lg`, `xl` (default `default`)
3240
+ - `active`: `true`, `false` (default `true`)
3241
+
3242
+ ## Sidebar
3243
+
3244
+ - Install: `npx @tolle_/cli add sidebar`
3245
+ - Import: `import { SidebarComponent } from '@tolle_/tolle-ui';`
3246
+
3247
+ ### `<tolle-sidebar>`
3248
+
3249
+ Inputs:
3250
+
3251
+ | Name | Type | Default | Description |
3252
+ | --- | --- | --- | --- |
3253
+ | items | `SidebarGroup[]` | `[]` | |
3254
+ | collapsed | `boolean` | `false` | |
3255
+ | class | `string` | `''` | |
3256
+ | variant | `'default' | 'secondary' | 'ghost' | 'outline'` | `'default'` | Styling variant for active items.
3257
+ - default: Solid primary background, light text (Matches Badge Default)
3258
+ - secondary: Solid secondary background
3259
+ - ghost: Transparent background, accent text (Shadcn standard)
3260
+ - outline: Bordered |
3261
+
3262
+ Slots: `[header]`, `[footer]`
3263
+
3264
+ ## Skeleton
3265
+
3266
+ - Install: `npx @tolle_/cli add skeleton`
3267
+ - Import: `import { SkeletonComponent } from '@tolle_/tolle-ui';`
3268
+
3269
+ ### `<tolle-skeleton>`
3270
+
3271
+ Inputs:
3272
+
3273
+ | Name | Type | Default | Description |
3274
+ | --- | --- | --- | --- |
3275
+ | variant | `'rect' | 'circle' | 'pill'` | `'rect'` | Shape of the skeleton placeholder. |
3276
+ | class | `string` | `''` | Extra Tailwind classes merged onto the skeleton via `cn()` (last-wins). |
3277
+
3278
+ Variants:
3279
+ - `variant`: `rect`, `circle`, `pill` (default `rect`)
3280
+
3281
+ ## Slider
3282
+
3283
+ - Install: `npx @tolle_/cli add slider`
3284
+ - Import: `import { SliderComponent } from '@tolle_/tolle-ui';`
3285
+
3286
+ ### `<tolle-slider>`
3287
+
3288
+ Inputs:
3289
+
3290
+ | Name | Type | Default | Description |
3291
+ | --- | --- | --- | --- |
3292
+ | min | `number` | `0` | |
3293
+ | max | `number` | `100` | |
3294
+ | step | `number` | `1` | |
3295
+ | disabled | `boolean` | `false` | |
3296
+ | class | `string` | `''` | |
3297
+
3298
+ ## Sources
3299
+
3300
+ - Install: `npx @tolle_/cli add sources`
3301
+ - Import: `import { SourcesComponent, SourcesTriggerComponent, SourcesContentComponent, SourceComponent } from '@tolle_/tolle-ui';`
3302
+
3303
+ ### `<tolle-sources>`
3304
+
3305
+ Inputs:
3306
+
3307
+ | Name | Type | Default | Description |
3308
+ | --- | --- | --- | --- |
3309
+ | open | `boolean` | `false` | Whether the citation list is expanded. |
3310
+ | variant | `'default' | 'card' | 'muted'` | `'default'` | Visual treatment of the list container. |
3311
+ | class | `string` | `''` | Extra Tailwind classes merged onto the list via `cn()` (last-wins). |
3312
+
3313
+ Outputs:
3314
+
3315
+ | Name | Payload | Description |
3316
+ | --- | --- | --- |
3317
+ | openChange | `boolean` | Emitted with the new state whenever the list is expanded or collapsed. |
3318
+
3319
+ Slots: _default_
3320
+
3321
+ Variants:
3322
+ - `variant`: `default`, `card`, `muted` (default `default`)
3323
+
3324
+ ### `<tolle-sources-trigger>`
3325
+
3326
+ Inputs:
3327
+
3328
+ | Name | Type | Default | Description |
3329
+ | --- | --- | --- | --- |
3330
+ | count | `number | null` | `null` | Overrides the counted number of sources. |
3331
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
3332
+
3333
+ Slots: _default_
3334
+
3335
+ ### `<tolle-sources-content>`
3336
+
3337
+ Inputs:
3338
+
3339
+ | Name | Type | Default | Description |
3340
+ | --- | --- | --- | --- |
3341
+ | class | `string` | `''` | Extra Tailwind classes merged onto the content via `cn()` (last-wins). |
3342
+
3343
+ Slots: _default_
3344
+
3345
+ ### `<tolle-source>`
1202
3346
 
1203
3347
  Inputs:
1204
3348
 
1205
3349
  | Name | Type | Default | Description |
1206
3350
  | --- | --- | --- | --- |
1207
- | value | `any` | | |
1208
- | class | `string` | `''` | |
1209
- | selected | `boolean` | `false` | |
1210
- | disabled | `boolean` | `false` | |
1211
- | multiSelect | `boolean` | `false` | |
1212
- | id | `any` | ``select-item-${Math.random().toString(36).substr(2, 9)}`` | |
1213
- | active | `boolean` | `false` | |
3351
+ | href | `string` | `''` | URL the citation points at. |
3352
+ | title | `string` | `''` | Human-readable title; falls back to the href when empty. |
3353
+ | favicon | `string` | `''` | URL of a favicon shown instead of the numbered chip. |
3354
+ | index | `number | null` | `null` | Overrides the auto-numbered position chip. |
3355
+ | size | `'sm' | 'default'` | `'default'` | Text scale of the citation. |
3356
+ | class | `string` | `''` | Extra Tailwind classes merged onto the citation via `cn()` (last-wins). |
1214
3357
 
1215
3358
  Slots: _default_
1216
3359
 
1217
- ## Select Separator
3360
+ Variants:
3361
+ - `size`: `sm`, `default` (default `default`)
1218
3362
 
1219
- - Install: `npx @tolle_/cli add select-separator`
1220
- - Import: `import { SelectSeparatorComponent } from '@tolle_/tolle-ui';`
3363
+ ## Spinner
1221
3364
 
1222
- ### `<tolle-select-separator>`
3365
+ - Install: `npx @tolle_/cli add spinner`
3366
+ - Import: `import { SpinnerComponent } from '@tolle_/tolle-ui';`
3367
+
3368
+ ### `<tolle-spinner>`
1223
3369
 
1224
3370
  Inputs:
1225
3371
 
1226
3372
  | Name | Type | Default | Description |
1227
3373
  | --- | --- | --- | --- |
1228
- | class | `string` | `''` | |
3374
+ | size | `'xs' | 'sm' | 'default' | 'lg' | 'xl'` | `'default'` | Diameter of the spinner. |
3375
+ | variant | `'default' | 'primary' | 'muted' | 'destructive'` | `'default'` | Colour of the spinner, inherited from the theme tokens. |
3376
+ | label | `string` | `'Loading'` | Accessible label announced while the spinner is visible. |
3377
+ | class | `string` | `''` | Extra Tailwind classes merged onto the spinner via `cn()` (last-wins). |
1229
3378
 
1230
- ## Separator
3379
+ Variants:
3380
+ - `size`: `xs`, `sm`, `default`, `lg`, `xl` (default `default`)
3381
+ - `variant`: `default`, `primary`, `muted`, `destructive` (default `default`)
1231
3382
 
1232
- - Install: `npx @tolle_/cli add separator`
1233
- - Import: `import { SeparatorComponent } from '@tolle_/tolle-ui';`
3383
+ ## Suggestion
1234
3384
 
1235
- ### `<tolle-separator>`
3385
+ - Install: `npx @tolle_/cli add suggestion`
3386
+ - Import: `import { SuggestionsComponent, SuggestionComponent } from '@tolle_/tolle-ui';`
3387
+
3388
+ ### `<tolle-suggestions>`
1236
3389
 
1237
3390
  Inputs:
1238
3391
 
1239
3392
  | Name | Type | Default | Description |
1240
3393
  | --- | --- | --- | --- |
1241
- | orientation | `'horizontal' | 'vertical'` | `'horizontal'` | Orientation of the rule. |
1242
- | decorative | `boolean` | `true` | When true, the separator is purely visual (aria-hidden, role="none"). |
1243
- | class | `string` | `''` | |
3394
+ | gap | `'sm' | 'default' | 'lg'` | `'default'` | Spacing between the pills. |
3395
+ | ariaLabel | `string` | `'Suggestions'` | Accessible name for the row. |
3396
+ | class | `string` | `''` | Extra Tailwind classes merged onto the row via `cn()` (last-wins). |
1244
3397
 
1245
- ## Sheet
3398
+ Outputs:
1246
3399
 
1247
- - Install: `npx @tolle_/cli add sheet`
1248
- - Import: `import { SheetComponent, SheetTriggerComponent, SheetContentComponent, SheetHeaderComponent, SheetFooterComponent, SheetTitleComponent, SheetDescriptionComponent } from '@tolle_/tolle-ui';`
3400
+ | Name | Payload | Description |
3401
+ | --- | --- | --- |
3402
+ | selected | `string` | Emitted with the `value` of whichever suggestion in the row was picked. |
1249
3403
 
1250
- ### `<tolle-sheet>`
3404
+ Slots: _default_
3405
+
3406
+ Variants:
3407
+ - `gap`: `sm`, `default`, `lg` (default `default`)
3408
+
3409
+ ### `<tolle-suggestion>`
1251
3410
 
1252
3411
  Inputs:
1253
3412
 
1254
3413
  | Name | Type | Default | Description |
1255
3414
  | --- | --- | --- | --- |
1256
- | isOpen | `boolean` | `false` | |
1257
- | hasBackdrop | `boolean` | `true` | |
3415
+ | value | `string` | `''` | Value emitted when the pill is picked. |
3416
+ | variant | `'outline' | 'secondary' | 'ghost'` | `'outline'` | Visual style of the pill. |
3417
+ | size | `'sm' | 'default' | 'lg'` | `'default'` | Size of the pill. |
3418
+ | icon | `string` | `''` | Remixicon class shown before the label. |
3419
+ | disabled | `boolean` | `false` | Blocks interaction with the pill. |
3420
+ | ariaLabel | `string` | `''` | Accessible name, when the projected label is not descriptive enough. |
3421
+ | class | `string` | `''` | Extra Tailwind classes merged onto the pill via `cn()` (last-wins). |
1258
3422
 
1259
3423
  Outputs:
1260
3424
 
1261
3425
  | Name | Payload | Description |
1262
3426
  | --- | --- | --- |
1263
- | isOpenChange | `boolean` | |
3427
+ | selected | `string` | Emitted with this pill's `value` when it is picked. |
1264
3428
 
1265
3429
  Slots: _default_
1266
3430
 
1267
- ### `<tolle-sheet-trigger>`
3431
+ Variants:
3432
+ - `variant`: `outline`, `secondary`, `ghost` (default `outline`)
3433
+ - `size`: `sm`, `default`, `lg` (default `default`)
1268
3434
 
1269
- Slots: _default_
3435
+ ## Switch
1270
3436
 
1271
- ### `<tolle-sheet-content>`
3437
+ - Install: `npx @tolle_/cli add switch`
3438
+ - Import: `import { SwitchComponent } from '@tolle_/tolle-ui';`
3439
+
3440
+ ### `<tolle-switch>`
1272
3441
 
1273
3442
  Inputs:
1274
3443
 
1275
3444
  | Name | Type | Default | Description |
1276
3445
  | --- | --- | --- | --- |
1277
- | side | `'top' | 'bottom' | 'left' | 'right'` | `'right'` | |
1278
- | rounded | `boolean` | `false` | |
1279
- | class | `string` | `''` | |
1280
-
1281
- Slots: _default_
1282
-
1283
- ### `<tolle-sheet-header>`
3446
+ | class | `string` | `''` | Extra Tailwind classes merged onto the switch track via `cn()` (last-wins). |
3447
+ | disabled | `boolean` | `false` | Disables the switch and blocks toggling. |
3448
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Size of the switch. |
1284
3449
 
1285
- Slots: _default_
3450
+ Variants:
3451
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
3452
+ - `checked`: `true`, `false` (default `false`)
1286
3453
 
1287
- ### `<tolle-sheet-footer>`
3454
+ ## Table
1288
3455
 
1289
- Slots: _default_
3456
+ - Install: `npx @tolle_/cli add table`
3457
+ - Import: `import { TableComponent, TableHeaderDirective, TableBodyDirective, TableFooterDirective, TableRowDirective, TableHeadDirective, TableCellDirective, TableCaptionDirective } from '@tolle_/tolle-ui';`
1290
3458
 
1291
- ### `<tolle-sheet-title>`
3459
+ ### `<tolle-table>`
1292
3460
 
1293
- Slots: _default_
3461
+ Inputs:
1294
3462
 
1295
- ### `<tolle-sheet-description>`
3463
+ | Name | Type | Default | Description |
3464
+ | --- | --- | --- | --- |
3465
+ | containerClass | `string` | `''` | Extra Tailwind classes merged onto the scrolling container via `cn()` (last-wins). |
3466
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<table>` via `cn()` (last-wins). |
1296
3467
 
1297
3468
  Slots: _default_
1298
3469
 
1299
- ## Sheet Wrapper
1300
-
1301
- - Install: `npx @tolle_/cli add sheet-wrapper`
1302
- - Import: `import { SheetWrapperComponent } from '@tolle_/tolle-ui';`
1303
-
1304
- ### `<tolle-sheet-wrapper>`
3470
+ ### `<[tolleTableHeader]>` (directive)
1305
3471
 
1306
- ## Sidebar
3472
+ Inputs:
1307
3473
 
1308
- - Install: `npx @tolle_/cli add sidebar`
1309
- - Import: `import { SidebarComponent } from '@tolle_/tolle-ui';`
3474
+ | Name | Type | Default | Description |
3475
+ | --- | --- | --- | --- |
3476
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<thead>` via `cn()` (last-wins). |
1310
3477
 
1311
- ### `<tolle-sidebar>`
3478
+ ### `<[tolleTableBody]>` (directive)
1312
3479
 
1313
3480
  Inputs:
1314
3481
 
1315
3482
  | Name | Type | Default | Description |
1316
3483
  | --- | --- | --- | --- |
1317
- | items | `SidebarGroup[]` | `[]` | |
1318
- | collapsed | `boolean` | `false` | |
1319
- | class | `string` | `''` | |
1320
- | variant | `'default' | 'secondary' | 'ghost' | 'outline'` | `'default'` | Styling variant for active items.
1321
- - default: Solid primary background, light text (Matches Badge Default)
1322
- - secondary: Solid secondary background
1323
- - ghost: Transparent background, accent text (Shadcn standard)
1324
- - outline: Bordered |
3484
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<tbody>` via `cn()` (last-wins). |
1325
3485
 
1326
- Slots: `[header]`, `[footer]`
3486
+ ### `<[tolleTableFooter]>` (directive)
1327
3487
 
1328
- ## Skeleton
3488
+ Inputs:
1329
3489
 
1330
- - Install: `npx @tolle_/cli add skeleton`
1331
- - Import: `import { SkeletonComponent } from '@tolle_/tolle-ui';`
3490
+ | Name | Type | Default | Description |
3491
+ | --- | --- | --- | --- |
3492
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<tfoot>` via `cn()` (last-wins). |
1332
3493
 
1333
- ### `<tolle-skeleton>`
3494
+ ### `<[tolleTableRow]>` (directive)
1334
3495
 
1335
3496
  Inputs:
1336
3497
 
1337
3498
  | Name | Type | Default | Description |
1338
3499
  | --- | --- | --- | --- |
1339
- | variant | `'rect' | 'circle' | 'pill'` | `'rect'` | Shape of the skeleton placeholder. |
1340
- | class | `string` | `''` | Extra Tailwind classes merged onto the skeleton via `cn()` (last-wins). |
3500
+ | selected | `boolean` | `false` | Applies the selected background and sets `data-state="selected"`. |
3501
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<tr>` via `cn()` (last-wins). |
1341
3502
 
1342
- Variants:
1343
- - `variant`: `rect`, `circle`, `pill` (default `rect`)
3503
+ ### `<[tolleTableHead]>` (directive)
1344
3504
 
1345
- ## Slider
3505
+ Inputs:
1346
3506
 
1347
- - Install: `npx @tolle_/cli add slider`
1348
- - Import: `import { SliderComponent } from '@tolle_/tolle-ui';`
3507
+ | Name | Type | Default | Description |
3508
+ | --- | --- | --- | --- |
3509
+ | scope | `'col' | 'row' | 'colgroup' | 'rowgroup'` | `'col'` | Scope of the header cell for assistive tech. |
3510
+ | sort | `'ascending' | 'descending' | 'none' | null` | `null` | Current sort direction, surfaced as `aria-sort`. |
3511
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<th>` via `cn()` (last-wins). |
1349
3512
 
1350
- ### `<tolle-slider>`
3513
+ ### `<[tolleTableCell]>` (directive)
1351
3514
 
1352
3515
  Inputs:
1353
3516
 
1354
3517
  | Name | Type | Default | Description |
1355
3518
  | --- | --- | --- | --- |
1356
- | min | `number` | `0` | |
1357
- | max | `number` | `100` | |
1358
- | step | `number` | `1` | |
1359
- | disabled | `boolean` | `false` | |
1360
- | class | `string` | `''` | |
1361
-
1362
- ## Switch
3519
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<td>` via `cn()` (last-wins). |
1363
3520
 
1364
- - Install: `npx @tolle_/cli add switch`
1365
- - Import: `import { SwitchComponent } from '@tolle_/tolle-ui';`
1366
-
1367
- ### `<tolle-switch>`
3521
+ ### `<[tolleTableCaption]>` (directive)
1368
3522
 
1369
3523
  Inputs:
1370
3524
 
1371
3525
  | Name | Type | Default | Description |
1372
3526
  | --- | --- | --- | --- |
1373
- | class | `string` | `''` | Extra Tailwind classes merged onto the switch track via `cn()` (last-wins). |
1374
- | disabled | `boolean` | `false` | Disables the switch and blocks toggling. |
1375
- | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Size of the switch. |
1376
-
1377
- Variants:
1378
- - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
1379
- - `checked`: `true`, `false` (default `false`)
3527
+ | class | `string` | `''` | Extra Tailwind classes merged onto the `<caption>` via `cn()` (last-wins). |
1380
3528
 
1381
3529
  ## Tabs
1382
3530
 
@@ -1464,6 +3612,71 @@ Inputs:
1464
3612
  | tagPrefix | `string` | `''` | |
1465
3613
  | tagSuffix | `string` | `''` | |
1466
3614
 
3615
+ ## Task
3616
+
3617
+ - Install: `npx @tolle_/cli add task`
3618
+ - Import: `import { TaskComponent, TaskTriggerComponent, TaskContentComponent, TaskItemComponent, TaskItemFileComponent } from '@tolle_/tolle-ui';`
3619
+
3620
+ ### `<tolle-task>`
3621
+
3622
+ Inputs:
3623
+
3624
+ | Name | Type | Default | Description |
3625
+ | --- | --- | --- | --- |
3626
+ | status | `TaskStatus` | `'pending'` | Lifecycle state of the task; drives the icon and border colour. |
3627
+ | title | `string` | `''` | Title shown by `tolle-task-trigger`. |
3628
+ | open | `boolean` | `false` | Whether the task's content is expanded. |
3629
+ | class | `string` | `''` | Extra Tailwind classes merged onto the task via `cn()` (last-wins). |
3630
+
3631
+ Outputs:
3632
+
3633
+ | Name | Payload | Description |
3634
+ | --- | --- | --- |
3635
+ | openChange | `boolean` | Emitted with the new expanded state whenever the task opens or closes. |
3636
+
3637
+ Slots: _default_
3638
+
3639
+ ### `<tolle-task-trigger>`
3640
+
3641
+ Inputs:
3642
+
3643
+ | Name | Type | Default | Description |
3644
+ | --- | --- | --- | --- |
3645
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
3646
+
3647
+ Slots: _default_
3648
+
3649
+ ### `<tolle-task-content>`
3650
+
3651
+ Inputs:
3652
+
3653
+ | Name | Type | Default | Description |
3654
+ | --- | --- | --- | --- |
3655
+ | class | `string` | `''` | Extra Tailwind classes merged onto the content via `cn()` (last-wins). |
3656
+
3657
+ Slots: _default_
3658
+
3659
+ ### `<tolle-task-item>`
3660
+
3661
+ Inputs:
3662
+
3663
+ | Name | Type | Default | Description |
3664
+ | --- | --- | --- | --- |
3665
+ | class | `string` | `''` | Extra Tailwind classes merged onto the item via `cn()` (last-wins). |
3666
+
3667
+ Slots: _default_
3668
+
3669
+ ### `<tolle-task-item-file>`
3670
+
3671
+ Inputs:
3672
+
3673
+ | Name | Type | Default | Description |
3674
+ | --- | --- | --- | --- |
3675
+ | icon | `string` | `'ri-file-line'` | Remixicon class for the leading file glyph. |
3676
+ | class | `string` | `''` | Extra Tailwind classes merged onto the chip via `cn()` (last-wins). |
3677
+
3678
+ Slots: _default_
3679
+
1467
3680
  ## Textarea
1468
3681
 
1469
3682
  - Install: `npx @tolle_/cli add textarea`
@@ -1491,6 +3704,71 @@ Inputs:
1491
3704
  | disabled | `boolean` | `false` | |
1492
3705
  | readonly | `boolean` | `false` | |
1493
3706
 
3707
+ ## Time Picker
3708
+
3709
+ - Install: `npx @tolle_/cli add time-picker`
3710
+ - Import: `import { TimeColumnsComponent, TimePickerComponent } from '@tolle_/tolle-ui';`
3711
+
3712
+ ### `<tolle-time-columns>`
3713
+
3714
+ Inputs:
3715
+
3716
+ | Name | Type | Default | Description |
3717
+ | --- | --- | --- | --- |
3718
+ | hour | `number | null` | `null` | Selected hour in 24-hour form, or `null` when nothing is chosen yet. |
3719
+ | minute | `number | null` | `null` | Selected minute, or `null` when nothing is chosen yet. |
3720
+ | second | `number | null` | `null` | Selected second, or `null` when nothing is chosen yet. |
3721
+ | use12Hours | `boolean` | `false` | Renders a 12-hour clock face with an AM/PM column. |
3722
+ | showSeconds | `boolean` | `false` | Adds the seconds column. |
3723
+ | minuteStep | `number` | `1` | Interval between minute entries, in minutes. |
3724
+ | secondStep | `number` | `1` | Interval between second entries, in seconds. |
3725
+ | minSeconds | `number` | `0` | Earliest selectable time, as seconds since midnight. |
3726
+ | maxSeconds | `any` | `SECONDS_PER_DAY - 1` | Latest selectable time, as seconds since midnight. |
3727
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Row height and text size of the entries. |
3728
+ | class | `string` | `''` | Extra Tailwind classes merged onto the column strip via `cn()` (last-wins). |
3729
+
3730
+ Outputs:
3731
+
3732
+ | Name | Payload | Description |
3733
+ | --- | --- | --- |
3734
+ | timeChange | `TimeParts` | Emitted with the full wall-clock time whenever an entry is chosen. |
3735
+
3736
+ Variants:
3737
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
3738
+ - `selected`: `true`, `false` (default `false`)
3739
+
3740
+ ### `<tolle-time-picker>`
3741
+
3742
+ Inputs:
3743
+
3744
+ | Name | Type | Default | Description |
3745
+ | --- | --- | --- | --- |
3746
+ | placeholder | `string` | `'Select a time'` | Text shown on the trigger when no time is selected. |
3747
+ | disabled | `boolean` | `false` | Disables the control. |
3748
+ | use12Hours | `boolean` | `false` | Renders a 12-hour face with an AM/PM column. The emitted value stays 24-hour. |
3749
+ | showSeconds | `boolean` | `false` | Adds a seconds column and emits `HH:mm:ss`. |
3750
+ | minuteStep | `number` | `1` | Interval between minute entries, in minutes. |
3751
+ | secondStep | `number` | `1` | Interval between second entries, in seconds. |
3752
+ | min | `string` | — | Earliest selectable time as a 24-hour `HH:mm` string; earlier entries are disabled. |
3753
+ | max | `string` | — | Latest selectable time as a 24-hour `HH:mm` string; later entries are disabled. |
3754
+ | size | `'xs' | 'sm' | 'default' | 'lg'` | `'default'` | Height and text size of the trigger and entries. |
3755
+ | invalid | `boolean` | `false` | Applies the destructive border and focus ring. |
3756
+ | ariaLabel | `string` | `''` | Accessible name when there is no associated visible label. |
3757
+ | valueType | `'string' | 'date'` | `'string'` | Exchange `Date` objects instead of `HH:mm` strings through the form control. |
3758
+ | class | `string` | `''` | Extra Tailwind classes merged onto the trigger via `cn()` (last-wins). |
3759
+
3760
+ Outputs:
3761
+
3762
+ | Name | Payload | Description |
3763
+ | --- | --- | --- |
3764
+ | valueChange | `string | Date | null` | Emitted with the chosen time whenever it changes. |
3765
+ | opened | `void` | Emitted when the panel opens. |
3766
+ | closed | `void` | Emitted when the panel closes. |
3767
+
3768
+ Variants:
3769
+ - `size`: `xs`, `sm`, `default`, `lg` (default `default`)
3770
+ - `invalid`: `true`, `false` (default `false`)
3771
+
1494
3772
  ## Toaster
1495
3773
 
1496
3774
  - Install: `npx @tolle_/cli add toaster`
@@ -1583,6 +3861,70 @@ Inputs:
1583
3861
  | --- | --- | --- | --- |
1584
3862
  | name | `string` | — | |
1585
3863
 
3864
+ ## Tool
3865
+
3866
+ - Install: `npx @tolle_/cli add tool`
3867
+ - Import: `import { ToolComponent, ToolHeaderComponent, ToolPayloadBase, ToolInputComponent, ToolOutputComponent } from '@tolle_/tolle-ui';`
3868
+
3869
+ ### `<tolle-tool>`
3870
+
3871
+ Inputs:
3872
+
3873
+ | Name | Type | Default | Description |
3874
+ | --- | --- | --- | --- |
3875
+ | state | `ToolState` | `'pending'` | Lifecycle of the call, driving the header chip and border. |
3876
+ | open | `boolean` | `false` | Whether the call's input and output are expanded. |
3877
+ | class | `string` | `''` | Extra Tailwind classes merged onto the tool via `cn()` (last-wins). |
3878
+
3879
+ Outputs:
3880
+
3881
+ | Name | Payload | Description |
3882
+ | --- | --- | --- |
3883
+ | openChange | `boolean` | Emitted with the new state whenever the call is expanded or collapsed. |
3884
+
3885
+ Slots: _default_
3886
+
3887
+ ### `<tolle-tool-header>`
3888
+
3889
+ Inputs:
3890
+
3891
+ | Name | Type | Default | Description |
3892
+ | --- | --- | --- | --- |
3893
+ | name | `string` | `''` | Name of the tool that was called. |
3894
+ | icon | `string` | `'ri-tools-line'` | Remixicon class shown before the tool name. |
3895
+ | stateLabelOverride | `string` | `''` | Overrides the chip text; defaults to a label derived from the state. |
3896
+ | class | `string` | `''` | Extra Tailwind classes merged onto the header via `cn()` (last-wins). |
3897
+ | chipClassName | `string` | `''` | Extra Tailwind classes merged onto the state chip via `cn()` (last-wins). |
3898
+
3899
+ Slots: _default_
3900
+
3901
+ ### `<ToolPayloadBase>` (directive)
3902
+
3903
+ ### `<tolle-tool-input>`
3904
+
3905
+ Inputs:
3906
+
3907
+ | Name | Type | Default | Description |
3908
+ | --- | --- | --- | --- |
3909
+ | payload | `unknown` | `null` | Arguments passed to the tool; objects are pretty-printed as JSON. |
3910
+ | label | `string` | `'Parameters'` | Heading above the payload. |
3911
+ | class | `string` | `''` | Extra Tailwind classes merged onto the panel via `cn()` (last-wins). |
3912
+
3913
+ Slots: _default_
3914
+
3915
+ ### `<tolle-tool-output>`
3916
+
3917
+ Inputs:
3918
+
3919
+ | Name | Type | Default | Description |
3920
+ | --- | --- | --- | --- |
3921
+ | payload | `unknown` | `null` | Result returned by the tool; objects are pretty-printed as JSON. |
3922
+ | label | `string` | `'Result'` | Heading above the payload. |
3923
+ | error | `boolean` | `false` | Styles the payload as a failure. |
3924
+ | class | `string` | `''` | Extra Tailwind classes merged onto the panel via `cn()` (last-wins). |
3925
+
3926
+ Slots: _default_
3927
+
1586
3928
  ## Tooltip
1587
3929
 
1588
3930
  - Install: `npx @tolle_/cli add tooltip`
@@ -1597,3 +3939,22 @@ Inputs:
1597
3939
  | content | `string` | `''` | |
1598
3940
  | placement | `'top' | 'bottom' | 'left' | 'right'` | `'top'` | |
1599
3941
 
3942
+ ## Typography
3943
+
3944
+ - Install: `npx @tolle_/cli add typography`
3945
+ - Import: `import { TypographyComponent } from '@tolle_/tolle-ui';`
3946
+
3947
+ ### `<tolle-typography>`
3948
+
3949
+ Inputs:
3950
+
3951
+ | Name | Type | Default | Description |
3952
+ | --- | --- | --- | --- |
3953
+ | variant | `'h1' | 'h2' | 'h3' | 'h4' | 'p' | 'blockquote' | 'lead' | 'large' | 'small' | 'muted' | 'code'` | `'p'` | Type scale step; also selects the rendered HTML tag. |
3954
+ | class | `string` | `''` | Extra Tailwind classes merged onto the element via `cn()` (last-wins). |
3955
+
3956
+ Slots: _default_
3957
+
3958
+ Variants:
3959
+ - `variant`: `h1`, `h2`, `h3`, `h4`, `p`, `blockquote`, `lead`, `large`, `small`, `muted`, `code` (default `p`)
3960
+