@lapismd/design-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1256) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE.md +4 -0
  3. package/README.md +260 -0
  4. package/package.json +290 -0
  5. package/spec/src/styling-and-themes.md +188 -0
  6. package/src/lib/data-ui-contract.ts +263 -0
  7. package/src/lib/data-ui-host-catalog.ts +278 -0
  8. package/src/lib/data-ui-host.ts +69 -0
  9. package/src/lib/hooks/is-mobile.svelte.ts +9 -0
  10. package/src/lib/overlay-portal-context.ts +57 -0
  11. package/src/lib/utils.ts +18 -0
  12. package/src/shared/ai/chat.css +1551 -0
  13. package/src/shared/ai/chat.tokens.ts +25 -0
  14. package/src/shared/ai/chat.ts +70 -0
  15. package/src/shared/ai/composer/Composer.svelte +195 -0
  16. package/src/shared/ai/composer/index.ts +1 -0
  17. package/src/shared/ai/composer-behavior.ts +57 -0
  18. package/src/shared/ai/composer-drawer/ComposerDrawer.svelte +61 -0
  19. package/src/shared/ai/composer-drawer/index.ts +1 -0
  20. package/src/shared/ai/composer-input/ComposerInput.svelte +511 -0
  21. package/src/shared/ai/composer-input/index.ts +1 -0
  22. package/src/shared/ai/composer-token/ComposerToken.svelte +34 -0
  23. package/src/shared/ai/composer-token/index.ts +1 -0
  24. package/src/shared/ai/composer-tokens.ts +468 -0
  25. package/src/shared/ai/context.svelte.ts +83 -0
  26. package/src/shared/ai/dictation-button/DictationButton.svelte +77 -0
  27. package/src/shared/ai/dictation-button/index.ts +1 -0
  28. package/src/shared/ai/experimental/emoji-picker/EmojiPicker.svelte +177 -0
  29. package/src/shared/ai/experimental/emoji-picker/index.ts +5 -0
  30. package/src/shared/ai/experimental/index.ts +22 -0
  31. package/src/shared/ai/experimental/reaction-bar/ReactionBar.svelte +84 -0
  32. package/src/shared/ai/experimental/reaction-bar/index.ts +1 -0
  33. package/src/shared/ai/experimental/reasoning/Reasoning.svelte +70 -0
  34. package/src/shared/ai/experimental/reasoning/index.ts +1 -0
  35. package/src/shared/ai/experimental/typing-indicator/TypingIndicator.svelte +41 -0
  36. package/src/shared/ai/experimental/typing-indicator/index.ts +1 -0
  37. package/src/shared/ai/experimental/unread-divider/UnreadDivider.svelte +26 -0
  38. package/src/shared/ai/experimental/unread-divider/index.ts +1 -0
  39. package/src/shared/ai/index.ts +2 -0
  40. package/src/shared/ai/layout/Layout.svelte +141 -0
  41. package/src/shared/ai/layout/index.ts +1 -0
  42. package/src/shared/ai/layout-scroll-button/LayoutScrollButton.svelte +48 -0
  43. package/src/shared/ai/layout-scroll-button/index.ts +1 -0
  44. package/src/shared/ai/message/Message.svelte +71 -0
  45. package/src/shared/ai/message/index.ts +1 -0
  46. package/src/shared/ai/message-bubble/MessageBubble.svelte +62 -0
  47. package/src/shared/ai/message-bubble/index.ts +1 -0
  48. package/src/shared/ai/message-list/MessageList.svelte +133 -0
  49. package/src/shared/ai/message-list/index.ts +1 -0
  50. package/src/shared/ai/message-metadata/MessageMetadata.svelte +90 -0
  51. package/src/shared/ai/message-metadata/index.ts +1 -0
  52. package/src/shared/ai/new-messages.svelte.ts +80 -0
  53. package/src/shared/ai/send-button/SendButton.svelte +51 -0
  54. package/src/shared/ai/send-button/index.ts +1 -0
  55. package/src/shared/ai/speech-recognition.svelte.ts +329 -0
  56. package/src/shared/ai/stream-scroll.svelte.ts +238 -0
  57. package/src/shared/ai/system-message/SystemMessage.svelte +43 -0
  58. package/src/shared/ai/system-message/index.ts +1 -0
  59. package/src/shared/ai/tokenized-text/TokenizedText.svelte +76 -0
  60. package/src/shared/ai/tokenized-text/index.ts +1 -0
  61. package/src/shared/ai/tool-calls/ToolCalls.svelte +185 -0
  62. package/src/shared/ai/tool-calls/index.ts +1 -0
  63. package/src/shared/ai/trigger-menu.ts +154 -0
  64. package/src/shared/ai/types.ts +144 -0
  65. package/src/shared/diff/core/file-tree.ts +83 -0
  66. package/src/shared/diff/core/index.ts +58 -0
  67. package/src/shared/diff/core/merge/ATTRIBUTION.mergeweave.md +12 -0
  68. package/src/shared/diff/core/merge/actions.ts +142 -0
  69. package/src/shared/diff/core/merge/blocks.ts +120 -0
  70. package/src/shared/diff/core/merge/diff.ts +67 -0
  71. package/src/shared/diff/core/merge/index.ts +32 -0
  72. package/src/shared/diff/core/merge/inline-diff.ts +35 -0
  73. package/src/shared/diff/core/merge/lines.ts +44 -0
  74. package/src/shared/diff/core/merge/one-way.ts +101 -0
  75. package/src/shared/diff/core/merge/options.ts +25 -0
  76. package/src/shared/diff/core/merge/render-model.ts +591 -0
  77. package/src/shared/diff/core/merge/three-way.ts +267 -0
  78. package/src/shared/diff/core/merge/types.ts +61 -0
  79. package/src/shared/diff/core/unified-diff.ts +577 -0
  80. package/src/shared/diff/diff.tokens.css +59 -0
  81. package/src/shared/diff/diff.tokens.ts +23 -0
  82. package/src/shared/diff/file-change-stats/FileChangeStats.css +20 -0
  83. package/src/shared/diff/file-change-stats/FileChangeStats.svelte +35 -0
  84. package/src/shared/diff/file-change-stats/format-diff-delta.ts +3 -0
  85. package/src/shared/diff/file-change-stats/index.ts +2 -0
  86. package/src/shared/diff/file-diff/FileDiff.css +234 -0
  87. package/src/shared/diff/file-diff/FileDiff.svelte +381 -0
  88. package/src/shared/diff/file-diff/FileDiffComposer.svelte +61 -0
  89. package/src/shared/diff/file-diff/expand.ts +43 -0
  90. package/src/shared/diff/file-diff/highlight.ts +178 -0
  91. package/src/shared/diff/file-diff/index.ts +9 -0
  92. package/src/shared/diff/file-diff/language.ts +49 -0
  93. package/src/shared/diff/file-diff/types.ts +24 -0
  94. package/src/shared/diff/file-listing/FileListing.css +74 -0
  95. package/src/shared/diff/file-listing/FileListing.svelte +235 -0
  96. package/src/shared/diff/file-listing/FileListingViewModeToggle.css +14 -0
  97. package/src/shared/diff/file-listing/FileListingViewModeToggle.svelte +50 -0
  98. package/src/shared/diff/file-listing/file-icon.ts +35 -0
  99. package/src/shared/diff/file-listing/index.ts +9 -0
  100. package/src/shared/diff/file-listing/types.ts +25 -0
  101. package/src/shared/diff/index.ts +31 -0
  102. package/src/shared/diff/merge-editor/MergeEditor.css +481 -0
  103. package/src/shared/diff/merge-editor/MergeEditor.svelte +702 -0
  104. package/src/shared/diff/merge-editor/MergeEditorDemo.css +41 -0
  105. package/src/shared/diff/merge-editor/MergeEditorDemo.svelte +91 -0
  106. package/src/shared/diff/merge-editor/connector.ts +94 -0
  107. package/src/shared/diff/merge-editor/demo-fixtures.ts +428 -0
  108. package/src/shared/diff/merge-editor/index.ts +9 -0
  109. package/src/shared/diff/merge-editor/mismerge-quicksort-fixture.ts +12 -0
  110. package/src/shared/diff/merge-editor/quicksort-fixture.ts +6 -0
  111. package/src/shared/diff/merge-editor/types.ts +11 -0
  112. package/src/shared/filter/demo-ledger-filter-syntax.ts +132 -0
  113. package/src/shared/filter/filter-query/filters.ts +375 -0
  114. package/src/shared/filter/filter-query/highlight.ts +21 -0
  115. package/src/shared/filter/filter-query/index.ts +23 -0
  116. package/src/shared/filter/filter-query/parser.ts +710 -0
  117. package/src/shared/filter/filter-query/query.d.ts +3 -0
  118. package/src/shared/filter/filter-query/query.grammar +150 -0
  119. package/src/shared/filter/filter-query/query.js +60 -0
  120. package/src/shared/filter/filter-query/query.terms.js +32 -0
  121. package/src/shared/filter/index.ts +35 -0
  122. package/src/shared/filter/power-search/PowerSearch.css +245 -0
  123. package/src/shared/filter/power-search/PowerSearch.svelte +245 -0
  124. package/src/shared/filter/power-search/PowerSearchFieldCombobox.svelte +162 -0
  125. package/src/shared/filter/power-search/index.ts +10 -0
  126. package/src/shared/filter/power-search/power-search.ts +106 -0
  127. package/src/shared/filter/search-filter-bar/SearchFilterAutocompleteScrollArea.svelte +29 -0
  128. package/src/shared/filter/search-filter-bar/SearchFilterBar.css +924 -0
  129. package/src/shared/filter/search-filter-bar/SearchFilterBar.svelte +246 -0
  130. package/src/shared/filter/search-filter-bar/SearchFilterFieldAutocomplete.svelte +182 -0
  131. package/src/shared/filter/search-filter-bar/SearchFilterInput.svelte +412 -0
  132. package/src/shared/filter/search-filter-bar/SearchFilterPredicateEditor.svelte +270 -0
  133. package/src/shared/filter/search-filter-bar/SearchFilterValueAutocomplete.svelte +127 -0
  134. package/src/shared/filter/search-filter-bar/index.ts +15 -0
  135. package/src/shared/filter/search-filter-bar/search-filter-highlight.ts +56 -0
  136. package/src/shared/filter/search-filter-bar/search-filter-predicate-chips.ts +410 -0
  137. package/src/shared/filter/search-filter-bar/search-filter-syntax.ts +334 -0
  138. package/src/shared/forms/add-section-chooser/AddSectionChooser.css +135 -0
  139. package/src/shared/forms/add-section-chooser/AddSectionChooser.svelte +118 -0
  140. package/src/shared/forms/add-section-chooser/index.ts +1 -0
  141. package/src/shared/forms/autocomplete-input/AutocompleteInput.css +86 -0
  142. package/src/shared/forms/autocomplete-input/AutocompleteInput.svelte +253 -0
  143. package/src/shared/forms/autocomplete-input/index.ts +1 -0
  144. package/src/shared/forms/chip-autocomplete/ChipAutocomplete.css +142 -0
  145. package/src/shared/forms/chip-autocomplete/ChipAutocomplete.svelte +156 -0
  146. package/src/shared/forms/chip-autocomplete/index.ts +1 -0
  147. package/src/shared/forms/code-editor/CodeEditor.css +42 -0
  148. package/src/shared/forms/code-editor/CodeEditor.svelte +60 -0
  149. package/src/shared/forms/code-editor/code-editor-language.ts +63 -0
  150. package/src/shared/forms/code-editor/code-editor-syntax.ts +25 -0
  151. package/src/shared/forms/code-editor/index.ts +1 -0
  152. package/src/shared/forms/code-highlighter/CodeHighlighter.css +54 -0
  153. package/src/shared/forms/code-highlighter/CodeHighlighter.svelte +57 -0
  154. package/src/shared/forms/code-highlighter/code-highlighter.ts +36 -0
  155. package/src/shared/forms/code-highlighter/index.ts +2 -0
  156. package/src/shared/forms/collapsible-item-list/CollapsibleItemList.css +99 -0
  157. package/src/shared/forms/collapsible-item-list/CollapsibleItemList.svelte +56 -0
  158. package/src/shared/forms/collapsible-item-list/index.ts +1 -0
  159. package/src/shared/forms/color-picker/ColorPicker.css +150 -0
  160. package/src/shared/forms/color-picker/ColorPicker.svelte +149 -0
  161. package/src/shared/forms/color-picker/color-value.ts +36 -0
  162. package/src/shared/forms/color-picker/index.ts +6 -0
  163. package/src/shared/forms/complete-cv-form/CompleteCvForm.css +264 -0
  164. package/src/shared/forms/complete-cv-form/CompleteCvForm.svelte +305 -0
  165. package/src/shared/forms/complete-cv-form/PLAN.md +225 -0
  166. package/src/shared/forms/complete-cv-form/complete-cv-form.model.ts +387 -0
  167. package/src/shared/forms/complete-cv-form/complete-cv-form.typed-config.ts +1767 -0
  168. package/src/shared/forms/complete-cv-form/complete-cv-form.types.ts +255 -0
  169. package/src/shared/forms/complete-cv-form/sample-cv.fixture.ts +11 -0
  170. package/src/shared/forms/complete-cv-form/sample-cv.fixture.yml +211 -0
  171. package/src/shared/forms/core/autosize-textarea.ts +35 -0
  172. package/src/shared/forms/core/builders.ts +291 -0
  173. package/src/shared/forms/core/code-language-options.ts +28 -0
  174. package/src/shared/forms/core/core.ts +157 -0
  175. package/src/shared/forms/core/date-utils.ts +219 -0
  176. package/src/shared/forms/core/field-review.ts +15 -0
  177. package/src/shared/forms/core/form-controller.svelte.ts +449 -0
  178. package/src/shared/forms/core/index.ts +1 -0
  179. package/src/shared/forms/core/json-patch.ts +128 -0
  180. package/src/shared/forms/core/markdown-format.ts +39 -0
  181. package/src/shared/forms/core/patch-review.ts +591 -0
  182. package/src/shared/forms/core/path-config.ts +428 -0
  183. package/src/shared/forms/core/path-runtime.ts +70 -0
  184. package/src/shared/forms/core/path-types.ts +132 -0
  185. package/src/shared/forms/core/path-utils.ts +102 -0
  186. package/src/shared/forms/core/reference-utils.ts +168 -0
  187. package/src/shared/forms/core/registry.ts +101 -0
  188. package/src/shared/forms/core/review-diff.ts +199 -0
  189. package/src/shared/forms/core/types.ts +135 -0
  190. package/src/shared/forms/core/yaml-review-play.ts +16 -0
  191. package/src/shared/forms/cycle-picker/CyclePicker.css +89 -0
  192. package/src/shared/forms/cycle-picker/CyclePicker.svelte +165 -0
  193. package/src/shared/forms/cycle-picker/index.ts +2 -0
  194. package/src/shared/forms/date-picker/DatePicker.css +193 -0
  195. package/src/shared/forms/date-picker/DatePicker.svelte +251 -0
  196. package/src/shared/forms/date-picker/index.ts +17 -0
  197. package/src/shared/forms/entry-actions/EntryActions.css +93 -0
  198. package/src/shared/forms/entry-actions/EntryActions.svelte +62 -0
  199. package/src/shared/forms/entry-actions/index.ts +1 -0
  200. package/src/shared/forms/field-review-actions/FieldReviewActions.css +38 -0
  201. package/src/shared/forms/field-review-actions/FieldReviewActions.svelte +42 -0
  202. package/src/shared/forms/field-review-actions/index.ts +1 -0
  203. package/src/shared/forms/filter-command-picker/FilterCommandPicker.css +321 -0
  204. package/src/shared/forms/filter-command-picker/FilterCommandPicker.svelte +382 -0
  205. package/src/shared/forms/filter-command-picker/index.ts +10 -0
  206. package/src/shared/forms/filter-command-picker/picker-options.ts +13 -0
  207. package/src/shared/forms/filter-command-picker/picker-search.ts +123 -0
  208. package/src/shared/forms/form-add-button/FormAddButton.css +56 -0
  209. package/src/shared/forms/form-add-button/FormAddButton.svelte +28 -0
  210. package/src/shared/forms/form-control-row/FormControlRow.css +153 -0
  211. package/src/shared/forms/form-control-row/index.ts +2 -0
  212. package/src/shared/forms/form-field/FormField.css +156 -0
  213. package/src/shared/forms/form-field/FormField.svelte +87 -0
  214. package/src/shared/forms/form-field/index.ts +1 -0
  215. package/src/shared/forms/form-placeholder/FormPlaceholder.css +14 -0
  216. package/src/shared/forms/form-placeholder/FormPlaceholder.svelte +21 -0
  217. package/src/shared/forms/form-review/ReviewedStringListFormField.svelte +44 -0
  218. package/src/shared/forms/form-review/ReviewedTextFormField.svelte +64 -0
  219. package/src/shared/forms/form-review/index.ts +5 -0
  220. package/src/shared/forms/form-section-header/FormSectionHeader.css +177 -0
  221. package/src/shared/forms/form-section-header/FormSectionHeader.svelte +135 -0
  222. package/src/shared/forms/form-section-header/index.ts +1 -0
  223. package/src/shared/forms/form-sheet/FormSheet.css +99 -0
  224. package/src/shared/forms/form-sheet/FormSheet.svelte +132 -0
  225. package/src/shared/forms/form-toolbar/FormToolbar.css +49 -0
  226. package/src/shared/forms/form-toolbar/FormToolbar.svelte +59 -0
  227. package/src/shared/forms/form.tokens.css +41 -0
  228. package/src/shared/forms/form.tokens.ts +58 -0
  229. package/src/shared/forms/index.ts +131 -0
  230. package/src/shared/forms/inline-option-picker/InlineOptionPicker.css +147 -0
  231. package/src/shared/forms/inline-option-picker/InlineOptionPicker.svelte +153 -0
  232. package/src/shared/forms/inline-option-picker/index.ts +1 -0
  233. package/src/shared/forms/json-backed-form/JsonBackedForm.css +52 -0
  234. package/src/shared/forms/json-backed-form/JsonBackedForm.svelte +106 -0
  235. package/src/shared/forms/json-backed-form/index.ts +1 -0
  236. package/src/shared/forms/list-editor/ListEditor.css +171 -0
  237. package/src/shared/forms/list-editor/ListEditor.svelte +232 -0
  238. package/src/shared/forms/password-input/PasswordInput.css +48 -0
  239. package/src/shared/forms/password-input/PasswordInput.svelte +57 -0
  240. package/src/shared/forms/password-input/index.ts +1 -0
  241. package/src/shared/forms/patchable-form/PatchableForm.svelte +136 -0
  242. package/src/shared/forms/patchable-form/field-review-context.ts +78 -0
  243. package/src/shared/forms/patchable-form/index.ts +2 -0
  244. package/src/shared/forms/reference-picker/ReferencePicker.css +338 -0
  245. package/src/shared/forms/reference-picker/ReferencePicker.svelte +422 -0
  246. package/src/shared/forms/reference-picker/ReferencePreview.css +126 -0
  247. package/src/shared/forms/reference-picker/ReferencePreview.svelte +71 -0
  248. package/src/shared/forms/reference-picker/index.ts +1 -0
  249. package/src/shared/forms/secret-field/SecretField.css +29 -0
  250. package/src/shared/forms/secret-field/SecretField.svelte +101 -0
  251. package/src/shared/forms/secret-field/index.ts +8 -0
  252. package/src/shared/forms/secret-field/secret-field-value.ts +35 -0
  253. package/src/shared/forms/segmented-control/SegmentedControl.css +80 -0
  254. package/src/shared/forms/segmented-control/SegmentedControl.svelte +51 -0
  255. package/src/shared/forms/segmented-control/index.ts +1 -0
  256. package/src/shared/forms/sortable-array-item/SortableArrayItem.css +144 -0
  257. package/src/shared/forms/sortable-array-item/SortableArrayItem.svelte +94 -0
  258. package/src/shared/forms/structured-form/ConfiguredFormField.svelte +407 -0
  259. package/src/shared/forms/structured-form/ConfiguredFormGroup.svelte +100 -0
  260. package/src/shared/forms/structured-form/CurrencyFormControl.story.svelte +31 -0
  261. package/src/shared/forms/structured-form/FormFieldRenderer.css +86 -0
  262. package/src/shared/forms/structured-form/FormFieldRenderer.svelte +180 -0
  263. package/src/shared/forms/structured-form/FormViewRenderer.svelte +38 -0
  264. package/src/shared/forms/structured-form/RegisteredFieldControl.svelte +221 -0
  265. package/src/shared/forms/structured-form/StructuredForm.currency-kind.story.ts +9 -0
  266. package/src/shared/forms/structured-form/StructuredForm.svelte +128 -0
  267. package/src/shared/forms/structured-form/disclosure-policy.ts +19 -0
  268. package/src/shared/forms/structured-form/form-renderer-registry.ts +130 -0
  269. package/src/shared/forms/structured-form/index.ts +3 -0
  270. package/src/shared/forms/structured-form/structured-form.css +191 -0
  271. package/src/shared/forms/structured-form/wrapping-text-input.ts +20 -0
  272. package/src/shared/forms/task-due-calendar/TaskDueCalendar.css +117 -0
  273. package/src/shared/forms/task-due-calendar/TaskDueCalendar.svelte +72 -0
  274. package/src/shared/forms/task-due-calendar/index.ts +1 -0
  275. package/src/shared/forms/time-picker/TimePicker.css +76 -0
  276. package/src/shared/forms/time-picker/TimePicker.svelte +88 -0
  277. package/src/shared/forms/time-picker/index.ts +1 -0
  278. package/src/shared/forms/unified-review-diff/UnifiedReviewDiff.css +72 -0
  279. package/src/shared/forms/unified-review-diff/UnifiedReviewDiff.svelte +57 -0
  280. package/src/shared/forms/unified-review-diff/index.ts +1 -0
  281. package/src/shared/forms/yaml-backed-form/YamlBackedForm.css +52 -0
  282. package/src/shared/forms/yaml-backed-form/YamlBackedForm.svelte +112 -0
  283. package/src/shared/forms/yaml-backed-form/index.ts +1 -0
  284. package/src/shared/forms/yaml-editor/YamlEditor.css +50 -0
  285. package/src/shared/forms/yaml-editor/YamlEditor.svelte +407 -0
  286. package/src/shared/forms/yaml-editor/index.ts +1 -0
  287. package/src/shared/forms/yaml-editor/yaml-editor-runtime.ts +65 -0
  288. package/src/shared/shadcn/accordion/Accordion.story-sources.ts +12 -0
  289. package/src/shared/shadcn/accordion/accordion-content.svelte +28 -0
  290. package/src/shared/shadcn/accordion/accordion-item.svelte +18 -0
  291. package/src/shared/shadcn/accordion/accordion-trigger.svelte +70 -0
  292. package/src/shared/shadcn/accordion/accordion.docs-body.md +24 -0
  293. package/src/shared/shadcn/accordion/accordion.docs.md +30 -0
  294. package/src/shared/shadcn/accordion/accordion.provenance.json +52 -0
  295. package/src/shared/shadcn/accordion/accordion.svelte +408 -0
  296. package/src/shared/shadcn/accordion/accordion.tokens.css +13 -0
  297. package/src/shared/shadcn/accordion/accordion.tokens.ts +10 -0
  298. package/src/shared/shadcn/accordion/examples/preview.svelte +50 -0
  299. package/src/shared/shadcn/accordion/index.ts +21 -0
  300. package/src/shared/shadcn/alert/alert-action.svelte +22 -0
  301. package/src/shared/shadcn/alert/alert-description.svelte +22 -0
  302. package/src/shared/shadcn/alert/alert-title.svelte +22 -0
  303. package/src/shared/shadcn/alert/alert.docs-body.md +22 -0
  304. package/src/shared/shadcn/alert/alert.docs.md +28 -0
  305. package/src/shared/shadcn/alert/alert.provenance.json +52 -0
  306. package/src/shared/shadcn/alert/alert.svelte +307 -0
  307. package/src/shared/shadcn/alert/alert.tokens.css +13 -0
  308. package/src/shared/shadcn/alert/alert.tokens.ts +9 -0
  309. package/src/shared/shadcn/alert/examples/preview.svelte +36 -0
  310. package/src/shared/shadcn/alert/index.ts +19 -0
  311. package/src/shared/shadcn/alert-dialog/alert-dialog-action.svelte +29 -0
  312. package/src/shared/shadcn/alert-dialog/alert-dialog-cancel.svelte +29 -0
  313. package/src/shared/shadcn/alert-dialog/alert-dialog-content.svelte +623 -0
  314. package/src/shared/shadcn/alert-dialog/alert-dialog-description.svelte +18 -0
  315. package/src/shared/shadcn/alert-dialog/alert-dialog-footer.svelte +22 -0
  316. package/src/shared/shadcn/alert-dialog/alert-dialog-header.svelte +22 -0
  317. package/src/shared/shadcn/alert-dialog/alert-dialog-media.svelte +22 -0
  318. package/src/shared/shadcn/alert-dialog/alert-dialog-overlay.svelte +18 -0
  319. package/src/shared/shadcn/alert-dialog/alert-dialog-portal.svelte +7 -0
  320. package/src/shared/shadcn/alert-dialog/alert-dialog-title.svelte +18 -0
  321. package/src/shared/shadcn/alert-dialog/alert-dialog-trigger.svelte +14 -0
  322. package/src/shared/shadcn/alert-dialog/alert-dialog.docs-body.md +32 -0
  323. package/src/shared/shadcn/alert-dialog/alert-dialog.docs.md +38 -0
  324. package/src/shared/shadcn/alert-dialog/alert-dialog.provenance.json +84 -0
  325. package/src/shared/shadcn/alert-dialog/alert-dialog.svelte +10 -0
  326. package/src/shared/shadcn/alert-dialog/alert-dialog.tokens.css +13 -0
  327. package/src/shared/shadcn/alert-dialog/alert-dialog.tokens.ts +10 -0
  328. package/src/shared/shadcn/alert-dialog/examples/preview.svelte +25 -0
  329. package/src/shared/shadcn/alert-dialog/index.ts +44 -0
  330. package/src/shared/shadcn/badge/badge.docs-body.md +29 -0
  331. package/src/shared/shadcn/badge/badge.docs.md +35 -0
  332. package/src/shared/shadcn/badge/badge.provenance.json +40 -0
  333. package/src/shared/shadcn/badge/badge.svelte +491 -0
  334. package/src/shared/shadcn/badge/badge.tokens.css +13 -0
  335. package/src/shared/shadcn/badge/badge.tokens.ts +9 -0
  336. package/src/shared/shadcn/badge/examples/preview.svelte +35 -0
  337. package/src/shared/shadcn/badge/index.ts +4 -0
  338. package/src/shared/shadcn/breadcrumb/breadcrumb-ellipsis.svelte +30 -0
  339. package/src/shared/shadcn/breadcrumb/breadcrumb-item.svelte +22 -0
  340. package/src/shared/shadcn/breadcrumb/breadcrumb-link.svelte +33 -0
  341. package/src/shared/shadcn/breadcrumb/breadcrumb-list.svelte +22 -0
  342. package/src/shared/shadcn/breadcrumb/breadcrumb-page.svelte +25 -0
  343. package/src/shared/shadcn/breadcrumb/breadcrumb-separator.svelte +29 -0
  344. package/src/shared/shadcn/breadcrumb/breadcrumb.docs-body.md +150 -0
  345. package/src/shared/shadcn/breadcrumb/breadcrumb.docs.md +156 -0
  346. package/src/shared/shadcn/breadcrumb/breadcrumb.provenance.json +76 -0
  347. package/src/shared/shadcn/breadcrumb/breadcrumb.svelte +200 -0
  348. package/src/shared/shadcn/breadcrumb/breadcrumb.tokens.css +13 -0
  349. package/src/shared/shadcn/breadcrumb/breadcrumb.tokens.ts +10 -0
  350. package/src/shared/shadcn/breadcrumb/examples/collapsed.svelte +25 -0
  351. package/src/shared/shadcn/breadcrumb/examples/custom-separator.svelte +26 -0
  352. package/src/shared/shadcn/breadcrumb/examples/dropdown.svelte +38 -0
  353. package/src/shared/shadcn/breadcrumb/examples/link-component.svelte +21 -0
  354. package/src/shared/shadcn/breadcrumb/examples/preview.svelte +36 -0
  355. package/src/shared/shadcn/breadcrumb/index.ts +30 -0
  356. package/src/shared/shadcn/button/button.docs-body.md +287 -0
  357. package/src/shared/shadcn/button/button.docs.md +297 -0
  358. package/src/shared/shadcn/button/button.provenance.json +58 -0
  359. package/src/shared/shadcn/button/button.svelte +703 -0
  360. package/src/shared/shadcn/button/button.tokens.css +17 -0
  361. package/src/shared/shadcn/button/button.tokens.ts +14 -0
  362. package/src/shared/shadcn/button/examples/default.svelte +7 -0
  363. package/src/shared/shadcn/button/examples/destructive.svelte +7 -0
  364. package/src/shared/shadcn/button/examples/ghost.svelte +7 -0
  365. package/src/shared/shadcn/button/examples/icon.svelte +10 -0
  366. package/src/shared/shadcn/button/examples/link.svelte +7 -0
  367. package/src/shared/shadcn/button/examples/outline.svelte +7 -0
  368. package/src/shared/shadcn/button/examples/preview.svelte +13 -0
  369. package/src/shared/shadcn/button/examples/rounded.svelte +12 -0
  370. package/src/shared/shadcn/button/examples/secondary.svelte +7 -0
  371. package/src/shared/shadcn/button/examples/size.svelte +27 -0
  372. package/src/shared/shadcn/button/examples/spinner.svelte +11 -0
  373. package/src/shared/shadcn/button/examples/with-icon.svelte +10 -0
  374. package/src/shared/shadcn/button/index.ts +22 -0
  375. package/src/shared/shadcn/button-group/button-group-separator.svelte +20 -0
  376. package/src/shared/shadcn/button-group/button-group-text.svelte +35 -0
  377. package/src/shared/shadcn/button-group/button-group.docs-body.md +426 -0
  378. package/src/shared/shadcn/button-group/button-group.docs.md +432 -0
  379. package/src/shared/shadcn/button-group/button-group.provenance.json +60 -0
  380. package/src/shared/shadcn/button-group/button-group.svelte +358 -0
  381. package/src/shared/shadcn/button-group/button-group.tokens.css +13 -0
  382. package/src/shared/shadcn/button-group/button-group.tokens.ts +10 -0
  383. package/src/shared/shadcn/button-group/examples/dropdown-menu.svelte +63 -0
  384. package/src/shared/shadcn/button-group/examples/input-group.svelte +51 -0
  385. package/src/shared/shadcn/button-group/examples/input.svelte +15 -0
  386. package/src/shared/shadcn/button-group/examples/nested.svelte +26 -0
  387. package/src/shared/shadcn/button-group/examples/orientation.svelte +21 -0
  388. package/src/shared/shadcn/button-group/examples/popover.svelte +49 -0
  389. package/src/shared/shadcn/button-group/examples/preview.svelte +100 -0
  390. package/src/shared/shadcn/button-group/examples/select.svelte +50 -0
  391. package/src/shared/shadcn/button-group/examples/separator.svelte +12 -0
  392. package/src/shared/shadcn/button-group/examples/size.svelte +34 -0
  393. package/src/shared/shadcn/button-group/examples/split.svelte +15 -0
  394. package/src/shared/shadcn/button-group/index.ts +23 -0
  395. package/src/shared/shadcn/card/card-action.svelte +22 -0
  396. package/src/shared/shadcn/card/card-content.svelte +22 -0
  397. package/src/shared/shadcn/card/card-description.svelte +22 -0
  398. package/src/shared/shadcn/card/card-footer.svelte +22 -0
  399. package/src/shared/shadcn/card/card-header.svelte +22 -0
  400. package/src/shared/shadcn/card/card-title.svelte +22 -0
  401. package/src/shared/shadcn/card/card.docs-body.md +112 -0
  402. package/src/shared/shadcn/card/card.docs.md +118 -0
  403. package/src/shared/shadcn/card/card.provenance.json +64 -0
  404. package/src/shared/shadcn/card/card.svelte +400 -0
  405. package/src/shared/shadcn/card/card.tokens.css +13 -0
  406. package/src/shared/shadcn/card/card.tokens.ts +9 -0
  407. package/src/shared/shadcn/card/examples/image.svelte +28 -0
  408. package/src/shared/shadcn/card/examples/preview-2.svelte +46 -0
  409. package/src/shared/shadcn/card/examples/preview.svelte +46 -0
  410. package/src/shared/shadcn/card/examples/spacing-2.svelte +42 -0
  411. package/src/shared/shadcn/card/examples/spacing.svelte +93 -0
  412. package/src/shared/shadcn/card/index.ts +27 -0
  413. package/src/shared/shadcn/checkbox/checkbox.docs-body.md +17 -0
  414. package/src/shared/shadcn/checkbox/checkbox.docs.md +23 -0
  415. package/src/shared/shadcn/checkbox/checkbox.provenance.json +40 -0
  416. package/src/shared/shadcn/checkbox/checkbox.svelte +425 -0
  417. package/src/shared/shadcn/checkbox/checkbox.tokens.css +13 -0
  418. package/src/shared/shadcn/checkbox/checkbox.tokens.ts +10 -0
  419. package/src/shared/shadcn/checkbox/examples/preview.svelte +41 -0
  420. package/src/shared/shadcn/checkbox/index.ts +8 -0
  421. package/src/shared/shadcn/code/Code.svelte +39 -0
  422. package/src/shared/shadcn/code/code.css +30 -0
  423. package/src/shared/shadcn/code/code.docs.md +33 -0
  424. package/src/shared/shadcn/code/code.tokens.css +14 -0
  425. package/src/shared/shadcn/code/code.tokens.ts +12 -0
  426. package/src/shared/shadcn/code/index.ts +3 -0
  427. package/src/shared/shadcn/code-block/CodeBlock.svelte +456 -0
  428. package/src/shared/shadcn/code-block/code-block-helpers.ts +91 -0
  429. package/src/shared/shadcn/code-block/code-block.css +298 -0
  430. package/src/shared/shadcn/code-block/code-block.docs.md +48 -0
  431. package/src/shared/shadcn/code-block/code-block.tokens.css +48 -0
  432. package/src/shared/shadcn/code-block/code-block.tokens.ts +25 -0
  433. package/src/shared/shadcn/code-block/highlightRanges.ts +451 -0
  434. package/src/shared/shadcn/code-block/highlightStyles.ts +76 -0
  435. package/src/shared/shadcn/code-block/index.ts +59 -0
  436. package/src/shared/shadcn/code-block/syntax/SyntaxTheme.svelte +32 -0
  437. package/src/shared/shadcn/code-block/syntax/THIRD_PARTY_LICENSES.md +72 -0
  438. package/src/shared/shadcn/code-block/syntax/defineSyntaxTheme.ts +111 -0
  439. package/src/shared/shadcn/code-block/syntax/index.ts +39 -0
  440. package/src/shared/shadcn/code-block/syntax/presets.ts +293 -0
  441. package/src/shared/shadcn/code-block/syntax/syntax-theme-context.svelte.ts +17 -0
  442. package/src/shared/shadcn/code-block/syntax/tokens.css +20 -0
  443. package/src/shared/shadcn/code-block/syntax/tokens.ts +28 -0
  444. package/src/shared/shadcn/code-block/tokenizer.ts +534 -0
  445. package/src/shared/shadcn/collapsible/collapsible-content.svelte +16 -0
  446. package/src/shared/shadcn/collapsible/collapsible-trigger.svelte +16 -0
  447. package/src/shared/shadcn/collapsible/collapsible.docs-body.md +23 -0
  448. package/src/shared/shadcn/collapsible/collapsible.docs.md +29 -0
  449. package/src/shared/shadcn/collapsible/collapsible.provenance.json +49 -0
  450. package/src/shared/shadcn/collapsible/collapsible.svelte +18 -0
  451. package/src/shared/shadcn/collapsible/collapsible.tokens.css +13 -0
  452. package/src/shared/shadcn/collapsible/collapsible.tokens.ts +10 -0
  453. package/src/shared/shadcn/collapsible/examples/preview.svelte +30 -0
  454. package/src/shared/shadcn/collapsible/index.ts +18 -0
  455. package/src/shared/shadcn/column-canvas/RESPONSIVE_SCROLL_PLAN.md +167 -0
  456. package/src/shared/shadcn/column-canvas/STICKY_COLUMNS_PLAN.md +84 -0
  457. package/src/shared/shadcn/column-canvas/column-canvas-body.svelte +53 -0
  458. package/src/shared/shadcn/column-canvas/column-canvas-close.svelte +43 -0
  459. package/src/shared/shadcn/column-canvas/column-canvas-collapsed-column.svelte +57 -0
  460. package/src/shared/shadcn/column-canvas/column-canvas-column-context.svelte.ts +31 -0
  461. package/src/shared/shadcn/column-canvas/column-canvas-column.svelte +609 -0
  462. package/src/shared/shadcn/column-canvas/column-canvas-controller.svelte.ts +701 -0
  463. package/src/shared/shadcn/column-canvas/column-canvas-count.svelte +33 -0
  464. package/src/shared/shadcn/column-canvas/column-canvas-header-actions.svelte +27 -0
  465. package/src/shared/shadcn/column-canvas/column-canvas-header.svelte +27 -0
  466. package/src/shared/shadcn/column-canvas/column-canvas-item.svelte +32 -0
  467. package/src/shared/shadcn/column-canvas/column-canvas-layout.ts +156 -0
  468. package/src/shared/shadcn/column-canvas/column-canvas-persistence.ts +165 -0
  469. package/src/shared/shadcn/column-canvas/column-canvas-title.svelte +31 -0
  470. package/src/shared/shadcn/column-canvas/column-canvas-toggle.svelte +115 -0
  471. package/src/shared/shadcn/column-canvas/column-canvas-types.ts +20 -0
  472. package/src/shared/shadcn/column-canvas/column-canvas.css +498 -0
  473. package/src/shared/shadcn/column-canvas/column-canvas.demo-data.ts +192 -0
  474. package/src/shared/shadcn/column-canvas/column-canvas.docs.md +530 -0
  475. package/src/shared/shadcn/column-canvas/column-canvas.showcase-data.ts +606 -0
  476. package/src/shared/shadcn/column-canvas/column-canvas.svelte +997 -0
  477. package/src/shared/shadcn/column-canvas/column-canvas.tokens.css +48 -0
  478. package/src/shared/shadcn/column-canvas/column-canvas.tokens.ts +30 -0
  479. package/src/shared/shadcn/column-canvas/context.svelte.ts +70 -0
  480. package/src/shared/shadcn/column-canvas/index.ts +96 -0
  481. package/src/shared/shadcn/command/command-dialog.svelte +48 -0
  482. package/src/shared/shadcn/command/command-empty.svelte +18 -0
  483. package/src/shared/shadcn/command/command-group.svelte +35 -0
  484. package/src/shared/shadcn/command/command-input.svelte +34 -0
  485. package/src/shared/shadcn/command/command-item.svelte +27 -0
  486. package/src/shared/shadcn/command/command-link-item.svelte +18 -0
  487. package/src/shared/shadcn/command/command-list.svelte +18 -0
  488. package/src/shared/shadcn/command/command-loading.svelte +8 -0
  489. package/src/shared/shadcn/command/command-separator.svelte +18 -0
  490. package/src/shared/shadcn/command/command-shortcut.svelte +22 -0
  491. package/src/shared/shadcn/command/command.docs-body.md +79 -0
  492. package/src/shared/shadcn/command/command.docs.md +85 -0
  493. package/src/shared/shadcn/command/command.provenance.json +86 -0
  494. package/src/shared/shadcn/command/command.svelte +536 -0
  495. package/src/shared/shadcn/command/command.tokens.css +13 -0
  496. package/src/shared/shadcn/command/command.tokens.ts +10 -0
  497. package/src/shared/shadcn/command/examples/preview.svelte +50 -0
  498. package/src/shared/shadcn/command/index.ts +39 -0
  499. package/src/shared/shadcn/command-view/command-view-empty.svelte +13 -0
  500. package/src/shared/shadcn/command-view/command-view-filters.svelte +44 -0
  501. package/src/shared/shadcn/command-view/command-view-footer.svelte +13 -0
  502. package/src/shared/shadcn/command-view/command-view-group.svelte +8 -0
  503. package/src/shared/shadcn/command-view/command-view-input.svelte +41 -0
  504. package/src/shared/shadcn/command-view/command-view-item-description.svelte +22 -0
  505. package/src/shared/shadcn/command-view/command-view-item-icon.svelte +22 -0
  506. package/src/shared/shadcn/command-view/command-view-item-label.svelte +22 -0
  507. package/src/shared/shadcn/command-view/command-view-item.svelte +21 -0
  508. package/src/shared/shadcn/command-view/command-view-list.svelte +36 -0
  509. package/src/shared/shadcn/command-view/command-view-shortcut.svelte +22 -0
  510. package/src/shared/shadcn/command-view/command-view.css +210 -0
  511. package/src/shared/shadcn/command-view/command-view.docs.md +60 -0
  512. package/src/shared/shadcn/command-view/command-view.provenance.json +8 -0
  513. package/src/shared/shadcn/command-view/command-view.svelte +30 -0
  514. package/src/shared/shadcn/command-view/command-view.tokens.css +21 -0
  515. package/src/shared/shadcn/command-view/command-view.tokens.ts +20 -0
  516. package/src/shared/shadcn/command-view/index.ts +46 -0
  517. package/src/shared/shadcn/context-menu/context-menu-checkbox-item.svelte +704 -0
  518. package/src/shared/shadcn/context-menu/context-menu-content.svelte +42 -0
  519. package/src/shared/shadcn/context-menu/context-menu-group-heading.svelte +22 -0
  520. package/src/shared/shadcn/context-menu/context-menu-group.svelte +12 -0
  521. package/src/shared/shadcn/context-menu/context-menu-item.svelte +25 -0
  522. package/src/shared/shadcn/context-menu/context-menu-label.svelte +26 -0
  523. package/src/shared/shadcn/context-menu/context-menu-portal.svelte +7 -0
  524. package/src/shared/shadcn/context-menu/context-menu-radio-group.svelte +18 -0
  525. package/src/shared/shadcn/context-menu/context-menu-radio-item.svelte +38 -0
  526. package/src/shared/shadcn/context-menu/context-menu-separator.svelte +18 -0
  527. package/src/shared/shadcn/context-menu/context-menu-shortcut.svelte +22 -0
  528. package/src/shared/shadcn/context-menu/context-menu-sub-content.svelte +18 -0
  529. package/src/shared/shadcn/context-menu/context-menu-sub-trigger.svelte +36 -0
  530. package/src/shared/shadcn/context-menu/context-menu-sub.svelte +8 -0
  531. package/src/shared/shadcn/context-menu/context-menu-trigger.svelte +32 -0
  532. package/src/shared/shadcn/context-menu/context-menu.docs-body.md +25 -0
  533. package/src/shared/shadcn/context-menu/context-menu.docs.md +31 -0
  534. package/src/shared/shadcn/context-menu/context-menu.provenance.json +106 -0
  535. package/src/shared/shadcn/context-menu/context-menu.svelte +17 -0
  536. package/src/shared/shadcn/context-menu/context-menu.tokens.css +7 -0
  537. package/src/shared/shadcn/context-menu/context-menu.tokens.ts +10 -0
  538. package/src/shared/shadcn/context-menu/index.ts +57 -0
  539. package/src/shared/shadcn/dialog/dialog-close.svelte +16 -0
  540. package/src/shared/shadcn/dialog/dialog-content.svelte +539 -0
  541. package/src/shared/shadcn/dialog/dialog-description.svelte +18 -0
  542. package/src/shared/shadcn/dialog/dialog-footer.svelte +34 -0
  543. package/src/shared/shadcn/dialog/dialog-header.svelte +22 -0
  544. package/src/shared/shadcn/dialog/dialog-overlay.svelte +18 -0
  545. package/src/shared/shadcn/dialog/dialog-portal.svelte +7 -0
  546. package/src/shared/shadcn/dialog/dialog-title.svelte +18 -0
  547. package/src/shared/shadcn/dialog/dialog-trigger.svelte +16 -0
  548. package/src/shared/shadcn/dialog/dialog.docs-body.md +101 -0
  549. package/src/shared/shadcn/dialog/dialog.docs.md +107 -0
  550. package/src/shared/shadcn/dialog/dialog.provenance.json +76 -0
  551. package/src/shared/shadcn/dialog/dialog.svelte +8 -0
  552. package/src/shared/shadcn/dialog/dialog.tokens.css +14 -0
  553. package/src/shared/shadcn/dialog/dialog.tokens.ts +11 -0
  554. package/src/shared/shadcn/dialog/examples/custom-close-button.svelte +36 -0
  555. package/src/shared/shadcn/dialog/examples/preview.svelte +46 -0
  556. package/src/shared/shadcn/dialog/index.ts +35 -0
  557. package/src/shared/shadcn/drawer/drawer-close.svelte +8 -0
  558. package/src/shared/shadcn/drawer/drawer-content.svelte +440 -0
  559. package/src/shared/shadcn/drawer/drawer-description.svelte +18 -0
  560. package/src/shared/shadcn/drawer/drawer-footer.svelte +22 -0
  561. package/src/shared/shadcn/drawer/drawer-header.svelte +22 -0
  562. package/src/shared/shadcn/drawer/drawer-nested.svelte +17 -0
  563. package/src/shared/shadcn/drawer/drawer-overlay.svelte +18 -0
  564. package/src/shared/shadcn/drawer/drawer-portal.svelte +7 -0
  565. package/src/shared/shadcn/drawer/drawer-title.svelte +18 -0
  566. package/src/shared/shadcn/drawer/drawer-trigger.svelte +8 -0
  567. package/src/shared/shadcn/drawer/drawer.docs-body.md +92 -0
  568. package/src/shared/shadcn/drawer/drawer.docs.md +98 -0
  569. package/src/shared/shadcn/drawer/drawer.provenance.json +86 -0
  570. package/src/shared/shadcn/drawer/drawer.svelte +17 -0
  571. package/src/shared/shadcn/drawer/drawer.tokens.css +7 -0
  572. package/src/shared/shadcn/drawer/drawer.tokens.ts +10 -0
  573. package/src/shared/shadcn/drawer/examples/preview.svelte +71 -0
  574. package/src/shared/shadcn/drawer/examples/sides.svelte +50 -0
  575. package/src/shared/shadcn/drawer/index.ts +40 -0
  576. package/src/shared/shadcn/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  577. package/src/shared/shadcn/dropdown-menu/dropdown-menu-checkbox-item.svelte +735 -0
  578. package/src/shared/shadcn/dropdown-menu/dropdown-menu-content.svelte +47 -0
  579. package/src/shared/shadcn/dropdown-menu/dropdown-menu-group-heading.svelte +23 -0
  580. package/src/shared/shadcn/dropdown-menu/dropdown-menu-group.svelte +14 -0
  581. package/src/shared/shadcn/dropdown-menu/dropdown-menu-item.svelte +25 -0
  582. package/src/shared/shadcn/dropdown-menu/dropdown-menu-label.svelte +26 -0
  583. package/src/shared/shadcn/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  584. package/src/shared/shadcn/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  585. package/src/shared/shadcn/dropdown-menu/dropdown-menu-radio-item.svelte +34 -0
  586. package/src/shared/shadcn/dropdown-menu/dropdown-menu-separator.svelte +18 -0
  587. package/src/shared/shadcn/dropdown-menu/dropdown-menu-shortcut.svelte +22 -0
  588. package/src/shared/shadcn/dropdown-menu/dropdown-menu-sub-content.svelte +18 -0
  589. package/src/shared/shadcn/dropdown-menu/dropdown-menu-sub-trigger.svelte +27 -0
  590. package/src/shared/shadcn/dropdown-menu/dropdown-menu-sub.svelte +10 -0
  591. package/src/shared/shadcn/dropdown-menu/dropdown-menu-trigger.svelte +28 -0
  592. package/src/shared/shadcn/dropdown-menu/dropdown-menu.docs-body.md +189 -0
  593. package/src/shared/shadcn/dropdown-menu/dropdown-menu.docs.md +195 -0
  594. package/src/shared/shadcn/dropdown-menu/dropdown-menu.provenance.json +104 -0
  595. package/src/shared/shadcn/dropdown-menu/dropdown-menu.svelte +17 -0
  596. package/src/shared/shadcn/dropdown-menu/dropdown-menu.tokens.css +13 -0
  597. package/src/shared/shadcn/dropdown-menu/dropdown-menu.tokens.ts +10 -0
  598. package/src/shared/shadcn/dropdown-menu/examples/checkboxes.svelte +33 -0
  599. package/src/shared/shadcn/dropdown-menu/examples/dialog.svelte +95 -0
  600. package/src/shared/shadcn/dropdown-menu/examples/preview.svelte +61 -0
  601. package/src/shared/shadcn/dropdown-menu/examples/radio-group.svelte +27 -0
  602. package/src/shared/shadcn/dropdown-menu/index.ts +59 -0
  603. package/src/shared/shadcn/empty/empty-content.svelte +22 -0
  604. package/src/shared/shadcn/empty/empty-description.svelte +22 -0
  605. package/src/shared/shadcn/empty/empty-header.svelte +22 -0
  606. package/src/shared/shadcn/empty/empty-media.svelte +39 -0
  607. package/src/shared/shadcn/empty/empty-title.svelte +22 -0
  608. package/src/shared/shadcn/empty/empty.docs-body.md +103 -0
  609. package/src/shared/shadcn/empty/empty.docs.md +109 -0
  610. package/src/shared/shadcn/empty/empty.provenance.json +76 -0
  611. package/src/shared/shadcn/empty/empty.svelte +257 -0
  612. package/src/shared/shadcn/empty/empty.tokens.css +13 -0
  613. package/src/shared/shadcn/empty/empty.tokens.ts +9 -0
  614. package/src/shared/shadcn/empty/examples/background.svelte +28 -0
  615. package/src/shared/shadcn/empty/examples/outline.svelte +22 -0
  616. package/src/shared/shadcn/empty/examples/preview.svelte +32 -0
  617. package/src/shared/shadcn/empty/index.ts +24 -0
  618. package/src/shared/shadcn/field/examples/checkbox.svelte +64 -0
  619. package/src/shared/shadcn/field/examples/field-group.svelte +48 -0
  620. package/src/shared/shadcn/field/examples/fieldset.svelte +31 -0
  621. package/src/shared/shadcn/field/examples/input.svelte +27 -0
  622. package/src/shared/shadcn/field/examples/preview.svelte +136 -0
  623. package/src/shared/shadcn/field/examples/responsive-layout.svelte +50 -0
  624. package/src/shared/shadcn/field/examples/select.svelte +43 -0
  625. package/src/shared/shadcn/field/examples/switch.svelte +19 -0
  626. package/src/shared/shadcn/field/examples/textarea.svelte +24 -0
  627. package/src/shared/shadcn/field/field-content.svelte +22 -0
  628. package/src/shared/shadcn/field/field-description.svelte +22 -0
  629. package/src/shared/shadcn/field/field-error.svelte +66 -0
  630. package/src/shared/shadcn/field/field-group.svelte +22 -0
  631. package/src/shared/shadcn/field/field-label.svelte +22 -0
  632. package/src/shared/shadcn/field/field-legend.svelte +26 -0
  633. package/src/shared/shadcn/field/field-separator.svelte +42 -0
  634. package/src/shared/shadcn/field/field-set.svelte +22 -0
  635. package/src/shared/shadcn/field/field-title.svelte +22 -0
  636. package/src/shared/shadcn/field/field.docs-body.md +412 -0
  637. package/src/shared/shadcn/field/field.docs.md +418 -0
  638. package/src/shared/shadcn/field/field.provenance.json +102 -0
  639. package/src/shared/shadcn/field/field.svelte +540 -0
  640. package/src/shared/shadcn/field/field.tokens.css +13 -0
  641. package/src/shared/shadcn/field/field.tokens.ts +9 -0
  642. package/src/shared/shadcn/field/index.ts +35 -0
  643. package/src/shared/shadcn/hover-card/examples/basic.svelte +12 -0
  644. package/src/shared/shadcn/hover-card/hover-card-content.svelte +348 -0
  645. package/src/shared/shadcn/hover-card/hover-card-portal.svelte +7 -0
  646. package/src/shared/shadcn/hover-card/hover-card-trigger.svelte +26 -0
  647. package/src/shared/shadcn/hover-card/hover-card.docs-body.md +22 -0
  648. package/src/shared/shadcn/hover-card/hover-card.docs.md +28 -0
  649. package/src/shared/shadcn/hover-card/hover-card.provenance.json +58 -0
  650. package/src/shared/shadcn/hover-card/hover-card.svelte +15 -0
  651. package/src/shared/shadcn/hover-card/hover-card.tokens.css +14 -0
  652. package/src/shared/shadcn/hover-card/hover-card.tokens.ts +11 -0
  653. package/src/shared/shadcn/hover-card/index.ts +20 -0
  654. package/src/shared/shadcn/input/examples/default.svelte +7 -0
  655. package/src/shared/shadcn/input/examples/disabled.svelte +7 -0
  656. package/src/shared/shadcn/input/examples/file.svelte +11 -0
  657. package/src/shared/shadcn/input/examples/preview.svelte +7 -0
  658. package/src/shared/shadcn/input/examples/with-button.svelte +11 -0
  659. package/src/shared/shadcn/input/examples/with-label.svelte +13 -0
  660. package/src/shared/shadcn/input/index.ts +11 -0
  661. package/src/shared/shadcn/input/input.docs-body.md +83 -0
  662. package/src/shared/shadcn/input/input.docs.md +89 -0
  663. package/src/shared/shadcn/input/input.provenance.json +47 -0
  664. package/src/shared/shadcn/input/input.svelte +398 -0
  665. package/src/shared/shadcn/input/input.tokens.css +13 -0
  666. package/src/shared/shadcn/input/input.tokens.ts +9 -0
  667. package/src/shared/shadcn/input-group/examples/custom-input.svelte +20 -0
  668. package/src/shared/shadcn/input-group/examples/dropdown.svelte +58 -0
  669. package/src/shared/shadcn/input-group/examples/icon.svelte +42 -0
  670. package/src/shared/shadcn/input-group/examples/label.svelte +43 -0
  671. package/src/shared/shadcn/input-group/examples/preview.svelte +95 -0
  672. package/src/shared/shadcn/input-group/examples/spinner.svelte +40 -0
  673. package/src/shared/shadcn/input-group/examples/text.svelte +40 -0
  674. package/src/shared/shadcn/input-group/examples/textarea.svelte +37 -0
  675. package/src/shared/shadcn/input-group/examples/tooltip.svelte +79 -0
  676. package/src/shared/shadcn/input-group/index.ts +27 -0
  677. package/src/shared/shadcn/input-group/input-group-addon.svelte +51 -0
  678. package/src/shared/shadcn/input-group/input-group-button.svelte +46 -0
  679. package/src/shared/shadcn/input-group/input-group-input.svelte +20 -0
  680. package/src/shared/shadcn/input-group/input-group-text.svelte +22 -0
  681. package/src/shared/shadcn/input-group/input-group-textarea.svelte +20 -0
  682. package/src/shared/shadcn/input-group/input-group.docs-body.md +431 -0
  683. package/src/shared/shadcn/input-group/input-group.docs.md +437 -0
  684. package/src/shared/shadcn/input-group/input-group.provenance.json +81 -0
  685. package/src/shared/shadcn/input-group/input-group.svelte +628 -0
  686. package/src/shared/shadcn/input-group/input-group.tokens.css +13 -0
  687. package/src/shared/shadcn/input-group/input-group.tokens.ts +10 -0
  688. package/src/shared/shadcn/label/examples/preview.svelte +13 -0
  689. package/src/shared/shadcn/label/index.ts +9 -0
  690. package/src/shared/shadcn/label/label.docs-body.md +17 -0
  691. package/src/shared/shadcn/label/label.docs.md +23 -0
  692. package/src/shared/shadcn/label/label.provenance.json +40 -0
  693. package/src/shared/shadcn/label/label.svelte +169 -0
  694. package/src/shared/shadcn/label/label.tokens.css +13 -0
  695. package/src/shared/shadcn/label/label.tokens.ts +9 -0
  696. package/src/shared/shadcn/pagination/examples/preview.svelte +34 -0
  697. package/src/shared/shadcn/pagination/index.ts +36 -0
  698. package/src/shared/shadcn/pagination/pagination-content.svelte +22 -0
  699. package/src/shared/shadcn/pagination/pagination-ellipsis.svelte +29 -0
  700. package/src/shared/shadcn/pagination/pagination-item.svelte +14 -0
  701. package/src/shared/shadcn/pagination/pagination-link.svelte +40 -0
  702. package/src/shared/shadcn/pagination/pagination-next-button.svelte +39 -0
  703. package/src/shared/shadcn/pagination/pagination-next.svelte +25 -0
  704. package/src/shared/shadcn/pagination/pagination-prev-button.svelte +39 -0
  705. package/src/shared/shadcn/pagination/pagination-previous.svelte +25 -0
  706. package/src/shared/shadcn/pagination/pagination.docs-body.md +39 -0
  707. package/src/shared/shadcn/pagination/pagination.docs.md +45 -0
  708. package/src/shared/shadcn/pagination/pagination.provenance.json +72 -0
  709. package/src/shared/shadcn/pagination/pagination.svelte +215 -0
  710. package/src/shared/shadcn/pagination/pagination.tokens.css +13 -0
  711. package/src/shared/shadcn/pagination/pagination.tokens.ts +10 -0
  712. package/src/shared/shadcn/popover/examples/preview.svelte +42 -0
  713. package/src/shared/shadcn/popover/index.ts +30 -0
  714. package/src/shared/shadcn/popover/popover-close.svelte +8 -0
  715. package/src/shared/shadcn/popover/popover-content.svelte +376 -0
  716. package/src/shared/shadcn/popover/popover-description.svelte +22 -0
  717. package/src/shared/shadcn/popover/popover-header.svelte +22 -0
  718. package/src/shared/shadcn/popover/popover-portal.svelte +7 -0
  719. package/src/shared/shadcn/popover/popover-title.svelte +22 -0
  720. package/src/shared/shadcn/popover/popover-trigger.svelte +32 -0
  721. package/src/shared/shadcn/popover/popover.docs-body.md +20 -0
  722. package/src/shared/shadcn/popover/popover.docs.md +26 -0
  723. package/src/shared/shadcn/popover/popover.provenance.json +68 -0
  724. package/src/shared/shadcn/popover/popover.svelte +15 -0
  725. package/src/shared/shadcn/popover/popover.tokens.css +17 -0
  726. package/src/shared/shadcn/popover/popover.tokens.ts +13 -0
  727. package/src/shared/shadcn/progress/examples/preview.svelte +15 -0
  728. package/src/shared/shadcn/progress/index.ts +9 -0
  729. package/src/shared/shadcn/progress/progress.docs-body.md +17 -0
  730. package/src/shared/shadcn/progress/progress.docs.md +23 -0
  731. package/src/shared/shadcn/progress/progress.provenance.json +40 -0
  732. package/src/shared/shadcn/progress/progress.svelte +173 -0
  733. package/src/shared/shadcn/progress/progress.tokens.css +10 -0
  734. package/src/shared/shadcn/progress/progress.tokens.ts +10 -0
  735. package/src/shared/shadcn/resizable/examples/handle.svelte +22 -0
  736. package/src/shared/shadcn/resizable/examples/preview.svelte +29 -0
  737. package/src/shared/shadcn/resizable/examples/vertical.svelte +22 -0
  738. package/src/shared/shadcn/resizable/index.ts +18 -0
  739. package/src/shared/shadcn/resizable/resizable-handle.svelte +401 -0
  740. package/src/shared/shadcn/resizable/resizable-pane-group.svelte +22 -0
  741. package/src/shared/shadcn/resizable/resizable-pane.svelte +23 -0
  742. package/src/shared/shadcn/resizable/resizable.docs-body.md +82 -0
  743. package/src/shared/shadcn/resizable/resizable.docs.md +88 -0
  744. package/src/shared/shadcn/resizable/resizable.provenance.json +44 -0
  745. package/src/shared/shadcn/resizable/resizable.tokens.css +17 -0
  746. package/src/shared/shadcn/resizable/resizable.tokens.ts +14 -0
  747. package/src/shared/shadcn/scroll-area/ScrollArea.local-example-sources.ts +30 -0
  748. package/src/shared/shadcn/scroll-area/ScrollAreaBehaviorFixture.svelte +152 -0
  749. package/src/shared/shadcn/scroll-area/ScrollAreaScrollableList.svelte +49 -0
  750. package/src/shared/shadcn/scroll-area/examples/horizontal-scrolling.svelte +52 -0
  751. package/src/shared/shadcn/scroll-area/examples/preview.svelte +22 -0
  752. package/src/shared/shadcn/scroll-area/index.ts +20 -0
  753. package/src/shared/shadcn/scroll-area/scroll-area-model.ts +122 -0
  754. package/src/shared/shadcn/scroll-area/scroll-area-overlay-scrollbar.svelte +362 -0
  755. package/src/shared/shadcn/scroll-area/scroll-area-scrollbar.svelte +30 -0
  756. package/src/shared/shadcn/scroll-area/scroll-area.docs-body.md +81 -0
  757. package/src/shared/shadcn/scroll-area/scroll-area.docs.md +87 -0
  758. package/src/shared/shadcn/scroll-area/scroll-area.provenance.json +44 -0
  759. package/src/shared/shadcn/scroll-area/scroll-area.svelte +544 -0
  760. package/src/shared/shadcn/scroll-area/scroll-area.tokens.css +13 -0
  761. package/src/shared/shadcn/scroll-area/scroll-area.tokens.ts +10 -0
  762. package/src/shared/shadcn/select/examples/scrollable.svelte +62 -0
  763. package/src/shared/shadcn/select/index.ts +39 -0
  764. package/src/shared/shadcn/select/select-content.svelte +764 -0
  765. package/src/shared/shadcn/select/select-group-heading.svelte +22 -0
  766. package/src/shared/shadcn/select/select-group.svelte +18 -0
  767. package/src/shared/shadcn/select/select-item.svelte +47 -0
  768. package/src/shared/shadcn/select/select-label.svelte +22 -0
  769. package/src/shared/shadcn/select/select-portal.svelte +7 -0
  770. package/src/shared/shadcn/select/select-scroll-down-button.svelte +22 -0
  771. package/src/shared/shadcn/select/select-scroll-up-button.svelte +22 -0
  772. package/src/shared/shadcn/select/select-separator.svelte +19 -0
  773. package/src/shared/shadcn/select/select-trigger.svelte +46 -0
  774. package/src/shared/shadcn/select/select.docs-body.md +92 -0
  775. package/src/shared/shadcn/select/select.docs.md +98 -0
  776. package/src/shared/shadcn/select/select.provenance.json +86 -0
  777. package/src/shared/shadcn/select/select.svelte +18 -0
  778. package/src/shared/shadcn/select/select.tokens.css +13 -0
  779. package/src/shared/shadcn/select/select.tokens.ts +10 -0
  780. package/src/shared/shadcn/separator/examples/preview.svelte +22 -0
  781. package/src/shared/shadcn/separator/index.ts +14 -0
  782. package/src/shared/shadcn/separator/separator.docs-body.md +17 -0
  783. package/src/shared/shadcn/separator/separator.docs.md +23 -0
  784. package/src/shared/shadcn/separator/separator.provenance.json +40 -0
  785. package/src/shared/shadcn/separator/separator.svelte +150 -0
  786. package/src/shared/shadcn/separator/separator.tokens.css +13 -0
  787. package/src/shared/shadcn/separator/separator.tokens.ts +10 -0
  788. package/src/shared/shadcn/sheet/examples/preview.svelte +39 -0
  789. package/src/shared/shadcn/sheet/index.ts +36 -0
  790. package/src/shared/shadcn/sheet/sheet-close.svelte +8 -0
  791. package/src/shared/shadcn/sheet/sheet-content.svelte +593 -0
  792. package/src/shared/shadcn/sheet/sheet-description.svelte +18 -0
  793. package/src/shared/shadcn/sheet/sheet-footer.svelte +22 -0
  794. package/src/shared/shadcn/sheet/sheet-header.svelte +22 -0
  795. package/src/shared/shadcn/sheet/sheet-overlay.svelte +18 -0
  796. package/src/shared/shadcn/sheet/sheet-portal.svelte +7 -0
  797. package/src/shared/shadcn/sheet/sheet-title.svelte +18 -0
  798. package/src/shared/shadcn/sheet/sheet-trigger.svelte +8 -0
  799. package/src/shared/shadcn/sheet/sheet.docs-body.md +53 -0
  800. package/src/shared/shadcn/sheet/sheet.docs.md +59 -0
  801. package/src/shared/shadcn/sheet/sheet.provenance.json +76 -0
  802. package/src/shared/shadcn/sheet/sheet.svelte +8 -0
  803. package/src/shared/shadcn/sheet/sheet.tokens.css +13 -0
  804. package/src/shared/shadcn/sheet/sheet.tokens.ts +9 -0
  805. package/src/shared/shadcn/sidebar/constants.ts +6 -0
  806. package/src/shared/shadcn/sidebar/context.svelte.ts +81 -0
  807. package/src/shared/shadcn/sidebar/examples/collapsible-sidebar-group.svelte +50 -0
  808. package/src/shared/shadcn/sidebar/examples/collapsible-sidebar-menu.svelte +179 -0
  809. package/src/shared/shadcn/sidebar/examples/controlled-sidebar.svelte +81 -0
  810. package/src/shared/shadcn/sidebar/examples/dropdownmenu.svelte +86 -0
  811. package/src/shared/shadcn/sidebar/examples/sidebar-footer.svelte +52 -0
  812. package/src/shared/shadcn/sidebar/examples/sidebar-group.svelte +33 -0
  813. package/src/shared/shadcn/sidebar/examples/sidebar-groupaction.svelte +60 -0
  814. package/src/shared/shadcn/sidebar/examples/sidebar-header.svelte +44 -0
  815. package/src/shared/shadcn/sidebar/examples/sidebar-menu.svelte +63 -0
  816. package/src/shared/shadcn/sidebar/examples/sidebar-menubadge.svelte +72 -0
  817. package/src/shared/shadcn/sidebar/examples/sidebar-menusub.svelte +170 -0
  818. package/src/shared/shadcn/sidebar/examples/your-first-sidebar.svelte +70 -0
  819. package/src/shared/shadcn/sidebar/index.ts +75 -0
  820. package/src/shared/shadcn/sidebar/sidebar-content.svelte +23 -0
  821. package/src/shared/shadcn/sidebar/sidebar-footer.svelte +23 -0
  822. package/src/shared/shadcn/sidebar/sidebar-group-action.svelte +38 -0
  823. package/src/shared/shadcn/sidebar/sidebar-group-content.svelte +23 -0
  824. package/src/shared/shadcn/sidebar/sidebar-group-label.svelte +38 -0
  825. package/src/shared/shadcn/sidebar/sidebar-group.svelte +23 -0
  826. package/src/shared/shadcn/sidebar/sidebar-header.svelte +23 -0
  827. package/src/shared/shadcn/sidebar/sidebar-input.svelte +21 -0
  828. package/src/shared/shadcn/sidebar/sidebar-inset.svelte +22 -0
  829. package/src/shared/shadcn/sidebar/sidebar-menu-action.svelte +41 -0
  830. package/src/shared/shadcn/sidebar/sidebar-menu-badge.svelte +23 -0
  831. package/src/shared/shadcn/sidebar/sidebar-menu-button.svelte +111 -0
  832. package/src/shared/shadcn/sidebar/sidebar-menu-item.svelte +23 -0
  833. package/src/shared/shadcn/sidebar/sidebar-menu-skeleton.svelte +43 -0
  834. package/src/shared/shadcn/sidebar/sidebar-menu-sub-button.svelte +44 -0
  835. package/src/shared/shadcn/sidebar/sidebar-menu-sub-item.svelte +23 -0
  836. package/src/shared/shadcn/sidebar/sidebar-menu-sub.svelte +23 -0
  837. package/src/shared/shadcn/sidebar/sidebar-menu.svelte +26 -0
  838. package/src/shared/shadcn/sidebar/sidebar-provider.svelte +52 -0
  839. package/src/shared/shadcn/sidebar/sidebar-rail.svelte +33 -0
  840. package/src/shared/shadcn/sidebar/sidebar-separator.svelte +19 -0
  841. package/src/shared/shadcn/sidebar/sidebar-trigger.svelte +36 -0
  842. package/src/shared/shadcn/sidebar/sidebar.docs-body.md +1634 -0
  843. package/src/shared/shadcn/sidebar/sidebar.docs.md +1648 -0
  844. package/src/shared/shadcn/sidebar/sidebar.provenance.json +149 -0
  845. package/src/shared/shadcn/sidebar/sidebar.svelte +1431 -0
  846. package/src/shared/shadcn/sidebar/sidebar.tokens.ts +22 -0
  847. package/src/shared/shadcn/skeleton/examples/card.svelte +13 -0
  848. package/src/shared/shadcn/skeleton/examples/preview.svelte +13 -0
  849. package/src/shared/shadcn/skeleton/index.ts +9 -0
  850. package/src/shared/shadcn/skeleton/skeleton.docs-body.md +35 -0
  851. package/src/shared/shadcn/skeleton/skeleton.docs.md +41 -0
  852. package/src/shared/shadcn/skeleton/skeleton.provenance.json +40 -0
  853. package/src/shared/shadcn/skeleton/skeleton.svelte +131 -0
  854. package/src/shared/shadcn/skeleton/skeleton.tokens.css +13 -0
  855. package/src/shared/shadcn/skeleton/skeleton.tokens.ts +10 -0
  856. package/src/shared/shadcn/slider/index.ts +9 -0
  857. package/src/shared/shadcn/slider/slider.docs-body.md +18 -0
  858. package/src/shared/shadcn/slider/slider.docs.md +24 -0
  859. package/src/shared/shadcn/slider/slider.provenance.json +46 -0
  860. package/src/shared/shadcn/slider/slider.svelte +399 -0
  861. package/src/shared/shadcn/slider/slider.tokens.css +11 -0
  862. package/src/shared/shadcn/slider/slider.tokens.ts +11 -0
  863. package/src/shared/shadcn/spinner/examples/badge.svelte +21 -0
  864. package/src/shared/shadcn/spinner/examples/button.svelte +21 -0
  865. package/src/shared/shadcn/spinner/examples/color.svelte +13 -0
  866. package/src/shared/shadcn/spinner/examples/customization.svelte +18 -0
  867. package/src/shared/shadcn/spinner/examples/empty.svelte +22 -0
  868. package/src/shared/shadcn/spinner/examples/input-group.svelte +26 -0
  869. package/src/shared/shadcn/spinner/examples/size.svelte +12 -0
  870. package/src/shared/shadcn/spinner/index.ts +3 -0
  871. package/src/shared/shadcn/spinner/spinner.docs-body.md +189 -0
  872. package/src/shared/shadcn/spinner/spinner.docs.md +195 -0
  873. package/src/shared/shadcn/spinner/spinner.provenance.json +59 -0
  874. package/src/shared/shadcn/spinner/spinner.svelte +50 -0
  875. package/src/shared/shadcn/spinner/spinner.tokens.css +13 -0
  876. package/src/shared/shadcn/spinner/spinner.tokens.ts +10 -0
  877. package/src/shared/shadcn/swipe-item/index.ts +30 -0
  878. package/src/shared/shadcn/swipe-item/swipe-item-action.svelte +40 -0
  879. package/src/shared/shadcn/swipe-item/swipe-item-actions.svelte +68 -0
  880. package/src/shared/shadcn/swipe-item/swipe-item-content.svelte +32 -0
  881. package/src/shared/shadcn/swipe-item/swipe-item-context.svelte.ts +612 -0
  882. package/src/shared/shadcn/swipe-item/swipe-item-gesture.ts +137 -0
  883. package/src/shared/shadcn/swipe-item/swipe-item-trigger.svelte +44 -0
  884. package/src/shared/shadcn/swipe-item/swipe-item.css +80 -0
  885. package/src/shared/shadcn/swipe-item/swipe-item.docs.md +75 -0
  886. package/src/shared/shadcn/swipe-item/swipe-item.svelte +76 -0
  887. package/src/shared/shadcn/swipe-item/swipe-item.tokens.css +15 -0
  888. package/src/shared/shadcn/swipe-item/swipe-item.tokens.ts +14 -0
  889. package/src/shared/shadcn/swipe-item/types.ts +31 -0
  890. package/src/shared/shadcn/switch/examples/preview.svelte +11 -0
  891. package/src/shared/shadcn/switch/index.ts +9 -0
  892. package/src/shared/shadcn/switch/switch.docs-body.md +17 -0
  893. package/src/shared/shadcn/switch/switch.docs.md +23 -0
  894. package/src/shared/shadcn/switch/switch.provenance.json +40 -0
  895. package/src/shared/shadcn/switch/switch.svelte +542 -0
  896. package/src/shared/shadcn/switch/switch.tokens.css +13 -0
  897. package/src/shared/shadcn/switch/switch.tokens.ts +10 -0
  898. package/src/shared/shadcn/table/examples/preview.svelte +78 -0
  899. package/src/shared/shadcn/table/index.ts +30 -0
  900. package/src/shared/shadcn/table/table-body.svelte +22 -0
  901. package/src/shared/shadcn/table/table-caption.svelte +22 -0
  902. package/src/shared/shadcn/table/table-cell.svelte +22 -0
  903. package/src/shared/shadcn/table/table-footer.svelte +22 -0
  904. package/src/shared/shadcn/table/table-head.svelte +22 -0
  905. package/src/shared/shadcn/table/table-header.svelte +22 -0
  906. package/src/shared/shadcn/table/table-row.svelte +22 -0
  907. package/src/shared/shadcn/table/table.docs-body.md +43 -0
  908. package/src/shared/shadcn/table/table.docs.md +49 -0
  909. package/src/shared/shadcn/table/table.provenance.json +68 -0
  910. package/src/shared/shadcn/table/table.svelte +249 -0
  911. package/src/shared/shadcn/table/table.tokens.css +13 -0
  912. package/src/shared/shadcn/table/table.tokens.ts +9 -0
  913. package/src/shared/shadcn/tabs/examples/preview.svelte +64 -0
  914. package/src/shared/shadcn/tabs/index.ts +23 -0
  915. package/src/shared/shadcn/tabs/tabs-content.svelte +18 -0
  916. package/src/shared/shadcn/tabs/tabs-list.svelte +35 -0
  917. package/src/shared/shadcn/tabs/tabs-trigger.svelte +18 -0
  918. package/src/shared/shadcn/tabs/tabs.docs-body.md +26 -0
  919. package/src/shared/shadcn/tabs/tabs.docs.md +32 -0
  920. package/src/shared/shadcn/tabs/tabs.provenance.json +52 -0
  921. package/src/shared/shadcn/tabs/tabs.svelte +748 -0
  922. package/src/shared/shadcn/tabs/tabs.tokens.css +13 -0
  923. package/src/shared/shadcn/tabs/tabs.tokens.ts +9 -0
  924. package/src/shared/shadcn/textarea/examples/default.svelte +7 -0
  925. package/src/shared/shadcn/textarea/examples/disabled.svelte +7 -0
  926. package/src/shared/shadcn/textarea/examples/preview.svelte +7 -0
  927. package/src/shared/shadcn/textarea/examples/with-button.svelte +11 -0
  928. package/src/shared/shadcn/textarea/examples/with-label.svelte +11 -0
  929. package/src/shared/shadcn/textarea/examples/with-text.svelte +14 -0
  930. package/src/shared/shadcn/textarea/index.ts +9 -0
  931. package/src/shared/shadcn/textarea/textarea.docs-body.md +84 -0
  932. package/src/shared/shadcn/textarea/textarea.docs.md +90 -0
  933. package/src/shared/shadcn/textarea/textarea.provenance.json +47 -0
  934. package/src/shared/shadcn/textarea/textarea.svelte +345 -0
  935. package/src/shared/shadcn/textarea/textarea.tokens.css +13 -0
  936. package/src/shared/shadcn/textarea/textarea.tokens.ts +10 -0
  937. package/src/shared/shadcn/toggle/examples/default.svelte +16 -0
  938. package/src/shared/shadcn/toggle/examples/disabled.svelte +10 -0
  939. package/src/shared/shadcn/toggle/examples/large.svelte +10 -0
  940. package/src/shared/shadcn/toggle/examples/outline.svelte +10 -0
  941. package/src/shared/shadcn/toggle/examples/preview.svelte +16 -0
  942. package/src/shared/shadcn/toggle/examples/small.svelte +10 -0
  943. package/src/shared/shadcn/toggle/examples/with-text.svelte +11 -0
  944. package/src/shared/shadcn/toggle/index.ts +15 -0
  945. package/src/shared/shadcn/toggle/toggle.docs-body.md +104 -0
  946. package/src/shared/shadcn/toggle/toggle.docs.md +110 -0
  947. package/src/shared/shadcn/toggle/toggle.provenance.json +48 -0
  948. package/src/shared/shadcn/toggle/toggle.svelte +411 -0
  949. package/src/shared/shadcn/toggle/toggle.tokens.css +13 -0
  950. package/src/shared/shadcn/toggle/toggle.tokens.ts +10 -0
  951. package/src/shared/shadcn/toggle-group/examples/disabled.svelte +20 -0
  952. package/src/shared/shadcn/toggle-group/examples/large.svelte +20 -0
  953. package/src/shared/shadcn/toggle-group/examples/outline.svelte +20 -0
  954. package/src/shared/shadcn/toggle-group/examples/single.svelte +20 -0
  955. package/src/shared/shadcn/toggle-group/examples/small.svelte +20 -0
  956. package/src/shared/shadcn/toggle-group/examples/spacing-2.svelte +35 -0
  957. package/src/shared/shadcn/toggle-group/examples/spacing.svelte +35 -0
  958. package/src/shared/shadcn/toggle-group/index.ts +15 -0
  959. package/src/shared/shadcn/toggle-group/toggle-group-item.svelte +164 -0
  960. package/src/shared/shadcn/toggle-group/toggle-group.docs-body.md +178 -0
  961. package/src/shared/shadcn/toggle-group/toggle-group.docs.md +184 -0
  962. package/src/shared/shadcn/toggle-group/toggle-group.provenance.json +52 -0
  963. package/src/shared/shadcn/toggle-group/toggle-group.svelte +436 -0
  964. package/src/shared/shadcn/toggle-group/toggle-group.tokens.css +13 -0
  965. package/src/shared/shadcn/toggle-group/toggle-group.tokens.ts +10 -0
  966. package/src/shared/shadcn/tooltip/examples/preview.svelte +17 -0
  967. package/src/shared/shadcn/tooltip/index.ts +21 -0
  968. package/src/shared/shadcn/tooltip/tooltip-content.svelte +369 -0
  969. package/src/shared/shadcn/tooltip/tooltip-portal.svelte +7 -0
  970. package/src/shared/shadcn/tooltip/tooltip-provider.svelte +8 -0
  971. package/src/shared/shadcn/tooltip/tooltip-trigger.svelte +24 -0
  972. package/src/shared/shadcn/tooltip/tooltip.docs-body.md +56 -0
  973. package/src/shared/shadcn/tooltip/tooltip.docs.md +62 -0
  974. package/src/shared/shadcn/tooltip/tooltip.provenance.json +56 -0
  975. package/src/shared/shadcn/tooltip/tooltip.svelte +15 -0
  976. package/src/shared/shadcn/tooltip/tooltip.tokens.css +13 -0
  977. package/src/shared/shadcn/tooltip/tooltip.tokens.ts +10 -0
  978. package/src/shared/shell/PLAN.md +121 -0
  979. package/src/shared/shell/app-shell/AppShell.css +579 -0
  980. package/src/shared/shell/app-shell/AppShellBody.svelte +72 -0
  981. package/src/shared/shell/app-shell/AppShellBodyContent.svelte +46 -0
  982. package/src/shared/shell/app-shell/AppShellBodySidebar.svelte +116 -0
  983. package/src/shared/shell/app-shell/AppShellBodyToggle.svelte +112 -0
  984. package/src/shared/shell/app-shell/AppShellMain.svelte +35 -0
  985. package/src/shared/shell/app-shell/AppShellMobilePanelSelector.svelte +63 -0
  986. package/src/shared/shell/app-shell/AppShellRoot.svelte +565 -0
  987. package/src/shared/shell/app-shell/AppShellSidebar.svelte +493 -0
  988. package/src/shared/shell/app-shell/AppShellSidebarBody.svelte +29 -0
  989. package/src/shared/shell/app-shell/AppShellSidebarClose.svelte +100 -0
  990. package/src/shared/shell/app-shell/AppShellSidebarFooter.svelte +26 -0
  991. package/src/shared/shell/app-shell/AppShellSidebarHeader.svelte +26 -0
  992. package/src/shared/shell/app-shell/AppShellSidebarToggle.svelte +242 -0
  993. package/src/shared/shell/app-shell/AppShellToolbar.svelte +29 -0
  994. package/src/shared/shell/app-shell/app-shell-body-context.svelte.ts +39 -0
  995. package/src/shared/shell/app-shell/app-shell-context.svelte.ts +27 -0
  996. package/src/shared/shell/app-shell/app-shell-controller.svelte.ts +683 -0
  997. package/src/shared/shell/app-shell/app-shell-persistence.ts +70 -0
  998. package/src/shared/shell/app-shell/app-shell-sidebar-context.svelte.ts +34 -0
  999. package/src/shared/shell/app-shell/app-shell-teleport.ts +38 -0
  1000. package/src/shared/shell/app-shell/examples/AppShellBodyDemo.svelte +28 -0
  1001. package/src/shared/shell/app-shell/examples/AppShellCompleteDemo.svelte +123 -0
  1002. package/src/shared/shell/app-shell/examples/AppShellConversationDemo.svelte +143 -0
  1003. package/src/shared/shell/app-shell/examples/AppShellFilesSidebarDemo.svelte +70 -0
  1004. package/src/shared/shell/app-shell/examples/AppShellMarkdownDocumentDemo.svelte +112 -0
  1005. package/src/shared/shell/app-shell/examples/AppShellMarkdownFilesDemo.svelte +67 -0
  1006. package/src/shared/shell/app-shell/examples/AppShellModeSwitchDemo.svelte +42 -0
  1007. package/src/shared/shell/app-shell/examples/AppShellProjectSidebarDemo.svelte +121 -0
  1008. package/src/shared/shell/app-shell/examples/AppShellSidebarDemo.svelte +142 -0
  1009. package/src/shared/shell/app-shell/examples/AppShellToolbarDemo.svelte +26 -0
  1010. package/src/shared/shell/app-shell/index.ts +73 -0
  1011. package/src/shared/shell/index.ts +1 -0
  1012. package/src/shared/shell/shell.tokens.css +22 -0
  1013. package/src/shared/shell/shell.tokens.ts +39 -0
  1014. package/src/shared/workspace/PLAN.md +1052 -0
  1015. package/src/shared/workspace/REFERENCE.md +122 -0
  1016. package/src/shared/workspace/about-dialog/WorkspaceAboutDialog.css +163 -0
  1017. package/src/shared/workspace/about-dialog/WorkspaceAboutDialog.svelte +113 -0
  1018. package/src/shared/workspace/about-dialog/index.ts +1 -0
  1019. package/src/shared/workspace/app-shell/AppShellAboutDialog.svelte +23 -0
  1020. package/src/shared/workspace/app-shell/AppShellBottomPanel.svelte +15 -0
  1021. package/src/shared/workspace/app-shell/AppShellCommandPalette.svelte +13 -0
  1022. package/src/shared/workspace/app-shell/AppShellCorePluginsSettings.svelte +8 -0
  1023. package/src/shared/workspace/app-shell/AppShellDesktopLayout.css +81 -0
  1024. package/src/shared/workspace/app-shell/AppShellDesktopLayout.svelte +33 -0
  1025. package/src/shared/workspace/app-shell/AppShellFloatingLayer.svelte +20 -0
  1026. package/src/shared/workspace/app-shell/AppShellHotkeySettings.svelte +8 -0
  1027. package/src/shared/workspace/app-shell/AppShellLeftSidebar.svelte +146 -0
  1028. package/src/shared/workspace/app-shell/AppShellMain.svelte +14 -0
  1029. package/src/shared/workspace/app-shell/AppShellNoticeToasts.svelte +41 -0
  1030. package/src/shared/workspace/app-shell/AppShellNotices.svelte +8 -0
  1031. package/src/shared/workspace/app-shell/AppShellOverlayLayer.svelte +34 -0
  1032. package/src/shared/workspace/app-shell/AppShellPluginLayer.svelte +17 -0
  1033. package/src/shared/workspace/app-shell/AppShellRibbon.svelte +10 -0
  1034. package/src/shared/workspace/app-shell/AppShellRightSidebar.svelte +8 -0
  1035. package/src/shared/workspace/app-shell/AppShellRoot.css +101 -0
  1036. package/src/shared/workspace/app-shell/AppShellRoot.svelte +125 -0
  1037. package/src/shared/workspace/app-shell/AppShellSettings.svelte +8 -0
  1038. package/src/shared/workspace/app-shell/AppShellSettingsDialog.css +80 -0
  1039. package/src/shared/workspace/app-shell/AppShellSettingsDialog.svelte +110 -0
  1040. package/src/shared/workspace/app-shell/AppShellSidebar.svelte +10 -0
  1041. package/src/shared/workspace/app-shell/AppShellStatusBar.svelte +8 -0
  1042. package/src/shared/workspace/app-shell/AppShellSurface.svelte +139 -0
  1043. package/src/shared/workspace/app-shell/AppShellTabs.svelte +29 -0
  1044. package/src/shared/workspace/app-shell/AppShellWorkspace.css +19 -0
  1045. package/src/shared/workspace/app-shell/AppShellWorkspace.svelte +67 -0
  1046. package/src/shared/workspace/app-shell/app-shell-context.svelte.ts +37 -0
  1047. package/src/shared/workspace/app-shell/index.ts +79 -0
  1048. package/src/shared/workspace/app-shell/workspace-navigation.ts +16 -0
  1049. package/src/shared/workspace/bottom-panel/WorkspaceBottomPanel.css +406 -0
  1050. package/src/shared/workspace/bottom-panel/WorkspaceBottomPanel.svelte +412 -0
  1051. package/src/shared/workspace/bottom-panel/WorkspaceBottomPanelEmpty.svelte +38 -0
  1052. package/src/shared/workspace/bottom-panel/WorkspaceBottomPanelGroup.svelte +313 -0
  1053. package/src/shared/workspace/bottom-panel/WorkspaceBottomPanelStoryView.svelte +21 -0
  1054. package/src/shared/workspace/bottom-panel/WorkspaceBottomPanelToggle.svelte +68 -0
  1055. package/src/shared/workspace/bottom-panel/index.ts +3 -0
  1056. package/src/shared/workspace/command-palette/WorkspaceCommandPalette.css +33 -0
  1057. package/src/shared/workspace/command-palette/WorkspaceCommandPalette.svelte +183 -0
  1058. package/src/shared/workspace/command-palette/index.ts +1 -0
  1059. package/src/shared/workspace/core/app-shell-controller.svelte.ts +687 -0
  1060. package/src/shared/workspace/core/app-shell-ui-registry.svelte.ts +165 -0
  1061. package/src/shared/workspace/core/app-workspace.ts +484 -0
  1062. package/src/shared/workspace/core/built-in-settings.svelte.ts +467 -0
  1063. package/src/shared/workspace/core/command-manager.svelte.ts +752 -0
  1064. package/src/shared/workspace/core/editor-view-registry.ts +232 -0
  1065. package/src/shared/workspace/core/event-dispatcher.ts +91 -0
  1066. package/src/shared/workspace/core/index.ts +21 -0
  1067. package/src/shared/workspace/core/layout.ts +463 -0
  1068. package/src/shared/workspace/core/managed-plugin-settings.svelte.ts +142 -0
  1069. package/src/shared/workspace/core/notice-manager.svelte.ts +122 -0
  1070. package/src/shared/workspace/core/notification-manager.svelte.ts +631 -0
  1071. package/src/shared/workspace/core/persistence.ts +21 -0
  1072. package/src/shared/workspace/core/plugin-manager.svelte.ts +463 -0
  1073. package/src/shared/workspace/core/popout.ts +38 -0
  1074. package/src/shared/workspace/core/serializable.ts +16 -0
  1075. package/src/shared/workspace/core/types.ts +357 -0
  1076. package/src/shared/workspace/core/view-registry.ts +21 -0
  1077. package/src/shared/workspace/core/workspace-controller.svelte.ts +1509 -0
  1078. package/src/shared/workspace/core/workspace-json.ts +429 -0
  1079. package/src/shared/workspace/core/workspace-menu.ts +121 -0
  1080. package/src/shared/workspace/core/workspace-view.ts +241 -0
  1081. package/src/shared/workspace/demo/ReusableFrameworkDemo.css +52 -0
  1082. package/src/shared/workspace/demo/ReusableFrameworkDemo.svelte +19 -0
  1083. package/src/shared/workspace/demo/framework-demo.ts +482 -0
  1084. package/src/shared/workspace/demo/index.ts +5 -0
  1085. package/src/shared/workspace/drag/index.ts +9 -0
  1086. package/src/shared/workspace/drag/workspace-drag.svelte.ts +354 -0
  1087. package/src/shared/workspace/drag/workspace-pointer-drag-policy.ts +18 -0
  1088. package/src/shared/workspace/drop-overlay/WorkspaceDropOverlay.css +24 -0
  1089. package/src/shared/workspace/drop-overlay/WorkspaceDropOverlay.svelte +48 -0
  1090. package/src/shared/workspace/drop-overlay/WorkspaceTabsDrop.svelte +146 -0
  1091. package/src/shared/workspace/drop-overlay/index.ts +7 -0
  1092. package/src/shared/workspace/drop-overlay/workspace-tabs-drop.ts +59 -0
  1093. package/src/shared/workspace/empty/WorkspaceEmpty.css +42 -0
  1094. package/src/shared/workspace/empty/WorkspaceEmpty.svelte +88 -0
  1095. package/src/shared/workspace/empty/index.ts +1 -0
  1096. package/src/shared/workspace/empty/workspace-empty-actions.ts +127 -0
  1097. package/src/shared/workspace/explorer/WorkspaceExplorer.css +275 -0
  1098. package/src/shared/workspace/explorer/WorkspaceExplorer.svelte +662 -0
  1099. package/src/shared/workspace/explorer/create-explorer-view.ts +31 -0
  1100. package/src/shared/workspace/explorer/explorer-controller.svelte.ts +423 -0
  1101. package/src/shared/workspace/explorer/index.ts +45 -0
  1102. package/src/shared/workspace/explorer/memory-adapter.ts +290 -0
  1103. package/src/shared/workspace/explorer/path.ts +37 -0
  1104. package/src/shared/workspace/explorer/tree.ts +164 -0
  1105. package/src/shared/workspace/explorer/types.ts +134 -0
  1106. package/src/shared/workspace/floating-layer/WorkspaceFloatingLayer.css +19 -0
  1107. package/src/shared/workspace/floating-layer/WorkspaceFloatingLayer.svelte +68 -0
  1108. package/src/shared/workspace/floating-layer/index.ts +1 -0
  1109. package/src/shared/workspace/floating-window/WorkspaceFloatingWindow.css +205 -0
  1110. package/src/shared/workspace/floating-window/WorkspaceFloatingWindow.svelte +353 -0
  1111. package/src/shared/workspace/floating-window/index.ts +1 -0
  1112. package/src/shared/workspace/icon/WorkspaceIcon.css +21 -0
  1113. package/src/shared/workspace/icon/WorkspaceIcon.svelte +38 -0
  1114. package/src/shared/workspace/icon/WorkspaceIconPicker.css +69 -0
  1115. package/src/shared/workspace/icon/WorkspaceIconPicker.svelte +168 -0
  1116. package/src/shared/workspace/icon/icons.ts +92 -0
  1117. package/src/shared/workspace/icon/index.ts +10 -0
  1118. package/src/shared/workspace/index.ts +49 -0
  1119. package/src/shared/workspace/menu/WorkspaceContextMenuItems.svelte +83 -0
  1120. package/src/shared/workspace/menu/WorkspaceMenuItems.css +58 -0
  1121. package/src/shared/workspace/menu/WorkspaceMenuItems.svelte +83 -0
  1122. package/src/shared/workspace/menu/index.ts +2 -0
  1123. package/src/shared/workspace/mobile/WorkspaceMobile.css +417 -0
  1124. package/src/shared/workspace/mobile/WorkspaceMobile.svelte +429 -0
  1125. package/src/shared/workspace/mobile/WorkspaceMobileActionSheet.css +101 -0
  1126. package/src/shared/workspace/mobile/WorkspaceMobileActionSheet.svelte +59 -0
  1127. package/src/shared/workspace/mobile/WorkspaceMobileActionsDrawer.svelte +133 -0
  1128. package/src/shared/workspace/mobile/WorkspaceMobileDock.svelte +109 -0
  1129. package/src/shared/workspace/mobile/WorkspaceMobileSidebar.svelte +144 -0
  1130. package/src/shared/workspace/mobile/WorkspaceMobileTabTile.svelte +71 -0
  1131. package/src/shared/workspace/mobile/WorkspaceMobileTabs.svelte +102 -0
  1132. package/src/shared/workspace/mobile/WorkspaceMobileTabsActions.svelte +62 -0
  1133. package/src/shared/workspace/mobile/WorkspaceMobileViewActions.svelte +56 -0
  1134. package/src/shared/workspace/mobile/index.ts +9 -0
  1135. package/src/shared/workspace/plugins/f-mode/FModeOverlay.css +158 -0
  1136. package/src/shared/workspace/plugins/f-mode/FModeOverlay.svelte +210 -0
  1137. package/src/shared/workspace/plugins/f-mode/f-mode-plugin.ts +152 -0
  1138. package/src/shared/workspace/plugins/f-mode/f-mode-session.svelte.ts +57 -0
  1139. package/src/shared/workspace/plugins/f-mode/hint-labels.ts +123 -0
  1140. package/src/shared/workspace/plugins/f-mode/index.ts +6 -0
  1141. package/src/shared/workspace/plugins/f-mode/settings.ts +191 -0
  1142. package/src/shared/workspace/plugins/f-mode/types.ts +29 -0
  1143. package/src/shared/workspace/plugins/notifications/NotificationCenter.svelte +225 -0
  1144. package/src/shared/workspace/plugins/notifications/NotificationStatus.svelte +41 -0
  1145. package/src/shared/workspace/plugins/notifications/NotificationToasts.svelte +41 -0
  1146. package/src/shared/workspace/plugins/notifications/Notifications.css +331 -0
  1147. package/src/shared/workspace/plugins/notifications/NotificationsOverlay.svelte +23 -0
  1148. package/src/shared/workspace/plugins/notifications/NotificationsStorySurface.svelte +15 -0
  1149. package/src/shared/workspace/plugins/notifications/index.ts +12 -0
  1150. package/src/shared/workspace/plugins/notifications/notification-presentation.svelte.ts +15 -0
  1151. package/src/shared/workspace/plugins/notifications/notification-status-model.ts +137 -0
  1152. package/src/shared/workspace/plugins/notifications/notifications-plugin.ts +101 -0
  1153. package/src/shared/workspace/plugins/notifications/types.ts +10 -0
  1154. package/src/shared/workspace/popout/AppShellPopoutLayer.svelte +92 -0
  1155. package/src/shared/workspace/popout/WorkspaceOverlayPortalFixture.svelte +49 -0
  1156. package/src/shared/workspace/popout/WorkspacePopoutSurface.css +16 -0
  1157. package/src/shared/workspace/popout/WorkspacePopoutSurface.svelte +50 -0
  1158. package/src/shared/workspace/popout/index.ts +2 -0
  1159. package/src/shared/workspace/problems/ProblemsQuickFix.svelte +53 -0
  1160. package/src/shared/workspace/problems/WorkspaceProblems.css +568 -0
  1161. package/src/shared/workspace/problems/WorkspaceProblems.svelte +352 -0
  1162. package/src/shared/workspace/problems/WorkspaceProblemsTable.svelte +190 -0
  1163. package/src/shared/workspace/problems/diagnostics-manager.svelte.ts +326 -0
  1164. package/src/shared/workspace/problems/index.ts +43 -0
  1165. package/src/shared/workspace/problems/problems-controller.svelte.ts +346 -0
  1166. package/src/shared/workspace/problems/problems-plugin.ts +206 -0
  1167. package/src/shared/workspace/problems/types.ts +151 -0
  1168. package/src/shared/workspace/ribbon/WorkspaceRibbon.css +107 -0
  1169. package/src/shared/workspace/ribbon/WorkspaceRibbon.svelte +89 -0
  1170. package/src/shared/workspace/ribbon/index.ts +1 -0
  1171. package/src/shared/workspace/settings/AppSettingsContent.svelte +210 -0
  1172. package/src/shared/workspace/settings/AppSettingsNavigation.svelte +59 -0
  1173. package/src/shared/workspace/settings/AppSettingsRoot.svelte +36 -0
  1174. package/src/shared/workspace/settings/AppSettingsSearch.svelte +37 -0
  1175. package/src/shared/workspace/settings/AppSettingsSection.svelte +72 -0
  1176. package/src/shared/workspace/settings/AppShellHotkeySettings.svelte +403 -0
  1177. package/src/shared/workspace/settings/AppShellPluginsSettings.svelte +104 -0
  1178. package/src/shared/workspace/settings/WorkspaceSettingAddButton.svelte +24 -0
  1179. package/src/shared/workspace/settings/WorkspaceSettingField.svelte +436 -0
  1180. package/src/shared/workspace/settings/WorkspaceSettingList.svelte +95 -0
  1181. package/src/shared/workspace/settings/WorkspaceSettingMultiSelect.svelte +147 -0
  1182. package/src/shared/workspace/settings/WorkspaceSettingObjectTable.svelte +212 -0
  1183. package/src/shared/workspace/settings/WorkspaceSettingSelect.svelte +120 -0
  1184. package/src/shared/workspace/settings/WorkspaceSettingToggleTable.svelte +63 -0
  1185. package/src/shared/workspace/settings/WorkspaceSettings.css +1190 -0
  1186. package/src/shared/workspace/settings/WorkspaceSettingsStoryCustomField.svelte +17 -0
  1187. package/src/shared/workspace/settings/WorkspaceSettingsSurface.svelte +28 -0
  1188. package/src/shared/workspace/settings/app-settings-context.svelte.ts +33 -0
  1189. package/src/shared/workspace/settings/configuration.ts +90 -0
  1190. package/src/shared/workspace/settings/index.ts +39 -0
  1191. package/src/shared/workspace/settings/multiselect.ts +40 -0
  1192. package/src/shared/workspace/settings/object-collection.ts +54 -0
  1193. package/src/shared/workspace/settings/persistence.ts +24 -0
  1194. package/src/shared/workspace/settings/plugin-settings-target.ts +33 -0
  1195. package/src/shared/workspace/settings/search-hit.ts +2 -0
  1196. package/src/shared/workspace/settings/settings-controller.svelte.ts +629 -0
  1197. package/src/shared/workspace/settings/types.ts +254 -0
  1198. package/src/shared/workspace/sidebar/WorkspaceSidebar.css +368 -0
  1199. package/src/shared/workspace/sidebar/WorkspaceSidebar.svelte +398 -0
  1200. package/src/shared/workspace/sidebar/index.ts +1 -0
  1201. package/src/shared/workspace/sidebar-empty/WorkspaceSidebarEmpty.css +50 -0
  1202. package/src/shared/workspace/sidebar-empty/WorkspaceSidebarEmpty.svelte +48 -0
  1203. package/src/shared/workspace/sidebar-empty/index.ts +1 -0
  1204. package/src/shared/workspace/sidebar-group/WorkspaceSidebarGroup.css +214 -0
  1205. package/src/shared/workspace/sidebar-group/WorkspaceSidebarGroup.svelte +339 -0
  1206. package/src/shared/workspace/sidebar-group/WorkspaceSidebarGroupEditor.css +46 -0
  1207. package/src/shared/workspace/sidebar-group/WorkspaceSidebarGroupEditor.svelte +164 -0
  1208. package/src/shared/workspace/sidebar-group/WorkspaceSidebarGroupVisibilityDialog.css +18 -0
  1209. package/src/shared/workspace/sidebar-group/WorkspaceSidebarGroupVisibilityDialog.svelte +97 -0
  1210. package/src/shared/workspace/sidebar-group/index.ts +11 -0
  1211. package/src/shared/workspace/sidebar-group/workspace-sidebar-layout.ts +82 -0
  1212. package/src/shared/workspace/sidebar-toggle/WorkspaceSidebarToggle.css +74 -0
  1213. package/src/shared/workspace/sidebar-toggle/WorkspaceSidebarToggle.svelte +68 -0
  1214. package/src/shared/workspace/sidebar-toggle/index.ts +1 -0
  1215. package/src/shared/workspace/split/WorkspaceSplit.css +110 -0
  1216. package/src/shared/workspace/split/WorkspaceSplit.svelte +64 -0
  1217. package/src/shared/workspace/split/index.ts +1 -0
  1218. package/src/shared/workspace/stacked-tabs/WorkspaceStackedTabs.css +297 -0
  1219. package/src/shared/workspace/stacked-tabs/WorkspaceStackedTabs.svelte +519 -0
  1220. package/src/shared/workspace/stacked-tabs/index.ts +1 -0
  1221. package/src/shared/workspace/startup/WorkspaceStartup.css +201 -0
  1222. package/src/shared/workspace/startup/WorkspaceStartup.svelte +216 -0
  1223. package/src/shared/workspace/startup/index.ts +7 -0
  1224. package/src/shared/workspace/status-bar/WorkspaceStatusBar.css +40 -0
  1225. package/src/shared/workspace/status-bar/WorkspaceStatusBar.svelte +36 -0
  1226. package/src/shared/workspace/status-bar/index.ts +1 -0
  1227. package/src/shared/workspace/status-item/WorkspaceStatusItem.css +67 -0
  1228. package/src/shared/workspace/status-item/WorkspaceStatusItem.svelte +97 -0
  1229. package/src/shared/workspace/status-item/index.ts +1 -0
  1230. package/src/shared/workspace/tabs/WorkspaceTabs.css +467 -0
  1231. package/src/shared/workspace/tabs/WorkspaceTabs.svelte +627 -0
  1232. package/src/shared/workspace/tabs/WorkspaceTabsMove.svelte +152 -0
  1233. package/src/shared/workspace/tabs/index.ts +2 -0
  1234. package/src/shared/workspace/tree/WorkspaceTree.css +11 -0
  1235. package/src/shared/workspace/tree/WorkspaceTree.svelte +86 -0
  1236. package/src/shared/workspace/tree/index.ts +1 -0
  1237. package/src/shared/workspace/view-header/WorkspaceViewHeader.css +170 -0
  1238. package/src/shared/workspace/view-header/WorkspaceViewHeader.svelte +282 -0
  1239. package/src/shared/workspace/view-header/WorkspaceViewLabel.css +48 -0
  1240. package/src/shared/workspace/view-header/WorkspaceViewLabel.svelte +61 -0
  1241. package/src/shared/workspace/view-header/index.ts +2 -0
  1242. package/src/shared/workspace/view-header/workspace-view-label.ts +61 -0
  1243. package/src/shared/workspace/view-host/ExampleWorkspaceView.svelte +35 -0
  1244. package/src/shared/workspace/view-host/WorkspaceImperativeView.svelte +32 -0
  1245. package/src/shared/workspace/view-host/WorkspaceViewHost.css +23 -0
  1246. package/src/shared/workspace/view-host/WorkspaceViewHost.svelte +94 -0
  1247. package/src/shared/workspace/view-host/index.ts +2 -0
  1248. package/src/shared/workspace/workspace-desktop-drag.css +9 -0
  1249. package/src/shared/workspace/workspace.tokens.css +181 -0
  1250. package/src/shared/workspace/workspace.tokens.ts +224 -0
  1251. package/src/storybook/catalog-layout.ts +28 -0
  1252. package/src/storybook/visual-capture.ts +9 -0
  1253. package/src/storybook.css +46 -0
  1254. package/src/styles.css +81 -0
  1255. package/src/theme.css +122 -0
  1256. package/src/themes/lapis.css +225 -0
@@ -0,0 +1,1551 @@
1
+ :where([data-ui-component^="ai-chat-"]) {
2
+ --ui-ai-chat-max-content-width: 50rem;
3
+ --ui-ai-chat-compact-gap: 0.5rem;
4
+ --ui-ai-chat-balanced-gap: 1rem;
5
+ --ui-ai-chat-spacious-gap: 1.5rem;
6
+ --ui-ai-chat-bubble-radius: 1.75rem;
7
+ --ui-ai-chat-bubble-compact-radius: 0.75rem;
8
+ --ui-ai-chat-user-bubble: color-mix(
9
+ in oklab,
10
+ var(--primary) 14%,
11
+ var(--muted)
12
+ );
13
+ --ui-ai-chat-user-bubble-foreground: var(--foreground);
14
+ --ui-ai-chat-assistant-bubble: var(--muted);
15
+ --ui-ai-chat-assistant-bubble-foreground: var(--foreground);
16
+ --ui-ai-chat-composer-radius: 1.75rem;
17
+ --ui-ai-chat-composer-padding: 0.75rem;
18
+ --ui-ai-chat-composer-background: var(--popover);
19
+ --ui-ai-chat-shadow-medium: var(
20
+ --shadow-md,
21
+ 0 0.375rem 1rem color-mix(in srgb, var(--foreground) 14%, transparent)
22
+ );
23
+ --ui-ai-chat-shadow-large: var(
24
+ --shadow-lg,
25
+ 0 0.75rem 2rem color-mix(in srgb, var(--foreground) 18%, transparent)
26
+ );
27
+ --ui-ai-chat-dock-background: color-mix(
28
+ in oklab,
29
+ var(--background) 88%,
30
+ transparent
31
+ );
32
+ --ui-ai-chat-trigger-width: 18rem;
33
+ --ui-ai-chat-attachment-background: color-mix(
34
+ in oklab,
35
+ var(--foreground) 10%,
36
+ var(--muted)
37
+ );
38
+ --ui-ai-chat-attachment-background-hover: color-mix(
39
+ in oklab,
40
+ var(--foreground) 16%,
41
+ var(--muted)
42
+ );
43
+ --ui-ai-chat-attachment-foreground: var(--foreground);
44
+ --ui-ai-chat-attachment-border: transparent;
45
+ --ui-ai-chat-attachment-radius: 0.375rem;
46
+ --ui-ai-chat-attachment-remove-hover: color-mix(
47
+ in oklab,
48
+ var(--foreground) 12%,
49
+ transparent
50
+ );
51
+ }
52
+
53
+ [data-ui-component="ai-chat-layout"] {
54
+ position: relative;
55
+ display: flex;
56
+ min-width: 0;
57
+ min-height: 0;
58
+ height: 100%;
59
+ flex-direction: column;
60
+ overflow: hidden;
61
+ background: var(--background);
62
+ color: var(--foreground);
63
+ }
64
+
65
+ [data-ui-component="ai-chat-layout"] > [data-ui-part="scroll-shell"],
66
+ [data-ui-component="ai-chat-layout"]
67
+ > [data-ui-part="scroll-shell"]
68
+ > [data-ui-component="scroll-area"] {
69
+ position: relative;
70
+ display: flex;
71
+ min-height: 0;
72
+ flex: 1 1 auto;
73
+ flex-direction: column;
74
+ }
75
+
76
+ [data-ui-component="ai-chat-layout"]
77
+ [data-ui-part="scroll-shell"]
78
+ [data-ui-part="scroll-area-viewport"] {
79
+ scroll-behavior: auto;
80
+ overscroll-behavior: contain;
81
+ }
82
+
83
+ [data-ui-component="ai-chat-layout"]
84
+ [data-ui-part="scroll-shell"]
85
+ [data-scroll-area-content] {
86
+ display: flex;
87
+ min-height: 100%;
88
+ flex: 1 0 auto;
89
+ flex-direction: column;
90
+ }
91
+
92
+ [data-ui-component="ai-chat-layout"] [data-ui-part="message-area"] {
93
+ display: flex;
94
+ min-height: 100%;
95
+ flex: 1 0 auto;
96
+ flex-direction: column;
97
+ padding-inline: 0;
98
+ box-sizing: border-box;
99
+ }
100
+
101
+ [data-ui-component="ai-chat-layout"][data-density="compact"]
102
+ [data-ui-part="message-area"] {
103
+ padding-block: 0 5rem;
104
+ }
105
+
106
+ [data-ui-component="ai-chat-layout"][data-density="balanced"]
107
+ [data-ui-part="message-area"] {
108
+ padding-block: 0 6.25rem;
109
+ }
110
+
111
+ [data-ui-component="ai-chat-layout"][data-density="spacious"]
112
+ [data-ui-part="message-area"] {
113
+ max-width: var(--ui-ai-chat-max-content-width);
114
+ margin-inline: auto;
115
+ padding-block: 0 7.5rem;
116
+ }
117
+
118
+ [data-ui-component="ai-chat-layout"] [data-ui-part="empty-state"] {
119
+ display: grid;
120
+ min-height: 100%;
121
+ flex: 1 0 auto;
122
+ place-items: center;
123
+ }
124
+
125
+ [data-ui-component="ai-chat-layout"] [data-ui-part="composer-dock"] {
126
+ position: absolute;
127
+ z-index: 3;
128
+ isolation: isolate;
129
+ right: 0;
130
+ bottom: 0;
131
+ left: 0;
132
+ padding: 0 0.75rem 0.75rem;
133
+ pointer-events: none;
134
+ background: linear-gradient(
135
+ to bottom,
136
+ transparent,
137
+ var(--ui-ai-chat-dock-background) 36%
138
+ );
139
+ }
140
+
141
+ [data-ui-component="ai-chat-layout"] [data-ui-part="composer-dock"]::before {
142
+ position: absolute;
143
+ z-index: 0;
144
+ right: 0;
145
+ bottom: 0;
146
+ left: 0;
147
+ height: 6.25rem;
148
+ backdrop-filter: blur(0.75rem);
149
+ content: "";
150
+ mask-image: linear-gradient(
151
+ to bottom,
152
+ transparent,
153
+ black var(--ui-ai-chat-dock-mask-stop, 2.25rem)
154
+ );
155
+ pointer-events: none;
156
+ }
157
+
158
+ [data-ui-component="ai-chat-layout"][data-density="compact"]
159
+ [data-ui-part="composer-dock"] {
160
+ --ui-ai-chat-dock-mask-stop: 1.5rem;
161
+
162
+ padding: 0 0.5rem 0.5rem;
163
+ }
164
+
165
+ [data-ui-component="ai-chat-layout"][data-density="compact"]
166
+ [data-ui-part="composer-dock"]::before {
167
+ height: 5rem;
168
+ }
169
+
170
+ [data-ui-component="ai-chat-layout"][data-density="spacious"]
171
+ [data-ui-part="composer-dock"] {
172
+ --ui-ai-chat-dock-mask-stop: 3rem;
173
+
174
+ padding: 0 1rem 0.75rem;
175
+ }
176
+
177
+ [data-ui-component="ai-chat-layout"][data-density="spacious"]
178
+ [data-ui-part="composer-dock"]::before {
179
+ height: 7.5rem;
180
+ }
181
+
182
+ [data-ui-component="ai-chat-layout"]
183
+ [data-ui-part="composer-dock"]
184
+ > [data-ui-part="composer-inner"] {
185
+ position: relative;
186
+ z-index: 1;
187
+ max-width: var(--ui-ai-chat-max-content-width);
188
+ margin-inline: auto;
189
+ pointer-events: auto;
190
+ }
191
+
192
+ [data-ui-component="ai-chat-layout-scroll-button"] {
193
+ position: absolute;
194
+ z-index: 4;
195
+ right: 50%;
196
+ bottom: var(--ui-ai-chat-scroll-button-bottom, 0.75rem);
197
+ translate: 50% 0;
198
+ transition:
199
+ opacity 160ms ease,
200
+ translate 160ms ease,
201
+ max-width 160ms ease;
202
+ }
203
+
204
+ [data-ui-component="ai-chat-layout-scroll-button"][data-visible="false"] {
205
+ opacity: 0;
206
+ translate: 50% 0.5rem;
207
+ pointer-events: none;
208
+ }
209
+
210
+ [data-ui-component="ai-chat-layout-scroll-button"]
211
+ [data-ui-component="button"] {
212
+ height: 2rem;
213
+ border: 0;
214
+ border-radius: 999px;
215
+ background: var(--popover);
216
+ color: var(--foreground);
217
+ padding-inline: 0.5rem;
218
+ box-shadow: var(--ui-ai-chat-shadow-medium);
219
+ white-space: nowrap;
220
+ }
221
+
222
+ [data-ui-component="ai-chat-layout-scroll-button"] svg {
223
+ width: 0.875rem;
224
+ height: 0.875rem;
225
+ }
226
+
227
+ [data-ui-component="ai-chat-message-list"] {
228
+ display: flex;
229
+ width: min(100%, var(--ui-ai-chat-max-content-width));
230
+ min-height: 0;
231
+ margin-inline: auto;
232
+ flex: 1 1 auto;
233
+ flex-direction: column;
234
+ outline: none;
235
+ }
236
+
237
+ [data-ui-component="ai-chat-message-list"] [data-ui-part="list-inner"] {
238
+ display: flex;
239
+ min-height: 0;
240
+ flex: 1 1 auto;
241
+ flex-direction: column;
242
+ }
243
+
244
+ [data-ui-component="ai-chat-message-list"][data-density="compact"]
245
+ [data-ui-part="list-inner"] {
246
+ gap: var(--ui-ai-chat-compact-gap);
247
+ padding: 0.5rem 0.75rem;
248
+ }
249
+
250
+ [data-ui-component="ai-chat-message-list"][data-density="balanced"]
251
+ [data-ui-part="list-inner"] {
252
+ gap: var(--ui-ai-chat-balanced-gap);
253
+ padding: 1rem;
254
+ }
255
+
256
+ [data-ui-component="ai-chat-message-list"][data-density="spacious"]
257
+ [data-ui-part="list-inner"] {
258
+ gap: var(--ui-ai-chat-spacious-gap);
259
+ padding: 1.5rem;
260
+ }
261
+
262
+ [data-ui-component="ai-chat-message-list"] [data-ui-part="top-sentinel"] {
263
+ display: flex;
264
+ min-height: 2rem;
265
+ align-items: center;
266
+ justify-content: center;
267
+ }
268
+
269
+ [data-ui-component="ai-chat-message-list"]
270
+ [data-ui-part="top-sentinel"]
271
+ [data-ui-component="button"] {
272
+ color: var(--muted-foreground);
273
+ }
274
+
275
+ [data-ui-component="ai-chat-message-list"] [data-ui-part="empty"] {
276
+ display: flex;
277
+ min-height: 0;
278
+ flex: 1 1 auto;
279
+ }
280
+
281
+ [data-ui-component="ai-chat-message-list"] [data-ui-part="list-spacer"] {
282
+ min-height: 0;
283
+ flex: 1 1 auto;
284
+ }
285
+
286
+ [data-ui-component="ai-chat-message"] {
287
+ display: flex;
288
+ min-width: 0;
289
+ max-width: 100%;
290
+ align-items: start;
291
+ justify-content: flex-start;
292
+ }
293
+
294
+ [data-ui-component="ai-chat-message"][data-sender="user"] {
295
+ flex-direction: row-reverse;
296
+ }
297
+
298
+ [data-ui-component="ai-chat-message"][data-density="compact"]:has(
299
+ [data-ui-part="avatar"]
300
+ ) {
301
+ gap: 0.375rem;
302
+ }
303
+
304
+ [data-ui-component="ai-chat-message"][data-density="balanced"]:has(
305
+ [data-ui-part="avatar"]
306
+ ) {
307
+ gap: 0.5rem;
308
+ }
309
+
310
+ [data-ui-component="ai-chat-message"][data-density="spacious"]:has(
311
+ [data-ui-part="avatar"]
312
+ ) {
313
+ gap: 0.75rem;
314
+ }
315
+
316
+ [data-ui-component="ai-chat-message"] [data-ui-part="avatar"] {
317
+ display: block;
318
+ flex: 0 0 auto;
319
+ }
320
+
321
+ [data-ui-component="ai-chat-message"] [data-ui-part="avatar"] img {
322
+ width: 100%;
323
+ height: 100%;
324
+ object-fit: cover;
325
+ }
326
+
327
+ [data-ui-component="ai-chat-message"] [data-ui-part="content"] {
328
+ display: flex;
329
+ min-width: 0;
330
+ flex: 1 1 auto;
331
+ flex-direction: column;
332
+ align-items: flex-start;
333
+ }
334
+
335
+ [data-ui-component="ai-chat-message"][data-sender="user"]
336
+ [data-ui-part="content"] {
337
+ align-items: flex-end;
338
+ }
339
+
340
+ [data-ui-component="ai-chat-message"][data-sender="system"] {
341
+ justify-content: center;
342
+ }
343
+
344
+ [data-ui-component="ai-chat-message"][data-sender="system"]
345
+ [data-ui-part="content"] {
346
+ max-width: 90%;
347
+ align-items: center;
348
+ }
349
+
350
+ [data-ui-component="ai-chat-message"] [data-ui-part="name"] {
351
+ margin-bottom: 0.25rem;
352
+ font-size: 0.75rem;
353
+ font-weight: 600;
354
+ line-height: 1rem;
355
+ color: var(--muted-foreground);
356
+ }
357
+
358
+ [data-ui-component="ai-chat-message"] [data-ui-part="bubbles"] {
359
+ display: flex;
360
+ width: 100%;
361
+ min-width: 0;
362
+ flex-direction: column;
363
+ align-items: inherit;
364
+ }
365
+
366
+ [data-ui-component="ai-chat-message"][data-density="compact"]
367
+ [data-ui-part="bubbles"] {
368
+ gap: 0.125rem;
369
+ }
370
+
371
+ [data-ui-component="ai-chat-message"][data-density="balanced"]
372
+ [data-ui-part="bubbles"] {
373
+ gap: 0.25rem;
374
+ }
375
+
376
+ [data-ui-component="ai-chat-message"][data-density="spacious"]
377
+ [data-ui-part="bubbles"] {
378
+ gap: 0.375rem;
379
+ }
380
+
381
+ [data-ui-component="ai-chat-message"]
382
+ [data-ui-part="avatar"]:has(
383
+ ~ [data-ui-part="content"] [data-ui-part="bubble-name-row"]
384
+ ) {
385
+ margin-top: 1.25rem;
386
+ }
387
+
388
+ [data-ui-component="ai-chat-message-bubble"] {
389
+ display: flex;
390
+ max-width: max(80%, 17.5rem);
391
+ flex-direction: column;
392
+ overflow-wrap: anywhere;
393
+ border-radius: var(--ui-ai-chat-bubble-radius);
394
+ font-size: 0.875rem;
395
+ line-height: 1.375rem;
396
+ }
397
+
398
+ [data-ui-component="ai-chat-message-bubble"][data-density="compact"] {
399
+ border-radius: var(--ui-ai-chat-bubble-compact-radius);
400
+ padding: 0.75rem 1rem;
401
+ }
402
+
403
+ [data-ui-component="ai-chat-message-bubble"][data-density="balanced"] {
404
+ padding: 0.75rem 1rem;
405
+ }
406
+
407
+ [data-ui-component="ai-chat-message-bubble"][data-density="spacious"] {
408
+ padding: 1rem 1.25rem;
409
+ }
410
+
411
+ [data-ui-component="ai-chat-message-bubble"][data-sender="assistant"][data-variant="filled"] {
412
+ background: var(--ui-ai-chat-assistant-bubble);
413
+ color: var(--ui-ai-chat-assistant-bubble-foreground);
414
+ }
415
+
416
+ [data-ui-component="ai-chat-message-bubble"][data-sender="user"][data-variant="filled"] {
417
+ background: var(--ui-ai-chat-user-bubble);
418
+ color: var(--ui-ai-chat-user-bubble-foreground);
419
+ }
420
+
421
+ [data-ui-component="ai-chat-message-bubble"][data-variant="ghost"] {
422
+ padding-block: 0;
423
+ background: transparent;
424
+ }
425
+
426
+ [data-ui-component="ai-chat-message-bubble"][data-group="first"][data-sender="assistant"],
427
+ [data-ui-component="ai-chat-message-bubble"][data-group="middle"][data-sender="assistant"] {
428
+ border-bottom-left-radius: 0.375rem;
429
+ }
430
+
431
+ [data-ui-component="ai-chat-message-bubble"][data-group="middle"][data-sender="assistant"],
432
+ [data-ui-component="ai-chat-message-bubble"][data-group="last"][data-sender="assistant"] {
433
+ border-top-left-radius: 0.375rem;
434
+ }
435
+
436
+ [data-ui-component="ai-chat-message-bubble"][data-group="first"][data-sender="user"],
437
+ [data-ui-component="ai-chat-message-bubble"][data-group="middle"][data-sender="user"] {
438
+ border-bottom-right-radius: 0.375rem;
439
+ }
440
+
441
+ [data-ui-component="ai-chat-message-bubble"][data-group="middle"][data-sender="user"],
442
+ [data-ui-component="ai-chat-message-bubble"][data-group="last"][data-sender="user"] {
443
+ border-top-right-radius: 0.375rem;
444
+ }
445
+
446
+ [data-ui-part="bubble-name-row"],
447
+ [data-ui-part="bubble-metadata"] {
448
+ padding-inline: 1rem;
449
+ }
450
+
451
+ [data-ui-component="ai-chat-message"][data-density="spacious"]
452
+ [data-ui-part="bubble-name-row"],
453
+ [data-ui-component="ai-chat-message"][data-density="spacious"]
454
+ [data-ui-part="bubble-metadata"] {
455
+ padding-inline: 1.25rem;
456
+ }
457
+
458
+ [data-ui-part="bubble-name-row"] {
459
+ display: flex;
460
+ height: 1.25rem;
461
+ margin-bottom: -0.375rem;
462
+ align-items: center;
463
+ font-size: 0.75rem;
464
+ font-weight: 600;
465
+ line-height: 1rem;
466
+ color: var(--muted-foreground);
467
+ }
468
+
469
+ [data-ui-component="ai-chat-message"][data-sender="user"]
470
+ [data-ui-part="bubble-name-row"],
471
+ [data-ui-component="ai-chat-message"][data-sender="user"]
472
+ [data-ui-part="bubble-metadata"] {
473
+ text-align: end;
474
+ }
475
+
476
+ [data-ui-part="bubble-metadata"] {
477
+ margin-top: -0.375rem;
478
+ }
479
+
480
+ [data-ui-component="ai-chat-message-metadata"] {
481
+ display: flex;
482
+ min-height: 1.25rem;
483
+ margin-top: 0.25rem;
484
+ align-items: center;
485
+ gap: 0.375rem;
486
+ font-size: 0.6875rem;
487
+ color: var(--muted-foreground);
488
+ }
489
+
490
+ [data-ui-component="ai-chat-message-metadata"][data-sender="user"] {
491
+ justify-content: flex-end;
492
+ }
493
+
494
+ [data-ui-component="ai-chat-message-metadata"] [data-ui-part="status"] {
495
+ display: inline-flex;
496
+ align-items: center;
497
+ gap: 0.1875rem;
498
+ }
499
+
500
+ [data-ui-component="ai-chat-message-metadata"]
501
+ [data-ui-part="status"][data-status="error"] {
502
+ color: var(--destructive);
503
+ }
504
+
505
+ [data-ui-component="ai-chat-message-metadata"] svg {
506
+ width: 0.75rem;
507
+ height: 0.75rem;
508
+ }
509
+
510
+ [data-ui-component="ai-chat-message-metadata"] [data-status="sending"] svg {
511
+ animation: ui-ai-chat-pulse 1.25s ease-in-out infinite;
512
+ }
513
+
514
+ [data-ui-component="ai-chat-system-message"] {
515
+ display: flex;
516
+ width: 100%;
517
+ align-items: center;
518
+ justify-content: center;
519
+ gap: 0.625rem;
520
+ color: var(--muted-foreground);
521
+ font-size: 0.75rem;
522
+ text-align: center;
523
+ }
524
+
525
+ [data-ui-component="ai-chat-system-message"][data-variant="default"] {
526
+ padding-block: 0.375rem;
527
+ }
528
+
529
+ [data-ui-component="ai-chat-system-message"][data-variant="divider"]
530
+ [data-ui-component="separator"] {
531
+ flex: 1 1 auto;
532
+ }
533
+
534
+ [data-ui-component="ai-chat-system-message"] [data-ui-part="icon"] {
535
+ display: inline-flex;
536
+ flex: 0 0 auto;
537
+ }
538
+
539
+ [data-ui-component="ai-chat-system-message"] [data-ui-part="icon"] svg {
540
+ width: 0.875rem;
541
+ height: 0.875rem;
542
+ }
543
+
544
+ [data-ui-component="ai-chat-composer"] {
545
+ position: relative;
546
+ z-index: 0;
547
+ isolation: isolate;
548
+ display: flex;
549
+ min-width: 0;
550
+ flex-direction: column;
551
+ overflow: visible;
552
+ }
553
+
554
+ [data-ui-component="ai-chat-composer"] [data-ui-part="body"] {
555
+ position: relative;
556
+ z-index: 2;
557
+ display: flex;
558
+ min-width: 0;
559
+ flex-direction: column;
560
+ gap: 0.5rem;
561
+ border-radius: var(--ui-ai-chat-composer-radius);
562
+ background: var(--ui-ai-chat-composer-background);
563
+ padding: var(--ui-ai-chat-composer-padding);
564
+ cursor: text;
565
+ transition:
566
+ border-color 160ms ease,
567
+ box-shadow 160ms ease;
568
+ }
569
+
570
+ [data-ui-component="ai-chat-composer"][data-density="compact"]
571
+ [data-ui-part="body"] {
572
+ --ui-ai-chat-composer-padding: 0.5rem;
573
+
574
+ gap: 0.25rem;
575
+ }
576
+
577
+ [data-ui-component="ai-chat-composer"][data-elevation="low"]
578
+ [data-ui-part="body"] {
579
+ /* Match Astryx --shadow-low: drop shadow + 1px inset ring so the top edge reads. */
580
+ box-shadow:
581
+ var(--ui-ai-chat-shadow-medium),
582
+ inset 0 0 0 1px var(--border);
583
+ }
584
+
585
+ [data-ui-component="ai-chat-composer"][data-elevation="low"]
586
+ [data-ui-part="body"]:hover,
587
+ [data-ui-component="ai-chat-composer"][data-elevation="low"]
588
+ [data-ui-part="body"]:focus-within {
589
+ box-shadow:
590
+ var(--ui-ai-chat-shadow-large),
591
+ inset 0 0 0 1px var(--border);
592
+ }
593
+
594
+ [data-ui-component="ai-chat-composer"][data-elevation="none"]
595
+ [data-ui-part="body"] {
596
+ border: 1px solid var(--border);
597
+ padding: calc(var(--ui-ai-chat-composer-padding) - 1px);
598
+ box-shadow: none;
599
+ }
600
+
601
+ [data-ui-component="ai-chat-composer"][data-elevation="none"]
602
+ [data-ui-part="body"]:focus-within {
603
+ border-color: transparent;
604
+ box-shadow: inset 0 0 0 2px color-mix(in oklab, var(--ring) 28%, transparent);
605
+ }
606
+
607
+ [data-ui-component="ai-chat-composer"][data-disabled="true"]:not(
608
+ [data-stop-shown="true"]
609
+ ):not([data-interactive-drawer-when-disabled="true"]) {
610
+ opacity: 0.6;
611
+ pointer-events: none;
612
+ }
613
+
614
+ [data-ui-component="ai-chat-composer"][data-disabled="true"][data-interactive-drawer-when-disabled="true"] {
615
+ opacity: 1;
616
+ pointer-events: auto;
617
+ }
618
+
619
+ [data-ui-component="ai-chat-composer"][data-disabled="true"][data-stop-shown="true"]
620
+ [data-ui-part="header"],
621
+ [data-ui-component="ai-chat-composer"][data-disabled="true"][data-stop-shown="true"]
622
+ [data-ui-part="input-area"],
623
+ [data-ui-component="ai-chat-composer"][data-disabled="true"][data-stop-shown="true"]
624
+ [data-ui-part="footer-actions"],
625
+ [data-ui-component="ai-chat-composer"][data-disabled="true"][data-interactive-drawer-when-disabled="true"]:not(
626
+ [data-stop-shown="true"]
627
+ )
628
+ > [data-ui-part="body"] {
629
+ opacity: 0.6;
630
+ pointer-events: none;
631
+ }
632
+
633
+ [data-ui-component="ai-chat-composer"][data-disabled="true"][data-stop-shown="true"]
634
+ [data-ui-part="send-button"] {
635
+ pointer-events: auto;
636
+ opacity: 1;
637
+ }
638
+
639
+ [data-ui-component="ai-chat-composer"] [data-ui-part="header"],
640
+ [data-ui-component="ai-chat-composer"] [data-ui-part="footer"] {
641
+ display: flex;
642
+ min-width: 0;
643
+ align-items: center;
644
+ justify-content: space-between;
645
+ gap: 0.5rem;
646
+ }
647
+
648
+ [data-ui-component="ai-chat-composer"] [data-ui-part="header"] {
649
+ min-height: 1.75rem;
650
+ }
651
+
652
+ [data-ui-component="ai-chat-composer"] [data-ui-part="footer"] {
653
+ min-height: 2rem;
654
+ }
655
+
656
+ [data-ui-component="ai-chat-composer"] [data-ui-part="header-context"],
657
+ [data-ui-component="ai-chat-composer"] [data-ui-part="header-actions"],
658
+ [data-ui-component="ai-chat-composer"] [data-ui-part="footer-actions"],
659
+ [data-ui-component="ai-chat-composer"] [data-ui-part="send-actions"] {
660
+ display: flex;
661
+ min-width: 0;
662
+ align-items: center;
663
+ gap: 0.25rem;
664
+ }
665
+
666
+ [data-ui-component="ai-chat-composer"] [data-ui-part="header-context"] {
667
+ margin-inline-start: auto;
668
+ gap: 0.5rem;
669
+ color: var(--muted-foreground);
670
+ font-size: 0.75rem;
671
+ line-height: 1rem;
672
+ }
673
+
674
+ [data-ui-component="ai-chat-composer"] [data-ui-part="send-actions"] {
675
+ flex: 0 0 auto;
676
+ margin-left: auto;
677
+ }
678
+
679
+ [data-ui-component="ai-chat-composer"] [data-ui-part="status"] {
680
+ position: relative;
681
+ z-index: 0;
682
+ display: flex;
683
+ min-height: 1.75rem;
684
+ align-items: center;
685
+ gap: 0.5rem;
686
+ padding-inline: 1rem;
687
+ font-size: 0.75rem;
688
+ line-height: 1rem;
689
+ }
690
+
691
+ [data-ui-component="ai-chat-composer"]
692
+ [data-ui-part="status"][data-position="top"] {
693
+ margin-bottom: calc(-1 * var(--ui-ai-chat-composer-radius));
694
+ border-radius: var(--ui-ai-chat-composer-radius)
695
+ var(--ui-ai-chat-composer-radius) 0 0;
696
+ padding-block: var(--ui-ai-chat-composer-padding)
697
+ calc(var(--ui-ai-chat-composer-padding) + var(--ui-ai-chat-composer-radius));
698
+ }
699
+
700
+ [data-ui-component="ai-chat-composer"]
701
+ [data-ui-part="status"][data-position="bottom"] {
702
+ margin-top: calc(-1 * var(--ui-ai-chat-composer-radius));
703
+ border-radius: 0 0 var(--ui-ai-chat-composer-radius)
704
+ var(--ui-ai-chat-composer-radius);
705
+ padding-block: calc(
706
+ var(--ui-ai-chat-composer-padding) + var(--ui-ai-chat-composer-radius)
707
+ )
708
+ var(--ui-ai-chat-composer-padding);
709
+ }
710
+
711
+ [data-ui-component="ai-chat-composer"]
712
+ [data-ui-part="status"][data-status="warning"] {
713
+ background: color-mix(in oklab, var(--chart-4) 14%, var(--background));
714
+ color: var(--foreground);
715
+ }
716
+
717
+ [data-ui-component="ai-chat-composer"]
718
+ [data-ui-part="status"][data-status="error"] {
719
+ background: color-mix(in oklab, var(--destructive) 12%, var(--background));
720
+ color: var(--foreground);
721
+ }
722
+
723
+ [data-ui-component="ai-chat-composer"]
724
+ [data-ui-part="status"][data-status="warning"]
725
+ svg {
726
+ color: color-mix(in oklab, var(--chart-4) 62%, var(--foreground));
727
+ }
728
+
729
+ [data-ui-component="ai-chat-composer"]
730
+ [data-ui-part="status"][data-status="error"]
731
+ svg {
732
+ color: var(--destructive);
733
+ }
734
+
735
+ [data-ui-component="ai-chat-composer"] [data-ui-part="status"] svg {
736
+ width: 0.875rem;
737
+ height: 0.875rem;
738
+ }
739
+
740
+ [data-ui-component="ai-chat-composer"] [data-ui-part="input-area"] {
741
+ min-width: 0;
742
+ }
743
+
744
+ [data-ui-component="button"][data-ui-part="send-button"] {
745
+ border-radius: 999px;
746
+ }
747
+
748
+ [data-ui-component="button"][data-ui-part="send-button"][data-stop="true"] {
749
+ background-color: var(--foreground);
750
+ color: var(--background);
751
+ }
752
+
753
+ [data-ui-component="button"][data-ui-part="send-button"][data-stop="true"]:hover {
754
+ background-color: color-mix(
755
+ in oklab,
756
+ var(--foreground) 82%,
757
+ var(--background)
758
+ );
759
+ color: var(--background);
760
+ }
761
+
762
+ [data-ui-component="ai-chat-composer"] [data-ui-part="send-button"] svg {
763
+ width: 1rem;
764
+ height: 1rem;
765
+ }
766
+
767
+ [data-ui-component="ai-chat-composer-input"] {
768
+ position: relative;
769
+ display: flex;
770
+ min-width: 0;
771
+ min-height: 1.375rem;
772
+ flex-direction: column;
773
+ }
774
+
775
+ [data-ui-component="ai-chat-composer-input"] [data-ui-part="editable"] {
776
+ position: relative;
777
+ z-index: 1;
778
+ min-height: 1.375rem;
779
+ overflow-x: hidden;
780
+ overflow-y: auto;
781
+ padding: 0.25rem;
782
+ outline: none;
783
+ color: var(--foreground);
784
+ caret-color: var(--ring);
785
+ font-size: 0.875rem;
786
+ line-height: 1.375rem;
787
+ overflow-wrap: anywhere;
788
+ white-space: pre-wrap;
789
+ }
790
+
791
+ @media (pointer: coarse) {
792
+ [data-ui-component="ai-chat-composer-input"] [data-ui-part="editable"],
793
+ [data-ui-component="ai-chat-composer-input"] [data-ui-part="placeholder"] {
794
+ font-size: max(1rem, 0.875rem);
795
+ }
796
+ }
797
+
798
+ [data-ui-component="ai-chat-composer-input"][data-disabled="true"]
799
+ [data-ui-part="editable"] {
800
+ cursor: not-allowed;
801
+ }
802
+
803
+ [data-ui-component="ai-chat-composer-input"] [data-ui-part="placeholder"] {
804
+ position: absolute;
805
+ z-index: 0;
806
+ inset: 0;
807
+ padding: 0.25rem;
808
+ pointer-events: none;
809
+ color: var(--muted-foreground);
810
+ font-size: 0.875rem;
811
+ line-height: 1.375rem;
812
+ user-select: none;
813
+ }
814
+
815
+ [data-ui-component="ai-chat-composer-input"] [data-ui-part="trigger-menu"] {
816
+ position: absolute;
817
+ z-index: calc(var(--ui-workspace-overlay-z-index, 50) + 40);
818
+ width: min(var(--ui-ai-chat-trigger-width), calc(100vw - 2rem));
819
+ overflow: hidden;
820
+ border: 1px solid var(--border);
821
+ border-radius: 0.75rem;
822
+ background: var(--popover);
823
+ box-shadow: var(--ui-ai-chat-shadow-large);
824
+ }
825
+
826
+ [data-ui-component="ai-chat-composer-input"]
827
+ [data-ui-part="trigger-menu"][data-placement="above"] {
828
+ transform: translateY(calc(-100% - 0.375rem));
829
+ }
830
+
831
+ [data-ui-component="ai-chat-composer-input"]
832
+ [data-ui-part="trigger-menu"]
833
+ > [data-ui-component="command"] {
834
+ max-height: 18rem;
835
+ }
836
+
837
+ [data-ui-component="ai-chat-composer-input"]
838
+ [data-ui-part="trigger-menu"]
839
+ [data-ui-part="command-item"][data-highlighted="true"] {
840
+ background: var(--accent);
841
+ color: var(--accent-foreground);
842
+ }
843
+
844
+ [data-ui-component="ai-chat-composer-input"]
845
+ [data-ui-part="trigger-menu"]
846
+ [data-ui-part="command-item"] {
847
+ align-items: flex-start;
848
+ flex-direction: column;
849
+ gap: 0.125rem;
850
+ min-width: 0;
851
+ height: auto;
852
+ white-space: normal;
853
+ }
854
+
855
+ [data-ui-component="ai-chat-composer-input"]
856
+ [data-ui-part="trigger-menu"]
857
+ [data-ui-part="command-check-icon"] {
858
+ display: none;
859
+ }
860
+
861
+ [data-ui-component="ai-chat-composer-input"]
862
+ [data-ui-part="trigger-item-label"] {
863
+ min-width: 0;
864
+ width: 100%;
865
+ overflow-wrap: anywhere;
866
+ white-space: normal;
867
+ }
868
+
869
+ [data-ui-component="ai-chat-composer-input"]
870
+ [data-ui-part="trigger-item-description"] {
871
+ min-width: 0;
872
+ width: 100%;
873
+ color: var(--muted-foreground);
874
+ font-size: var(--text-xs, 0.75rem);
875
+ line-height: var(--text-xs--line-height, 1rem);
876
+ overflow-wrap: anywhere;
877
+ white-space: normal;
878
+ }
879
+
880
+ [data-ui-component="ai-chat-composer-token"] {
881
+ display: inline-flex;
882
+ max-width: 100%;
883
+ vertical-align: baseline;
884
+ }
885
+
886
+ [data-ui-component="ai-chat-composer-token"][data-ui-part="inline-token"] {
887
+ align-items: center;
888
+ min-height: 1.35rem;
889
+ margin-inline: 0.125rem;
890
+ border: 1px solid var(--border);
891
+ border-radius: 999px;
892
+ background: var(--secondary);
893
+ padding-inline: 0.45rem;
894
+ color: var(--secondary-foreground);
895
+ font-size: 0.75rem;
896
+ font-weight: 500;
897
+ line-height: 1.25rem;
898
+ white-space: nowrap;
899
+ cursor: default;
900
+ }
901
+
902
+ [data-ui-component="ai-chat-composer-token"][data-ui-part="root"]
903
+ [data-ui-component="badge"] {
904
+ vertical-align: baseline;
905
+ }
906
+
907
+ [data-ui-component="ai-chat-tokenized-text"] {
908
+ display: inline;
909
+ }
910
+
911
+ [data-ui-component="ai-chat-tokenized-text"]
912
+ [data-ui-component="ai-chat-composer-token"] {
913
+ margin-inline: 0.125rem;
914
+ }
915
+
916
+ [data-ui-component="ai-chat-composer-drawer"] {
917
+ position: relative;
918
+ z-index: 1;
919
+ display: flex;
920
+ overflow: hidden;
921
+ flex-direction: column;
922
+ margin-bottom: calc(-1 * var(--ui-ai-chat-composer-radius));
923
+ border-radius: var(--ui-ai-chat-composer-radius)
924
+ var(--ui-ai-chat-composer-radius) 0 0;
925
+ background: color-mix(in oklab, var(--muted) 72%, var(--background));
926
+ padding: 0.75rem 1rem calc(0.75rem + var(--ui-ai-chat-composer-radius));
927
+ }
928
+
929
+ [data-ui-component="ai-chat-composer-drawer"]
930
+ [data-ai-chat-part="drawer-trigger"] {
931
+ display: grid;
932
+ width: 100%;
933
+ height: 1.25rem;
934
+ align-items: center;
935
+ border: 0;
936
+ background: transparent;
937
+ margin-inline: -1rem;
938
+ padding: 0 1rem;
939
+ color: var(--muted-foreground);
940
+ font: inherit;
941
+ cursor: pointer;
942
+ }
943
+
944
+ [data-ui-component="ai-chat-composer-drawer"] [data-ui-part="drawer-summary"] {
945
+ display: inline-flex;
946
+ align-items: center;
947
+ justify-self: start;
948
+ gap: 0.5rem;
949
+ font-size: 0.875rem;
950
+ line-height: 1.25rem;
951
+ }
952
+
953
+ [data-ui-component="ai-chat-composer-drawer"] [data-ui-part="drawer-handle"] {
954
+ width: 1.25rem;
955
+ height: 0.125rem;
956
+ justify-self: center;
957
+ border-radius: 999px;
958
+ background: var(--muted-foreground);
959
+ }
960
+
961
+ [data-ui-component="ai-chat-composer-drawer"]
962
+ [data-ai-chat-part="drawer-content"] {
963
+ display: flex;
964
+ min-height: 0;
965
+ flex-wrap: wrap;
966
+ align-items: flex-start;
967
+ gap: 0.375rem;
968
+ }
969
+
970
+ [data-ui-component="ai-chat-composer-drawer"]
971
+ [data-ai-chat-part="drawer-content"]
972
+ > [data-ui-component="badge"][data-variant="secondary"],
973
+ [data-ui-component="ai-chat-composer-drawer"]
974
+ [data-ai-chat-part="drawer-content"]
975
+ > [data-ui-component="ai-chat-composer-token"]
976
+ [data-ui-component="badge"][data-variant="secondary"],
977
+ [data-ui-component="ai-chat-composer-drawer"]
978
+ [data-ai-chat-part="drawer-content"]
979
+ [data-ui-part="attachment-chip"] {
980
+ border: 1px solid var(--ui-ai-chat-attachment-border);
981
+ border-radius: var(--ui-ai-chat-attachment-radius);
982
+ background: var(--ui-ai-chat-attachment-background);
983
+ color: var(--ui-ai-chat-attachment-foreground);
984
+ }
985
+
986
+ [data-ui-component="ai-chat-composer-drawer"]
987
+ [data-ai-chat-part="drawer-content"]
988
+ [data-ui-part="attachment-chip"] {
989
+ display: inline-flex;
990
+ max-width: 100%;
991
+ align-items: center;
992
+ gap: 0.25rem;
993
+ padding: 0.25rem 0.25rem 0.25rem 0.5rem;
994
+ font-size: 0.75rem;
995
+ line-height: 1rem;
996
+ }
997
+
998
+ [data-ui-component="ai-chat-composer-drawer"]
999
+ [data-ai-chat-part="drawer-content"]
1000
+ > [data-ui-component="badge"][data-variant="secondary"]:hover,
1001
+ [data-ui-component="ai-chat-composer-drawer"]
1002
+ [data-ai-chat-part="drawer-content"]
1003
+ [data-ui-part="attachment-chip"]:hover {
1004
+ background: var(--ui-ai-chat-attachment-background-hover);
1005
+ }
1006
+
1007
+ [data-ui-component="ai-chat-composer-drawer"]
1008
+ [data-ai-chat-part="drawer-content"]
1009
+ [data-ui-part="attachment-remove"] {
1010
+ display: grid;
1011
+ width: 1rem;
1012
+ height: 1rem;
1013
+ flex: 0 0 auto;
1014
+ place-items: center;
1015
+ border: 0;
1016
+ border-radius: 0.25rem;
1017
+ background: transparent;
1018
+ padding: 0;
1019
+ color: inherit;
1020
+ cursor: pointer;
1021
+ }
1022
+
1023
+ [data-ui-component="ai-chat-composer-drawer"]
1024
+ [data-ai-chat-part="drawer-content"]
1025
+ [data-ui-part="attachment-remove"]:hover,
1026
+ [data-ui-component="ai-chat-composer-drawer"]
1027
+ [data-ai-chat-part="drawer-content"]
1028
+ [data-ui-part="attachment-remove"]:focus-visible {
1029
+ background: var(--ui-ai-chat-attachment-remove-hover);
1030
+ }
1031
+
1032
+ [data-ui-component="ai-chat-composer-drawer"]
1033
+ [data-ai-chat-part="drawer-content"]
1034
+ [data-ui-part="attachment-remove"] svg {
1035
+ width: 0.75rem;
1036
+ height: 0.75rem;
1037
+ }
1038
+
1039
+ [data-ui-component="ai-chat-composer-drawer"]
1040
+ [data-ai-chat-part="drawer-content"]
1041
+ [data-ui-part="feedback-list"] {
1042
+ display: flex;
1043
+ width: 100%;
1044
+ flex-direction: column;
1045
+ gap: 0.25rem;
1046
+ }
1047
+
1048
+ [data-ui-component="ai-chat-composer-drawer"]
1049
+ [data-ai-chat-part="drawer-content"]
1050
+ [data-ui-part="feedback-option"] {
1051
+ display: flex;
1052
+ width: 100%;
1053
+ align-items: center;
1054
+ gap: 0.5rem;
1055
+ border: 0;
1056
+ border-radius: var(--ui-ai-chat-attachment-radius);
1057
+ background: transparent;
1058
+ padding: 0.375rem;
1059
+ color: var(--ui-ai-chat-attachment-foreground);
1060
+ font: inherit;
1061
+ text-align: left;
1062
+ cursor: pointer;
1063
+ }
1064
+
1065
+ [data-ui-component="ai-chat-composer-drawer"]
1066
+ [data-ai-chat-part="drawer-content"]
1067
+ [data-ui-part="feedback-option"]:hover:not(:disabled),
1068
+ [data-ui-component="ai-chat-composer-drawer"]
1069
+ [data-ai-chat-part="drawer-content"]
1070
+ [data-ui-part="feedback-option"][data-selected="true"] {
1071
+ background: var(--ui-ai-chat-attachment-background-hover);
1072
+ }
1073
+
1074
+ [data-ui-component="ai-chat-dictation-button"] {
1075
+ display: inline-flex;
1076
+ }
1077
+
1078
+ [data-ui-component="ai-chat-dictation-button"] svg {
1079
+ width: 1rem;
1080
+ height: 1rem;
1081
+ }
1082
+
1083
+ [data-ui-component="ai-chat-dictation-button"] [data-ui-part="volume-bars"] {
1084
+ display: flex;
1085
+ height: 1.125rem;
1086
+ align-items: center;
1087
+ gap: 0.1rem;
1088
+ }
1089
+
1090
+ [data-ui-component="ai-chat-dictation-button"] [data-ui-part="volume-bar"] {
1091
+ width: 0.125rem;
1092
+ max-height: 1rem;
1093
+ border-radius: 999px;
1094
+ background: currentColor;
1095
+ transition: height 80ms linear;
1096
+ }
1097
+
1098
+ [data-ui-component="ai-chat-tool-calls"] {
1099
+ display: flex;
1100
+ width: min(100%, 42rem);
1101
+ margin-top: 0.5rem;
1102
+ flex-direction: column;
1103
+ }
1104
+
1105
+ [data-ui-component="ai-chat-tool-calls"] [data-ai-chat-part="group-trigger"] {
1106
+ display: flex;
1107
+ width: 100%;
1108
+ min-height: 1.5rem;
1109
+ align-items: center;
1110
+ gap: 0.375rem;
1111
+ border: 0;
1112
+ background: transparent;
1113
+ padding: 0.125rem 0;
1114
+ color: var(--muted-foreground);
1115
+ font: inherit;
1116
+ font-size: 0.75rem;
1117
+ line-height: 1rem;
1118
+ text-align: left;
1119
+ cursor: pointer;
1120
+ }
1121
+
1122
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="group-icon"] {
1123
+ display: inline-flex;
1124
+ width: 1rem;
1125
+ height: 1rem;
1126
+ align-items: center;
1127
+ justify-content: center;
1128
+ flex: 0 0 auto;
1129
+ }
1130
+
1131
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="group-label"] {
1132
+ font-weight: 500;
1133
+ }
1134
+
1135
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="group-icon"] svg,
1136
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="chevron"],
1137
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="detail-chevron"] {
1138
+ width: 0.875rem;
1139
+ height: 0.875rem;
1140
+ }
1141
+
1142
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="chevron"] {
1143
+ transition: rotate 160ms ease;
1144
+ }
1145
+
1146
+ [data-ui-component="ai-chat-tool-calls"][data-expanded="true"]
1147
+ [data-ui-part="chevron"] {
1148
+ rotate: 180deg;
1149
+ }
1150
+
1151
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-list"] {
1152
+ display: flex;
1153
+ margin: 0;
1154
+ flex-direction: column;
1155
+ padding: 0;
1156
+ list-style: none;
1157
+ }
1158
+
1159
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call"] {
1160
+ min-width: 0;
1161
+ }
1162
+
1163
+ [data-ui-component="ai-chat-tool-calls"] [data-ai-chat-part="call-trigger"] {
1164
+ display: flex;
1165
+ width: 100%;
1166
+ min-height: 1.5rem;
1167
+ align-items: center;
1168
+ gap: 0.375rem;
1169
+ border: 0;
1170
+ border-radius: 0.375rem;
1171
+ background: transparent;
1172
+ padding: 0.125rem 0;
1173
+ color: var(--muted-foreground);
1174
+ font: inherit;
1175
+ font-size: 0.75rem;
1176
+ line-height: 1rem;
1177
+ text-align: left;
1178
+ }
1179
+
1180
+ [data-ui-component="ai-chat-tool-calls"]
1181
+ [data-ai-chat-part="call-trigger"]:not(:disabled):hover {
1182
+ background: var(--accent);
1183
+ }
1184
+
1185
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-status"] {
1186
+ position: relative;
1187
+ display: inline-grid;
1188
+ width: 1rem;
1189
+ height: 1rem;
1190
+ flex: 0 0 auto;
1191
+ place-items: center;
1192
+ color: var(--muted-foreground);
1193
+ }
1194
+
1195
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="status-circle"] {
1196
+ position: absolute;
1197
+ inset: 0;
1198
+ border-radius: 999px;
1199
+ background: currentColor;
1200
+ opacity: 0.15;
1201
+ }
1202
+
1203
+ [data-ui-component="ai-chat-tool-calls"]
1204
+ [data-ui-part="call"][data-status="running"]
1205
+ [data-ui-part="call-status"] {
1206
+ color: var(--primary);
1207
+ }
1208
+
1209
+ [data-ui-component="ai-chat-tool-calls"]
1210
+ [data-ui-part="call"][data-status="complete"]
1211
+ [data-ui-part="call-status"] {
1212
+ color: var(--ui-ai-chat-success, var(--chart-2));
1213
+ }
1214
+
1215
+ [data-ui-component="ai-chat-tool-calls"]
1216
+ [data-ui-part="call"][data-status="error"]
1217
+ [data-ui-part="call-status"],
1218
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="error"] {
1219
+ color: var(--destructive);
1220
+ }
1221
+
1222
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-status"] svg {
1223
+ position: relative;
1224
+ width: 0.75rem;
1225
+ height: 0.75rem;
1226
+ }
1227
+
1228
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-name"] {
1229
+ min-width: 0;
1230
+ overflow: hidden;
1231
+ flex: 0 1 auto;
1232
+ font-family: var(--font-mono);
1233
+ font-weight: 500;
1234
+ text-overflow: ellipsis;
1235
+ white-space: nowrap;
1236
+ }
1237
+
1238
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-target"],
1239
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="duration"] {
1240
+ min-width: 0;
1241
+ overflow: hidden;
1242
+ color: var(--muted-foreground);
1243
+ text-overflow: ellipsis;
1244
+ white-space: nowrap;
1245
+ }
1246
+
1247
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="duration"] {
1248
+ flex: 0 0 auto;
1249
+ }
1250
+
1251
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="diff-stats"],
1252
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-stats"] {
1253
+ display: inline-flex;
1254
+ flex: 0 0 auto;
1255
+ gap: 0.25rem;
1256
+ }
1257
+
1258
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-count"] {
1259
+ display: inline-flex;
1260
+ flex: 0 0 auto;
1261
+ align-items: center;
1262
+ gap: 0.125rem;
1263
+ opacity: 0.72;
1264
+ }
1265
+
1266
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="call-count"] svg {
1267
+ width: 0.75rem;
1268
+ height: 0.75rem;
1269
+ }
1270
+
1271
+ [data-ui-component="ai-chat-tool-calls"]
1272
+ [data-ui-part="diff-stats"]
1273
+ [data-kind="addition"] {
1274
+ color: var(--foreground);
1275
+ }
1276
+
1277
+ [data-ui-component="ai-chat-tool-calls"]
1278
+ [data-ui-part="diff-stats"]
1279
+ [data-kind="deletion"] {
1280
+ color: var(--destructive);
1281
+ }
1282
+
1283
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="detail-chevron"] {
1284
+ transition: rotate 160ms ease;
1285
+ }
1286
+
1287
+ [data-ui-component="ai-chat-tool-calls"]
1288
+ [data-ai-chat-part="call-trigger"][data-state="open"]
1289
+ [data-ui-part="detail-chevron"] {
1290
+ rotate: 180deg;
1291
+ }
1292
+
1293
+ [data-ui-component="ai-chat-tool-calls"] [data-ui-part="error"] {
1294
+ margin: 0;
1295
+ padding: 0 0.5rem 0.5rem 1.95rem;
1296
+ font-size: 0.75rem;
1297
+ }
1298
+
1299
+ [data-ui-component="ai-chat-tool-calls"] [data-ai-chat-part="call-detail"] {
1300
+ padding: 0.25rem 0 0.5rem 1.375rem;
1301
+ color: var(--muted-foreground);
1302
+ font-size: 0.75rem;
1303
+ }
1304
+
1305
+ @keyframes ui-ai-chat-pulse {
1306
+ 50% {
1307
+ opacity: 0.4;
1308
+ }
1309
+ }
1310
+
1311
+ @keyframes ui-ai-chat-spin {
1312
+ to {
1313
+ transform: rotate(360deg);
1314
+ }
1315
+ }
1316
+
1317
+ [data-ui-component="ai-chat-reasoning"] {
1318
+ --ui-ai-chat-reasoning-accent: var(--muted-foreground);
1319
+ margin-block-start: 0.5rem;
1320
+ }
1321
+
1322
+ [data-ui-component="ai-chat-reasoning"]
1323
+ [data-ai-chat-part="reasoning-trigger"] {
1324
+ display: flex;
1325
+ width: 100%;
1326
+ min-height: 1.75rem;
1327
+ align-items: center;
1328
+ gap: 0.375rem;
1329
+ border: 0;
1330
+ background: transparent;
1331
+ padding: 0.125rem 0;
1332
+ color: var(--ui-ai-chat-reasoning-accent);
1333
+ text-align: left;
1334
+ cursor: pointer;
1335
+ }
1336
+
1337
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-icon"],
1338
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-chevron"] {
1339
+ width: 0.875rem;
1340
+ height: 0.875rem;
1341
+ flex: none;
1342
+ }
1343
+
1344
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-row"] {
1345
+ display: flex;
1346
+ min-width: 0;
1347
+ flex: 1;
1348
+ align-items: center;
1349
+ gap: 0.25rem;
1350
+ overflow: hidden;
1351
+ font-size: 0.75rem;
1352
+ }
1353
+
1354
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-label"] {
1355
+ flex: none;
1356
+ font-weight: 500;
1357
+ }
1358
+
1359
+ [data-ui-component="ai-chat-reasoning"][data-streaming="true"]
1360
+ [data-ui-part="reasoning-label"] {
1361
+ animation: ui-ai-chat-pulse 1.5s ease-in-out infinite;
1362
+ }
1363
+
1364
+ [data-ui-component="ai-chat-reasoning"][data-streaming="true"]
1365
+ [data-ui-part="reasoning-icon"] {
1366
+ animation: ui-ai-chat-spin 1s linear infinite;
1367
+ }
1368
+
1369
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-duration"],
1370
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-separator"],
1371
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-preview"] {
1372
+ color: var(--muted-foreground);
1373
+ }
1374
+
1375
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-preview"] {
1376
+ min-width: 0;
1377
+ overflow: hidden;
1378
+ text-overflow: ellipsis;
1379
+ white-space: nowrap;
1380
+ }
1381
+
1382
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-chevron"] {
1383
+ transition: rotate 160ms ease;
1384
+ }
1385
+
1386
+ [data-ui-component="ai-chat-reasoning"][data-expanded="true"]
1387
+ [data-ui-part="reasoning-chevron"] {
1388
+ rotate: 180deg;
1389
+ }
1390
+
1391
+ [data-ui-component="ai-chat-reasoning"]
1392
+ [data-ai-chat-part="reasoning-content"] {
1393
+ padding: 0.5rem 0 0 1.25rem;
1394
+ }
1395
+
1396
+ [data-ui-component="ai-chat-reasoning"]
1397
+ [data-ui-part="reasoning-content-inner"] {
1398
+ border-left: 2px solid var(--border);
1399
+ padding-left: 0.75rem;
1400
+ color: var(--muted-foreground);
1401
+ font-size: 0.8125rem;
1402
+ line-height: 1.5;
1403
+ }
1404
+
1405
+ [data-ui-component="ai-chat-typing-indicator"] {
1406
+ display: flex;
1407
+ min-height: 1.25rem;
1408
+ align-items: center;
1409
+ gap: 0.5rem;
1410
+ color: var(--muted-foreground);
1411
+ font-size: 0.75rem;
1412
+ }
1413
+
1414
+ [data-ui-component="ai-chat-typing-indicator"] [data-ui-part="typing-dots"] {
1415
+ display: inline-flex;
1416
+ align-items: center;
1417
+ gap: 0.125rem;
1418
+ }
1419
+
1420
+ [data-ui-component="ai-chat-typing-indicator"] [data-ui-part="typing-dot"] {
1421
+ width: 0.3125rem;
1422
+ height: 0.3125rem;
1423
+ border-radius: 999px;
1424
+ background: currentcolor;
1425
+ animation: ui-ai-chat-typing 900ms ease-in-out infinite;
1426
+ }
1427
+
1428
+ [data-ui-component="ai-chat-typing-indicator"]
1429
+ [data-ui-part="typing-dot"]:nth-child(2) {
1430
+ animation-delay: 160ms;
1431
+ }
1432
+
1433
+ [data-ui-component="ai-chat-typing-indicator"]
1434
+ [data-ui-part="typing-dot"]:nth-child(3) {
1435
+ animation-delay: 320ms;
1436
+ }
1437
+
1438
+ [data-ui-component="ai-chat-unread-divider"] {
1439
+ --ui-ai-chat-unread-color: var(--destructive);
1440
+ display: flex;
1441
+ width: 100%;
1442
+ align-items: center;
1443
+ gap: 0.5rem;
1444
+ padding-block: 0.25rem;
1445
+ color: var(--ui-ai-chat-unread-color);
1446
+ }
1447
+
1448
+ [data-ui-component="ai-chat-unread-divider"] [data-ai-chat-part="unread-line"] {
1449
+ flex: 1;
1450
+ background: currentcolor;
1451
+ }
1452
+
1453
+ [data-ui-component="ai-chat-unread-divider"] [data-ui-part="unread-label"] {
1454
+ flex: none;
1455
+ font-size: 0.75rem;
1456
+ font-weight: 700;
1457
+ }
1458
+
1459
+ [data-ui-component="ai-chat-emoji-picker"] [data-ai-chat-part="emoji-content"] {
1460
+ --ui-popover-gap: 0.5rem;
1461
+ --ui-popover-padding: 0.5rem;
1462
+ width: 18rem;
1463
+ }
1464
+
1465
+ [data-ui-component="ai-chat-emoji-picker"] [data-ui-part="emoji-panel"] {
1466
+ display: flex;
1467
+ flex-direction: column;
1468
+ gap: 0.5rem;
1469
+ }
1470
+
1471
+ [data-ui-component="ai-chat-emoji-picker"] [data-ui-part="emoji-grid"] {
1472
+ display: grid;
1473
+ grid-template-columns: repeat(8, minmax(0, 1fr));
1474
+ gap: 0.125rem;
1475
+ }
1476
+
1477
+ [data-ui-component="ai-chat-emoji-picker"]
1478
+ [data-ui-part="emoji-grid"]
1479
+ [data-ui-component="button"] {
1480
+ width: 2rem;
1481
+ height: 2rem;
1482
+ padding: 0;
1483
+ font-size: 1.125rem;
1484
+ }
1485
+
1486
+ [data-ui-component="ai-chat-emoji-picker"] [data-ui-part="emoji-empty"] {
1487
+ margin: 0;
1488
+ padding: 0.5rem 0.25rem;
1489
+ color: var(--muted-foreground);
1490
+ font-size: 0.75rem;
1491
+ }
1492
+
1493
+ [data-ui-component="ai-chat-reaction-bar"] {
1494
+ --ui-ai-chat-reaction-background: var(--muted);
1495
+ --ui-ai-chat-reaction-selected-background: var(--accent);
1496
+ --ui-ai-chat-reaction-selected-border: var(--ring);
1497
+ display: flex;
1498
+ flex-wrap: wrap;
1499
+ align-items: center;
1500
+ gap: 0.25rem;
1501
+ }
1502
+
1503
+ [data-ui-component="ai-chat-reaction-bar"] [data-ai-chat-part="reaction"] {
1504
+ height: 1.5rem;
1505
+ min-width: 0;
1506
+ gap: 0.25rem;
1507
+ border: 1px solid transparent;
1508
+ border-radius: 999px;
1509
+ background: var(--ui-ai-chat-reaction-background);
1510
+ padding-inline: 0.5rem;
1511
+ font-size: 0.75rem;
1512
+ }
1513
+
1514
+ [data-ui-component="ai-chat-reaction-bar"]
1515
+ [data-ai-chat-part="reaction"][data-state="on"] {
1516
+ border-color: var(--ui-ai-chat-reaction-selected-border);
1517
+ background: var(--ui-ai-chat-reaction-selected-background);
1518
+ }
1519
+
1520
+ [data-ui-component="ai-chat-reaction-bar"] [data-ui-part="reaction-count"] {
1521
+ color: var(--muted-foreground);
1522
+ font-variant-numeric: tabular-nums;
1523
+ }
1524
+
1525
+ @keyframes ui-ai-chat-typing {
1526
+ 30% {
1527
+ translate: 0 -0.1875rem;
1528
+ opacity: 1;
1529
+ }
1530
+ 0%,
1531
+ 60%,
1532
+ 100% {
1533
+ translate: 0 0;
1534
+ opacity: 0.35;
1535
+ }
1536
+ }
1537
+
1538
+ @media (prefers-reduced-motion: reduce) {
1539
+ [data-ui-component="ai-chat-layout-scroll-button"],
1540
+ [data-ui-component="ai-chat-message-metadata"] [data-status="sending"] svg,
1541
+ [data-ui-component="ai-chat-composer-drawer"] svg,
1542
+ [data-ui-component="ai-chat-dictation-button"] [data-ui-part="volume-bar"],
1543
+ [data-ui-component="ai-chat-tool-calls"] svg,
1544
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-label"],
1545
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-icon"],
1546
+ [data-ui-component="ai-chat-reasoning"] [data-ui-part="reasoning-chevron"],
1547
+ [data-ui-component="ai-chat-typing-indicator"] [data-ui-part="typing-dot"] {
1548
+ transition: none;
1549
+ animation: none;
1550
+ }
1551
+ }