@astryx-vue/core 0.2.0 → 0.2.2

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 (225) hide show
  1. package/dist/AppShell/index.js +1 -1
  2. package/dist/{AppShell-EiGyPFbA.js → AppShell-Cb41gIAj.js} +2 -2
  3. package/dist/Avatar/index.d.ts +1 -1
  4. package/dist/Avatar/index.js +1 -1
  5. package/dist/Avatar-jmHInHwj.js +244 -0
  6. package/dist/AvatarGroup/index.d.ts +1 -1
  7. package/dist/AvatarGroup/index.js +1 -1
  8. package/dist/{AvatarGroup-CZcgAMjM.js → AvatarGroup-QyzSrpYA.js} +8 -7
  9. package/dist/Badge/index.d.ts +2 -1
  10. package/dist/Badge/index.js +1 -1
  11. package/dist/Badge-CjDQPF5g.js +30 -0
  12. package/dist/Banner/index.d.ts +1 -1
  13. package/dist/Breadcrumbs/index.d.ts +2 -2
  14. package/dist/Breadcrumbs/index.js +1 -1
  15. package/dist/{Breadcrumbs-C3YZFQ9w.js → Breadcrumbs-CTQ7fjDn.js} +45 -11
  16. package/dist/ButtonGroup/index.d.ts +1 -1
  17. package/dist/Calendar/index.d.ts +2 -2
  18. package/dist/Calendar/index.js +1 -1
  19. package/dist/Calendar-BFaI5AMv.js +352 -0
  20. package/dist/Card/index.d.ts +1 -1
  21. package/dist/Carousel/index.js +1 -1
  22. package/dist/{Carousel-BTtHkKea.js → Carousel-X0cuQkvg.js} +2 -2
  23. package/dist/Chat/index.d.ts +2 -2
  24. package/dist/Chat/index.js +2 -2
  25. package/dist/Chat-M0tiGrNT.js +3148 -0
  26. package/dist/CheckboxInput/index.d.ts +1 -1
  27. package/dist/CheckboxList/index.d.ts +1 -1
  28. package/dist/CheckboxList/index.js +1 -1
  29. package/dist/Citation/index.js +1 -1
  30. package/dist/{Citation-DijdbUUu.js → Citation-C1veUk5p.js} +2 -2
  31. package/dist/ClickableCard/index.d.ts +1 -1
  32. package/dist/Code/index.js +1 -1
  33. package/dist/{CodeBlock-CxTb6j9_.js → CodeBlock-DesTJAkm.js} +1 -1
  34. package/dist/Collapsible/index.js +1 -1
  35. package/dist/{Collapsible-9MC08X39.js → Collapsible-BestK35V.js} +1 -1
  36. package/dist/CommandPalette/index.js +1 -1
  37. package/dist/{CommandPalette-BD2iODF5.js → CommandPalette-BArt97V8.js} +1 -1
  38. package/dist/ComplexSelector/index.d.ts +1 -1
  39. package/dist/ComplexSelector/index.js +1 -1
  40. package/dist/{ComplexSelector-D9iXd5cH.js → ComplexSelector-CAoig1RK.js} +2 -2
  41. package/dist/ContextMenu/index.d.ts +2 -2
  42. package/dist/ContextMenu/index.js +1 -1
  43. package/dist/{ContextMenu-HS_WqYIg.js → ContextMenu-9Im6i43E.js} +101 -63
  44. package/dist/DateInput/index.d.ts +2 -2
  45. package/dist/DateInput/index.js +1 -1
  46. package/dist/DateInput-BLocxqC3.js +376 -0
  47. package/dist/DateRangeInput/index.d.ts +1 -1
  48. package/dist/DateRangeInput/index.js +1 -1
  49. package/dist/{DateRangeInput-1bhPGG2s.js → DateRangeInput-DwDy3eRo.js} +2 -2
  50. package/dist/DateTimeInput/index.d.ts +1 -1
  51. package/dist/DateTimeInput/index.js +1 -1
  52. package/dist/{DateTimeInput-SnPdgk6P.js → DateTimeInput-BYiaC9bn.js} +5 -3
  53. package/dist/DropdownMenu/index.d.ts +3 -2
  54. package/dist/DropdownMenu/index.js +3 -2
  55. package/dist/DropdownMenu-Ddfr-aEC.js +164 -0
  56. package/dist/{DropdownMenu-UJGych6v.js → DropdownMenu-Dh-WAHKb.js} +63 -16
  57. package/dist/FileInput/index.d.ts +1 -1
  58. package/dist/FileInput/index.js +1 -1
  59. package/dist/{FileInput-BQiwE-GB.js → FileInput-DLO6V12n.js} +2 -2
  60. package/dist/Icon/index.d.ts +4 -3
  61. package/dist/Icon/index.js +3 -2
  62. package/dist/Icon/plugin.d.ts +45 -0
  63. package/dist/Icon/plugin.js +177 -0
  64. package/dist/Icon-CJKjdJy-.js +198 -0
  65. package/dist/Lightbox/index.js +1 -1
  66. package/dist/{Lightbox-CshKoB0r.js → Lightbox-CdFCS_EA.js} +2 -2
  67. package/dist/Link/index.d.ts +1 -1
  68. package/dist/Link/index.js +1 -1
  69. package/dist/Link-DqdQZ37C.js +141 -0
  70. package/dist/Markdown/index.js +1 -1
  71. package/dist/{Markdown-D-Ua055V.js → Markdown-BqKloI3w.js} +3 -3
  72. package/dist/MetadataList/index.js +1 -1
  73. package/dist/{MetadataList-sYph_d8Q.js → MetadataList-CvZkmisf.js} +1 -1
  74. package/dist/MobileNav/index.js +1 -1
  75. package/dist/{MobileNavToggle-DD9D01aj.js → MobileNavToggle-Bwi0qXXM.js} +1 -1
  76. package/dist/MoreMenu/index.d.ts +1 -1
  77. package/dist/MoreMenu/index.js +1 -1
  78. package/dist/{MoreMenu-BVrK5kkk.js → MoreMenu-BwJaJrkB.js} +2 -2
  79. package/dist/MultiSelector/index.js +1 -1
  80. package/dist/{MultiSelector-DiYov9sF.js → MultiSelector-C-ETfFy_.js} +2 -2
  81. package/dist/NumberInput/index.d.ts +2 -2
  82. package/dist/NumberInput/index.js +1 -1
  83. package/dist/NumberInput-DjetVB8O.js +210 -0
  84. package/dist/Outline/index.js +1 -1
  85. package/dist/{Outline-DQfEBxlc.js → Outline-Bz9c-u5y.js} +1 -1
  86. package/dist/OverflowList/index.d.ts +1 -1
  87. package/dist/OverflowList/index.js +1 -1
  88. package/dist/{OverflowList-BU5VCntl.js → OverflowList-ED-KN9Y5.js} +1 -1
  89. package/dist/Overlay/index.d.ts +1 -1
  90. package/dist/Pagination/index.d.ts +2 -2
  91. package/dist/Pagination/index.js +1 -1
  92. package/dist/{Pagination-HdhtykeF.js → Pagination-Cb66HMEf.js} +76 -22
  93. package/dist/PowerSearch/index.d.ts +2 -0
  94. package/dist/PowerSearch/index.js +2 -0
  95. package/dist/PowerSearch-CjU8y4mi.js +2386 -0
  96. package/dist/ProgressBar/index.d.ts +1 -1
  97. package/dist/ProgressBar/index.js +1 -1
  98. package/dist/{ProgressBar-ChDp-7oe.js → ProgressBar-DO9Chic6.js} +31 -11
  99. package/dist/Radio/index.d.ts +1 -1
  100. package/dist/RadioList/index.d.ts +1 -1
  101. package/dist/Resizable/index.d.ts +1 -1
  102. package/dist/Resizable/index.js +1 -1
  103. package/dist/{Resizable-BhSMfO5B.js → Resizable-D-TBCg0Y.js} +1 -1
  104. package/dist/ScrollableArea/index.d.ts +1 -1
  105. package/dist/SelectableCard/index.d.ts +1 -1
  106. package/dist/Selector/index.d.ts +2 -2
  107. package/dist/Selector/index.js +1 -1
  108. package/dist/Selector-DE2IEFML.js +468 -0
  109. package/dist/SideNav/index.d.ts +1 -1
  110. package/dist/SideNav/index.js +1 -1
  111. package/dist/{SideNav-B-Om6Bz3.js → SideNav-DonEfiAx.js} +17 -17
  112. package/dist/Stepper/index.js +1 -1
  113. package/dist/{Stepper-BZ_8SEZt.js → Stepper-D2ZIcUNx.js} +1 -1
  114. package/dist/Switch/index.d.ts +1 -1
  115. package/dist/TabList/index.d.ts +1 -1
  116. package/dist/TabList/index.js +1 -1
  117. package/dist/{TabList-Cnc2Hs1H.js → TabList-D3F-stq-.js} +10 -3
  118. package/dist/Table/index.d.ts +3 -3
  119. package/dist/Table/index.js +2 -2
  120. package/dist/Table-CrP2Uffq.js +1982 -0
  121. package/dist/TextArea/index.d.ts +1 -1
  122. package/dist/TextArea/index.js +1 -1
  123. package/dist/{TextArea-Cv9UVbzS.js → TextArea-CPwSytdO.js} +12 -6
  124. package/dist/TextInput/index.d.ts +1 -1
  125. package/dist/Thumbnail/index.js +1 -1
  126. package/dist/{Thumbnail-Dc1UpykG.js → Thumbnail-BC5JGPGZ.js} +11 -11
  127. package/dist/{TimeField-C7t9Knq9.js → TimeField-DpHFrNv0.js} +2 -2
  128. package/dist/TimeInput/index.d.ts +1 -1
  129. package/dist/TimeInput/index.js +1 -1
  130. package/dist/{TimeInput-BXxCOY98.js → TimeInput-DJLV0_4z.js} +1 -1
  131. package/dist/Timestamp/index.d.ts +1 -1
  132. package/dist/Timestamp/index.js +2 -1
  133. package/dist/{Timestamp-DlZSmgCJ.js → Timestamp-GKNjjt5g.js} +4 -121
  134. package/dist/Toast/index.d.ts +2 -2
  135. package/dist/Toast/index.js +1 -1
  136. package/dist/{Toast-BKXPvEMp.js → Toast-C2ML-bmi.js} +37 -7
  137. package/dist/ToggleButton/index.d.ts +1 -1
  138. package/dist/Token/index.js +1 -1
  139. package/dist/{Token-wt4e80IM.js → Token-Chu_eCVs.js} +1 -1
  140. package/dist/Tokenizer/index.js +1 -1
  141. package/dist/{Tokenizer-nmTqdS9n.js → Tokenizer-DRDpvQ_l.js} +3 -3
  142. package/dist/Toolbar/index.d.ts +1 -1
  143. package/dist/TopNav/index.d.ts +1 -1
  144. package/dist/TopNav/index.js +1 -1
  145. package/dist/{TopNav-notp-mJx.js → TopNav-CEyWddtA.js} +3 -3
  146. package/dist/TreeList/index.js +1 -1
  147. package/dist/{TreeList-s1xBQ0qq.js → TreeList-COS8US8e.js} +3 -3
  148. package/dist/Typeahead/index.js +1 -1
  149. package/dist/{Typeahead-VAuiCurV.js → Typeahead-P7cCqtaQ.js} +3 -3
  150. package/dist/{useTypeaheadMenu-Ba7XpcZl.js → TypeaheadMenu-CGvo0Tud.js} +107 -107
  151. package/dist/composables/index.d.ts +3 -3
  152. package/dist/{context-Dbo22sck.js → context-CiKncNSH.js} +184 -6
  153. package/dist/formatInstant-BDWUIxS7.js +119 -0
  154. package/dist/{index-SMh42NI8.d.ts → index-B1TG2GPS.d.ts} +2 -2
  155. package/dist/{index-DRmb-oUa.d.ts → index-B9WzWqzk.d.ts} +3 -29
  156. package/dist/{index-BuubzuE8.d.ts → index-BDZCJ9ri.d.ts} +2 -2
  157. package/dist/{index-z4p2k9VR.d.ts → index-Bgv4ZmBl.d.ts} +20 -2
  158. package/dist/{index-BoRIw-bP.d.ts → index-Bt7ewoz2.d.ts} +32 -2
  159. package/dist/{index-uQrLBZfF.d.ts → index-Bu3oXIIS.d.ts} +24 -0
  160. package/dist/index-CJlBAXwj.d.ts +100 -0
  161. package/dist/{index-DT9S92sh.d.ts → index-CNjbOgty.d.ts} +15 -0
  162. package/dist/{index-DXSs3rwa.d.ts → index-CngORuiq.d.ts} +137 -2
  163. package/dist/index-Cs5pcwY3.d.ts +416 -0
  164. package/dist/{index-NzLDrOkk.d.ts → index-D4I_obqR.d.ts} +14 -1
  165. package/dist/{index-BtPZKO20.d.ts → index-DGXviOlp.d.ts} +49 -7
  166. package/dist/{index-CTolyeii.d.ts → index-DN7MXPHM.d.ts} +15 -1
  167. package/dist/{index-C6iJwTL0.d.ts → index-DNRBbwp_.d.ts} +165 -55
  168. package/dist/{index-C59PdX9L.d.ts → index-DWH_HzXi.d.ts} +1 -1
  169. package/dist/{index-BfOtLyNH.d.ts → index-D_nYxnNv.d.ts} +1 -1
  170. package/dist/{index-Bn_odHQ9.d.ts → index-Dg3ZmwEg.d.ts} +12 -1
  171. package/dist/{index-BiMGXtD-.d.ts → index-DimuSES0.d.ts} +14 -1
  172. package/dist/{index-DEeJowZf.d.ts → index-cGagYM1g.d.ts} +15 -2
  173. package/dist/{index-Ck8qy6Rf.d.ts → index-c_TaW8mM.d.ts} +24 -2
  174. package/dist/index-kVhSuA9t.d.ts +902 -0
  175. package/dist/{index-1uRMrk63.d.ts → index-nCEmW6wa.d.ts} +1 -1
  176. package/dist/{index-DoFCm2Q2.d.ts → index-qiZtHnGK.d.ts} +26 -0
  177. package/dist/{index-Bainr_3n.d.ts → index-u5ozu0G7.d.ts} +2 -2
  178. package/dist/index.d.ts +79 -76
  179. package/dist/index.js +111 -100
  180. package/dist/locale/index.d.ts +1 -1
  181. package/dist/locale/index.js +1 -1
  182. package/dist/power-search-DrDfcoL1.d.ts +68 -0
  183. package/dist/registry-B1ObuP--.d.ts +45 -0
  184. package/dist/registry-C7OZb0PJ.js +135 -0
  185. package/dist/{types-JktRxujg.d.ts → types-Cp4liug-.d.ts} +66 -3
  186. package/dist/{index-B8MbfMwV.d.ts → types-DDAAT1Xd.d.ts} +36 -82
  187. package/dist/types-DIYwbkpe.d.ts +33 -0
  188. package/dist/{types-DZoEm_DG.d.ts → types-pnljWjEE.d.ts} +23 -6
  189. package/dist/{useResizable-CeESZS1v.d.ts → useResizable-CUoNPmUw.d.ts} +1 -1
  190. package/package.json +10 -1
  191. package/styles/avatar.css +14 -0
  192. package/styles/badge.css +8 -0
  193. package/styles/breadcrumbs.css +6 -1
  194. package/styles/button.css +13 -0
  195. package/styles/calendar.css +16 -0
  196. package/styles/card.css +2 -0
  197. package/styles/chat.css +474 -3
  198. package/styles/dropdown-menu.css +11 -0
  199. package/styles/icon.css +58 -8
  200. package/styles/link.css +5 -0
  201. package/styles/number-input.css +22 -0
  202. package/styles/pagination.css +45 -1
  203. package/styles/power-search.css +303 -0
  204. package/styles/progress-bar.css +4 -0
  205. package/styles/selector.css +58 -0
  206. package/styles/tab-list.css +15 -0
  207. package/styles/table.css +304 -1
  208. package/styles/text-area.css +17 -0
  209. package/styles/text-input.css +5 -0
  210. package/styles/toast.css +7 -0
  211. package/styles/toolbar.css +11 -0
  212. package/styles.css +1 -0
  213. package/dist/Avatar-5s3HSrtN.js +0 -136
  214. package/dist/Badge-Ba0EwsTj.js +0 -19
  215. package/dist/Calendar-BG7wEsro.js +0 -277
  216. package/dist/Chat-DjNxw5gv.js +0 -1051
  217. package/dist/DateInput-DE2TN1Rq.js +0 -250
  218. package/dist/Icon-Dfr4k6-S.js +0 -86
  219. package/dist/Link-CprjOuTI.js +0 -92
  220. package/dist/NumberInput-CTYiQxHq.js +0 -147
  221. package/dist/Selector-Da-2BO3q.js +0 -325
  222. package/dist/Table-D-LhAy_J.js +0 -967
  223. package/dist/index-DJo-BmXZ.d.ts +0 -431
  224. package/dist/index-DtjAdYEc.d.ts +0 -68
  225. package/dist/{CheckboxList-EsIEXjK_.js → CheckboxList-BbCPiend.js} +1 -1
package/styles/chat.css CHANGED
@@ -296,7 +296,7 @@
296
296
  .astryx-chat-message__metadata {
297
297
  box-sizing: border-box;
298
298
  max-width: min(100%, max(80%, 280px));
299
- min-width: 0;
299
+ min-width: min(100%, 280px);
300
300
  }
301
301
 
302
302
  .astryx-chat-message-bubble__frame {
@@ -306,7 +306,10 @@
306
306
  box-sizing: border-box;
307
307
  width: fit-content;
308
308
  max-width: min(100%, max(80%, 280px));
309
- min-width: 0;
309
+ /* fit-content with min-width: 0 collapses to a few characters when the
310
+ parent's width is cyclic. 280px is the original floor; cap it at the
311
+ column so a narrow thread wraps the text instead of overflowing. */
312
+ min-width: min(100%, 280px);
310
313
  }
311
314
 
312
315
  /* Same column gap as the original bubble stack. Metadata’s -6px / +4px
@@ -825,11 +828,479 @@
825
828
  100% { opacity: 0.35; transform: translateY(0); }
826
829
  }
827
830
 
831
+ .astryx-chat-composer {
832
+ position: relative;
833
+ z-index: 0;
834
+ isolation: isolate;
835
+ display: flex;
836
+ flex-direction: column;
837
+ box-sizing: border-box;
838
+ width: 100%;
839
+ min-width: 0;
840
+ --_chat-composer-radius: var(--astryx-radius-chat, 28px);
841
+ --_chat-composer-padding: var(--astryx-spacing-3, 12px);
842
+ --astryx-button-radius: max(
843
+ var(--astryx-radius-element, 0.625rem),
844
+ calc(var(--_chat-composer-radius) - var(--_chat-composer-padding))
845
+ );
846
+ }
847
+
848
+ .astryx-chat-composer[data-disabled] {
849
+ opacity: 0.6;
850
+ pointer-events: none;
851
+ }
852
+
853
+ .astryx-chat-composer__body {
854
+ position: relative;
855
+ z-index: 2;
856
+ display: flex;
857
+ flex-direction: column;
858
+ box-sizing: border-box;
859
+ padding: var(--_chat-composer-padding);
860
+ gap: var(--astryx-spacing-2, 8px);
861
+ border-radius: var(--_chat-composer-radius);
862
+ background-color: var(--astryx-color-background-popover);
863
+ cursor: text;
864
+ transition:
865
+ box-shadow var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1)),
866
+ border-color var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
867
+ }
868
+
869
+ .astryx-chat-composer__body:is(:disabled, [aria-disabled='true']) {
870
+ cursor: default;
871
+ }
872
+
873
+ .astryx-chat-composer__body[data-density='compact'] {
874
+ --_chat-composer-padding: var(--astryx-spacing-2, 8px);
875
+ gap: var(--astryx-spacing-1, 4px);
876
+ }
877
+
878
+ .astryx-chat-composer__body[data-keyboard-focus] {
879
+ outline-width: var(--astryx-focus-outline-width, 2px);
880
+ outline-style: var(--astryx-focus-outline-style, solid);
881
+ outline-color: var(--astryx-focus-outline-color, var(--astryx-color-accent));
882
+ outline-offset: var(--astryx-focus-outline-offset, 3px);
883
+ }
884
+
885
+ .astryx-chat-composer__body[data-elevation='low'] {
886
+ box-shadow: var(--astryx-shadow-low);
887
+ }
888
+
889
+ .astryx-chat-composer__body[data-elevation='low']:focus-within {
890
+ box-shadow: var(--astryx-shadow-med);
891
+ }
892
+
893
+ .astryx-chat-composer__body[data-elevation='none'] {
894
+ border-width: var(--astryx-border-width, 1px);
895
+ border-style: solid;
896
+ border-color: var(--astryx-color-border-emphasized);
897
+ padding: calc(var(--_chat-composer-padding) - var(--astryx-border-width, 1px));
898
+ box-shadow: none;
899
+ }
900
+
901
+ .astryx-chat-composer__body[data-elevation='none']:focus-within {
902
+ border-color: var(--astryx-color-accent);
903
+ box-shadow: inset 0 0 0 2px var(--astryx-color-accent-muted);
904
+ }
905
+
906
+ @media (hover: hover) {
907
+ .astryx-chat-composer__body[data-elevation='low']:hover {
908
+ box-shadow: var(--astryx-shadow-med);
909
+ }
910
+
911
+ .astryx-chat-composer__body[data-elevation='none']:hover:not(:focus-within) {
912
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--astryx-color-border-emphasized) 30%, transparent);
913
+ }
914
+
915
+ .astryx-chat-drawer__toggle:hover .astryx-chat-drawer__label {
916
+ color: var(--astryx-color-text-primary);
917
+ }
918
+
919
+ .astryx-chat-drawer__toggle:hover .astryx-chat-drawer__handle {
920
+ background-color: var(--astryx-color-icon-primary);
921
+ }
922
+ }
923
+
924
+ .astryx-chat-composer__header {
925
+ display: flex;
926
+ align-items: center;
927
+ justify-content: space-between;
928
+ gap: var(--astryx-spacing-2, 8px);
929
+ min-height: 28px;
930
+ }
931
+
932
+ .astryx-chat-composer__header-start,
933
+ .astryx-chat-composer__footer-start,
934
+ .astryx-chat-composer__footer-end {
935
+ display: flex;
936
+ align-items: center;
937
+ gap: var(--astryx-spacing-1, 4px);
938
+ }
939
+
940
+ .astryx-chat-composer__header-end {
941
+ display: flex;
942
+ align-items: center;
943
+ gap: var(--astryx-spacing-2, 8px);
944
+ margin-inline-start: auto;
945
+ font-family: var(--astryx-font-family-body);
946
+ font-size: var(--astryx-text-supporting-size);
947
+ line-height: var(--astryx-text-supporting-leading);
948
+ color: var(--astryx-color-text-secondary);
949
+ }
950
+
951
+ .astryx-chat-composer__input {
952
+ display: flex;
953
+ flex-direction: column;
954
+ }
955
+
956
+ .astryx-chat-composer__footer {
957
+ display: flex;
958
+ align-items: center;
959
+ justify-content: space-between;
960
+ gap: var(--astryx-spacing-2, 8px);
961
+ min-height: 32px;
962
+ }
963
+
964
+ .astryx-chat-composer__footer-end[data-interruptible] {
965
+ pointer-events: auto;
966
+ }
967
+
968
+ .astryx-chat-composer__status {
969
+ position: relative;
970
+ z-index: 0;
971
+ display: flex;
972
+ align-items: center;
973
+ gap: var(--astryx-spacing-2, 8px);
974
+ padding-inline: var(--astryx-spacing-4, 16px);
975
+ font-family: var(--astryx-font-family-body);
976
+ font-size: var(--astryx-text-supporting-size);
977
+ line-height: var(--astryx-text-supporting-leading);
978
+ }
979
+
980
+ .astryx-chat-composer__status[data-place='top'] {
981
+ padding-block-start: var(--_chat-composer-padding);
982
+ padding-block-end: calc(var(--_chat-composer-padding) + var(--_chat-composer-radius));
983
+ margin-block-end: calc(-1 * var(--_chat-composer-radius));
984
+ border-start-start-radius: var(--_chat-composer-radius);
985
+ border-start-end-radius: var(--_chat-composer-radius);
986
+ }
987
+
988
+ .astryx-chat-composer__status[data-place='bottom'] {
989
+ padding-block-start: calc(var(--_chat-composer-padding) + var(--_chat-composer-radius));
990
+ padding-block-end: var(--_chat-composer-padding);
991
+ margin-block-start: calc(-1 * var(--_chat-composer-radius));
992
+ border-end-start-radius: var(--_chat-composer-radius);
993
+ border-end-end-radius: var(--_chat-composer-radius);
994
+ }
995
+
996
+ .astryx-chat-composer__status[data-type='error'] {
997
+ background-color: var(--astryx-color-error-muted);
998
+ color: var(--astryx-color-text-red);
999
+ }
1000
+
1001
+ .astryx-chat-composer__status[data-type='warning'] {
1002
+ background-color: var(--astryx-color-warning-muted);
1003
+ color: var(--astryx-color-text-yellow);
1004
+ }
1005
+
1006
+ .astryx-chat-composer-input {
1007
+ position: relative;
1008
+ display: flex;
1009
+ flex-direction: column;
1010
+ min-height: 22px;
1011
+ }
1012
+
1013
+ .astryx-chat-composer-input[data-disabled] {
1014
+ opacity: 0.5;
1015
+ pointer-events: none;
1016
+ }
1017
+
1018
+ .astryx-chat-composer-input__editable,
1019
+ .astryx-chat-composer-input__placeholder {
1020
+ font-family: var(--astryx-font-family-body);
1021
+ font-size: var(--astryx-text-body-size);
1022
+ line-height: 22px;
1023
+ padding-inline: var(--astryx-spacing-1, 4px);
1024
+ }
1025
+
1026
+ .astryx-chat-composer-input__editable {
1027
+ outline: none;
1028
+ white-space: pre-wrap;
1029
+ word-break: break-word;
1030
+ overflow-y: auto;
1031
+ color: var(--astryx-color-text-primary);
1032
+ caret-color: var(--astryx-color-accent);
1033
+ }
1034
+
1035
+ .astryx-chat-composer-input__placeholder {
1036
+ position: absolute;
1037
+ top: 0;
1038
+ inset-inline: 0;
1039
+ color: var(--astryx-color-text-secondary);
1040
+ pointer-events: none;
1041
+ user-select: none;
1042
+ }
1043
+
1044
+ .astryx-chat-composer-input__interim {
1045
+ color: var(--astryx-color-text-disabled);
1046
+ font-style: italic;
1047
+ opacity: 0.7;
1048
+ pointer-events: none;
1049
+ }
1050
+
1051
+ @media (pointer: coarse) {
1052
+ @supports (-webkit-touch-callout: none) {
1053
+ .astryx-chat-composer-input__editable,
1054
+ .astryx-chat-composer-input__placeholder {
1055
+ font-size: max(1rem, var(--astryx-text-body-size, 1rem));
1056
+ }
1057
+ }
1058
+ }
1059
+
1060
+ .astryx-chat-token,
1061
+ .astryx-chat-tokenized .astryx-chat-token {
1062
+ display: inline-flex;
1063
+ align-items: center;
1064
+ height: 1lh;
1065
+ vertical-align: top;
1066
+ }
1067
+
1068
+ .astryx-chat-tokenized {
1069
+ display: inline;
1070
+ }
1071
+
1072
+ .astryx-chat-send {
1073
+ flex-shrink: 0;
1074
+ border-radius: var(--astryx-button-radius, var(--astryx-radius-full, 9999px));
1075
+ }
1076
+
1077
+ .astryx-chat-drawer {
1078
+ position: relative;
1079
+ z-index: 1;
1080
+ display: flex;
1081
+ flex-direction: column;
1082
+ overflow: hidden;
1083
+ box-sizing: border-box;
1084
+ padding-inline: var(--astryx-spacing-4, 16px);
1085
+ padding-block-start: var(--astryx-spacing-3, 12px);
1086
+ padding-block-end: calc(var(--astryx-spacing-3, 12px) + var(--astryx-radius-chat, 28px));
1087
+ margin-block-end: calc(-1 * var(--astryx-radius-chat, 28px));
1088
+ background-color: var(--astryx-color-background-surface);
1089
+ background-image: linear-gradient(var(--astryx-color-background-muted), var(--astryx-color-background-muted));
1090
+ border-start-start-radius: var(--astryx-radius-chat, 28px);
1091
+ border-start-end-radius: var(--astryx-radius-chat, 28px);
1092
+ }
1093
+
1094
+ .astryx-chat-drawer__toggle {
1095
+ display: grid;
1096
+ grid-template-columns: 1fr;
1097
+ align-items: center;
1098
+ height: var(--astryx-spacing-5, 20px);
1099
+ padding-inline: var(--astryx-spacing-4, 16px);
1100
+ margin-inline: calc(-1 * var(--astryx-spacing-4, 16px));
1101
+ cursor: pointer;
1102
+ user-select: none;
1103
+ }
1104
+
1105
+ .astryx-chat-drawer__toggle:focus-visible {
1106
+ outline-width: var(--astryx-focus-outline-width, 2px);
1107
+ outline-style: var(--astryx-focus-outline-style, solid);
1108
+ outline-color: var(--astryx-focus-outline-color, var(--astryx-color-accent));
1109
+ outline-offset: var(--astryx-focus-outline-offset, 3px);
1110
+ }
1111
+
1112
+ .astryx-chat-drawer__summary,
1113
+ .astryx-chat-drawer__handle {
1114
+ grid-row: 1;
1115
+ grid-column: 1;
1116
+ opacity: 1;
1117
+ transition-property: opacity, background-color;
1118
+ transition-duration: var(--astryx-duration-fast, 125ms);
1119
+ transition-timing-function: var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
1120
+ }
1121
+
1122
+ .astryx-chat-drawer__summary {
1123
+ justify-self: start;
1124
+ display: inline-flex;
1125
+ align-items: center;
1126
+ height: var(--astryx-spacing-5, 20px);
1127
+ gap: var(--astryx-spacing-2, 8px);
1128
+ border-radius: var(--astryx-radius-full, 9999px);
1129
+ pointer-events: none;
1130
+ }
1131
+
1132
+ .astryx-chat-drawer__label {
1133
+ color: var(--astryx-color-text-secondary);
1134
+ font-size: var(--astryx-text-body-size);
1135
+ line-height: var(--astryx-spacing-5, 20px);
1136
+ transition: color var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
1137
+ }
1138
+
1139
+ .astryx-chat-drawer__handle {
1140
+ justify-self: center;
1141
+ align-self: start;
1142
+ width: var(--astryx-spacing-5, 20px);
1143
+ height: var(--astryx-spacing-0-5, 2px);
1144
+ border-radius: var(--astryx-radius-full, 9999px);
1145
+ background-color: var(--astryx-color-icon-secondary);
1146
+ }
1147
+
1148
+ .astryx-chat-drawer__summary[data-hidden],
1149
+ .astryx-chat-drawer__handle[data-hidden] {
1150
+ opacity: 0;
1151
+ pointer-events: none;
1152
+ }
1153
+
1154
+ .astryx-chat-drawer__grid {
1155
+ display: grid;
1156
+ grid-template-rows: 1fr;
1157
+ transition: grid-template-rows var(--astryx-duration-medium, 300ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
1158
+ }
1159
+
1160
+ .astryx-chat-drawer__grid[data-collapsed] {
1161
+ grid-template-rows: 0fr;
1162
+ }
1163
+
1164
+ .astryx-chat-drawer__content {
1165
+ display: flex;
1166
+ flex-wrap: wrap;
1167
+ align-items: flex-start;
1168
+ gap: var(--astryx-spacing-1, 4px);
1169
+ min-height: 0;
1170
+ opacity: 1;
1171
+ transition:
1172
+ opacity var(--astryx-duration-medium, 300ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1)) var(--astryx-duration-fast, 125ms);
1173
+ }
1174
+
1175
+ .astryx-chat-drawer__content[data-collapsed] {
1176
+ opacity: 0;
1177
+ transition-delay: 0ms;
1178
+ transition-duration: var(--astryx-duration-fast, 125ms);
1179
+ }
1180
+
1181
+ .astryx-chat-dictation {
1182
+ position: relative;
1183
+ display: inline-flex;
1184
+ align-items: center;
1185
+ justify-content: center;
1186
+ }
1187
+
1188
+ .astryx-chat-dictation__bars {
1189
+ position: absolute;
1190
+ display: flex;
1191
+ align-items: center;
1192
+ justify-content: center;
1193
+ pointer-events: none;
1194
+ z-index: 1;
1195
+ }
1196
+
1197
+ .astryx-chat-dictation__bar {
1198
+ height: 100%;
1199
+ border-radius: var(--astryx-radius-full, 9999px);
1200
+ transform-origin: center;
1201
+ transition: transform 0.06s ease-out, background-color 0.06s ease-out;
1202
+ }
1203
+
1204
+ .astryx-chat-paste {
1205
+ display: flex;
1206
+ flex-direction: column;
1207
+ gap: var(--astryx-spacing-2, 8px);
1208
+ max-width: 480px;
1209
+ }
1210
+
1211
+ .astryx-chat-paste__text {
1212
+ max-height: 240px;
1213
+ overflow-y: auto;
1214
+ font-family: var(--astryx-font-family-code);
1215
+ font-size: var(--astryx-text-supporting-size);
1216
+ line-height: var(--astryx-text-supporting-leading);
1217
+ color: var(--astryx-color-text-primary);
1218
+ white-space: pre-wrap;
1219
+ word-break: break-word;
1220
+ }
1221
+
1222
+ .astryx-chat-paste__footer {
1223
+ display: flex;
1224
+ align-items: center;
1225
+ justify-content: space-between;
1226
+ gap: var(--astryx-spacing-2, 8px);
1227
+ }
1228
+
1229
+ .astryx-chat-paste__meta {
1230
+ font-size: var(--astryx-text-supporting-size);
1231
+ color: var(--astryx-color-text-secondary);
1232
+ }
1233
+
1234
+ .astryx-chat-trigger {
1235
+ min-width: 180px;
1236
+ }
1237
+
1238
+ .astryx-chat-trigger__list {
1239
+ box-sizing: border-box;
1240
+ max-height: 240px;
1241
+ min-width: 180px;
1242
+ overflow-y: auto;
1243
+ padding: var(--astryx-spacing-1, 4px);
1244
+ }
1245
+
1246
+ .astryx-chat-trigger__item {
1247
+ box-sizing: border-box;
1248
+ display: flex;
1249
+ align-items: center;
1250
+ width: 100%;
1251
+ padding: var(--astryx-spacing-2, 8px);
1252
+ border: 0;
1253
+ border-radius: var(--astryx-radius-element, 0.625rem);
1254
+ outline: none;
1255
+ background-color: transparent;
1256
+ color: var(--astryx-color-text-primary);
1257
+ font-family: var(--astryx-font-family-body);
1258
+ font-size: var(--astryx-text-body-size);
1259
+ line-height: var(--astryx-text-body-leading);
1260
+ text-align: start;
1261
+ cursor: pointer;
1262
+ }
1263
+
1264
+ .astryx-chat-trigger__item[data-highlighted] {
1265
+ background-color: var(--astryx-color-overlay-hover);
1266
+ }
1267
+
1268
+ .astryx-chat-trigger__label {
1269
+ flex: 1;
1270
+ min-width: 0;
1271
+ overflow: hidden;
1272
+ text-overflow: ellipsis;
1273
+ white-space: nowrap;
1274
+ }
1275
+
1276
+ .astryx-chat-trigger__status {
1277
+ padding: var(--astryx-spacing-3, 12px);
1278
+ color: var(--astryx-color-text-secondary);
1279
+ font-size: var(--astryx-text-supporting-size);
1280
+ text-align: center;
1281
+ }
1282
+
1283
+ .astryx-chat-trigger__heading {
1284
+ padding-inline: var(--astryx-spacing-2, 8px);
1285
+ padding-block: var(--astryx-spacing-2, 8px) var(--astryx-spacing-1, 4px);
1286
+ color: var(--astryx-color-text-secondary);
1287
+ font-size: var(--astryx-text-supporting-size);
1288
+ line-height: var(--astryx-text-supporting-leading);
1289
+ user-select: none;
1290
+ }
1291
+
828
1292
  @media (prefers-reduced-motion: reduce) {
829
1293
  .astryx-chat-scroll-button__pill,
830
1294
  .astryx-chat-tool-calls__chevron,
831
1295
  .astryx-chat-tool-calls__panel,
832
- .astryx-chat-reasoning__panel {
1296
+ .astryx-chat-reasoning__panel,
1297
+ .astryx-chat-composer__body,
1298
+ .astryx-chat-drawer__summary,
1299
+ .astryx-chat-drawer__handle,
1300
+ .astryx-chat-drawer__label,
1301
+ .astryx-chat-drawer__grid,
1302
+ .astryx-chat-drawer__content,
1303
+ .astryx-chat-dictation__bar {
833
1304
  transition: none;
834
1305
  }
835
1306
 
@@ -20,6 +20,17 @@
20
20
  );
21
21
  }
22
22
 
23
+ .astryx-dropdown-menu.is-sheet {
24
+ position: static;
25
+ top: auto;
26
+ left: auto;
27
+ width: 100%;
28
+ max-width: none;
29
+ background: transparent;
30
+ box-shadow: none;
31
+ animation: none;
32
+ }
33
+
23
34
  .astryx-dropdown-menu {
24
35
  box-sizing: border-box;
25
36
  position: fixed;
package/styles/icon.css CHANGED
@@ -7,8 +7,16 @@
7
7
  justify-content: center;
8
8
  flex-shrink: 0;
9
9
  box-sizing: border-box;
10
- vertical-align: middle;
11
- color: inherit;
10
+ width: 1em;
11
+ height: 1em;
12
+ line-height: 1;
13
+ color: currentcolor;
14
+ /*
15
+ * A 1em box with vertical-align: middle sits on the descender, so the
16
+ * drawing looks low next to the letters. -0.125em is the Iconify offset
17
+ * that puts the box on the text baseline.
18
+ */
19
+ vertical-align: -0.125em;
12
20
  }
13
21
 
14
22
  /*
@@ -32,13 +40,35 @@
32
40
  }
33
41
 
34
42
  /*
35
- * An icon passed as a component or written into the slot keeps the size its
36
- * owner gives it; the box owns that size through width, height, and
37
- * font-size.
43
+ * The wrapper keeps a box. display:contents would make the SVG's 100%
44
+ * resolve against the icon's parent, so a 1em icon would grow to the line.
38
45
  */
39
- .astryx-icon > svg {
40
- width: 1em;
41
- height: 1em;
46
+ .astryx-icon__svg {
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ width: 100%;
51
+ height: 100%;
52
+ }
53
+
54
+ .astryx-icon > svg,
55
+ .astryx-icon__svg > svg {
56
+ display: block;
57
+ width: 100%;
58
+ height: 100%;
59
+ fill: currentcolor;
60
+ }
61
+
62
+ /*
63
+ * A class the caller supplies, such as an UnoCSS icon, paints this box.
64
+ * Those utilities are unlayered and set width/height to 100%, so they have
65
+ * to live on the inner element. On the box itself they would replace the
66
+ * size below and stretch the icon to its flex parent.
67
+ */
68
+ .astryx-icon__external {
69
+ display: block;
70
+ width: 100%;
71
+ height: 100%;
42
72
  }
43
73
 
44
74
  .astryx-icon[data-size='xsm'] {
@@ -191,5 +221,25 @@
191
221
  .astryx-icon--image {
192
222
  --astryx-icon-artwork: var(--astryx-icon-image, url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2M8.5 13.5l2.5 3 3.5-4.5 4.5 6H5l3.5-5.5z' /%3E%3C/svg%3E"));
193
223
  }
224
+ /* search */
225
+ .astryx-icon--search {
226
+ --astryx-icon-artwork: var(--astryx-icon-search, url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E"));
227
+ }
228
+ /* stop */
229
+ .astryx-icon--stop {
230
+ --astryx-icon-artwork: var(--astryx-icon-stop, url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='5' width='14' height='14' rx='2'/%3E%3C/svg%3E"));
231
+ }
232
+ /* microphone */
233
+ .astryx-icon--microphone {
234
+ --astryx-icon-artwork: var(--astryx-icon-microphone, url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V6a3 3 0 0 0-3-3z'/%3E%3Cpath d='M19 10v1a7 7 0 0 1-14 0v-1'/%3E%3Cpath d='M12 18v3'/%3E%3Cpath d='M8 21h8'/%3E%3C/svg%3E"));
235
+ }
236
+ /* warning */
237
+ .astryx-icon--warning {
238
+ --astryx-icon-artwork: var(--astryx-icon-warning, url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E"));
239
+ }
240
+ /* error */
241
+ .astryx-icon--error {
242
+ --astryx-icon-artwork: var(--astryx-icon-error, url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='m9 9 6 6'/%3E%3C/svg%3E"));
243
+ }
194
244
  /* ARTWORK: generated end */
195
245
  }
package/styles/link.css CHANGED
@@ -44,6 +44,11 @@
44
44
  color: inherit;
45
45
  }
46
46
 
47
+ .astryx-link.astryx-link--standalone {
48
+ font-size: var(--astryx-font-size-body, var(--text-body-size, 1rem));
49
+ line-height: var(--astryx-line-height-body, var(--text-body-leading, 1.5));
50
+ }
51
+
47
52
  .astryx-link__external {
48
53
  display: inline-block;
49
54
  font-size: 0.75em;
@@ -26,6 +26,28 @@
26
26
  height: var(--astryx-input-height-lg, 36px);
27
27
  }
28
28
 
29
+ .astryx-number-input[data-status='error'] {
30
+ border-color: var(--astryx-input-error, #e33f4a);
31
+ }
32
+
33
+ .astryx-number-input[data-status='warning'] {
34
+ border-color: var(--astryx-input-warning, #a67a00);
35
+ }
36
+
37
+ .astryx-number-input[data-status='success'] {
38
+ border-color: var(--astryx-input-success, #198100);
39
+ }
40
+
41
+ .astryx-number-input-units,
42
+ .astryx-number-input-clear {
43
+ display: inline-flex;
44
+ align-items: center;
45
+ padding-inline: var(--astryx-spacing-2, 8px);
46
+ color: var(--astryx-color-text-secondary, #525252);
47
+ background: transparent;
48
+ border: 0;
49
+ }
50
+
29
51
  .astryx-number-input:focus-within {
30
52
  border-color: var(--astryx-input-focus, #262626);
31
53
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--astryx-input-focus, #262626) 15%, transparent);
@@ -48,7 +48,8 @@
48
48
  flex-wrap: nowrap;
49
49
  }
50
50
 
51
- .astryx-pagination-compact {
51
+ .astryx-pagination-compact,
52
+ .astryx-pagination-count {
52
53
  display: none;
53
54
  flex-shrink: 0;
54
55
  align-items: center;
@@ -56,6 +57,49 @@
56
57
  white-space: nowrap;
57
58
  }
58
59
 
60
+ .astryx-pagination-count {
61
+ display: inline-flex;
62
+ font-size: var(--astryx-text-supporting-size, 0.75rem);
63
+ line-height: var(--astryx-text-supporting-leading, 1.6667);
64
+ }
65
+
66
+ .astryx-pagination-dots {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: var(--astryx-spacing-2, 8px);
70
+ }
71
+
72
+ .astryx-pagination-dot {
73
+ width: 8px;
74
+ height: 8px;
75
+ padding: 0;
76
+ border: 0;
77
+ border-radius: var(--astryx-radius-full, 999px);
78
+ background: var(--astryx-color-border, #d4d4d4);
79
+ cursor: pointer;
80
+ }
81
+
82
+ .astryx-pagination-dot.is-active {
83
+ background: var(--astryx-color-text-primary, #171717);
84
+ }
85
+
86
+ .astryx-pagination-dot:disabled {
87
+ cursor: default;
88
+ opacity: 0.4;
89
+ }
90
+
91
+ .astryx-pagination--sm .astryx-pagination-button,
92
+ .astryx-pagination--sm .astryx-pagination-page {
93
+ min-width: var(--astryx-size-element-sm, 28px);
94
+ height: var(--astryx-size-element-sm, 28px);
95
+ font-size: var(--astryx-text-supporting-size, 0.75rem);
96
+ }
97
+
98
+ .astryx-pagination--sm .astryx-pagination-dot {
99
+ width: 6px;
100
+ height: 6px;
101
+ }
102
+
59
103
  .astryx-pagination-button,
60
104
  .astryx-pagination-page {
61
105
  position: relative;