@astryx-vue/core 0.2.2 → 0.2.3

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 (253) hide show
  1. package/THIRD_PARTY_NOTICES.md +2 -0
  2. package/dist/AppShell/index.d.ts +1 -1
  3. package/dist/AppShell/index.js +1 -1
  4. package/dist/{AppShell-Cb41gIAj.js → AppShell-Dd-D4bA2.js} +2 -2
  5. package/dist/AvatarGroup/index.d.ts +1 -1
  6. package/dist/Banner/index.d.ts +1 -1
  7. package/dist/Breadcrumbs/index.d.ts +3 -2
  8. package/dist/Breadcrumbs/index.js +3 -2
  9. package/dist/{Breadcrumbs-CTQ7fjDn.js → Breadcrumbs-CWGfgLNK.js} +13 -8
  10. package/dist/Button/index.d.ts +1 -1
  11. package/dist/ButtonGroup/index.d.ts +1 -1
  12. package/dist/Calendar/index.d.ts +2 -2
  13. package/dist/Calendar/index.js +1 -1
  14. package/dist/Calendar-CnOsSjMY.js +656 -0
  15. package/dist/Card/index.d.ts +1 -1
  16. package/dist/Carousel/index.js +1 -1
  17. package/dist/{Carousel-X0cuQkvg.js → Carousel-JA7ilqI_.js} +2 -2
  18. package/dist/Chat/index.d.ts +1 -1
  19. package/dist/Chat/index.js +1 -1
  20. package/dist/{Chat-M0tiGrNT.js → Chat-C7WrCOE4.js} +3 -3
  21. package/dist/CheckboxIndicator/index.js +1 -1
  22. package/dist/CheckboxIndicator-D37cm2Rh.js +68 -0
  23. package/dist/CheckboxInput/index.d.ts +1 -1
  24. package/dist/CheckboxInput/index.js +1 -1
  25. package/dist/{CheckboxInput-CMsEE1_4.js → CheckboxInput-25Q8ItH-.js} +10 -9
  26. package/dist/CheckboxList/index.d.ts +1 -1
  27. package/dist/CheckboxList/index.js +1 -1
  28. package/dist/{CheckboxList-BbCPiend.js → CheckboxList-CnCGnkZk.js} +77 -24
  29. package/dist/Citation/index.js +1 -1
  30. package/dist/{Citation-C1veUk5p.js → Citation-CtwrU33I.js} +2 -2
  31. package/dist/ClickableCard/index.d.ts +1 -1
  32. package/dist/Code/index.d.ts +1 -1
  33. package/dist/Code/index.js +2 -2
  34. package/dist/{Code-yb_KOFtJ.js → Code-BvefYRpx.js} +2 -1
  35. package/dist/{CodeBlock-DesTJAkm.js → CodeBlock-BZGzYeoL.js} +1 -1
  36. package/dist/Collapsible/index.d.ts +1 -1
  37. package/dist/Collapsible/index.js +1 -1
  38. package/dist/{Collapsible-BestK35V.js → Collapsible-3YerR-FO.js} +1 -1
  39. package/dist/CommandPalette/index.js +1 -1
  40. package/dist/{CommandPalette-BArt97V8.js → CommandPalette-BNbM9T9y.js} +1 -1
  41. package/dist/ComplexSelector/index.d.ts +1 -1
  42. package/dist/ComplexSelector/index.js +1 -1
  43. package/dist/{ComplexSelector-CAoig1RK.js → ComplexSelector-LtbLlrcj.js} +3 -3
  44. package/dist/ContextMenu/index.d.ts +3 -2
  45. package/dist/ContextMenu/index.js +3 -2
  46. package/dist/{ContextMenu-9Im6i43E.js → ContextMenu-DVQl0xL5.js} +204 -56
  47. package/dist/DateInput/index.d.ts +2 -2
  48. package/dist/DateInput/index.js +1 -1
  49. package/dist/DateInput-zm8sNc0t.js +743 -0
  50. package/dist/DateRangeInput/index.d.ts +1 -1
  51. package/dist/DateRangeInput/index.js +1 -1
  52. package/dist/{DateRangeInput-DwDy3eRo.js → DateRangeInput-DlVFzrf7.js} +54 -19
  53. package/dist/DateTimeInput/index.d.ts +1 -1
  54. package/dist/DateTimeInput/index.js +1 -1
  55. package/dist/{DateTimeInput-BYiaC9bn.js → DateTimeInput-C7Z-p6Yd.js} +54 -15
  56. package/dist/Dialog/index.d.ts +1 -1
  57. package/dist/DropdownMenu/index.d.ts +3 -3
  58. package/dist/DropdownMenu/index.js +4 -3
  59. package/dist/{DropdownMenu-Dh-WAHKb.js → DropdownMenu-BoZChdev.js} +308 -63
  60. package/dist/DropdownMenu-u1psFjis.js +325 -0
  61. package/dist/DropdownMenuRadioItem.vue-uVM0FD2f.d.ts +564 -0
  62. package/dist/FileInput/index.d.ts +1 -1
  63. package/dist/FileInput/index.js +1 -1
  64. package/dist/{FileInput-DLO6V12n.js → FileInput-QdlZn7qK.js} +2 -2
  65. package/dist/Icon/index.d.ts +4 -3
  66. package/dist/Icon/index.js +2 -2
  67. package/dist/{Icon-CJKjdJy-.js → Icon-bteSId7T.js} +113 -18
  68. package/dist/Indicator/index.d.ts +3 -0
  69. package/dist/Indicator/index.js +2 -0
  70. package/dist/InputGroup/index.d.ts +2 -2
  71. package/dist/InputGroup/index.js +3 -2
  72. package/dist/InputGroup-BzR6JRZb.js +129 -0
  73. package/dist/Lightbox/index.js +1 -1
  74. package/dist/{Lightbox-CdFCS_EA.js → Lightbox-BSzfqZ-u.js} +2 -2
  75. package/dist/List/index.d.ts +1 -1
  76. package/dist/Markdown/index.js +1 -1
  77. package/dist/{Markdown-BqKloI3w.js → Markdown-B6tSqenv.js} +8 -5
  78. package/dist/MetadataList/index.js +1 -1
  79. package/dist/{MetadataList-CvZkmisf.js → MetadataList-aN1tRn6W.js} +1 -1
  80. package/dist/MobileNav/index.js +1 -1
  81. package/dist/{MobileNavToggle-Bwi0qXXM.js → MobileNavToggle-fqcSafkc.js} +1 -1
  82. package/dist/MoreMenu/index.d.ts +1 -1
  83. package/dist/MoreMenu/index.js +1 -1
  84. package/dist/{MoreMenu-BwJaJrkB.js → MoreMenu-B3brqdK_.js} +1 -1
  85. package/dist/MultiSelector/index.d.ts +2 -2
  86. package/dist/MultiSelector/index.js +1 -1
  87. package/dist/{MultiSelector-C-ETfFy_.js → MultiSelector-BD5PMgez.js} +303 -121
  88. package/dist/{NavDisclosure-DHrSNRDR.js → NavDisclosure-DbYLDXK0.js} +1 -1
  89. package/dist/NavItem/index.d.ts +1 -1
  90. package/dist/NavMenu/index.js +2 -2
  91. package/dist/{NavMenuItem-B-k7olt5.js → NavMenuItem-DrwIMHKO.js} +1 -1
  92. package/dist/NumberInput/index.d.ts +1 -1
  93. package/dist/NumberInput/index.js +1 -1
  94. package/dist/{NumberInput-DjetVB8O.js → NumberInput-CBeU4lEl.js} +1 -1
  95. package/dist/Outline/index.js +1 -1
  96. package/dist/{Outline-Bz9c-u5y.js → Outline--HVMSB6i.js} +1 -1
  97. package/dist/OverflowList/index.d.ts +1 -1
  98. package/dist/OverflowList/index.js +1 -1
  99. package/dist/{OverflowList-ED-KN9Y5.js → OverflowList-FMh7r-r_.js} +3 -3
  100. package/dist/Pagination/index.d.ts +1 -1
  101. package/dist/Pagination/index.js +1 -1
  102. package/dist/{Pagination-Cb66HMEf.js → Pagination-DlIvESjx.js} +2 -2
  103. package/dist/Popover/index.d.ts +1 -1
  104. package/dist/Popover/index.js +1 -1
  105. package/dist/{Popover-Crhk9PNP.js → Popover-D7zqpFwU.js} +1 -1
  106. package/dist/PowerSearch/index.d.ts +1 -1
  107. package/dist/PowerSearch/index.js +1 -1
  108. package/dist/{PowerSearch-CjU8y4mi.js → PowerSearch-CMG7Rb69.js} +14 -14
  109. package/dist/ProgressBar/index.d.ts +1 -1
  110. package/dist/Radio/index.d.ts +1 -1
  111. package/dist/Radio/index.js +1 -1
  112. package/dist/{RadioGroup-BqjdSCfJ.js → RadioGroup-CBqUPq_L.js} +16 -8
  113. package/dist/RadioList/index.d.ts +1 -1
  114. package/dist/RadioList/index.js +1 -1
  115. package/dist/{RadioList-DI8ujXcT.js → RadioList-CPOJn9Th.js} +1 -1
  116. package/dist/Resizable/index.js +1 -1
  117. package/dist/{Resizable-D-TBCg0Y.js → Resizable-CXpvj1TZ.js} +1 -1
  118. package/dist/ScrollableArea/index.d.ts +1 -1
  119. package/dist/SegmentedControl/index.d.ts +1 -1
  120. package/dist/SelectableCard/index.d.ts +1 -1
  121. package/dist/Selector/index.d.ts +2 -2
  122. package/dist/Selector/index.js +1 -1
  123. package/dist/Selector-BpPnuWH3.js +618 -0
  124. package/dist/SideNav/index.d.ts +1 -1
  125. package/dist/SideNav/index.js +1 -1
  126. package/dist/{SideNav-DonEfiAx.js → SideNav-D4TupqgE.js} +3 -3
  127. package/dist/Stack/index.d.ts +1 -1
  128. package/dist/Stepper/index.d.ts +1 -1
  129. package/dist/Stepper/index.js +1 -1
  130. package/dist/{Stepper-D2ZIcUNx.js → Stepper-H-6-T5Ps.js} +1 -1
  131. package/dist/Switch/index.d.ts +1 -1
  132. package/dist/TabList/index.d.ts +1 -1
  133. package/dist/TabList/index.js +1 -1
  134. package/dist/{TabList-D3F-stq-.js → TabList-BlzkrObv.js} +2 -2
  135. package/dist/Table/index.js +1 -1
  136. package/dist/{Table-CrP2Uffq.js → Table-nqA_njNz.js} +6 -6
  137. package/dist/TextArea/index.d.ts +1 -1
  138. package/dist/TextInput/index.d.ts +1 -1
  139. package/dist/Theme/index.d.ts +2 -1
  140. package/dist/Theme/index.js +1 -1
  141. package/dist/{Theme-BuUiiJNr.js → Theme-CejS9MHm.js} +21 -3
  142. package/dist/Thumbnail/index.js +1 -1
  143. package/dist/{Thumbnail-BC5JGPGZ.js → Thumbnail-CXb3m_Hv.js} +2 -2
  144. package/dist/{TimeField-DpHFrNv0.js → TimeField-B3cndWb0.js} +2 -2
  145. package/dist/TimeInput/index.d.ts +1 -1
  146. package/dist/TimeInput/index.js +1 -1
  147. package/dist/{TimeInput-DJLV0_4z.js → TimeInput-BHQ_LKGm.js} +1 -1
  148. package/dist/Timestamp/index.d.ts +1 -1
  149. package/dist/Timestamp/index.js +1 -1
  150. package/dist/{Timestamp-GKNjjt5g.js → Timestamp-Cfuxbb3i.js} +2 -2
  151. package/dist/ToggleButton/index.d.ts +1 -1
  152. package/dist/Token/index.d.ts +1 -1
  153. package/dist/Token/index.js +1 -1
  154. package/dist/{Token-Chu_eCVs.js → Token-CdVLH0_H.js} +2 -2
  155. package/dist/Tokenizer/index.d.ts +1 -1
  156. package/dist/Tokenizer/index.js +1 -1
  157. package/dist/{Tokenizer-DRDpvQ_l.js → Tokenizer-DlD-S_8-.js} +3 -3
  158. package/dist/Toolbar/index.d.ts +1 -1
  159. package/dist/TopNav/index.d.ts +1 -1
  160. package/dist/TopNav/index.js +1 -1
  161. package/dist/{TopNav-CEyWddtA.js → TopNav-DzV874G7.js} +5 -5
  162. package/dist/TreeList/index.js +1 -1
  163. package/dist/{TreeList-COS8US8e.js → TreeList-DEwvlZRV.js} +2 -2
  164. package/dist/Typeahead/index.d.ts +1 -1
  165. package/dist/Typeahead/index.js +1 -1
  166. package/dist/{Typeahead-P7cCqtaQ.js → Typeahead-DQ3tmqYe.js} +3 -3
  167. package/dist/{context-O2Vb8cJl.js → colorMode-CBgdgDSn.js} +1 -7
  168. package/dist/composables/index.d.ts +2 -2
  169. package/dist/composables/index.js +10 -5
  170. package/dist/{composables-CVfjp9h4.js → composables-DDI08XFF.js} +98 -1
  171. package/dist/context-Cws_tXTr.js +7 -0
  172. package/dist/context-D5-MwxnN.js +4 -0
  173. package/dist/{context-CiKncNSH.js → context-DmOLCubj.js} +82 -8
  174. package/dist/{index-DimuSES0.d.ts → index-B1x05arQ.d.ts} +3 -1
  175. package/dist/index-B9f1rUEv.d.ts +77 -0
  176. package/dist/{index-D-ZuubCK.d.ts → index-BB5yVIN-.d.ts} +2 -2
  177. package/dist/{index-Bu0Zd1uw.d.ts → index-BMn9ghAX.d.ts} +3 -3
  178. package/dist/{index-CJlBAXwj.d.ts → index-BRfR0lhb.d.ts} +41 -4
  179. package/dist/{index-DNRBbwp_.d.ts → index-BTAgQRP0.d.ts} +758 -111
  180. package/dist/{index-DA52oIdw.d.ts → index-BcJBLWJ0.d.ts} +2 -2
  181. package/dist/{index-jdjcb3Js.d.ts → index-Bqb_Fyju.d.ts} +2 -2
  182. package/dist/{index-CNjbOgty.d.ts → index-C-QpeUlQ.d.ts} +2 -2
  183. package/dist/{index-DGXviOlp.d.ts → index-C2sfHfBw.d.ts} +31 -5
  184. package/dist/{index-By2mSzUA.d.ts → index-CA6RbRWx.d.ts} +1 -1
  185. package/dist/{index-gW0HW02U.d.ts → index-COxy6LEW.d.ts} +1 -1
  186. package/dist/{index-CVn0GBdB.d.ts → index-Ca8VIE4l.d.ts} +1 -1
  187. package/dist/{index-CRizexSC.d.ts → index-Ch6BbxCP.d.ts} +2 -67
  188. package/dist/{index-DWH_HzXi.d.ts → index-ChWlKHjc.d.ts} +1 -1
  189. package/dist/{index-kVhSuA9t.d.ts → index-Ctu32CLv.d.ts} +4 -4
  190. package/dist/{index-DOUEn7V0.d.ts → index-D1Twv_fL.d.ts} +65 -6
  191. package/dist/{index-D_nYxnNv.d.ts → index-D7-WTV6I.d.ts} +1 -1
  192. package/dist/{index-c_TaW8mM.d.ts → index-D8o50qOE.d.ts} +1 -1
  193. package/dist/{index-D4I_obqR.d.ts → index-DAiGhkNZ.d.ts} +1 -1
  194. package/dist/{index-Cs5pcwY3.d.ts → index-DMQG6kdM.d.ts} +3 -3
  195. package/dist/index-D_UEJIU5.d.ts +83 -0
  196. package/dist/{index-fa72tWIU.d.ts → index-DkVEBdWa.d.ts} +2 -2
  197. package/dist/{index-B1TG2GPS.d.ts → index-DxsKyAxq.d.ts} +116 -44
  198. package/dist/{index-BHqRH7QW.d.ts → index-FEy8qFSD.d.ts} +2 -2
  199. package/dist/{index-qiZtHnGK.d.ts → index-LIyvJTW3.d.ts} +39 -0
  200. package/dist/{index-BKr7yvVv.d.ts → index-MPcg1Pm4.d.ts} +1 -1
  201. package/dist/{index-cGagYM1g.d.ts → index-ViSV0RBx.d.ts} +1 -1
  202. package/dist/{index-C7mxUcDR.d.ts → index-f4NGT-e2.d.ts} +4 -4
  203. package/dist/{index-DsyKhauk.d.ts → index-foQMNKZO.d.ts} +1 -1
  204. package/dist/{index-u5ozu0G7.d.ts → index-vP0EtrJJ.d.ts} +13 -3
  205. package/dist/{index-CZeoAr0a.d.ts → index-xfkEuGLY.d.ts} +2 -2
  206. package/dist/index.d.ts +76 -75
  207. package/dist/index.js +115 -107
  208. package/dist/locale/index.d.ts +1 -1
  209. package/dist/locale/index.js +2 -2
  210. package/dist/{locale-Cpk_nrLA.js → locale-CCwVnyMZ.js} +25 -1
  211. package/dist/searchResultMessage-DN0HeRRB.js +94 -0
  212. package/dist/semantic-CKH9XVqa.d.ts +54 -0
  213. package/dist/{types-pnljWjEE.d.ts → types-CwyibrRB.d.ts} +12 -11
  214. package/dist/types-jmqqnkKA.d.ts +163 -0
  215. package/dist/{useAnchoredListbox-7W90Ny-9.js → useAnchoredListbox-BN9LQnon.js} +1 -1
  216. package/dist/useDatePresentation-C07PnOCw.js +21 -0
  217. package/dist/{useMonthGrid-CmJsZTcB.js → useDateRange-CIXoE_8k.js} +1 -42
  218. package/dist/useDisclosureHandle-Df3HhAfC.js +24 -0
  219. package/dist/{useDismiss-CAiHU6QD.js → useDismiss-Cj8x_51F.js} +8 -4
  220. package/dist/useFieldControlState-voICDrys.js +18 -0
  221. package/dist/useHandleRef-6cdKugm8.js +17 -0
  222. package/dist/useIndicator-i1NORM7W.js +147 -0
  223. package/dist/useMenuDrillIn-OaEwjK44.js +520 -0
  224. package/dist/useMonthGrid-fGHSSrFc.js +43 -0
  225. package/dist/usePendingChange-ib-h8FZK.js +25 -0
  226. package/dist/useSubmenuMode-CZN9qrUo.js +37 -0
  227. package/package.json +5 -1
  228. package/styles/calendar.css +38 -3
  229. package/styles/check-indicator.css +17 -0
  230. package/styles/checkbox-indicator.css +29 -10
  231. package/styles/checkbox-input.css +0 -11
  232. package/styles/date-input.css +48 -0
  233. package/styles/dropdown-menu.css +163 -0
  234. package/styles/field.css +48 -0
  235. package/styles/icon.css +51 -3
  236. package/styles/input-group.css +32 -3
  237. package/styles/multi-selector.css +26 -0
  238. package/styles/radio-indicator.css +90 -0
  239. package/styles/radio.css +9 -42
  240. package/styles/selector.css +112 -14
  241. package/styles.css +2 -0
  242. package/dist/Calendar-BFaI5AMv.js +0 -352
  243. package/dist/CheckboxIndicator-DdJmksHt.js +0 -52
  244. package/dist/DateInput-BLocxqC3.js +0 -376
  245. package/dist/DropdownMenu-Ddfr-aEC.js +0 -164
  246. package/dist/InputGroup-ChrFVxzV.js +0 -42
  247. package/dist/Selector-DE2IEFML.js +0 -468
  248. package/dist/index-Bgv4ZmBl.d.ts +0 -72
  249. package/dist/index-DN7MXPHM.d.ts +0 -398
  250. package/dist/index-IbUN4M8V.d.ts +0 -40
  251. package/dist/types-DDAAT1Xd.d.ts +0 -285
  252. package/dist/useGridRovingFocus-DQQAOYH5.js +0 -99
  253. /package/dist/{index-BUXNRekN.d.ts → index-BXkNZF3q.d.ts} +0 -0
@@ -79,6 +79,7 @@
79
79
  color: var(--astryx-color-text-secondary, #525252);
80
80
  font-size: var(--astryx-text-supporting-size, 0.75rem);
81
81
  font-weight: 400;
82
+ text-align: center;
82
83
  }
83
84
 
84
85
  .astryx-calendar-grid {
@@ -114,15 +115,49 @@
114
115
  box-shadow: inset 0 0 0 1px var(--astryx-color-border-emphasized, #d4d4d4);
115
116
  }
116
117
 
117
- .astryx-calendar[data-months='2'] {
118
+ .astryx-calendar-months {
118
119
  display: flex;
120
+ flex-wrap: wrap;
119
121
  gap: var(--astryx-spacing-4, 16px);
120
122
  }
121
123
 
122
- .astryx-calendar[data-months='2'] .astryx-calendar-header {
124
+ .astryx-calendar-grid[data-week-numbers] .astryx-calendar-weekdays,
125
+ .astryx-calendar-grid[data-week-numbers] .astryx-calendar-row {
126
+ grid-template-columns: var(--astryx-spacing-6, 24px) repeat(7, var(--astryx-input-height-md, 32px));
127
+ }
128
+
129
+ .astryx-calendar-week-number {
123
130
  display: flex;
124
131
  align-items: center;
125
- justify-content: space-between;
132
+ justify-content: center;
133
+ color: var(--astryx-color-text-secondary, #525252);
134
+ font-size: var(--astryx-text-supporting-size, 0.75rem);
135
+ }
136
+
137
+ .astryx-calendar-gridcell {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: center;
141
+ }
142
+
143
+ .astryx-calendar-cell.is-in-range.is-round-start {
144
+ border-start-start-radius: var(--astryx-radius-full, 9999px);
145
+ border-end-start-radius: var(--astryx-radius-full, 9999px);
146
+ }
147
+
148
+ .astryx-calendar-cell.is-in-range.is-round-end {
149
+ border-start-end-radius: var(--astryx-radius-full, 9999px);
150
+ border-end-end-radius: var(--astryx-radius-full, 9999px);
151
+ }
152
+
153
+ .astryx-calendar-cell:focus-visible {
154
+ outline: var(--astryx-focus-outline-width, 2px) var(--astryx-focus-outline-style, solid) var(--astryx-focus-outline-color, currentColor);
155
+ outline-offset: 1px;
156
+ }
157
+
158
+ .astryx-calendar-nav-button:focus-visible {
159
+ outline: var(--astryx-focus-outline-width, 2px) var(--astryx-focus-outline-style, solid) var(--astryx-focus-outline-color, currentColor);
160
+ outline-offset: 1px;
126
161
  }
127
162
 
128
163
  .astryx-calendar-cell.is-in-range {
@@ -0,0 +1,17 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.components {
4
+ .astryx-check-indicator {
5
+ display: inline-flex;
6
+ flex: none;
7
+ align-items: center;
8
+ justify-content: center;
9
+ width: 1rem;
10
+ height: 1rem;
11
+ color: var(--astryx-icon-accent-foreground, var(--astryx-color-accent, #262626));
12
+ }
13
+
14
+ .astryx-check-indicator[data-disabled='true'] {
15
+ color: var(--astryx-icon-disabled-foreground, var(--astryx-color-icon-disabled, #a3a3a3));
16
+ }
17
+ }
@@ -9,11 +9,15 @@
9
9
  justify-content: center;
10
10
  width: 24px;
11
11
  height: 24px;
12
- border: 1px solid var(--astryx-checkbox-border, #d4d4d4);
13
- border-radius: var(--astryx-radius-inner, 6px);
14
- color: var(--astryx-checkbox-accent, #262626);
15
- background: var(--astryx-checkbox-background, #fff);
16
- transition: background-color 130ms ease-out, border-color 130ms ease-out;
12
+ border-style: solid;
13
+ border-width: var(--astryx-border-width, 1px);
14
+ border-color: var(--astryx-checkbox-border, var(--astryx-color-border-emphasized, #d4d4d4));
15
+ border-radius: var(--astryx-radius-inner, 0.375rem);
16
+ color: var(--astryx-checkbox-accent, var(--astryx-color-accent, #262626));
17
+ background: var(--astryx-checkbox-background, var(--astryx-color-background-surface, #fff));
18
+ transition-property: background-color, border-color;
19
+ transition-duration: var(--astryx-duration-fast, 125ms);
20
+ transition-timing-function: var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
17
21
  }
18
22
 
19
23
  .astryx-checkbox-indicator[data-size='sm'] {
@@ -22,17 +26,18 @@
22
26
  }
23
27
 
24
28
  .astryx-checkbox-indicator:not([data-state='unchecked']) {
25
- color: var(--astryx-checkbox-on-accent, #fff);
26
- background: var(--astryx-checkbox-accent, #262626);
27
- border-color: var(--astryx-checkbox-accent, #262626);
29
+ color: var(--astryx-checkbox-on-accent, var(--astryx-color-on-accent, #fff));
30
+ background: var(--astryx-checkbox-accent, var(--astryx-color-accent, #262626));
31
+ border-color: var(--astryx-checkbox-accent, var(--astryx-color-accent, #262626));
28
32
  }
29
33
 
30
34
  .astryx-checkbox-indicator[data-disabled='true'] {
31
35
  opacity: 0.5;
36
+ border-color: var(--astryx-color-border, var(--astryx-checkbox-border, #d4d4d4));
32
37
  }
33
38
 
34
39
  .astryx-checkbox-indicator[data-disabled='true'][data-state='unchecked'] {
35
- background: var(--astryx-checkbox-disabled-background, #f5f5f5);
40
+ background: var(--astryx-checkbox-disabled-background, var(--astryx-color-background-muted, #f5f5f5));
36
41
  }
37
42
 
38
43
  .astryx-checkbox-indicator-check {
@@ -45,7 +50,7 @@
45
50
  display: none;
46
51
  width: 12px;
47
52
  height: 2px;
48
- border-radius: 9999px;
53
+ border-radius: var(--astryx-radius-full, 9999px);
49
54
  background: currentcolor;
50
55
  }
51
56
 
@@ -63,6 +68,18 @@
63
68
  display: block;
64
69
  }
65
70
 
71
+ @media (hover: hover) {
72
+ .astryx-indicator-scope:hover .astryx-checkbox-indicator[data-state='unchecked']:not([data-disabled='true']) {
73
+ border-color: color-mix(in srgb, var(--astryx-checkbox-border, var(--astryx-color-border-emphasized, #d4d4d4)), var(--astryx-color-tint-hover, black) 20%);
74
+ background-color: color-mix(in srgb, var(--astryx-checkbox-background, var(--astryx-color-background-surface, #fff)), var(--astryx-color-tint-hover, black) 5%);
75
+ }
76
+
77
+ .astryx-indicator-scope:hover .astryx-checkbox-indicator:not([data-state='unchecked']):not([data-disabled='true']) {
78
+ border-color: color-mix(in srgb, var(--astryx-checkbox-accent, var(--astryx-color-accent, #262626)), var(--astryx-color-tint-hover, black) 15%);
79
+ background-color: color-mix(in srgb, var(--astryx-checkbox-accent, var(--astryx-color-accent, #262626)), var(--astryx-color-tint-hover, black) 15%);
80
+ }
81
+ }
82
+
66
83
  @media (prefers-reduced-motion: reduce) {
67
84
  .astryx-checkbox-indicator { transition: none; }
68
85
  }
@@ -74,10 +91,12 @@
74
91
  border-color: CanvasText;
75
92
  background: Canvas;
76
93
  }
94
+
77
95
  .astryx-checkbox-indicator-dash {
78
96
  forced-color-adjust: none;
79
97
  background: CanvasText;
80
98
  }
99
+
81
100
  .astryx-checkbox-indicator[data-disabled='true'] {
82
101
  color: GrayText;
83
102
  border-color: GrayText;
@@ -45,17 +45,6 @@
45
45
  .astryx-checkbox-input[data-blocked='true'] .astryx-checkbox-native,
46
46
  .astryx-checkbox-input[data-blocked='true'] .astryx-field-label { cursor: default; }
47
47
 
48
- @media (hover: hover) {
49
- .astryx-checkbox-input:not([data-blocked='true']) .astryx-checkbox-row:hover .astryx-checkbox-indicator {
50
- background: color-mix(in srgb, var(--astryx-checkbox-background, #fff), var(--astryx-checkbox-accent, #262626) 5%);
51
- border-color: color-mix(in srgb, var(--astryx-checkbox-border, #d4d4d4), var(--astryx-checkbox-accent, #262626) 20%);
52
- }
53
- .astryx-checkbox-input:not([data-blocked='true']) .astryx-checkbox-row:hover .astryx-checkbox-indicator:not([data-state='unchecked']) {
54
- background: color-mix(in srgb, var(--astryx-checkbox-accent, #262626), var(--astryx-checkbox-on-accent, #fff) 15%);
55
- border-color: transparent;
56
- }
57
- }
58
-
59
48
  .astryx-checkbox-spinner {
60
49
  box-sizing: border-box;
61
50
  width: 12px;
@@ -118,6 +118,54 @@
118
118
  color: var(--astryx-color-text-secondary, #525252);
119
119
  }
120
120
 
121
+ .astryx-date-input-native {
122
+ position: relative;
123
+ display: flex;
124
+ flex: 1;
125
+ align-items: center;
126
+ min-width: 0;
127
+ }
128
+
129
+ .astryx-date-input-native .astryx-date-input-field {
130
+ color: transparent;
131
+ caret-color: transparent;
132
+ }
133
+
134
+ .astryx-date-input-native .astryx-date-input-field::-webkit-calendar-picker-indicator {
135
+ opacity: 0;
136
+ }
137
+
138
+ .astryx-date-input-overlay {
139
+ position: absolute;
140
+ inset: 0;
141
+ display: flex;
142
+ align-items: center;
143
+ overflow: hidden;
144
+ color: var(--astryx-color-text-primary, light-dark(#171717, #fafafa));
145
+ white-space: nowrap;
146
+ pointer-events: none;
147
+ }
148
+
149
+ .astryx-date-input-overlay[data-placeholder] {
150
+ color: var(--astryx-color-text-secondary, #525252);
151
+ }
152
+
153
+ .astryx-date-input-alert {
154
+ position: absolute;
155
+ width: 1px;
156
+ height: 1px;
157
+ margin: -1px;
158
+ padding: 0;
159
+ overflow: hidden;
160
+ clip: rect(0, 0, 0, 0);
161
+ white-space: nowrap;
162
+ border: 0;
163
+ }
164
+
165
+ .astryx-date-input-spinner {
166
+ flex: none;
167
+ }
168
+
121
169
  @media (prefers-reduced-motion: reduce) {
122
170
  .astryx-date-input-wrapper {
123
171
  transition: none;
@@ -194,6 +194,165 @@
194
194
  margin-block: var(--astryx-spacing-1, 4px);
195
195
  }
196
196
 
197
+ /*
198
+ * Header and footer sit beside the menu, in the same panel. The frame keeps
199
+ * the height cap; the menu between them scrolls.
200
+ */
201
+ .astryx-dropdown-menu-popover {
202
+ box-sizing: border-box;
203
+ position: fixed;
204
+ z-index: var(--astryx-dropdown-menu-z-index, 1000);
205
+ display: flex;
206
+ flex-direction: column;
207
+ --_dropdown-menu-radius: var(--astryx-dropdown-menu-radius, var(--astryx-radius-container, 0.75rem));
208
+ --_dropdown-menu-padding: var(--astryx-dropdown-menu-padding, var(--astryx-spacing-1, 4px));
209
+ max-block-size: var(--_dropdown-menu-max-block, min(300px, calc(100dvh - 16px)));
210
+ overflow: hidden;
211
+ border-radius: var(--_dropdown-menu-radius);
212
+ background: var(--astryx-dropdown-menu-background, #fff);
213
+ box-shadow: var(
214
+ --astryx-dropdown-menu-shadow,
215
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
216
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
217
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%))
218
+ );
219
+ color: var(--astryx-dropdown-menu-foreground, var(--astryx-color-text-primary, light-dark(#171717, #fafafa)));
220
+ font-family: var(--astryx-font-family-body, Figtree, sans-serif);
221
+ font-size: var(--astryx-text-body-size, 0.875rem);
222
+ line-height: var(--astryx-text-body-leading, 1.4286);
223
+ }
224
+
225
+ .astryx-dropdown-menu.is-in-frame {
226
+ position: static;
227
+ z-index: auto;
228
+ flex: 1 1 auto;
229
+ min-block-size: 0;
230
+ max-block-size: none;
231
+ background: transparent;
232
+ box-shadow: none;
233
+ border-radius: 0;
234
+ }
235
+
236
+ .astryx-dropdown-menu[data-region-focus='true'] {
237
+ outline: var(--astryx-focus-outline-width, 2px) var(--astryx-focus-outline-style, solid) var(--astryx-focus-outline-color, currentcolor);
238
+ outline-offset: calc(-1 * var(--astryx-focus-outline-offset, 3px));
239
+ }
240
+
241
+ .astryx-dropdown-menu-region {
242
+ flex: none;
243
+ padding: var(--astryx-spacing-1, 4px);
244
+ }
245
+
246
+ /* Wrappers add no box, so the menu's own gap still runs between rows. */
247
+ .astryx-dropdown-menu-tree {
248
+ display: contents;
249
+ }
250
+
251
+ .astryx-dropdown-menu-tree[hidden] {
252
+ display: none;
253
+ }
254
+
255
+ .astryx-dropdown-menu-radio-group {
256
+ display: flex;
257
+ flex-direction: column;
258
+ gap: var(--astryx-spacing-0-5, 2px);
259
+ min-width: 0;
260
+ }
261
+
262
+ .astryx-dropdown-submenu {
263
+ min-width: min(160px, calc(100vw - 16px));
264
+ }
265
+
266
+ .astryx-dropdown-menu-drill {
267
+ display: flex;
268
+ flex-direction: column;
269
+ gap: var(--astryx-spacing-0-5, 2px);
270
+ min-width: 0;
271
+ outline: none;
272
+ }
273
+
274
+ .astryx-dropdown-menu-drill[hidden] {
275
+ display: none;
276
+ }
277
+
278
+ /*
279
+ * The selection mark is decorative. On a coarse pointer it moves to the
280
+ * inline end, where a touch toggle is usually drawn.
281
+ */
282
+ .astryx-dropdown-menu-mark {
283
+ display: inline-flex;
284
+ flex: none;
285
+ pointer-events: none;
286
+ }
287
+
288
+ .astryx-dropdown-menu-radio {
289
+ box-sizing: border-box;
290
+ display: inline-flex;
291
+ flex: none;
292
+ align-items: center;
293
+ justify-content: center;
294
+ width: 24px;
295
+ height: 24px;
296
+ border: 1px solid var(--astryx-input-border, #d4d4d4);
297
+ border-radius: var(--astryx-radio-radius, 999px);
298
+ background: var(--astryx-input-background, #fff);
299
+ transition:
300
+ border-color var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1)),
301
+ background-color var(--astryx-duration-fast, 125ms) var(--astryx-ease-standard, cubic-bezier(0.24, 1, 0.4, 1));
302
+ }
303
+
304
+ .astryx-dropdown-menu-radio[data-size='sm'] {
305
+ width: 20px;
306
+ height: 20px;
307
+ }
308
+
309
+ .astryx-dropdown-menu-radio[data-checked='checked'] {
310
+ border-color: var(--astryx-input-focus, #262626);
311
+ background: var(--astryx-input-focus, #262626);
312
+ }
313
+
314
+ .astryx-dropdown-menu-radio-dot {
315
+ width: 8px;
316
+ height: 8px;
317
+ border-radius: 999px;
318
+ background: transparent;
319
+ }
320
+
321
+ .astryx-dropdown-menu-radio[data-size='sm'] .astryx-dropdown-menu-radio-dot {
322
+ width: 6px;
323
+ height: 6px;
324
+ }
325
+
326
+ .astryx-dropdown-menu-radio[data-checked='checked'] .astryx-dropdown-menu-radio-dot {
327
+ background: var(--astryx-input-background, #fff);
328
+ }
329
+
330
+ .astryx-dropdown-menu-radio[data-disabled='true'] {
331
+ opacity: 0.5;
332
+ }
333
+
334
+ @media (pointer: coarse) {
335
+ .astryx-dropdown-menu-mark {
336
+ order: 1;
337
+ margin-inline-start: auto;
338
+ }
339
+ }
340
+
341
+ @media (forced-colors: active) {
342
+ .astryx-dropdown-menu-radio {
343
+ border-color: ButtonText;
344
+ background: Canvas;
345
+ }
346
+
347
+ .astryx-dropdown-menu-radio[data-checked='checked'] {
348
+ background: Highlight;
349
+ }
350
+
351
+ .astryx-dropdown-menu-radio[data-checked='checked'] .astryx-dropdown-menu-radio-dot {
352
+ background: Canvas;
353
+ }
354
+ }
355
+
197
356
  @media (prefers-reduced-motion: reduce) {
198
357
  .astryx-dropdown-menu-enter-active,
199
358
  .astryx-dropdown-menu-leave-active {
@@ -207,5 +366,9 @@
207
366
  opacity: 1;
208
367
  transform: none;
209
368
  }
369
+
370
+ .astryx-dropdown-menu-radio {
371
+ transition: none;
372
+ }
210
373
  }
211
374
  }
package/styles/field.css CHANGED
@@ -131,6 +131,25 @@
131
131
  border-radius: var(--astryx-radius-element, 0.625rem);
132
132
  }
133
133
 
134
+ /*
135
+ * Tooltip keeps the message node for the live region. The attached box
136
+ * rule above would put that node back in flow and lift a ghost toolbar
137
+ * control off the row, so the hidden treatment has to win.
138
+ */
139
+ .astryx-field-status[data-hidden='true'] {
140
+ position: absolute;
141
+ width: 1px;
142
+ height: 1px;
143
+ margin: 0;
144
+ padding: 0;
145
+ overflow: hidden;
146
+ border: 0;
147
+ background: transparent;
148
+ clip-path: inset(50%);
149
+ white-space: nowrap;
150
+ pointer-events: none;
151
+ }
152
+
134
153
  :is(.astryx-field-status, .astryx-text-input)[data-type='error'],
135
154
  .astryx-text-input[data-status='error'] {
136
155
  --astryx-input-status-color: var(--astryx-input-error, #e33f4a);
@@ -185,6 +204,35 @@
185
204
  outline-offset: 1px;
186
205
  }
187
206
 
207
+ button.astryx-field-status-glyph {
208
+ display: inline-flex;
209
+ flex: none;
210
+ align-items: center;
211
+ justify-content: center;
212
+ padding: 0;
213
+ border: 0;
214
+ background: transparent;
215
+ cursor: pointer;
216
+ border-radius: var(--astryx-radius-inner, 0.375rem);
217
+ }
218
+
219
+ .astryx-field-status-glyph[data-status='error'] {
220
+ color: var(--astryx-icon-error-foreground, light-dark(#76000c, #ffc4be));
221
+ }
222
+
223
+ .astryx-field-status-glyph[data-status='warning'] {
224
+ color: var(--astryx-icon-warning-foreground, light-dark(#4b3900, #f8e2a0));
225
+ }
226
+
227
+ .astryx-field-status-glyph[data-status='success'] {
228
+ color: var(--astryx-icon-success-foreground, light-dark(#00490b, #b7ebc2));
229
+ }
230
+
231
+ .astryx-field-status-glyph:focus-visible {
232
+ outline: var(--astryx-focus-outline-width, 2px) solid var(--astryx-focus-outline-color, currentcolor);
233
+ outline-offset: 1px;
234
+ }
235
+
188
236
  @media (pointer: coarse) {
189
237
  .astryx-field-info-tip::after,
190
238
  .astryx-input-clear-button::after {
package/styles/icon.css CHANGED
@@ -179,7 +179,7 @@
179
179
  }
180
180
  /* check */
181
181
  .astryx-icon--check {
182
- --astryx-icon-artwork: var(--astryx-icon-check, 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='M5 13l4 4L19 7' /%3E%3C/svg%3E"));
182
+ --astryx-icon-artwork: var(--astryx-icon-check, 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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5' /%3E%3C/svg%3E"));
183
183
  }
184
184
  /* moreHorizontal */
185
185
  .astryx-icon--more-horizontal {
@@ -235,11 +235,59 @@
235
235
  }
236
236
  /* warning */
237
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"));
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='2' 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
239
  }
240
240
  /* error */
241
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"));
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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='m9 9 6 6'/%3E%3C/svg%3E"));
243
+ }
244
+ /* success */
245
+ .astryx-icon--success {
246
+ --astryx-icon-artwork: var(--astryx-icon-success, 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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.801 10A10 10 0 1 1 17 3.335'/%3E%3Cpath d='m9 11 3 3L22 4'/%3E%3C/svg%3E"));
247
+ }
248
+ /* chevronsLeft */
249
+ .astryx-icon--chevrons-left {
250
+ --astryx-icon-artwork: var(--astryx-icon-chevrons-left, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M18 6l-6 6 6 6M11 6l-6 6 6 6%27/%3E%3C/svg%3E"));
251
+ }
252
+ /* chevronsRight */
253
+ .astryx-icon--chevrons-right {
254
+ --astryx-icon-artwork: var(--astryx-icon-chevrons-right, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M6 6l6 6-6 6M13 6l6 6-6 6%27/%3E%3C/svg%3E"));
255
+ }
256
+ /* success */
257
+ .astryx-icon--success {
258
+ --astryx-icon-artwork: var(--astryx-icon-success, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27black%27%3E%3Cpath fill-rule=%27evenodd%27 d=%27M12 3a9 9 0 100 18 9 9 0 000-18zm3.53 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0l-2-2a.75.75 0 111.06-1.06l1.47 1.47 3.72-3.72a.75.75 0 011.06 0z%27/%3E%3C/svg%3E"));
259
+ }
260
+ /* info */
261
+ .astryx-icon--info {
262
+ --astryx-icon-artwork: var(--astryx-icon-info, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27black%27%3E%3Cpath fill-rule=%27evenodd%27 d=%27M12 3a9 9 0 100 18 9 9 0 000-18zm0 4a1 1 0 100 2 1 1 0 000-2zm-.75 3.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5z%27/%3E%3C/svg%3E"));
263
+ }
264
+ /* externalLink */
265
+ .astryx-icon--external-link {
266
+ --astryx-icon-artwork: var(--astryx-icon-external-link, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 5h5v5%27/%3E%3Cpath d=%27M19 5l-9 9%27/%3E%3Cpath d=%27M17 13.5V18a1 1 0 01-1 1H6a1 1 0 01-1-1V8a1 1 0 011-1h4.5%27/%3E%3C/svg%3E"));
267
+ }
268
+ /* menu */
269
+ .astryx-icon--menu {
270
+ --astryx-icon-artwork: var(--astryx-icon-menu, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 7h16M4 12h16M4 17h16%27/%3E%3C/svg%3E"));
271
+ }
272
+ /* arrowsUpDown */
273
+ .astryx-icon--arrows-up-down {
274
+ --astryx-icon-artwork: var(--astryx-icon-arrows-up-down, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M8 7l4-4 4 4%27/%3E%3Cpath d=%27M12 3v18%27/%3E%3Cpath d=%27M8 17l4 4 4-4%27/%3E%3C/svg%3E"));
275
+ }
276
+ /* eyeSlash */
277
+ .astryx-icon--eye-slash {
278
+ --astryx-icon-artwork: var(--astryx-icon-eye-slash, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 3l18 18%27/%3E%3Cpath d=%27M10.5 10.7A2 2 0 0013.3 13.5%27/%3E%3Cpath d=%27M9.9 5.2A10.8 10.8 0 0112 5c5 0 8.5 3.2 10 7-1 2.4-2.8 4.3-5 5.6%27/%3E%3Cpath d=%27M6.1 6.7C4.2 8 2.8 9.8 2 12c1.5 3.8 5 7 10 7 1.4 0 2.7-.3 3.9-.8%27/%3E%3C/svg%3E"));
279
+ }
280
+ /* viewColumns */
281
+ .astryx-icon--view-columns {
282
+ --astryx-icon-artwork: var(--astryx-icon-view-columns, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273.5%27 y=%274.5%27 width=%2717%27 height=%2715%27 rx=%271.5%27/%3E%3Cpath d=%27M9 4.5v15M15 4.5v15%27/%3E%3C/svg%3E"));
283
+ }
284
+ /* checkDouble */
285
+ .astryx-icon--check-double {
286
+ --astryx-icon-artwork: var(--astryx-icon-check-double, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M2 13l4 4L14 7%27/%3E%3Cpath d=%27M9 13l4 4L21 7%27/%3E%3C/svg%3E"));
287
+ }
288
+ /* wrench */
289
+ .astryx-icon--wrench {
290
+ --astryx-icon-artwork: var(--astryx-icon-wrench, url("data:image/svg+xml;utf8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14.7 6.3a4.5 4.5 0 01-6.2 6.2L4 17l3 3 4.5-4.5a4.5 4.5 0 016.2-6.2l-2.2 2.2-2-2 2.2-2.2z%27/%3E%3C/svg%3E"));
243
291
  }
244
292
  /* ARTWORK: generated end */
245
293
  }
@@ -33,12 +33,31 @@
33
33
  cursor: default;
34
34
  }
35
35
 
36
- .astryx-input-group-addon {
36
+ .astryx-input-group.status-error {
37
+ --astryx-input-focus: var(--astryx-input-error, #e33f4a);
38
+ border-color: var(--astryx-input-error, #e33f4a);
39
+ }
40
+
41
+ .astryx-input-group.status-warning {
42
+ --astryx-input-focus: var(--astryx-input-warning, #a67a00);
43
+ border-color: var(--astryx-input-warning, #a67a00);
44
+ }
45
+
46
+ .astryx-input-group.status-success {
47
+ --astryx-input-focus: var(--astryx-input-success, #198100);
48
+ border-color: var(--astryx-input-success, #198100);
49
+ }
50
+
51
+ .astryx-input-group-shell {
52
+ width: 100%;
53
+ min-width: 0;
54
+ }
55
+
56
+ .astryx-input-group-addon,
57
+ .astryx-input-group-text {
37
58
  display: flex;
38
59
  flex: none;
39
60
  align-items: center;
40
- padding-inline: var(--astryx-spacing-2, 8px);
41
- background: color-mix(in srgb, var(--astryx-color-text-primary, #171717) 5%, transparent);
42
61
  color: var(--astryx-color-text-secondary, #525252);
43
62
  font-family: var(--astryx-font-family-body, Figtree, sans-serif);
44
63
  font-size: var(--astryx-text-body-size, 0.875rem);
@@ -46,6 +65,16 @@
46
65
  white-space: nowrap;
47
66
  }
48
67
 
68
+ .astryx-input-group-addon {
69
+ align-self: stretch;
70
+ padding-inline: var(--astryx-spacing-2, 8px);
71
+ background: var(--astryx-color-background-muted, #f1f1f1);
72
+ }
73
+
74
+ .astryx-input-group-addon .astryx-input-group-text {
75
+ background: transparent;
76
+ }
77
+
49
78
  .astryx-input-group-addon.before {
50
79
  border-inline-end: var(--astryx-border-width, 1px) solid var(--astryx-color-border-emphasized, #d4d4d4);
51
80
  }
@@ -96,6 +96,11 @@
96
96
  box-shadow: none;
97
97
  }
98
98
 
99
+ .astryx-multi-selector-control.is-readonly,
100
+ .astryx-multi-selector-control.is-readonly .astryx-multi-selector-trigger {
101
+ cursor: default;
102
+ }
103
+
99
104
  .astryx-multi-selector-control.status-error {
100
105
  --astryx-input-status-color: var(--astryx-input-error, #e33f4a);
101
106
  }
@@ -222,7 +227,26 @@
222
227
  }
223
228
 
224
229
  .astryx-multi-selector-search {
230
+ display: flex;
231
+ align-items: center;
232
+ gap: var(--astryx-spacing-1, 4px);
225
233
  padding: var(--astryx-spacing-1, 4px);
234
+ color: var(--astryx-color-text-secondary, #525252);
235
+ }
236
+
237
+ .astryx-multi-selector-search-icon,
238
+ .astryx-multi-selector-search-clear,
239
+ .astryx-multi-selector-spinner {
240
+ flex: none;
241
+ }
242
+
243
+ .astryx-multi-selector-search-clear {
244
+ display: inline-flex;
245
+ padding: 0;
246
+ border: 0;
247
+ background: transparent;
248
+ color: inherit;
249
+ cursor: pointer;
226
250
  }
227
251
 
228
252
  .astryx-multi-selector-listbox.is-sheet {
@@ -243,6 +267,8 @@
243
267
 
244
268
  .astryx-multi-selector-search-input {
245
269
  box-sizing: border-box;
270
+ flex: 1;
271
+ min-width: 0;
246
272
  width: 100%;
247
273
  padding: var(--astryx-spacing-1-5, 6px) var(--astryx-spacing-2, 8px);
248
274
  border: 0;