@feugene/granularity 0.25.0 → 0.27.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 (581) hide show
  1. package/dist/chunks/classTokens-8v2XC74x.js +16 -0
  2. package/dist/chunks/classTokens-8v2XC74x.js.map +1 -0
  3. package/dist/chunks/{config-Bpt9Xbxm.js → config-2ZHRsdOc.js} +2 -2
  4. package/dist/chunks/config-2ZHRsdOc.js.map +1 -0
  5. package/dist/chunks/{config-D6W1rnlp.js → config-B0uvcTPH.js} +1 -1
  6. package/dist/chunks/{config-D6W1rnlp.js.map → config-B0uvcTPH.js.map} +1 -1
  7. package/dist/chunks/{config-Bsh948nP.js → config-B3J0alyY.js} +1 -1
  8. package/dist/chunks/{config-Bsh948nP.js.map → config-B3J0alyY.js.map} +1 -1
  9. package/dist/chunks/{config-ScuvHw6k.js → config-B5SBUa6u.js} +1 -1
  10. package/dist/chunks/{config-ScuvHw6k.js.map → config-B5SBUa6u.js.map} +1 -1
  11. package/dist/chunks/{config-BeZRuonp.js → config-BDSaD-5p.js} +1 -1
  12. package/dist/chunks/{config-BeZRuonp.js.map → config-BDSaD-5p.js.map} +1 -1
  13. package/dist/chunks/{config-Dgj1Q6JY.js → config-BEO7brpO.js} +3 -3
  14. package/dist/chunks/config-BEO7brpO.js.map +1 -0
  15. package/dist/chunks/{config-B84z1aos.js → config-BHcS5Cwm.js} +1 -1
  16. package/dist/chunks/{config-B84z1aos.js.map → config-BHcS5Cwm.js.map} +1 -1
  17. package/dist/chunks/{config-DA6SnEoy.js → config-BRESvs9g.js} +2 -2
  18. package/dist/chunks/{config-DA6SnEoy.js.map → config-BRESvs9g.js.map} +1 -1
  19. package/dist/chunks/{config-CN2ULSQL.js → config-BTmfQFwi.js} +5 -5
  20. package/dist/chunks/config-BTmfQFwi.js.map +1 -0
  21. package/dist/chunks/{config-DtgYuGUn2.js → config-BTwYMQaz2.js} +5 -3
  22. package/dist/chunks/config-BTwYMQaz2.js.map +1 -0
  23. package/dist/chunks/{config-QJ54_fcM.js → config-BaWANzzB.js} +1 -1
  24. package/dist/chunks/{config-QJ54_fcM.js.map → config-BaWANzzB.js.map} +1 -1
  25. package/dist/chunks/{config-COvrUfhR.js → config-BcXX7S7B.js} +5 -5
  26. package/dist/chunks/config-BcXX7S7B.js.map +1 -0
  27. package/dist/chunks/{config-COpuWGr_.js → config-Bd7QfiGj.js} +1 -1
  28. package/dist/chunks/{config-COpuWGr_.js.map → config-Bd7QfiGj.js.map} +1 -1
  29. package/dist/chunks/{config-BDfTXHo1.js → config-BhfNgyWL.js} +2 -2
  30. package/dist/chunks/{config-BDfTXHo1.js.map → config-BhfNgyWL.js.map} +1 -1
  31. package/dist/chunks/{config-CjnbevbD.js → config-Bjn30smH.js} +1 -1
  32. package/dist/chunks/{config-CjnbevbD.js.map → config-Bjn30smH.js.map} +1 -1
  33. package/dist/chunks/{config-CN970ZcJ.js → config-BlJa1Mj9.js} +13 -13
  34. package/dist/chunks/config-BlJa1Mj9.js.map +1 -0
  35. package/dist/chunks/{config-DU2DNSRx.js → config-BoUI0t-t.js} +1 -1
  36. package/dist/chunks/{config-DU2DNSRx.js.map → config-BoUI0t-t.js.map} +1 -1
  37. package/dist/chunks/{config-BN4sXYXn.js → config-BqT6PMzO.js} +7 -14
  38. package/dist/chunks/config-BqT6PMzO.js.map +1 -0
  39. package/dist/chunks/config-BuGlNPE9.js.map +1 -0
  40. package/dist/chunks/{config-MRvhUl-O.js → config-CJzmDHfI.js} +1 -1
  41. package/dist/chunks/{config-MRvhUl-O.js.map → config-CJzmDHfI.js.map} +1 -1
  42. package/dist/chunks/{config-DGWFal5h.js → config-CLjjjPZj.js} +7 -7
  43. package/dist/chunks/config-CLjjjPZj.js.map +1 -0
  44. package/dist/chunks/{config-Cl4ST6Qd.js → config-CQLNjc9X2.js} +2 -2
  45. package/dist/chunks/config-CQLNjc9X2.js.map +1 -0
  46. package/dist/chunks/{config-vSji8w90.js → config-CWtfxkM9.js} +9 -9
  47. package/dist/chunks/config-CWtfxkM9.js.map +1 -0
  48. package/dist/chunks/{config-DKISz9gR.js → config-CWthWcWY.js} +2 -2
  49. package/dist/chunks/{config-DKISz9gR.js.map → config-CWthWcWY.js.map} +1 -1
  50. package/dist/chunks/{config-Iu684VNI.js → config-CZPDPJlg.js} +1 -1
  51. package/dist/chunks/{config-Iu684VNI.js.map → config-CZPDPJlg.js.map} +1 -1
  52. package/dist/chunks/{config-DAX8Deh1.js → config-CbEbLyDE.js} +3 -3
  53. package/dist/chunks/config-CbEbLyDE.js.map +1 -0
  54. package/dist/chunks/{config-D94Z9po5.js → config-ChPg-BQv.js} +2 -2
  55. package/dist/chunks/config-ChPg-BQv.js.map +1 -0
  56. package/dist/chunks/{config-DSJY6aEl.js → config-CjKpUcmy.js} +17 -17
  57. package/dist/chunks/config-CjKpUcmy.js.map +1 -0
  58. package/dist/chunks/{config-BIa3ilQm.js → config-CjWOTgLL.js} +4 -4
  59. package/dist/chunks/{config-BIa3ilQm.js.map → config-CjWOTgLL.js.map} +1 -1
  60. package/dist/chunks/{config-rkcKArZQ.js → config-CnYdE3HZ2.js} +5 -5
  61. package/dist/chunks/config-CnYdE3HZ2.js.map +1 -0
  62. package/dist/chunks/{config-BE6n20np.js → config-CvbVM4ep.js} +1 -1
  63. package/dist/chunks/{config-BE6n20np.js.map → config-CvbVM4ep.js.map} +1 -1
  64. package/dist/chunks/{config-9PYRZlKE.js → config-D0NzGYaE.js} +6 -6
  65. package/dist/chunks/config-D0NzGYaE.js.map +1 -0
  66. package/dist/chunks/{config-CKULiuvc.js → config-D0W8mGFD.js} +4 -4
  67. package/dist/chunks/{config-CKULiuvc.js.map → config-D0W8mGFD.js.map} +1 -1
  68. package/dist/chunks/{config-CY0_6cMi.js → config-D82r782v.js} +1 -1
  69. package/dist/chunks/{config-CY0_6cMi.js.map → config-D82r782v.js.map} +1 -1
  70. package/dist/chunks/config-DBmdgoVf2.js.map +1 -0
  71. package/dist/chunks/{config-WTNhdh6T.js → config-DCq4JySZ.js} +2 -2
  72. package/dist/chunks/{config-WTNhdh6T.js.map → config-DCq4JySZ.js.map} +1 -1
  73. package/dist/chunks/{config-C8tVRv8i.js → config-DGC00bTp.js} +13 -13
  74. package/dist/chunks/config-DGC00bTp.js.map +1 -0
  75. package/dist/chunks/{config-BsPDQ0dS.js → config-DIDz_E5m.js} +9 -9
  76. package/dist/chunks/config-DIDz_E5m.js.map +1 -0
  77. package/dist/chunks/{config-Dguto_6o.js → config-DM0lsduD.js} +6 -6
  78. package/dist/chunks/config-DM0lsduD.js.map +1 -0
  79. package/dist/chunks/{config-BfsBepkH.js → config-DNDgp9bB.js} +5 -5
  80. package/dist/chunks/config-DNDgp9bB.js.map +1 -0
  81. package/dist/chunks/{config-DpeQchsV.js → config-DO8mjeIo.js} +2 -2
  82. package/dist/chunks/{config-DpeQchsV.js.map → config-DO8mjeIo.js.map} +1 -1
  83. package/dist/chunks/{config-Baj7Wvx-.js → config-DRbojEzO.js} +4 -4
  84. package/dist/chunks/config-DRbojEzO.js.map +1 -0
  85. package/dist/chunks/{config-CQzGyi1C.js → config-DWL81-aM.js} +1 -1
  86. package/dist/chunks/{config-CQzGyi1C.js.map → config-DWL81-aM.js.map} +1 -1
  87. package/dist/chunks/{config-esdviAPL.js → config-DZCUPHPU.js} +1 -1
  88. package/dist/chunks/{config-esdviAPL.js.map → config-DZCUPHPU.js.map} +1 -1
  89. package/dist/chunks/{config-DKdlqXiY.js → config-DcfWZOi5.js} +5 -5
  90. package/dist/chunks/config-DcfWZOi5.js.map +1 -0
  91. package/dist/chunks/{config-BC8d_smz.js → config-DeyT9dJl.js} +3 -3
  92. package/dist/chunks/{config-BC8d_smz.js.map → config-DeyT9dJl.js.map} +1 -1
  93. package/dist/chunks/{config-Cwd3yjRw.js → config-DnF472Ox.js} +6 -4
  94. package/dist/chunks/config-DnF472Ox.js.map +1 -0
  95. package/dist/chunks/{config-B_qi4Fma.js → config-DolULhjJ.js} +5 -5
  96. package/dist/chunks/config-DolULhjJ.js.map +1 -0
  97. package/dist/chunks/{config-CIcynHGr.js → config-DpAYidyY2.js} +1 -1
  98. package/dist/chunks/config-DpAYidyY2.js.map +1 -0
  99. package/dist/chunks/{config-DYgfMrIF.js → config-Dpk-eVkS.js} +1 -1
  100. package/dist/chunks/{config-DYgfMrIF.js.map → config-Dpk-eVkS.js.map} +1 -1
  101. package/dist/chunks/config-Dv_r92GL.js +35 -0
  102. package/dist/chunks/config-Dv_r92GL.js.map +1 -0
  103. package/dist/chunks/{config-B4w5gBD0.js → config-DwABJHEo.js} +2 -2
  104. package/dist/chunks/config-DwABJHEo.js.map +1 -0
  105. package/dist/chunks/{config-zjeAJ4ho2.js → config-MmPym-Z72.js} +5 -5
  106. package/dist/chunks/config-MmPym-Z72.js.map +1 -0
  107. package/dist/chunks/{config-DCFvmHEv.js → config-T3-DMXYm.js} +9 -7
  108. package/dist/chunks/config-T3-DMXYm.js.map +1 -0
  109. package/dist/chunks/{config-BoNR7_PD.js → config-Yy67uWHY.js} +1 -1
  110. package/dist/chunks/{config-BoNR7_PD.js.map → config-Yy67uWHY.js.map} +1 -1
  111. package/dist/chunks/{config-BFJIxE8b.js → config-Z5LeUXys.js} +1 -1
  112. package/dist/chunks/{config-BFJIxE8b.js.map → config-Z5LeUXys.js.map} +1 -1
  113. package/dist/chunks/{config-DWN4x6_e.js → config-_QF0O1vq.js} +9 -9
  114. package/dist/chunks/config-_QF0O1vq.js.map +1 -0
  115. package/dist/chunks/{config-Cp0DE0GH.js → config-_jO3q1Le.js} +1 -1
  116. package/dist/chunks/{config-Cp0DE0GH.js.map → config-_jO3q1Le.js.map} +1 -1
  117. package/dist/chunks/{config-DGCMHPCR.js → config-g8-JGZ_Y.js} +1 -1
  118. package/dist/chunks/{config-DGCMHPCR.js.map → config-g8-JGZ_Y.js.map} +1 -1
  119. package/dist/chunks/{config-BTCOJO5z2.js → config-jyr6AIZt2.js} +3 -3
  120. package/dist/chunks/{config-BTCOJO5z2.js.map → config-jyr6AIZt2.js.map} +1 -1
  121. package/dist/chunks/{config-BtXRpAtq.js → config-mlheIMtV.js} +3 -6
  122. package/dist/chunks/config-mlheIMtV.js.map +1 -0
  123. package/dist/chunks/{config-BEVBsvni2.js → config-rLkc9Zn2.js} +1 -1
  124. package/dist/chunks/config-rLkc9Zn2.js.map +1 -0
  125. package/dist/chunks/{config-T3qdQBgU.js → config-tiUtEn4Q.js} +1 -1
  126. package/dist/chunks/{config-T3qdQBgU.js.map → config-tiUtEn4Q.js.map} +1 -1
  127. package/dist/chunks/{config-BViooYNv.js → config-uzUuosv7.js} +7 -2
  128. package/dist/chunks/config-uzUuosv7.js.map +1 -0
  129. package/dist/chunks/{config-BbY2SKGE.js → config-vYMJ3Cr1.js} +11 -9
  130. package/dist/chunks/config-vYMJ3Cr1.js.map +1 -0
  131. package/dist/chunks/context-BfIQv7m1.js.map +1 -0
  132. package/dist/chunks/{generated-CJe6hdiE.js → generated-DJ2dJ__C.js} +48 -0
  133. package/dist/chunks/generated-DJ2dJ__C.js.map +1 -0
  134. package/dist/chunks/{grBadgeStyles-C1S56Alo.js → grBadgeStyles-D8Mz73B5.js} +4 -4
  135. package/dist/chunks/grBadgeStyles-D8Mz73B5.js.map +1 -0
  136. package/dist/chunks/{config-D7zgE_Gr.js → grChipStyles-3JZApw03.js} +21 -43
  137. package/dist/chunks/grChipStyles-3JZApw03.js.map +1 -0
  138. package/dist/chunks/{grDropdownMenuStyles-D1LOkdVj.js → grDropdownMenuStyles-DG3aYHkT.js} +3 -3
  139. package/dist/chunks/grDropdownMenuStyles-DG3aYHkT.js.map +1 -0
  140. package/dist/chunks/{grIconStyles-BwJrml2L.js → grIconStyles-B6BRqUld.js} +1 -1
  141. package/dist/chunks/{grIconStyles-BwJrml2L.js.map → grIconStyles-B6BRqUld.js.map} +1 -1
  142. package/dist/chunks/{grInputStyles-CJeMhUe5.js → grInputStyles-CAk3xKIb.js} +4 -4
  143. package/dist/chunks/grInputStyles-CAk3xKIb.js.map +1 -0
  144. package/dist/chunks/{grKbdStyles-CeZhGQHr.js → grKbdStyles-DENu8pUK.js} +5 -0
  145. package/dist/chunks/grKbdStyles-DENu8pUK.js.map +1 -0
  146. package/dist/chunks/{grLinkStyles-BoL8QYcV.js → grLinkStyles-FME_qMpi.js} +4 -4
  147. package/dist/chunks/grLinkStyles-FME_qMpi.js.map +1 -0
  148. package/dist/chunks/{grLoadingStyles-DEmji2wv.js → grLoadingStyles-CnQaf5ry.js} +1 -1
  149. package/dist/chunks/{grLoadingStyles-DEmji2wv.js.map → grLoadingStyles-CnQaf5ry.js.map} +1 -1
  150. package/dist/chunks/{grPopoverStyles-Cke_BZsM.js → grPopoverStyles-Djh5RNhn.js} +4 -4
  151. package/dist/chunks/grPopoverStyles-Djh5RNhn.js.map +1 -0
  152. package/dist/chunks/{grRadioStyles-BTjGNhtU.js → grRadioStyles-D4gnU65n.js} +4 -4
  153. package/dist/chunks/grRadioStyles-D4gnU65n.js.map +1 -0
  154. package/dist/chunks/{grSelectStyles-eTz4uPMP.js → grSelectStyles-Cdtd10eY.js} +9 -9
  155. package/dist/chunks/grSelectStyles-Cdtd10eY.js.map +1 -0
  156. package/dist/chunks/{grTableStyles-C-iaqQUN.js → grTableStyles-uuMPSOBR.js} +2 -2
  157. package/dist/chunks/{grTableStyles-C-iaqQUN.js.map → grTableStyles-uuMPSOBR.js.map} +1 -1
  158. package/dist/chunks/{grTextareaStyles-iOcHuVMM.js → grTextareaStyles-Bp35BGna.js} +4 -4
  159. package/dist/chunks/grTextareaStyles-Bp35BGna.js.map +1 -0
  160. package/dist/chunks/{granular-provider-BaHkLjFX.js → granular-provider-DvvRayEh.js} +67 -67
  161. package/dist/chunks/{granular-provider-BaHkLjFX.js.map → granular-provider-DvvRayEh.js.map} +1 -1
  162. package/dist/chunks/numericStep-Bq2lj4ew.js +23 -0
  163. package/dist/chunks/numericStep-Bq2lj4ew.js.map +1 -0
  164. package/dist/chunks/overlayTransition-0Fj5tQbq.js +36 -0
  165. package/dist/chunks/overlayTransition-0Fj5tQbq.js.map +1 -0
  166. package/dist/chunks/{safelist-CudBLyAD.js → safelist-BOq5Li7p.js} +1 -1
  167. package/dist/chunks/{safelist-CudBLyAD.js.map → safelist-BOq5Li7p.js.map} +1 -1
  168. package/dist/chunks/{safelist-DOfCQR5O.js → safelist-CtiHPgrj.js} +2 -2
  169. package/dist/chunks/{safelist-DOfCQR5O.js.map → safelist-CtiHPgrj.js.map} +1 -1
  170. package/dist/chunks/{safelist-CkF4v7DC.js → safelist-Y3zrlhOa.js} +1 -1
  171. package/dist/chunks/{safelist-CkF4v7DC.js.map → safelist-Y3zrlhOa.js.map} +1 -1
  172. package/dist/chunks/{useMenuItemsFocus-OyOnIAlr.js → useMenuItemsFocus-B6TldmGf.js} +1 -43
  173. package/dist/chunks/useMenuItemsFocus-B6TldmGf.js.map +1 -0
  174. package/dist/chunks/useTypeahead-mxPtPBf2.js +44 -0
  175. package/dist/chunks/useTypeahead-mxPtPBf2.js.map +1 -0
  176. package/dist/chunks/{validation-DauXRIkL.js → validation-5HhpanPP.js} +1 -1
  177. package/dist/chunks/{validation-DauXRIkL.js.map → validation-5HhpanPP.js.map} +1 -1
  178. package/dist/components/GrAlert/chunks/{GrAlert-B21QGele.js → GrAlert-FAVf-ksH.js} +1 -1
  179. package/dist/components/GrAlert/chunks/{GrAlert-B21QGele.js.map → GrAlert-FAVf-ksH.js.map} +1 -1
  180. package/dist/components/GrAlert/index.js +1 -1
  181. package/dist/components/GrAutocomplete/chunks/{GrAutocomplete-D9c9BNFg.js → GrAutocomplete-BwhUTqmG.js} +88 -81
  182. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-BwhUTqmG.js.map +1 -0
  183. package/dist/components/GrAutocomplete/index.js +2 -2
  184. package/dist/components/GrAutocomplete/styles.css +1 -1
  185. package/dist/components/GrAvatar/chunks/{GrAvatar-BbdKRX8i.js → GrAvatar-CNmLmgcr.js} +1 -1
  186. package/dist/components/GrAvatar/chunks/{GrAvatar-BbdKRX8i.js.map → GrAvatar-CNmLmgcr.js.map} +1 -1
  187. package/dist/components/GrAvatar/index.js +2 -2
  188. package/dist/components/GrBadge/chunks/{GrBadge-_9rCHuE1.js → GrBadge-BM3f9PME.js} +2 -2
  189. package/dist/components/GrBadge/chunks/GrBadge-BM3f9PME.js.map +1 -0
  190. package/dist/components/GrBadge/index.js +3 -3
  191. package/dist/components/GrBadge/styles.css +1 -1
  192. package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-DDoFQscR.js → GrBadgeWrap-B-A3PRkE.js} +1 -1
  193. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-B-A3PRkE.js.map +1 -0
  194. package/dist/components/GrBadgeWrap/index.js +2 -2
  195. package/dist/components/GrBottomNav/chunks/{GrBottomNav-JUu4ylYv.js → GrBottomNav-wtFatLjB.js} +1 -1
  196. package/dist/components/GrBottomNav/chunks/{GrBottomNav-JUu4ylYv.js.map → GrBottomNav-wtFatLjB.js.map} +1 -1
  197. package/dist/components/GrBottomNav/index.js +2 -2
  198. package/dist/components/GrBreadcrumbs/chunks/{GrBreadcrumbs-CQ44iU2o.js → GrBreadcrumbs-jtSnMEtg.js} +2 -2
  199. package/dist/components/GrBreadcrumbs/chunks/{GrBreadcrumbs-CQ44iU2o.js.map → GrBreadcrumbs-jtSnMEtg.js.map} +1 -1
  200. package/dist/components/GrBreadcrumbs/index.js +2 -2
  201. package/dist/components/GrButton/chunks/{GrButton-DCz-Wn-V.js → GrButton-Bw2AH4uX.js} +1 -1
  202. package/dist/components/GrButton/chunks/GrButton-Bw2AH4uX.js.map +1 -0
  203. package/dist/components/GrButton/index.js +3 -3
  204. package/dist/components/GrButtonGroup/chunks/{GrButtonGroup-BQo5VQ_c.js → GrButtonGroup-CKyiAV8K.js} +1 -1
  205. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-CKyiAV8K.js.map +1 -0
  206. package/dist/components/GrButtonGroup/index.js +3 -3
  207. package/dist/components/GrCard/chunks/{GrCard-aQIjk6I9.js → GrCard-DR3ehBt8.js} +1 -1
  208. package/dist/components/GrCard/chunks/GrCard-DR3ehBt8.js.map +1 -0
  209. package/dist/components/GrCard/index.js +2 -2
  210. package/dist/components/GrCheckbox/index.js +1 -1
  211. package/dist/components/GrCheckboxGroup/index.js +1 -1
  212. package/dist/components/GrChip/chunks/{GrChip-BnL2FedO.js → GrChip-Df4orxRH.js} +15 -4
  213. package/dist/components/GrChip/chunks/GrChip-Df4orxRH.js.map +1 -0
  214. package/dist/components/GrChip/index.js +2 -2
  215. package/dist/components/GrChipGroup/chunks/{GrChipGroup-DefmSdY9.js → GrChipGroup-C78Vcwos.js} +2 -2
  216. package/dist/components/GrChipGroup/chunks/{GrChipGroup-DefmSdY9.js.map → GrChipGroup-C78Vcwos.js.map} +1 -1
  217. package/dist/components/GrChipGroup/index.js +2 -2
  218. package/dist/components/GrCodeBlock/chunks/{GrCodeBlock-CyptiEo4.js → GrCodeBlock-Dkvkr91t.js} +2 -2
  219. package/dist/components/GrCodeBlock/chunks/{GrCodeBlock-CyptiEo4.js.map → GrCodeBlock-Dkvkr91t.js.map} +1 -1
  220. package/dist/components/GrCodeBlock/index.js +2 -2
  221. package/dist/components/GrCollapse/chunks/{GrCollapse-DUROgAgc.js → GrCollapse-CytiA2Sx.js} +3 -3
  222. package/dist/components/GrCollapse/chunks/{GrCollapse-DUROgAgc.js.map → GrCollapse-CytiA2Sx.js.map} +1 -1
  223. package/dist/components/GrCollapse/index.js +2 -2
  224. package/dist/components/GrColorPicker/chunks/{GrColorPicker-CDaJRVIM.js → GrColorPicker-0n_KGeUy.js} +4 -4
  225. package/dist/components/GrColorPicker/chunks/{GrColorPicker-CDaJRVIM.js.map → GrColorPicker-0n_KGeUy.js.map} +1 -1
  226. package/dist/components/GrColorPicker/index.js +2 -2
  227. package/dist/components/GrCommandPalette/chunks/{GrCommandPalette-BPsVN_XU.js → GrCommandPalette-C5abL2Y7.js} +3 -3
  228. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-C5abL2Y7.js.map +1 -0
  229. package/dist/components/GrCommandPalette/index.js +2 -2
  230. package/dist/components/GrCommandPalette/styles.css +1 -1
  231. package/dist/components/GrConfigProvider/chunks/GrConfigProvider-BF7R3hgg.js.map +1 -1
  232. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-CwXNLyzk.js → GrConfirmDialog-B9mIU78E.js} +4 -4
  233. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-B9mIU78E.js.map +1 -0
  234. package/dist/components/GrConfirmDialog/index.js +1 -1
  235. package/dist/components/GrContextMenu/chunks/{GrContextMenu-BbAJholy.js → GrContextMenu-DDAUvrDK.js} +3 -3
  236. package/dist/components/GrContextMenu/chunks/GrContextMenu-DDAUvrDK.js.map +1 -0
  237. package/dist/components/GrContextMenu/index.js +1 -1
  238. package/dist/components/GrDataTable/chunks/{GrDataTable-NRbrXpdx.js → GrDataTable-DU00V44y.js} +14 -4
  239. package/dist/components/GrDataTable/chunks/GrDataTable-DU00V44y.js.map +1 -0
  240. package/dist/components/GrDataTable/index.js +2 -2
  241. package/dist/components/GrDelta/chunks/{GrDelta-NE5HhXoo.js → GrDelta-04j9WmEY.js} +0 -0
  242. package/dist/components/GrDelta/chunks/{GrDelta-NE5HhXoo.js.map → GrDelta-04j9WmEY.js.map} +1 -1
  243. package/dist/components/GrDelta/index.js +2 -2
  244. package/dist/components/GrDescriptionList/chunks/{GrDescriptionList-1mICfrqX.js → GrDescriptionList-BMeCgFV3.js} +1 -1
  245. package/dist/components/GrDescriptionList/chunks/GrDescriptionList-BMeCgFV3.js.map +1 -0
  246. package/dist/components/GrDescriptionList/index.js +2 -2
  247. package/dist/components/GrDialog/chunks/{GrDialog-5Y5K87ss.js → GrDialog-bOUDYfmh.js} +2 -2
  248. package/dist/components/GrDialog/chunks/GrDialog-bOUDYfmh.js.map +1 -0
  249. package/dist/components/GrDialog/index.js +2 -2
  250. package/dist/components/GrDialogService/chunks/{GrDialogService-CHhzGRWy.js → GrDialogService-B--br5so.js} +4 -4
  251. package/dist/components/GrDialogService/chunks/{GrDialogService-CHhzGRWy.js.map → GrDialogService-B--br5so.js.map} +1 -1
  252. package/dist/components/GrDialogService/index.js +1 -1
  253. package/dist/components/GrDivider/chunks/{GrDivider-CAhm9jbE.js → GrDivider-BXavGcMX.js} +1 -1
  254. package/dist/components/GrDivider/chunks/GrDivider-BXavGcMX.js.map +1 -0
  255. package/dist/components/GrDivider/index.js +2 -2
  256. package/dist/components/GrDrawer/chunks/{GrDrawer-CXy3-SVd.js → GrDrawer-BCreL-eq.js} +3 -3
  257. package/dist/components/GrDrawer/chunks/{GrDrawer-CXy3-SVd.js.map → GrDrawer-BCreL-eq.js.map} +1 -1
  258. package/dist/components/GrDrawer/index.js +2 -2
  259. package/dist/components/GrDropdown/chunks/{GrDropdown-BfTmdPyh.js → GrDropdown-13Wt9eB_.js} +16 -8
  260. package/dist/components/GrDropdown/chunks/GrDropdown-13Wt9eB_.js.map +1 -0
  261. package/dist/components/GrDropdown/index.js +2 -2
  262. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenu-l5HEqzjr.js → GrDropdownMenu-5zoOL8Oj.js} +3 -3
  263. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-5zoOL8Oj.js.map +1 -0
  264. package/dist/components/GrDropdownMenu/chunks/{GrDropdownMenuList-BGA_xNVo.js → GrDropdownMenuList-CT_1TQJo.js} +1 -1
  265. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenuList-CT_1TQJo.js.map +1 -0
  266. package/dist/components/GrDropdownMenu/index.js +3 -3
  267. package/dist/components/GrEmptyState/chunks/{GrEmptyState-CS9do8eM.js → GrEmptyState-D4T5pzXA.js} +2 -2
  268. package/dist/components/GrEmptyState/chunks/{GrEmptyState-CS9do8eM.js.map → GrEmptyState-D4T5pzXA.js.map} +1 -1
  269. package/dist/components/GrEmptyState/index.js +2 -2
  270. package/dist/components/GrFilePreview/chunks/{GrFilePreview-D0Bt-0nn.js → GrFilePreview-C9Z7hMK8.js} +1 -1
  271. package/dist/components/GrFilePreview/chunks/{GrFilePreview-D0Bt-0nn.js.map → GrFilePreview-C9Z7hMK8.js.map} +1 -1
  272. package/dist/components/GrFilePreview/index.js +2 -2
  273. package/dist/components/GrFileUpload/chunks/{GrFileUpload-wNXzHb5N.js → GrFileUpload-FjbaYGjL.js} +2 -2
  274. package/dist/components/GrFileUpload/chunks/{GrFileUpload-wNXzHb5N.js.map → GrFileUpload-FjbaYGjL.js.map} +1 -1
  275. package/dist/components/GrFileUpload/index.js +2 -2
  276. package/dist/components/GrForm/chunks/{GrForm-B_Qq_13k.js → GrForm-CrnfCsgj.js} +9 -3
  277. package/dist/components/GrForm/chunks/GrForm-CrnfCsgj.js.map +1 -0
  278. package/dist/components/GrForm/index.js +3 -3
  279. package/dist/components/GrFormField/chunks/GrFormField-DSylU7IU.js.map +1 -1
  280. package/dist/components/GrFormField/index.js +1 -1
  281. package/dist/components/GrFormFile/chunks/{GrFormFile-DhVkB2gm.js → GrFormFile-ChdKlN83.js} +3 -3
  282. package/dist/components/GrFormFile/chunks/{GrFormFile-DhVkB2gm.js.map → GrFormFile-ChdKlN83.js.map} +1 -1
  283. package/dist/components/GrFormFile/index.js +2 -2
  284. package/dist/components/GrFormSection/chunks/{GrFormSection-CdGWvzXO.js → GrFormSection-ejieOg9H.js} +1 -1
  285. package/dist/components/GrFormSection/chunks/{GrFormSection-CdGWvzXO.js.map → GrFormSection-ejieOg9H.js.map} +1 -1
  286. package/dist/components/GrFormSection/index.js +2 -2
  287. package/dist/components/GrIcon/chunks/{GrIcon-bQwtZtYT.js → GrIcon-Bn1XEriL.js} +1 -1
  288. package/dist/components/GrIcon/chunks/GrIcon-Bn1XEriL.js.map +1 -0
  289. package/dist/components/GrIcon/index.js +2 -2
  290. package/dist/components/GrImageViewer/chunks/{GrImageViewer-ng7el4wn.js → GrImageViewer-COUcpOgR.js} +2 -2
  291. package/dist/components/GrImageViewer/chunks/GrImageViewer-COUcpOgR.js.map +1 -0
  292. package/dist/components/GrImageViewer/index.js +2 -2
  293. package/dist/components/GrInput/chunks/{GrInput-Bb_pxqpT.js → GrInput-c53iltz0.js} +1 -1
  294. package/dist/components/GrInput/chunks/{GrInput-Bb_pxqpT.js.map → GrInput-c53iltz0.js.map} +1 -1
  295. package/dist/components/GrInput/index.js +2 -2
  296. package/dist/components/GrInputTag/chunks/{GrInputTag-UI8kIB_F.js → GrInputTag-LP3smqOv.js} +46 -49
  297. package/dist/components/GrInputTag/chunks/GrInputTag-LP3smqOv.js.map +1 -0
  298. package/dist/components/GrInputTag/index.js +2 -2
  299. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-jk3ylOTc.js → GrJsonViewer-ClTvjlFx.js} +4 -4
  300. package/dist/components/GrJsonViewer/chunks/{GrJsonViewer-jk3ylOTc.js.map → GrJsonViewer-ClTvjlFx.js.map} +1 -1
  301. package/dist/components/GrJsonViewer/index.js +2 -2
  302. package/dist/components/GrKbd/chunks/{GrKbd-BXbhsH0M.js → GrKbd-D2ga1H9i.js} +1 -1
  303. package/dist/components/GrKbd/chunks/{GrKbd-BXbhsH0M.js.map → GrKbd-D2ga1H9i.js.map} +1 -1
  304. package/dist/components/GrKbd/index.js +2 -2
  305. package/dist/components/GrLink/chunks/{GrLink-BQb7U4so.js → GrLink-DAGCFYO7.js} +2 -2
  306. package/dist/components/GrLink/chunks/GrLink-DAGCFYO7.js.map +1 -0
  307. package/dist/components/GrLink/index.js +2 -2
  308. package/dist/components/GrList/chunks/{GrList-B5bclmHV.js → GrList-DrXrKU37.js} +3 -3
  309. package/dist/components/GrList/chunks/GrList-DrXrKU37.js.map +1 -0
  310. package/dist/components/GrList/index.js +2 -2
  311. package/dist/components/GrList/styles.css +1 -1
  312. package/dist/components/GrLoading/chunks/{GrLoading-DeBFTvFX.js → GrLoading-DDD8WAIH.js} +2 -2
  313. package/dist/components/GrLoading/chunks/{GrLoading-DeBFTvFX.js.map → GrLoading-DDD8WAIH.js.map} +1 -1
  314. package/dist/components/GrLoading/index.js +2 -2
  315. package/dist/components/GrModal/index.js +1 -1
  316. package/dist/components/GrNavbar/chunks/{GrNavbar-DPj30sHX.js → GrNavbar-DhswlYyh.js} +3 -3
  317. package/dist/components/GrNavbar/chunks/{GrNavbar-DPj30sHX.js.map → GrNavbar-DhswlYyh.js.map} +1 -1
  318. package/dist/components/GrNavbar/index.js +2 -2
  319. package/dist/components/GrNumberInput/chunks/{GrNumberInput-V2mZvDDC.js → GrNumberInput-Daud9Jdm.js} +3 -14
  320. package/dist/components/GrNumberInput/chunks/GrNumberInput-Daud9Jdm.js.map +1 -0
  321. package/dist/components/GrNumberInput/index.js +2 -2
  322. package/dist/components/GrPagination/chunks/{GrPagination-DG7kp6VL.js → GrPagination-CaNTZc-v.js} +3 -3
  323. package/dist/components/GrPagination/chunks/{GrPagination-DG7kp6VL.js.map → GrPagination-CaNTZc-v.js.map} +1 -1
  324. package/dist/components/GrPagination/index.js +2 -2
  325. package/dist/components/GrPopover/chunks/{GrPopover-DDChM1jD.js → GrPopover-CofG-Tfe.js} +16 -8
  326. package/dist/components/GrPopover/chunks/GrPopover-CofG-Tfe.js.map +1 -0
  327. package/dist/components/GrPopover/index.js +2 -2
  328. package/dist/components/GrProgressBar/index.js +1 -1
  329. package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-BeUx1g1f.js → GrProgressCircle-D3yWXYDa.js} +1 -1
  330. package/dist/components/GrProgressCircle/chunks/{GrProgressCircle-BeUx1g1f.js.map → GrProgressCircle-D3yWXYDa.js.map} +1 -1
  331. package/dist/components/GrProgressCircle/index.js +2 -2
  332. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-DjF-5oD9.js → GrPromptDialog-DMhALhSS.js} +7 -7
  333. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DMhALhSS.js.map +1 -0
  334. package/dist/components/GrPromptDialog/index.js +1 -1
  335. package/dist/components/GrRadio/chunks/{GrRadio-BdhknbO8.js → GrRadio-C_rESc5g.js} +1 -1
  336. package/dist/components/GrRadio/chunks/GrRadio-C_rESc5g.js.map +1 -0
  337. package/dist/components/GrRadio/index.js +2 -2
  338. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-7w4bXIg_.js → GrRadioGroup-CdQO4G-U.js} +2 -2
  339. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-7w4bXIg_.js.map → GrRadioGroup-CdQO4G-U.js.map} +1 -1
  340. package/dist/components/GrRadioGroup/index.js +1 -1
  341. package/dist/components/GrRating/chunks/{GrRating-BSEtaibx.js → GrRating-IEiTOdnF.js} +1 -1
  342. package/dist/components/GrRating/chunks/{GrRating-BSEtaibx.js.map → GrRating-IEiTOdnF.js.map} +1 -1
  343. package/dist/components/GrRating/index.js +2 -2
  344. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-DA4q90Zt.js → GrResponseErrorBanner-C_skObtv.js} +1 -1
  345. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-DA4q90Zt.js.map → GrResponseErrorBanner-C_skObtv.js.map} +1 -1
  346. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BhP-xw2P.js → GrResponseErrorBanner-DudGc9LO.js} +4 -4
  347. package/dist/components/GrResponseErrorBanner/chunks/{GrResponseErrorBanner-BhP-xw2P.js.map → GrResponseErrorBanner-DudGc9LO.js.map} +1 -1
  348. package/dist/components/GrResponseErrorBanner/index.js +2 -2
  349. package/dist/components/GrSegmented/chunks/{GrSegmented-DKpo3cnC.js → GrSegmented-CB-VR-yL.js} +1 -1
  350. package/dist/components/GrSegmented/chunks/{GrSegmented-DKpo3cnC.js.map → GrSegmented-CB-VR-yL.js.map} +1 -1
  351. package/dist/components/GrSegmented/index.js +2 -2
  352. package/dist/components/GrSelect/chunks/{GrSelect-BA1wfX3c.js → GrSelect-BE1VNTiY.js} +96 -89
  353. package/dist/components/GrSelect/chunks/GrSelect-BE1VNTiY.js.map +1 -0
  354. package/dist/components/GrSelect/index.js +2 -2
  355. package/dist/components/GrSelect/styles.css +1 -1
  356. package/dist/components/GrSidebar/chunks/{GrSidebar-DY-LgIbS.js → GrSidebar-DxPhIiWs.js} +3 -3
  357. package/dist/components/GrSidebar/chunks/{GrSidebar-DY-LgIbS.js.map → GrSidebar-DxPhIiWs.js.map} +1 -1
  358. package/dist/components/GrSidebar/index.js +2 -2
  359. package/dist/components/GrSlider/chunks/{GrSlider-s99yAyz6.js → GrSlider-DJfeEl4h.js} +5 -4
  360. package/dist/components/GrSlider/chunks/GrSlider-DJfeEl4h.js.map +1 -0
  361. package/dist/components/GrSlider/index.js +2 -2
  362. package/dist/components/GrSortableList/chunks/{GrSortableList-BMXyxmRc.js → GrSortableList-DGs3Pi2J.js} +2 -2
  363. package/dist/components/GrSortableList/chunks/{GrSortableList-BMXyxmRc.js.map → GrSortableList-DGs3Pi2J.js.map} +1 -1
  364. package/dist/components/GrSortableList/index.js +2 -2
  365. package/dist/components/GrSplitter/chunks/{GrSplitter-B9_JrT7q.js → GrSplitter-MltjaADn.js} +1 -1
  366. package/dist/components/GrSplitter/chunks/{GrSplitter-B9_JrT7q.js.map → GrSplitter-MltjaADn.js.map} +1 -1
  367. package/dist/components/GrSplitter/index.js +2 -2
  368. package/dist/components/GrStatistic/chunks/{GrStatistic-BJQv5aOS.js → GrStatistic-qHVasK37.js} +2 -2
  369. package/dist/components/GrStatistic/chunks/GrStatistic-qHVasK37.js.map +1 -0
  370. package/dist/components/GrStatistic/index.js +2 -2
  371. package/dist/components/GrSteps/chunks/{GrSteps-Cce4rfr3.js → GrSteps-C2jxpZoN.js} +1 -1
  372. package/dist/components/GrSteps/chunks/{GrSteps-Cce4rfr3.js.map → GrSteps-C2jxpZoN.js.map} +1 -1
  373. package/dist/components/GrSteps/index.js +2 -2
  374. package/dist/components/GrSwitch/chunks/{GrSwitch-CHiIj9GT.js → GrSwitch-KRlRMwgp.js} +1 -1
  375. package/dist/components/GrSwitch/chunks/{GrSwitch-CHiIj9GT.js.map → GrSwitch-KRlRMwgp.js.map} +1 -1
  376. package/dist/components/GrSwitch/index.js +2 -2
  377. package/dist/components/GrTabPanels/chunks/GrTabPanels-BZQS8-JM.js.map +1 -1
  378. package/dist/components/GrTable/chunks/{GrTable-f3qCWa99.js → GrTable-Zcdz2St_.js} +1 -1
  379. package/dist/components/GrTable/chunks/GrTable-Zcdz2St_.js.map +1 -0
  380. package/dist/components/GrTable/index.js +2 -2
  381. package/dist/components/GrTabs/chunks/{GrTabs-CBHZkOFY.js → GrTabs-ugDnkk-2.js} +2 -2
  382. package/dist/components/GrTabs/chunks/{GrTabs-CBHZkOFY.js.map → GrTabs-ugDnkk-2.js.map} +1 -1
  383. package/dist/components/GrTabs/index.js +2 -2
  384. package/dist/components/GrTextarea/chunks/{GrTextarea-CNnkcIG1.js → GrTextarea-KREK75Bu.js} +1 -1
  385. package/dist/components/GrTextarea/chunks/{GrTextarea-CNnkcIG1.js.map → GrTextarea-KREK75Bu.js.map} +1 -1
  386. package/dist/components/GrTextarea/index.js +2 -2
  387. package/dist/components/GrTimeline/chunks/{GrTimeline-DIDdkTn7.js → GrTimeline-BiHpArsg.js} +1 -1
  388. package/dist/components/GrTimeline/chunks/{GrTimeline-DIDdkTn7.js.map → GrTimeline-BiHpArsg.js.map} +1 -1
  389. package/dist/components/GrTimeline/index.js +2 -2
  390. package/dist/components/GrToaster/chunks/{GrToaster-CC49q3a4.js → GrToaster-CUi3ldJ0.js} +6 -6
  391. package/dist/components/GrToaster/chunks/GrToaster-CUi3ldJ0.js.map +1 -0
  392. package/dist/components/GrToaster/index.js +2 -2
  393. package/dist/components/GrToaster/styles.css +1 -1
  394. package/dist/components/GrTooltip/chunks/{GrTooltip-B6AwE_UX.js → GrTooltip-BKFjqu0E.js} +4 -4
  395. package/dist/components/GrTooltip/chunks/GrTooltip-BKFjqu0E.js.map +1 -0
  396. package/dist/components/GrTooltip/index.js +2 -2
  397. package/dist/components/GrTree/chunks/{GrTree-J5q8aCya.js → GrTree-D5ozu6U4.js} +15 -25
  398. package/dist/components/GrTree/chunks/GrTree-D5ozu6U4.js.map +1 -0
  399. package/dist/components/GrTree/index.js +1 -1
  400. package/dist/components/GrTree/styles.css +1 -1
  401. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-DEfxWAc3.js → GrTreeSelect-Db_uKdNa.js} +18 -10
  402. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-Db_uKdNa.js.map +1 -0
  403. package/dist/components/GrTreeSelect/index.js +2 -2
  404. package/dist/components/GrValue/chunks/{GrValue-CZsuZ4x-.js → GrValue-ezkQM05Q.js} +1 -1
  405. package/dist/components/GrValue/chunks/{GrValue-CZsuZ4x-.js.map → GrValue-ezkQM05Q.js.map} +1 -1
  406. package/dist/components/GrValue/index.js +2 -2
  407. package/dist/directives/loading.js +1 -1
  408. package/dist/granular-provider-node.js +1 -1
  409. package/dist/granular-provider.js +1 -1
  410. package/dist/index.js +145 -145
  411. package/dist/styles/tokens.css +11 -0
  412. package/dist/theme.js +1 -1
  413. package/dist/tokens.js +1 -1
  414. package/dist/types/components/GrAutocomplete/GrAutocomplete.vue.d.ts +4 -3
  415. package/dist/types/components/GrAutocomplete/grAutocompleteStyles.d.ts +2 -2
  416. package/dist/types/components/GrBadge/GrBadge.vue.d.ts +3 -3
  417. package/dist/types/components/GrBadgeWrap/GrBadgeWrap.vue.d.ts +3 -3
  418. package/dist/types/components/GrBadgeWrap/grBadgeWrapStyles.d.ts +1 -1
  419. package/dist/types/components/GrBottomNav/grBottomNavStyles.d.ts +1 -1
  420. package/dist/types/components/GrButton/GrButton.vue.d.ts +7 -7
  421. package/dist/types/components/GrButtonGroup/GrButtonGroup.vue.d.ts +3 -3
  422. package/dist/types/components/GrCard/GrCard.vue.d.ts +7 -9
  423. package/dist/types/components/GrCheckbox/GrCheckbox.vue.d.ts +1 -1
  424. package/dist/types/components/GrCheckboxGroup/GrCheckboxGroup.vue.d.ts +1 -1
  425. package/dist/types/components/GrChip/GrChip.vue.d.ts +19 -1
  426. package/dist/types/components/GrChip/grChipStyles.d.ts +10 -6
  427. package/dist/types/components/GrChipGroup/GrChipGroup.vue.d.ts +2 -2
  428. package/dist/types/components/GrCollapse/GrCollapseItem.vue.d.ts +9 -11
  429. package/dist/types/components/GrColorPicker/GrColorPicker.vue.d.ts +1 -1
  430. package/dist/types/components/GrCommandPalette/GrCommandPalette.vue.d.ts +13 -13
  431. package/dist/types/components/GrCommandPalette/grCommandPaletteStyles.d.ts +5 -5
  432. package/dist/types/components/GrConfigProvider/GrConfigProvider.vue.d.ts +3 -3
  433. package/dist/types/components/GrConfirmDialog/GrConfirmDialog.vue.d.ts +9 -9
  434. package/dist/types/components/GrContextMenu/GrContextMenu.vue.d.ts +9 -9
  435. package/dist/types/components/GrDataTable/GrDataTable.vue.d.ts +9 -17
  436. package/dist/types/components/GrDescriptionList/GrDescriptionList.vue.d.ts +16 -13
  437. package/dist/types/components/GrDialog/GrDialogFooter.vue.d.ts +3 -3
  438. package/dist/types/components/GrDivider/GrDivider.vue.d.ts +3 -3
  439. package/dist/types/components/GrDrawer/grDrawerStyles.d.ts +1 -1
  440. package/dist/types/components/GrDropdown/GrDropdown.vue.d.ts +16 -20
  441. package/dist/types/components/GrDropdownMenu/GrDropdownMenu.vue.d.ts +16 -19
  442. package/dist/types/components/GrDropdownMenu/GrDropdownMenuColumn.vue.d.ts +3 -3
  443. package/dist/types/components/GrDropdownMenu/GrDropdownMenuColumns.vue.d.ts +3 -3
  444. package/dist/types/components/GrDropdownMenu/GrDropdownMenuGroup.vue.d.ts +3 -3
  445. package/dist/types/components/GrDropdownMenu/GrDropdownMenuHeader.vue.d.ts +3 -3
  446. package/dist/types/components/GrDropdownMenu/GrDropdownMenuItem.vue.d.ts +7 -7
  447. package/dist/types/components/GrDropdownMenu/GrDropdownMenuList.vue.d.ts +3 -3
  448. package/dist/types/components/GrDropdownMenu/grDropdownMenuStyles.d.ts +3 -3
  449. package/dist/types/components/GrForm/GrForm.vue.d.ts +5 -1
  450. package/dist/types/components/GrForm/index.d.ts +1 -1
  451. package/dist/types/components/GrFormField/GrFormField.vue.d.ts +11 -11
  452. package/dist/types/components/GrFormFile/GrFormFile.vue.d.ts +1 -1
  453. package/dist/types/components/GrFormSection/grFormSectionStyles.d.ts +2 -2
  454. package/dist/types/components/GrIcon/GrIcon.vue.d.ts +3 -3
  455. package/dist/types/components/GrImageViewer/GrImageViewer.vue.d.ts +6 -25
  456. package/dist/types/components/GrInput/GrInput.vue.d.ts +1 -1
  457. package/dist/types/components/GrInput/grInputStyles.d.ts +4 -4
  458. package/dist/types/components/GrInputTag/GrInputTag.vue.d.ts +2 -2
  459. package/dist/types/components/GrInputTag/grInputTagStyles.d.ts +0 -6
  460. package/dist/types/components/GrKbd/GrKbd.vue.d.ts +3 -3
  461. package/dist/types/components/GrKbd/grKbdStyles.d.ts +5 -0
  462. package/dist/types/components/GrLink/GrLink.vue.d.ts +3 -3
  463. package/dist/types/components/GrList/GrList.vue.d.ts +12 -6
  464. package/dist/types/components/GrList/GrListItem.vue.d.ts +9 -9
  465. package/dist/types/components/GrList/grListStyles.d.ts +3 -3
  466. package/dist/types/components/GrNavbar/grNavbarStyles.d.ts +1 -1
  467. package/dist/types/components/GrNumberInput/GrNumberInput.vue.d.ts +1 -1
  468. package/dist/types/components/GrNumberInput/numberInputMath.d.ts +1 -6
  469. package/dist/types/components/GrPopover/GrPopover.vue.d.ts +16 -17
  470. package/dist/types/components/GrPromptDialog/GrPromptDialog.vue.d.ts +9 -9
  471. package/dist/types/components/GrRadio/GrRadio.vue.d.ts +6 -8
  472. package/dist/types/components/GrRadioGroup/GrRadioGroup.vue.d.ts +1 -1
  473. package/dist/types/components/GrRating/GrRating.vue.d.ts +1 -1
  474. package/dist/types/components/GrSegmented/GrSegmented.vue.d.ts +1 -1
  475. package/dist/types/components/GrSelect/grSelectStyles.d.ts +1 -1
  476. package/dist/types/components/GrSidebar/GrSidebar.vue.d.ts +7 -7
  477. package/dist/types/components/GrSidebar/grSidebarStyles.d.ts +4 -4
  478. package/dist/types/components/GrSlider/GrSlider.vue.d.ts +1 -1
  479. package/dist/types/components/GrSortableList/grSortableListStyles.d.ts +2 -2
  480. package/dist/types/components/GrSplitter/GrSplitter.vue.d.ts +1 -1
  481. package/dist/types/components/GrStatistic/GrStatistic.vue.d.ts +13 -13
  482. package/dist/types/components/GrSteps/grStepsStyles.d.ts +2 -2
  483. package/dist/types/components/GrSwitch/GrSwitch.vue.d.ts +1 -1
  484. package/dist/types/components/GrTabPanels/GrTabPanel.vue.d.ts +3 -3
  485. package/dist/types/components/GrTabPanels/GrTabPanels.vue.d.ts +3 -3
  486. package/dist/types/components/GrTable/GrTable.vue.d.ts +13 -13
  487. package/dist/types/components/GrTextarea/GrTextarea.vue.d.ts +1 -1
  488. package/dist/types/components/GrTreeSelect/grTreeSelectStyles.d.ts +1 -1
  489. package/dist/types/components/shared/classTokens.d.ts +8 -0
  490. package/dist/types/components/shared/numericStep.d.ts +14 -0
  491. package/dist/types/components/shared/overlayTransition.d.ts +33 -0
  492. package/dist/web-types.json +292 -218
  493. package/package.json +2 -2
  494. package/tokens/foundation.json +41 -1
  495. package/dist/chunks/classTokens-BzazaERD.js +0 -6
  496. package/dist/chunks/classTokens-BzazaERD.js.map +0 -1
  497. package/dist/chunks/config-9PYRZlKE.js.map +0 -1
  498. package/dist/chunks/config-B4w5gBD0.js.map +0 -1
  499. package/dist/chunks/config-BEVBsvni2.js.map +0 -1
  500. package/dist/chunks/config-BN4sXYXn.js.map +0 -1
  501. package/dist/chunks/config-BViooYNv.js.map +0 -1
  502. package/dist/chunks/config-B_qi4Fma.js.map +0 -1
  503. package/dist/chunks/config-Baj7Wvx-.js.map +0 -1
  504. package/dist/chunks/config-BbY2SKGE.js.map +0 -1
  505. package/dist/chunks/config-BfsBepkH.js.map +0 -1
  506. package/dist/chunks/config-Bpt9Xbxm.js.map +0 -1
  507. package/dist/chunks/config-BsPDQ0dS.js.map +0 -1
  508. package/dist/chunks/config-BtXRpAtq.js.map +0 -1
  509. package/dist/chunks/config-BuGlNPE92.js.map +0 -1
  510. package/dist/chunks/config-C8tVRv8i.js.map +0 -1
  511. package/dist/chunks/config-CIcynHGr.js.map +0 -1
  512. package/dist/chunks/config-CN2ULSQL.js.map +0 -1
  513. package/dist/chunks/config-CN970ZcJ.js.map +0 -1
  514. package/dist/chunks/config-COvrUfhR.js.map +0 -1
  515. package/dist/chunks/config-Cl4ST6Qd.js.map +0 -1
  516. package/dist/chunks/config-Cwd3yjRw.js.map +0 -1
  517. package/dist/chunks/config-D7zgE_Gr.js.map +0 -1
  518. package/dist/chunks/config-D94Z9po5.js.map +0 -1
  519. package/dist/chunks/config-DAX8Deh1.js.map +0 -1
  520. package/dist/chunks/config-DBmdgoVf.js.map +0 -1
  521. package/dist/chunks/config-DCFvmHEv.js.map +0 -1
  522. package/dist/chunks/config-DGWFal5h.js.map +0 -1
  523. package/dist/chunks/config-DKdlqXiY.js.map +0 -1
  524. package/dist/chunks/config-DSJY6aEl.js.map +0 -1
  525. package/dist/chunks/config-DWN4x6_e.js.map +0 -1
  526. package/dist/chunks/config-Dgj1Q6JY.js.map +0 -1
  527. package/dist/chunks/config-Dguto_6o.js.map +0 -1
  528. package/dist/chunks/config-DtgYuGUn2.js.map +0 -1
  529. package/dist/chunks/config-rkcKArZQ.js.map +0 -1
  530. package/dist/chunks/config-vSji8w90.js.map +0 -1
  531. package/dist/chunks/config-zjeAJ4ho2.js.map +0 -1
  532. package/dist/chunks/context-BfIQv7m12.js.map +0 -1
  533. package/dist/chunks/generated-CJe6hdiE.js.map +0 -1
  534. package/dist/chunks/grBadgeStyles-C1S56Alo.js.map +0 -1
  535. package/dist/chunks/grDropdownMenuStyles-D1LOkdVj.js.map +0 -1
  536. package/dist/chunks/grInputStyles-CJeMhUe5.js.map +0 -1
  537. package/dist/chunks/grKbdStyles-CeZhGQHr.js.map +0 -1
  538. package/dist/chunks/grLinkStyles-BoL8QYcV.js.map +0 -1
  539. package/dist/chunks/grPopoverStyles-Cke_BZsM.js.map +0 -1
  540. package/dist/chunks/grRadioStyles-BTjGNhtU.js.map +0 -1
  541. package/dist/chunks/grSelectStyles-eTz4uPMP.js.map +0 -1
  542. package/dist/chunks/grTextareaStyles-iOcHuVMM.js.map +0 -1
  543. package/dist/chunks/useMenuItemsFocus-OyOnIAlr.js.map +0 -1
  544. package/dist/components/GrAutocomplete/chunks/GrAutocomplete-D9c9BNFg.js.map +0 -1
  545. package/dist/components/GrBadge/chunks/GrBadge-_9rCHuE1.js.map +0 -1
  546. package/dist/components/GrBadgeWrap/chunks/GrBadgeWrap-DDoFQscR.js.map +0 -1
  547. package/dist/components/GrButton/chunks/GrButton-DCz-Wn-V.js.map +0 -1
  548. package/dist/components/GrButtonGroup/chunks/GrButtonGroup-BQo5VQ_c.js.map +0 -1
  549. package/dist/components/GrCard/chunks/GrCard-aQIjk6I9.js.map +0 -1
  550. package/dist/components/GrChip/chunks/GrChip-BnL2FedO.js.map +0 -1
  551. package/dist/components/GrCommandPalette/chunks/GrCommandPalette-BPsVN_XU.js.map +0 -1
  552. package/dist/components/GrConfirmDialog/chunks/GrConfirmDialog-CwXNLyzk.js.map +0 -1
  553. package/dist/components/GrContextMenu/chunks/GrContextMenu-BbAJholy.js.map +0 -1
  554. package/dist/components/GrDataTable/chunks/GrDataTable-NRbrXpdx.js.map +0 -1
  555. package/dist/components/GrDescriptionList/chunks/GrDescriptionList-1mICfrqX.js.map +0 -1
  556. package/dist/components/GrDialog/chunks/GrDialog-5Y5K87ss.js.map +0 -1
  557. package/dist/components/GrDivider/chunks/GrDivider-CAhm9jbE.js.map +0 -1
  558. package/dist/components/GrDropdown/chunks/GrDropdown-BfTmdPyh.js.map +0 -1
  559. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenu-l5HEqzjr.js.map +0 -1
  560. package/dist/components/GrDropdownMenu/chunks/GrDropdownMenuList-BGA_xNVo.js.map +0 -1
  561. package/dist/components/GrForm/chunks/GrForm-B_Qq_13k.js.map +0 -1
  562. package/dist/components/GrIcon/chunks/GrIcon-bQwtZtYT.js.map +0 -1
  563. package/dist/components/GrImageViewer/chunks/GrImageViewer-ng7el4wn.js.map +0 -1
  564. package/dist/components/GrInputTag/chunks/GrInputTag-UI8kIB_F.js.map +0 -1
  565. package/dist/components/GrLink/chunks/GrLink-BQb7U4so.js.map +0 -1
  566. package/dist/components/GrList/chunks/GrList-B5bclmHV.js.map +0 -1
  567. package/dist/components/GrNumberInput/chunks/GrNumberInput-V2mZvDDC.js.map +0 -1
  568. package/dist/components/GrPopover/chunks/GrPopover-DDChM1jD.js.map +0 -1
  569. package/dist/components/GrPromptDialog/chunks/GrPromptDialog-DjF-5oD9.js.map +0 -1
  570. package/dist/components/GrRadio/chunks/GrRadio-BdhknbO8.js.map +0 -1
  571. package/dist/components/GrSelect/chunks/GrSelect-BA1wfX3c.js.map +0 -1
  572. package/dist/components/GrSlider/chunks/GrSlider-s99yAyz6.js.map +0 -1
  573. package/dist/components/GrStatistic/chunks/GrStatistic-BJQv5aOS.js.map +0 -1
  574. package/dist/components/GrTable/chunks/GrTable-f3qCWa99.js.map +0 -1
  575. package/dist/components/GrToaster/chunks/GrToaster-CC49q3a4.js.map +0 -1
  576. package/dist/components/GrTooltip/chunks/GrTooltip-B6AwE_UX.js.map +0 -1
  577. package/dist/components/GrTree/chunks/GrTree-J5q8aCya.js.map +0 -1
  578. package/dist/components/GrTreeSelect/chunks/GrTreeSelect-DEfxWAc3.js.map +0 -1
  579. /package/dist/chunks/{config-BuGlNPE92.js → config-BuGlNPE9.js} +0 -0
  580. /package/dist/chunks/{config-DBmdgoVf.js → config-DBmdgoVf2.js} +0 -0
  581. /package/dist/chunks/{context-BfIQv7m12.js → context-BfIQv7m1.js} +0 -0
@@ -1,7 +1,4 @@
1
- import { t as splitClassTokens } from "./classTokens-BzazaERD.js";
2
- import { i as radiusClass, s as toneClass } from "./grBadgeStyles-C1S56Alo.js";
3
- import { t as grBadgeSafelist } from "./safelist-DOfCQR5O.js";
4
- import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
1
+ import { i as radiusClass, s as toneClass } from "./grBadgeStyles-D8Mz73B5.js";
5
2
  //#region src/components/GrChip/grChipStyles.ts
6
3
  /**
7
4
  * Размеры у чипа свои, а не бейджевые.
@@ -16,10 +13,10 @@ import { defineGranularComponent } from "@feugene/unocss-preset-granular/contrac
16
13
  * должен стоять с бейджем в одном ряду и не расходиться с ним по цвету.
17
14
  */
18
15
  var chipSizeClassBySize = {
19
- xs: "h-6 gap-1 px-2 text-[length:var(--gr-control-text-xs)]",
20
- sm: "h-7 gap-1 px-2.5 text-[length:var(--gr-control-text-sm)]",
21
- md: "h-8 gap-1.5 px-3 text-[length:var(--gr-control-text-md)]",
22
- lg: "h-9 gap-1.5 px-3.5 text-[length:var(--gr-control-text-lg)]"
16
+ xs: "h-6 gap-1 px-2 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
17
+ sm: "h-7 gap-1 px-2.5 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
18
+ md: "h-8 gap-1.5 px-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]",
19
+ lg: "h-9 gap-1.5 px-3.5 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]"
23
20
  };
24
21
  /** Крестик и иконка не растут вместе с кеглем один в один — плитка бы разъехалась. */
25
22
  var chipIconSizeClassBySize = {
@@ -28,12 +25,7 @@ var chipIconSizeClassBySize = {
28
25
  md: "h-4 w-4",
29
26
  lg: "h-4 w-4"
30
27
  };
31
- /**
32
- * `leading-none` осознанно: у контрольной шкалы парных ступеней межстрочного
33
- * нет, и без явного значения плитка поехала бы за `line-height` приложения.
34
- * Тот же приём у `GrBadge` и `GrKbd`.
35
- */
36
- var chipRootClass = "inline-flex max-w-full items-center border align-middle leading-none whitespace-nowrap";
28
+ var chipRootClass = "inline-flex max-w-full items-center border align-middle whitespace-nowrap";
37
29
  /** Подпись жмётся, а не ломает ряд: чип с длинным тегом не должен рвать раскладку. */
38
30
  var chipLabelClass = "min-w-0 truncate";
39
31
  var chipInteractiveClass = "cursor-pointer transition-colors duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-out)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] focus-visible:ring-offset-1 focus-visible:ring-offset-[var(--gr-bg)]";
@@ -73,35 +65,21 @@ function grChipClass(options) {
73
65
  options.selected ? chipSelectedClass : ""
74
66
  ].filter(Boolean).join(" ");
75
67
  }
76
- //#endregion
77
- //#region src/components/GrChip/safelist.ts
78
68
  /**
79
- * Тона и радиусы приходят из `grBadgeStyles.ts`, поэтому их safelist берётся
80
- * ссылкой, а не копией: копия разошлась бы с оригиналом молча. Ребро
81
- * `GrChip GrBadge` объявлено в `config.ts` без него пресет не подмешает
82
- * стили бейджа при гранулярной селекции, и чип придёт бесцветным.
69
+ * Ступень чипа, равная по кеглю ступени бейджа.
70
+ *
71
+ * Нужна там, где чип заменил собой бейдж внутри контрола (`GrInputTag`,
72
+ * `GrAutocomplete`, `GrSelect`): проп `tagSize` у них публичный, и `md` обязан
73
+ * означать для потребителя то же, что означал. Шкалы сдвинуты на ступень —
74
+ * бейдж `md` это 13px, а чип 13px — это `sm`.
83
75
  */
84
- var grChipSafelist = [.../* @__PURE__ */ new Set([
85
- ...grBadgeSafelist,
86
- ...Object.values(chipSizeClassBySize).flatMap(splitClassTokens),
87
- ...Object.values(chipIconSizeClassBySize).flatMap(splitClassTokens),
88
- ...splitClassTokens(chipRootClass),
89
- ...splitClassTokens(chipLabelClass),
90
- ...splitClassTokens(chipInteractiveClass),
91
- ...splitClassTokens(chipDisabledClass),
92
- ...splitClassTokens(chipSelectedClass),
93
- ...splitClassTokens(chipCloseClass),
94
- ...splitClassTokens(chipCloseButtonClass),
95
- ...splitClassTokens(chipIconClass),
96
- "h-full",
97
- "w-full"
98
- ])];
99
- //#endregion
100
- //#region src/components/GrChip/config.ts
101
- var grChipConfig = defineGranularComponent(import.meta.url, {
102
- name: "GrChip",
103
- dependencies: ["GrBadge"],
104
- safelist: grChipSafelist
105
- });
76
+ function chipSizeForBadgeScale(size) {
77
+ return {
78
+ xs: "xs",
79
+ sm: "xs",
80
+ md: "sm",
81
+ lg: "md"
82
+ }[size];
83
+ }
106
84
  //#endregion
107
- export { chipIconClass as a, grChipClass as c, chipCloseClass as i, grChipSafelist as n, chipIconSizeClassBySize as o, chipCloseButtonClass as r, chipLabelClass as s, grChipConfig as t };
85
+ export { chipIconSizeClassBySize as a, chipRootClass as c, chipSizeForBadgeScale as d, grChipClass as f, chipIconClass as i, chipSelectedClass as l, chipCloseClass as n, chipInteractiveClass as o, chipDisabledClass as r, chipLabelClass as s, chipCloseButtonClass as t, chipSizeClassBySize as u };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grChipStyles-3JZApw03.js","names":[],"sources":["../../src/components/GrChip/grChipStyles.ts"],"sourcesContent":["import type { GrBadgeRadius, GrBadgeTone } from '../GrBadge/grBadgeStyles'\nimport { radiusClass, toneClass } from '../GrBadge/grBadgeStyles'\n\nimport type { GrComponentSize } from '../shared/sizes'\n\nexport type GrChipTone = GrBadgeTone\nexport type GrChipSize = GrComponentSize\nexport type GrChipRadius = GrBadgeRadius\n\n/**\n * Размеры у чипа свои, а не бейджевые.\n *\n * Шкал кегля в пакете две: контрольная `xs…lg` (12/13/14/16) у полей и мельче\n * `3xs…md` (10/11/12/14) у метки — `GrBadge`, `GrTooltip`. Чип берёт\n * контрольную: по нему кликают, и цель нажатия обязана совпадать с соседним\n * контролом, а не с подписью. Отсюда же явная высота — у метки её нет вовсе,\n * а у цели нажатия она и есть главное.\n *\n * Тона и радиусы при этом переиспользуются у `GrBadge` без изменений: чип\n * должен стоять с бейджем в одном ряду и не расходиться с ним по цвету.\n */\nexport const chipSizeClassBySize: Record<GrChipSize, string> = {\n xs: 'h-6 gap-1 px-2 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'h-7 gap-1 px-2.5 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'h-8 gap-1.5 px-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]',\n lg: 'h-9 gap-1.5 px-3.5 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]',\n}\n\n/** Крестик и иконка не растут вместе с кеглем один в один — плитка бы разъехалась. */\nexport const chipIconSizeClassBySize: Record<GrChipSize, string> = {\n xs: 'h-3 w-3',\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-4 w-4',\n}\n\nexport const chipRootClass = 'inline-flex max-w-full items-center border align-middle whitespace-nowrap'\n\n/** Подпись жмётся, а не ломает ряд: чип с длинным тегом не должен рвать раскладку. */\nexport const chipLabelClass = 'min-w-0 truncate'\n\nexport const chipInteractiveClass = 'cursor-pointer transition-colors duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-out)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)] focus-visible:ring-offset-1 focus-visible:ring-offset-[var(--gr-bg)]'\n\n/**\n * Disabled гасится токеном фона, а не `opacity`: прозрачность разбавляет\n * выверенные на AA токены текста и роняет контраст (`library-conventions.md`).\n */\nexport const chipDisabledClass = 'cursor-not-allowed bg-[var(--gr-chip-disabled-bg,var(--gr-muted))] text-[var(--gr-chip-disabled-fg,var(--gr-disabled-fg))] border-[var(--gr-chip-disabled-brd,var(--gr-brd))]'\n\n/**\n * Выбранный чип берёт **плотный** вариант своего тона, а не оттенок соседнего.\n *\n * Тон остаётся тем же — иначе набор фильтров превратился бы в радугу, — но\n * меняется вес заливки: светлая подложка сменяется насыщенной, как у\n * filled-бейджа. Это перепад светлоты, а не оттенка, поэтому различие\n * переживает и монохром, и дальтонизм.\n *\n * Одной заливки всё же мало: **`font-600` остаётся вторым, нецветовым\n * каналом** (WCAG 1.4.1). Он же вытягивает случай, когда потребитель поставил\n * `dark` всему набору и заливка у выбранного и невыбранного совпадает.\n */\nexport const chipSelectedClass = 'font-600'\n\n/** Крестик наследует цвет тона: своей роли у него нет, он часть плитки. */\nexport const chipCloseClass = 'shrink-0 inline-flex items-center justify-center rounded-[var(--gr-radius-full)] text-current transition-colors duration-[var(--gr-duration-fast)] ease-[var(--gr-ease-out)] hover:bg-[color-mix(in_srgb,currentColor_18%,transparent)]'\n\n/**\n * Крестик-кнопка стоит в таб-порядке и обязана показывать фокус сама: она\n * появляется только там, где чип не виджет, то есть кольца на корне нет.\n */\nexport const chipCloseButtonClass = `${chipCloseClass} cursor-pointer focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]`\n\nexport const chipIconClass = 'shrink-0'\n\nexport function grChipClass(options: {\n tone: GrChipTone\n dark: boolean\n size: GrChipSize\n radius: GrChipRadius\n interactive: boolean\n selected: boolean\n disabled: boolean\n}): string {\n return [\n chipRootClass,\n radiusClass(options.radius, options.size),\n chipSizeClassBySize[options.size],\n // Выбор поднимает вес заливки до плотного варианта того же тона.\n options.disabled ? chipDisabledClass : toneClass(options.tone, options.dark || options.selected),\n options.interactive && !options.disabled ? chipInteractiveClass : '',\n options.selected ? chipSelectedClass : '',\n ].filter(Boolean).join(' ')\n}\n\n/**\n * Ступень чипа, равная по кеглю ступени бейджа.\n *\n * Нужна там, где чип заменил собой бейдж внутри контрола (`GrInputTag`,\n * `GrAutocomplete`, `GrSelect`): проп `tagSize` у них публичный, и `md` обязан\n * означать для потребителя то же, что означал. Шкалы сдвинуты на ступень —\n * бейдж `md` это 13px, а чип 13px — это `sm`.\n */\nexport function chipSizeForBadgeScale(size: GrChipSize): GrChipSize {\n const byBadgeStep: Record<GrChipSize, GrChipSize> = { xs: 'xs', sm: 'xs', md: 'sm', lg: 'md' }\n\n return byBadgeStep[size]\n}\n"],"mappings":";;;;;;;;;;;;;;AAqBA,IAAa,sBAAkD;CAC7D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;AAGA,IAAa,0BAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,gBAAgB;;AAG7B,IAAa,iBAAiB;AAE9B,IAAa,uBAAuB;;;;;AAMpC,IAAa,oBAAoB;;;;;;;;;;;;;AAcjC,IAAa,oBAAoB;;AAGjC,IAAa,iBAAiB;;;;;AAM9B,IAAa,uBAAuB,GAAG,eAAe;AAEtD,IAAa,gBAAgB;AAE7B,SAAgB,YAAY,SAQjB;CACT,OAAO;EACL;EACA,YAAY,QAAQ,QAAQ,QAAQ,IAAI;EACxC,oBAAoB,QAAQ;EAE5B,QAAQ,WAAW,oBAAoB,UAAU,QAAQ,MAAM,QAAQ,QAAQ,QAAQ,QAAQ;EAC/F,QAAQ,eAAe,CAAC,QAAQ,WAAW,uBAAuB;EAClE,QAAQ,WAAW,oBAAoB;CACzC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B;;;;;;;;;AAUA,SAAgB,sBAAsB,MAA8B;CAGlE,OAAO;EAF+C,IAAI;EAAM,IAAI;EAAM,IAAI;EAAM,IAAI;CAEjF,EAAY;AACrB"}
@@ -23,7 +23,7 @@ var colsClass = {
23
23
  * достаёт. Радиус в базовом классе, а не отдельной константой: hover, disabled и
24
24
  * кольцо фокуса висят на одном элементе.
25
25
  */
26
- var itemBaseClass = "w-full min-h-10 px-4 py-2.5 rounded-[var(--gr-radius-md)] flex items-center gap-2 text-[length:var(--gr-text-sm)] transition-colors duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
26
+ var itemBaseClass = "w-full min-h-10 px-4 py-2.5 rounded-[var(--gr-radius-md)] flex items-center gap-2 text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)] transition-colors duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
27
27
  var itemVariantClass = {
28
28
  default: "text-[var(--gr-fg)]",
29
29
  danger: "text-[var(--gr-danger-text)]"
@@ -31,8 +31,8 @@ var itemVariantClass = {
31
31
  var itemInteractiveClass = "cursor-pointer hover:bg-[var(--gr-accent)] hover:text-[var(--gr-accent-fg)]";
32
32
  var itemDisabledClass = "cursor-not-allowed pointer-events-none bg-[var(--gr-muted)] text-[var(--gr-muted-fg)]";
33
33
  var itemIndicatorClass = "h-3.5 w-3.5 shrink-0";
34
- var itemShortcutClass = "ml-auto pl-4 text-[length:var(--gr-text-xs)] text-[var(--gr-muted-fg)]";
35
- var headerClass = "px-4 py-2 text-[length:var(--gr-text-xs)] tracking-wide text-[var(--gr-muted-fg)]";
34
+ var itemShortcutClass = "ml-auto pl-4 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)]";
35
+ var headerClass = "px-4 py-2 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] tracking-wide text-[var(--gr-muted-fg)]";
36
36
  var listBaseClass = "w-full";
37
37
  var dividersClass = "divide-y divide-[var(--gr-brd)]";
38
38
  var borderTopClass = "border-t border-[var(--gr-brd)]";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grDropdownMenuStyles-DG3aYHkT.js","names":[],"sources":["../../src/components/GrDropdownMenu/grDropdownMenuStyles.ts"],"sourcesContent":["export type GrDropdownMenuItemAlign = 'left' | 'center' | 'right'\nexport type GrDropdownMenuItemVariant = 'default' | 'danger'\nexport type GrDropdownMenuHeaderAlign = GrDropdownMenuItemAlign\nexport type GrDropdownMenuColumnAlign = GrDropdownMenuItemAlign\nexport type GrDropdownMenuColumnsCount = 2 | 3 | 4\n\nexport const alignClass: Record<GrDropdownMenuItemAlign, string> = {\n left: 'justify-start text-left',\n center: 'justify-center text-center',\n right: 'justify-end text-right',\n}\n\nexport const textAlignClass: Record<GrDropdownMenuHeaderAlign, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nexport const colsClass: Record<GrDropdownMenuColumnsCount, string> = {\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n}\n\n/**\n * Радиус здесь не украшение: фон подсветки лежит на самом пункте, а панель\n * `GrDropdown` скруглена на 16 px и содержимое не обрезает. Прямоугольник во всю\n * ширину заливал бы угловые сегменты, вырезанные этим радиусом. Восемь\n * пикселей — та же ступень, что у опций `GrSelect` и `GrAutocomplete`; внутренний\n * угол панели после рамки и поля ≈ 11 px, так что подсветка до скругления не\n * достаёт. Радиус в базовом классе, а не отдельной константой: hover, disabled и\n * кольцо фокуса висят на одном элементе.\n */\nexport const itemBaseClass = 'w-full min-h-10 px-4 py-2.5 rounded-[var(--gr-radius-md)] flex items-center gap-2 text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)] transition-colors duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\n\n// Насыщенный тон как цвет текста запрещён — для текста есть `-text`-роль.\nexport const itemVariantClass: Record<GrDropdownMenuItemVariant, string> = {\n default: 'text-[var(--gr-fg)]',\n danger: 'text-[var(--gr-danger-text)]',\n}\n\nexport const itemInteractiveClass = 'cursor-pointer hover:bg-[var(--gr-accent)] hover:text-[var(--gr-accent-fg)]'\n\n// Disabled гасится фоном, а не `opacity`: прозрачность разбавляет выверенные на\n// AA токены текста. `pointer-events-none` оставлен — он же гасит hover.\nexport const itemDisabledClass = 'cursor-not-allowed pointer-events-none bg-[var(--gr-muted)] text-[var(--gr-muted-fg)]'\n\nexport const itemIndicatorClass = 'h-3.5 w-3.5 shrink-0'\nexport const itemShortcutClass = 'ml-auto pl-4 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)]'\n\nexport const headerClass = 'px-4 py-2 text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] tracking-wide text-[var(--gr-muted-fg)]'\n\nexport const listBaseClass = 'w-full'\nexport const dividersClass = 'divide-y divide-[var(--gr-brd)]'\nexport const borderTopClass = 'border-t border-[var(--gr-brd)]'\nexport const borderBottomClass = 'border-b border-[var(--gr-brd)]'\n\nexport const columnsBaseClass = 'w-full grid divide-x divide-[var(--gr-brd)]'\nexport const columnBaseClass = 'px-3 py-2 flex items-center'\n\nexport const dividerClass = 'border-t border-[var(--gr-brd)]'\nexport const dividerInsetClass = 'mx-2'\n\nexport function grDropdownMenuItemClass(options: {\n align: GrDropdownMenuItemAlign\n variant: GrDropdownMenuItemVariant\n disabled: boolean\n}): string {\n return [\n itemBaseClass,\n alignClass[options.align],\n options.disabled ? itemDisabledClass : itemVariantClass[options.variant],\n options.disabled ? '' : itemInteractiveClass,\n ].filter(Boolean).join(' ')\n}\n\nexport function grDropdownMenuListClass(options: {\n dividers: boolean\n borderTop: boolean\n borderBottom: boolean\n}): string {\n return [\n listBaseClass,\n options.dividers ? dividersClass : '',\n options.borderTop ? borderTopClass : '',\n options.borderBottom ? borderBottomClass : '',\n ].filter(Boolean).join(' ')\n}\n"],"mappings":";AAMA,IAAa,aAAsD;CACjE,MAAM;CACN,QAAQ;CACR,OAAO;AACT;AAEA,IAAa,iBAA4D;CACvE,MAAM;CACN,QAAQ;CACR,OAAO;AACT;AAEA,IAAa,YAAwD;CACnE,GAAG;CACH,GAAG;CACH,GAAG;AACL;;;;;;;;;;AAWA,IAAa,gBAAgB;AAG7B,IAAa,mBAA8D;CACzE,SAAS;CACT,QAAQ;AACV;AAEA,IAAa,uBAAuB;AAIpC,IAAa,oBAAoB;AAEjC,IAAa,qBAAqB;AAClC,IAAa,oBAAoB;AAEjC,IAAa,cAAc;AAE3B,IAAa,gBAAgB;AAC7B,IAAa,gBAAgB;AAC7B,IAAa,iBAAiB;AAC9B,IAAa,oBAAoB;AAEjC,IAAa,mBAAmB;AAChC,IAAa,kBAAkB;AAE/B,IAAa,eAAe;AAC5B,IAAa,oBAAoB;AAEjC,SAAgB,wBAAwB,SAI7B;CACT,OAAO;EACL;EACA,WAAW,QAAQ;EACnB,QAAQ,WAAW,oBAAoB,iBAAiB,QAAQ;EAChE,QAAQ,WAAW,KAAK;CAC1B,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B;AAEA,SAAgB,wBAAwB,SAI7B;CACT,OAAO;EACL;EACA,QAAQ,WAAW,gBAAgB;EACnC,QAAQ,YAAY,iBAAiB;EACrC,QAAQ,eAAe,oBAAoB;CAC7C,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B"}
@@ -1,4 +1,4 @@
1
- import { t as splitClassTokens } from "./classTokens-BzazaERD.js";
1
+ import { n as splitClassTokens } from "./classTokens-8v2XC74x.js";
2
2
  //#region src/components/GrIcon/grIconStyles.ts
3
3
  /**
4
4
  * Шкала размеров — токенами, а не числами: иконка обязана масштабироваться
@@ -1 +1 @@
1
- {"version":3,"file":"grIconStyles-BwJrml2L.js","names":[],"sources":["../../src/components/GrIcon/grIconStyles.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\nimport type { GrComponentSize } from '../shared/sizes'\nimport type { GrTone } from '../shared/tones'\n\nexport type GrIconSize = GrComponentSize\n\n/** Цвет иконки: тон палитры либо наследование от родителя. */\nexport type GrIconTone = GrTone | 'current'\n\n/**\n * Шкала размеров — токенами, а не числами: иконка обязана масштабироваться\n * вместе с темой, а не вместе с пересборкой пакета. Произвольный размер\n * задаётся числом прямо на компоненте, это escape-hatch мимо шкалы.\n */\nexport const iconSizeVarBySize: Record<GrIconSize, string> = {\n xs: 'var(--gr-icon-size-xs)',\n sm: 'var(--gr-icon-size-sm)',\n md: 'var(--gr-icon-size-md)',\n lg: 'var(--gr-icon-size-lg)',\n}\n\n/**\n * Тон → токен **текста**, а не насыщенный тон: правило пакета запрещает\n * насыщенный цвет как цвет текста (контраст на `-light`-подложках падает до\n * 2:1). Отображение повторяет `GrAlert/grAlertStyles.ts`: у `primary` и\n * `neutral` пары `-text` нет, поэтому берутся ближайшие семантические роли.\n */\nexport const iconToneClass: Record<GrTone, string> = {\n primary: 'text-[var(--gr-primary)]',\n neutral: 'text-[var(--gr-muted-fg)]',\n success: 'text-[var(--gr-success-text)]',\n warning: 'text-[var(--gr-warning-text)]',\n danger: 'text-[var(--gr-danger-text)]',\n info: 'text-[var(--gr-info-text)]',\n slate: 'text-[var(--gr-slate-text)]',\n azure: 'text-[var(--gr-azure-text)]',\n}\n\n/** `gr-icon` — не утилита, а зацепка для глобального стиля компонента. */\nexport const iconHookClass = 'gr-icon'\nexport const iconUtilityClass = 'inline-flex items-center justify-center align-middle'\nexport const iconBaseClass = `${iconHookClass} ${iconUtilityClass}`\nexport const iconSpinClass = 'animate-spin'\n\nexport function grIconToneClass(tone: GrIconTone): string {\n return tone === 'current' ? '' : iconToneClass[tone]\n}\n\n// В safelist идут только утилиты: `gr-icon` CSS не порождает — он лишь селектор\n// собственного стиля компонента, и гейт `documentedConfig` справедливо считает\n// такую запись мёртвой.\nexport const grIconClassTokens = [\n ...splitClassTokens(iconUtilityClass),\n ...splitClassTokens(iconSpinClass),\n ...Object.values(iconToneClass).flatMap(splitClassTokens),\n]\n"],"mappings":";;;;;;;AAcA,IAAa,oBAAgD;CAC3D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;AAQA,IAAa,gBAAwC;CACnD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;AACT;;AAGA,IAAa,gBAAgB;AAC7B,IAAa,mBAAmB;AAChC,IAAa,gBAAgB,GAAG,cAAc,GAAG;AACjD,IAAa,gBAAgB;AAE7B,SAAgB,gBAAgB,MAA0B;CACxD,OAAO,SAAS,YAAY,KAAK,cAAc;AACjD;AAKA,IAAa,oBAAoB;CAC/B,GAAG,iBAAiB,gBAAgB;CACpC,GAAG,iBAAiB,aAAa;CACjC,GAAG,OAAO,OAAO,aAAa,CAAC,CAAC,QAAQ,gBAAgB;AAC1D"}
1
+ {"version":3,"file":"grIconStyles-B6BRqUld.js","names":[],"sources":["../../src/components/GrIcon/grIconStyles.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\nimport type { GrComponentSize } from '../shared/sizes'\nimport type { GrTone } from '../shared/tones'\n\nexport type GrIconSize = GrComponentSize\n\n/** Цвет иконки: тон палитры либо наследование от родителя. */\nexport type GrIconTone = GrTone | 'current'\n\n/**\n * Шкала размеров — токенами, а не числами: иконка обязана масштабироваться\n * вместе с темой, а не вместе с пересборкой пакета. Произвольный размер\n * задаётся числом прямо на компоненте, это escape-hatch мимо шкалы.\n */\nexport const iconSizeVarBySize: Record<GrIconSize, string> = {\n xs: 'var(--gr-icon-size-xs)',\n sm: 'var(--gr-icon-size-sm)',\n md: 'var(--gr-icon-size-md)',\n lg: 'var(--gr-icon-size-lg)',\n}\n\n/**\n * Тон → токен **текста**, а не насыщенный тон: правило пакета запрещает\n * насыщенный цвет как цвет текста (контраст на `-light`-подложках падает до\n * 2:1). Отображение повторяет `GrAlert/grAlertStyles.ts`: у `primary` и\n * `neutral` пары `-text` нет, поэтому берутся ближайшие семантические роли.\n */\nexport const iconToneClass: Record<GrTone, string> = {\n primary: 'text-[var(--gr-primary)]',\n neutral: 'text-[var(--gr-muted-fg)]',\n success: 'text-[var(--gr-success-text)]',\n warning: 'text-[var(--gr-warning-text)]',\n danger: 'text-[var(--gr-danger-text)]',\n info: 'text-[var(--gr-info-text)]',\n slate: 'text-[var(--gr-slate-text)]',\n azure: 'text-[var(--gr-azure-text)]',\n}\n\n/** `gr-icon` — не утилита, а зацепка для глобального стиля компонента. */\nexport const iconHookClass = 'gr-icon'\nexport const iconUtilityClass = 'inline-flex items-center justify-center align-middle'\nexport const iconBaseClass = `${iconHookClass} ${iconUtilityClass}`\nexport const iconSpinClass = 'animate-spin'\n\nexport function grIconToneClass(tone: GrIconTone): string {\n return tone === 'current' ? '' : iconToneClass[tone]\n}\n\n// В safelist идут только утилиты: `gr-icon` CSS не порождает — он лишь селектор\n// собственного стиля компонента, и гейт `documentedConfig` справедливо считает\n// такую запись мёртвой.\nexport const grIconClassTokens = [\n ...splitClassTokens(iconUtilityClass),\n ...splitClassTokens(iconSpinClass),\n ...Object.values(iconToneClass).flatMap(splitClassTokens),\n]\n"],"mappings":";;;;;;;AAcA,IAAa,oBAAgD;CAC3D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;AAQA,IAAa,gBAAwC;CACnD,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;AACT;;AAGA,IAAa,gBAAgB;AAC7B,IAAa,mBAAmB;AAChC,IAAa,gBAAgB,GAAG,cAAc,GAAG;AACjD,IAAa,gBAAgB;AAE7B,SAAgB,gBAAgB,MAA0B;CACxD,OAAO,SAAS,YAAY,KAAK,cAAc;AACjD;AAKA,IAAa,oBAAoB;CAC/B,GAAG,iBAAiB,gBAAgB;CACpC,GAAG,iBAAiB,aAAa;CACjC,GAAG,OAAO,OAAO,aAAa,CAAC,CAAC,QAAQ,gBAAgB;AAC1D"}
@@ -10,10 +10,10 @@
10
10
  * внутри, а рамку рисует оболочка вместе с аддонами.
11
11
  */
12
12
  var sizes = {
13
- xs: "h-7 px-2.5 text-[length:var(--gr-control-text-xs)]",
14
- sm: "h-8 px-3 text-[length:var(--gr-control-text-sm)]",
15
- md: "h-10 px-3 text-[length:var(--gr-control-text-md)]",
16
- lg: "h-11 px-4 text-[length:var(--gr-control-text-lg)]"
13
+ xs: "h-7 px-2.5 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
14
+ sm: "h-8 px-3 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
15
+ md: "h-10 px-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]",
16
+ lg: "h-11 px-4 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]"
17
17
  };
18
18
  /**
19
19
  * Горизонтальный padding из `sizes`, но числом: аддоны задают паддинги инлайн-
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grInputStyles-CAk3xKIb.js","names":[],"sources":["../../src/components/GrInput/grInputStyles.ts"],"sourcesContent":["/**\n * Классы `GrInput`.\n *\n * Единственный источник правды: те же карты были продублированы инлайн в\n * `GrInput.vue`, копии разошлись (`focus-visible:` против `focus-within:`), и\n * safelist декларировал классы, которых в разметке нет.\n *\n * Кольцо фокуса живёт на оболочке через `focus-within`: фокус получает инпут\n * внутри, а рамку рисует оболочка вместе с аддонами.\n */\n\nexport const sizes = {\n xs: 'h-7 px-2.5 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'h-8 px-3 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'h-10 px-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]',\n lg: 'h-11 px-4 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]',\n} as const\n\n/**\n * Горизонтальный padding из `sizes`, но числом: аддоны задают паддинги инлайн-\n * стилем, а он перекрывает класс — значение нужно обеим формам, и расходиться\n * им нельзя.\n */\nexport const paddingX = {\n xs: '10px',\n sm: '12px',\n md: '12px',\n lg: '16px',\n} as const\n\nexport const textAlign = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n} as const\n\nexport const states = {\n default: 'border-[var(--gr-brd)]',\n success: 'border-[var(--gr-success)] focus-within:ring-[var(--gr-success)]',\n warning: 'border-[var(--gr-warning)] focus-within:ring-[var(--gr-warning)]',\n danger: 'border-[var(--gr-danger)] focus-within:ring-[var(--gr-danger)]',\n} as const\n\n/**\n * Ошибка валидации красится своей ролью, а не декоративным тоном `danger`:\n * `state=\"danger\"` — это подсветка по решению разработчика, `invalid` — вердикт\n * валидации, и тема вправе развести их по цвету.\n */\nexport const invalidClass = 'border-[var(--gr-invalid-brd)] focus-within:ring-[var(--gr-invalid-ring)]'\n\nexport type GrInputState = keyof typeof states\n\nexport const shellBaseClass = 'relative w-full overflow-hidden rounded-[var(--gr-radius-control)] border transition-colors duration-[var(--gr-duration-fast)] focus-within:ring-2 focus-within:ring-[var(--gr-ring)]'\n\nexport const shellEnabledClass = 'bg-[var(--gr-bg)]'\n\n/**\n * Заблокированное поле гасится фоном, а не `opacity`: прозрачность разбавляет\n * выверенные на AA токены текста и роняет контраст. Фон взаимоисключающий с\n * `shellEnabledClass` — два `bg-*` одной специфичности разрулил бы порядок в\n * сгенерированном CSS, а не порядок в списке классов.\n */\nexport const shellDisabledClass = 'bg-[var(--gr-muted)] text-[var(--gr-muted-fg)] cursor-not-allowed'\n\nexport function grInputShellClass(options: {\n state: GrInputState\n invalid: boolean\n disabled: boolean\n}): string {\n return [\n shellBaseClass,\n options.invalid ? invalidClass : states[options.state],\n options.disabled ? shellDisabledClass : shellEnabledClass,\n ].join(' ')\n}\n\nexport function grInputFieldClass(options: {\n size: keyof typeof sizes\n align: keyof typeof textAlign\n}): string {\n return [sizes[options.size], textAlign[options.align]].join(' ')\n}\n"],"mappings":";;;;;;;;;;;AAWA,IAAa,QAAQ;CACnB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;AAOA,IAAa,WAAW;CACtB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,YAAY;CACvB,MAAM;CACN,QAAQ;CACR,OAAO;AACT;AAEA,IAAa,SAAS;CACpB,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;AACV;;;;;;AAOA,IAAa,eAAe;AAI5B,IAAa,iBAAiB;AAE9B,IAAa,oBAAoB;;;;;;;AAQjC,IAAa,qBAAqB;AAElC,SAAgB,kBAAkB,SAIvB;CACT,OAAO;EACL;EACA,QAAQ,UAAU,eAAe,OAAO,QAAQ;EAChD,QAAQ,WAAW,qBAAqB;CAC1C,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,SAAgB,kBAAkB,SAGvB;CACT,OAAO,CAAC,MAAM,QAAQ,OAAO,UAAU,QAAQ,MAAM,CAAC,CAAC,KAAK,GAAG;AACjE"}
@@ -1,5 +1,10 @@
1
1
  //#region src/components/GrKbd/grKbdStyles.ts
2
2
  var keyBaseClass = "inline-flex items-center justify-center rounded-[var(--gr-radius-control)] border border-[var(--gr-brd)] bg-[var(--gr-muted)] font-medium leading-none text-[var(--gr-muted-fg)] shadow-[var(--gr-shadow-1)] tabular-nums";
3
+ /**
4
+ * Межстрочный здесь не парный: у клавиши он задан осознанно (`leading-none` в
5
+ * `keyBaseClass`), и вторая декларация того же веса подралась бы с ним за
6
+ * порядок в стилях. Правило — `docs/sizes.md`.
7
+ */
3
8
  var keySizes = {
4
9
  xs: "min-w-[1.25rem] h-5 px-1 text-[length:var(--gr-control-text-3xs)]",
5
10
  sm: "min-w-[1.5rem] h-6 px-1.5 text-[length:var(--gr-control-text-xs)]",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grKbdStyles-DENu8pUK.js","names":[],"sources":["../../src/components/GrKbd/grKbdStyles.ts"],"sourcesContent":["import type { GrComponentSize } from '../shared/sizes'\n\n/**\n * Классы `GrKbd`.\n *\n * Шкала полная (`xs…lg`), а не «sm и всё остальное»: тип пропа обещает четыре\n * ступени, и `xs`/`lg` не должны молча рендериться как `md`.\n */\n\nexport const GR_KBD_VARIANTS = ['merged', 'split', 'sequence'] as const\n\n/**\n * `merged` — сочетание одной плашкой (`⌘K`), как его пишут сами системы;\n * `split` — по плашке на клавишу; `sequence` — аккорд «G затем I».\n */\nexport type GrKbdVariant = typeof GR_KBD_VARIANTS[number]\n\nexport const keyBaseClass = 'inline-flex items-center justify-center rounded-[var(--gr-radius-control)] border border-[var(--gr-brd)] bg-[var(--gr-muted)] font-medium leading-none text-[var(--gr-muted-fg)] shadow-[var(--gr-shadow-1)] tabular-nums'\n\n/**\n * Межстрочный здесь не парный: у клавиши он задан осознанно (`leading-none` в\n * `keyBaseClass`), и вторая декларация того же веса подралась бы с ним за\n * порядок в стилях. Правило — `docs/sizes.md`.\n */\nexport const keySizes: Record<GrComponentSize, string> = {\n xs: 'min-w-[1.25rem] h-5 px-1 text-[length:var(--gr-control-text-3xs)]',\n sm: 'min-w-[1.5rem] h-6 px-1.5 text-[length:var(--gr-control-text-xs)]',\n md: 'min-w-[1.75rem] h-7 px-2 text-[length:var(--gr-control-text-md)]',\n lg: 'min-w-[2rem] h-8 px-2.5 text-[length:var(--gr-control-text-lg)]',\n}\n\n/**\n * Клавиша внутри общей плашки: ни рамки, ни фона, ни собственной ширины —\n * иначе `⌘K` разъехалось бы зазорами внутри одного чипа.\n */\nexport const mergedKeyClass = 'inline-flex items-center justify-center'\n\n/** Обёртка `split`: сама рамки не имеет — её рисуют вложенные клавиши. */\nexport const comboBaseClass = 'inline-flex items-center align-middle'\n\nexport const comboGaps: Record<GrComponentSize, string> = {\n xs: 'gap-0.5',\n sm: 'gap-1',\n md: 'gap-1',\n lg: 'gap-1.5',\n}\n\n/** Зазор внутри общей плашки: между глифами он меньше, чем между плашками. */\nexport const mergedGaps: Record<GrComponentSize, string> = {\n xs: 'gap-0',\n sm: 'gap-0.5',\n md: 'gap-0.5',\n lg: 'gap-1',\n}\n\nexport const separatorClass = 'select-none text-[var(--gr-muted-fg)]'\n\n/** Слово-разделитель аккорда стоит между плашками и не липнет к ним. */\nexport const sequenceSeparatorClass = 'select-none px-1 text-[var(--gr-muted-fg)]'\n\nexport function grKbdKeyClass(size: GrComponentSize): string {\n return `${keyBaseClass} ${keySizes[size]}`\n}\n\nexport function grKbdComboClass(size: GrComponentSize, variant: GrKbdVariant): string {\n return variant === 'merged'\n ? `${keyBaseClass} ${keySizes[size]} ${mergedGaps[size]}`\n : `${comboBaseClass} ${comboGaps[size]}`\n}\n\n/** Класс клавиши внутри сочетания: в общей плашке она без собственной рамки. */\nexport function grKbdInnerKeyClass(size: GrComponentSize, variant: GrKbdVariant): string {\n return variant === 'merged' ? mergedKeyClass : grKbdKeyClass(size)\n}\n"],"mappings":";AAiBA,IAAa,eAAe;;;;;;AAO5B,IAAa,WAA4C;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;AAMA,IAAa,iBAAiB;;AAG9B,IAAa,iBAAiB;AAE9B,IAAa,YAA6C;CACxD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;AAGA,IAAa,aAA8C;CACzD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,iBAAiB;;AAG9B,IAAa,yBAAyB;AAEtC,SAAgB,cAAc,MAA+B;CAC3D,OAAO,GAAG,aAAa,GAAG,SAAS;AACrC;AAEA,SAAgB,gBAAgB,MAAuB,SAA+B;CACpF,OAAO,YAAY,WACf,GAAG,aAAa,GAAG,SAAS,MAAM,GAAG,WAAW,UAChD,GAAG,eAAe,GAAG,UAAU;AACrC;;AAGA,SAAgB,mBAAmB,MAAuB,SAA+B;CACvF,OAAO,YAAY,WAAW,iBAAiB,cAAc,IAAI;AACnE"}
@@ -2,10 +2,10 @@
2
2
  var baseRootClass = "inline-flex items-center gap-1 rounded-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)]";
3
3
  var focusRingClass = "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
4
4
  var sizeClassBySize = {
5
- xs: "text-[length:var(--gr-control-text-xs)]",
6
- sm: "text-[length:var(--gr-control-text-sm)]",
7
- md: "text-[length:var(--gr-control-text-md)]",
8
- lg: "text-[length:var(--gr-control-text-lg)]"
5
+ xs: "text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
6
+ sm: "text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
7
+ md: "text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]",
8
+ lg: "text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]"
9
9
  };
10
10
  var colorClass = "text-[var(--gr-link-color)] visited:text-[var(--gr-link-color)] hover:text-[var(--gr-link-color-hover)] active:text-[var(--gr-link-color-active)]";
11
11
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grLinkStyles-FME_qMpi.js","names":[],"sources":["../../src/components/GrLink/grLinkStyles.ts"],"sourcesContent":["import type { GrComponentSize } from '../shared/sizes'\n\nimport type { GrTone } from '../shared/tones'\n\n/**\n * Архитектура цвета GrLink (согласована с остальной GR, ср. GrButton):\n *\n * - `tone` — семантический ЦВЕТ из общей палитры `GrTone`\n * (`primary | neutral | success | warning | danger | info | slate | azure`).\n * - `variant` — уровень акцента (СТРУКТУРА), независимый от цвета:\n * - `default` — текст окрашен в `tone` в покое, `tone-hover`/`tone-active` при\n * наведении/нажатии (обычная акцентная ссылка);\n * - `muted` — приглушённый текст (`--gr-muted-fg`) в покое, окрашивается в `tone`\n * при наведении (вторичные/inline-ссылки в плотных областях).\n *\n * Оси ортогональны намеренно: «красная ссылка» и «приглушённая ссылка» —\n * независимые решения, и любая их комбинация осмысленна.\n */\nexport type GrLinkTone = GrTone\nexport type GrLinkVariant = 'default' | 'muted'\nexport type GrLinkUnderline = 'auto' | 'always' | 'none'\nexport type GrLinkSize = GrComponentSize\n\n// Базовые классы корневого элемента (`<a>`/`<span>`). Вынесены сюда,\n// чтобы быть единственным источником истины как для шаблона, так и для safelist.\nexport const baseRootClass = 'inline-flex items-center gap-1 rounded-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)]'\nexport const focusRingClass = 'focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\n\nexport const sizeClassBySize: Record<GrLinkSize, string> = {\n xs: 'text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]',\n lg: 'text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]',\n}\n\n// Цвет управляется CSS-переменными (как трек в GrSwitch): один набор классов\n// вместо class-эксплозии 8 тонов × 3 состояния. Safelist остаётся крошечным.\nexport const colorClass = 'text-[var(--gr-link-color)] visited:text-[var(--gr-link-color)] hover:text-[var(--gr-link-color-hover)] active:text-[var(--gr-link-color-active)]'\n\ntype GrLinkToneColors = { base: string, hover: string, active: string }\n\n/**\n * Пары «цвет / hover / active» на каждый тон из ролей темы.\n *\n * Ссылка — это ТЕКСТ на фоне страницы, поэтому тона берутся из `-text`, а не\n * из насыщенного `--gr-{tone}`: последний под текст не рассчитан\n * (`--gr-success` на `--gr-bg` — 2.2:1). Готовых `-text-hover/-active` в\n * системе нет, поэтому они выводятся тем же приёмом, что и `--gr-{tone}-hover`\n * в `tokens.css` — подмесом `--gr-fg`. В светлой теме это делает ссылку темнее\n * при наведении, в тёмной — светлее, то есть в обеих контраст растёт.\n */\nfunction toneTextColors(tone: string): GrLinkToneColors {\n const base = `var(--gr-${tone}-text)`\n\n return {\n base,\n hover: `color-mix(in srgb, ${base} 92%, var(--gr-fg))`,\n active: `color-mix(in srgb, ${base} 84%, var(--gr-fg))`,\n }\n}\n\nconst primaryTextColors = toneTextColors('primary')\n\nconst linkToneColors: Record<GrLinkTone, GrLinkToneColors> = {\n primary: primaryTextColors,\n // Нейтральная ссылка: читаемый `--gr-fg` в покое, акцент при наведении — тот\n // же, что у тона `primary`, и по тому же правилу «текст берётся из `-text`».\n neutral: { base: 'var(--gr-fg)', hover: primaryTextColors.base, active: primaryTextColors.active },\n success: toneTextColors('success'),\n warning: toneTextColors('warning'),\n danger: toneTextColors('danger'),\n info: toneTextColors('info'),\n slate: toneTextColors('slate'),\n azure: toneTextColors('azure'),\n}\n\n/** Инлайновые CSS-переменные цвета для текущей комбинации `tone` × `variant`. */\nexport function grLinkColorStyle(options: { tone: GrLinkTone, variant: GrLinkVariant, disabled: boolean }): Record<string, string> {\n if (options.disabled) return {}\n\n const colors = linkToneColors[options.tone] ?? linkToneColors.primary\n\n if (options.variant === 'muted') {\n return {\n '--gr-link-color': 'var(--gr-muted-fg)',\n '--gr-link-color-hover': colors.base,\n '--gr-link-color-active': colors.active,\n }\n }\n\n return {\n '--gr-link-color': colors.base,\n '--gr-link-color-hover': colors.hover,\n '--gr-link-color-active': colors.active,\n }\n}\n\n/**\n * Отключённая ссылка гасится цветом, а не `opacity`: прозрачность разбавляет\n * выверенный на AA `--gr-muted-fg` и роняет контраст ниже нормы.\n */\nexport const disabledStateClass = 'cursor-not-allowed text-[var(--gr-muted-fg)]'\n\nconst UNDERLINE_VALUES: readonly GrLinkUnderline[] = ['auto', 'always', 'none']\n\nfunction underlineClass(underline: GrLinkUnderline, disabled: boolean): string {\n if (disabled) return 'no-underline'\n if (underline === 'always') return 'underline underline-offset-4'\n if (underline === 'none') return 'no-underline'\n return 'no-underline hover:underline hover:underline-offset-4'\n}\n\n// Derived from `underlineClass` so that there is a single source of truth:\n// any change/extension of the underline logic is automatically reflected\n// in the safelist without manual updates.\nexport const underlineClasses: readonly string[] = [...new Set(\n UNDERLINE_VALUES.flatMap(u => [underlineClass(u, false), underlineClass(u, true)]),\n)]\n\nexport function grLinkClass(options: { size: GrLinkSize, underline: GrLinkUnderline, disabled: boolean }): string {\n return [\n sizeClassBySize[options.size],\n underlineClass(options.underline, options.disabled),\n options.disabled ? disabledStateClass : colorClass,\n ]\n .filter(Boolean)\n .join(' ')\n}\n"],"mappings":";AAyBA,IAAa,gBAAgB;AAC7B,IAAa,iBAAiB;AAE9B,IAAa,kBAA8C;CACzD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAIA,IAAa,aAAa;;;;;;;;;;;AAc1B,SAAS,eAAe,MAAgC;CACtD,MAAM,OAAO,YAAY,KAAK;CAE9B,OAAO;EACL;EACA,OAAO,sBAAsB,KAAK;EAClC,QAAQ,sBAAsB,KAAK;CACrC;AACF;AAEA,IAAM,oBAAoB,eAAe,SAAS;AAElD,IAAM,iBAAuD;CAC3D,SAAS;CAGT,SAAS;EAAE,MAAM;EAAgB,OAAO,kBAAkB;EAAM,QAAQ,kBAAkB;CAAO;CACjG,SAAS,eAAe,SAAS;CACjC,SAAS,eAAe,SAAS;CACjC,QAAQ,eAAe,QAAQ;CAC/B,MAAM,eAAe,MAAM;CAC3B,OAAO,eAAe,OAAO;CAC7B,OAAO,eAAe,OAAO;AAC/B;;AAGA,SAAgB,iBAAiB,SAAkG;CACjI,IAAI,QAAQ,UAAU,OAAO,CAAC;CAE9B,MAAM,SAAS,eAAe,QAAQ,SAAS,eAAe;CAE9D,IAAI,QAAQ,YAAY,SACtB,OAAO;EACL,mBAAmB;EACnB,yBAAyB,OAAO;EAChC,0BAA0B,OAAO;CACnC;CAGF,OAAO;EACL,mBAAmB,OAAO;EAC1B,yBAAyB,OAAO;EAChC,0BAA0B,OAAO;CACnC;AACF;;;;;AAMA,IAAa,qBAAqB;AAElC,IAAM,mBAA+C;CAAC;CAAQ;CAAU;AAAM;AAE9E,SAAS,eAAe,WAA4B,UAA2B;CAC7E,IAAI,UAAU,OAAO;CACrB,IAAI,cAAc,UAAU,OAAO;CACnC,IAAI,cAAc,QAAQ,OAAO;CACjC,OAAO;AACT;AAKA,IAAa,mBAAsC,CAAC,GAAG,IAAI,IACzD,iBAAiB,SAAQ,MAAK,CAAC,eAAe,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC,CACnF,CAAC;AAED,SAAgB,YAAY,SAAsF;CAChH,OAAO;EACL,gBAAgB,QAAQ;EACxB,eAAe,QAAQ,WAAW,QAAQ,QAAQ;EAClD,QAAQ,WAAW,qBAAqB;CAC1C,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb"}
@@ -1,4 +1,4 @@
1
- import { t as splitClassTokens } from "./classTokens-BzazaERD.js";
1
+ import { n as splitClassTokens } from "./classTokens-8v2XC74x.js";
2
2
  //#region src/components/GrLoading/grLoadingStyles.ts
3
3
  /**
4
4
  * Полноэкранный оверлей сидит на собственном слое шкалы: он блокирует всё
@@ -1 +1 @@
1
- {"version":3,"file":"grLoadingStyles-DEmji2wv.js","names":[],"sources":["../../src/components/GrLoading/grLoadingStyles.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\n\n/**\n * Полноэкранный оверлей сидит на собственном слое шкалы: он блокирует всё\n * приложение целиком, поэтому обязан лечь выше модалки (`--gr-z-modal`), но\n * ниже тоста — уведомление о фоновой ошибке загрузка прятать не должна.\n * Инлайновый режим к шкале отношения не имеет: `z-10` — порядок внутри\n * собственного контейнера.\n */\nexport const rootModeClass = {\n fullscreen: 'fixed inset-0 z-[var(--gr-z-loading)]',\n inline: 'absolute inset-0 z-10',\n} as const\nexport const rootBackgroundClass = 'bg-[var(--gr-overlay-bg)]'\nexport const rootBackdropBlurClass = 'backdrop-blur-sm'\n\nexport function grLoadingRootClass(options: {\n fullscreen: boolean,\n hasBackground: boolean,\n customClass?: string\n}): string {\n return [\n options.fullscreen ? rootModeClass.fullscreen : rootModeClass.inline,\n !options.hasBackground ? rootBackgroundClass : '',\n rootBackdropBlurClass,\n options.customClass,\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport const grLoadingClassTokens = [\n ...Object.values(rootModeClass).flatMap(splitClassTokens),\n ...splitClassTokens(rootBackgroundClass),\n ...splitClassTokens(rootBackdropBlurClass),\n]\n"],"mappings":";;;;;;;;;AASA,IAAa,gBAAgB;CACzB,YAAY;CACZ,QAAQ;AACZ;AACA,IAAa,sBAAsB;AACnC,IAAa,wBAAwB;AAErC,SAAgB,mBAAmB,SAIxB;CACP,OAAO;EACH,QAAQ,aAAa,cAAc,aAAa,cAAc;EAC9D,CAAC,QAAQ,gBAAgB,sBAAsB;EAC/C;EACA,QAAQ;CACZ,CAAC,CACI,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACjB;AAEA,IAAa,uBAAuB;CAChC,GAAG,OAAO,OAAO,aAAa,CAAC,CAAC,QAAQ,gBAAgB;CACxD,GAAG,iBAAiB,mBAAmB;CACvC,GAAG,iBAAiB,qBAAqB;AAC7C"}
1
+ {"version":3,"file":"grLoadingStyles-CnQaf5ry.js","names":[],"sources":["../../src/components/GrLoading/grLoadingStyles.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\n\n/**\n * Полноэкранный оверлей сидит на собственном слое шкалы: он блокирует всё\n * приложение целиком, поэтому обязан лечь выше модалки (`--gr-z-modal`), но\n * ниже тоста — уведомление о фоновой ошибке загрузка прятать не должна.\n * Инлайновый режим к шкале отношения не имеет: `z-10` — порядок внутри\n * собственного контейнера.\n */\nexport const rootModeClass = {\n fullscreen: 'fixed inset-0 z-[var(--gr-z-loading)]',\n inline: 'absolute inset-0 z-10',\n} as const\nexport const rootBackgroundClass = 'bg-[var(--gr-overlay-bg)]'\nexport const rootBackdropBlurClass = 'backdrop-blur-sm'\n\nexport function grLoadingRootClass(options: {\n fullscreen: boolean,\n hasBackground: boolean,\n customClass?: string\n}): string {\n return [\n options.fullscreen ? rootModeClass.fullscreen : rootModeClass.inline,\n !options.hasBackground ? rootBackgroundClass : '',\n rootBackdropBlurClass,\n options.customClass,\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport const grLoadingClassTokens = [\n ...Object.values(rootModeClass).flatMap(splitClassTokens),\n ...splitClassTokens(rootBackgroundClass),\n ...splitClassTokens(rootBackdropBlurClass),\n]\n"],"mappings":";;;;;;;;;AASA,IAAa,gBAAgB;CACzB,YAAY;CACZ,QAAQ;AACZ;AACA,IAAa,sBAAsB;AACnC,IAAa,wBAAwB;AAErC,SAAgB,mBAAmB,SAIxB;CACP,OAAO;EACH,QAAQ,aAAa,cAAc,aAAa,cAAc;EAC9D,CAAC,QAAQ,gBAAgB,sBAAsB;EAC/C;EACA,QAAQ;CACZ,CAAC,CACI,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACjB;AAEA,IAAa,uBAAuB;CAChC,GAAG,OAAO,OAAO,aAAa,CAAC,CAAC,QAAQ,gBAAgB;CACxD,GAAG,iBAAiB,mBAAmB;CACvC,GAAG,iBAAiB,qBAAqB;AAC7C"}
@@ -1,7 +1,7 @@
1
1
  //#region src/components/GrPopover/grPopoverStyles.ts
2
2
  var panelSizes = {
3
- xs: "p-2 text-[length:var(--gr-control-text-xs)]",
4
- sm: "p-2.5 text-[length:var(--gr-control-text-sm)]",
3
+ xs: "p-2 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
4
+ sm: "p-2.5 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
5
5
  md: "p-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]",
6
6
  lg: "p-4 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]"
7
7
  };
@@ -41,8 +41,8 @@ function grPopoverOriginClass(placement) {
41
41
  * сгенерированном CSS. Меню внутри поповера с `p-3` — визуально не меню.
42
42
  */
43
43
  var panelSizesFlush = {
44
- xs: "text-[length:var(--gr-control-text-xs)]",
45
- sm: "text-[length:var(--gr-control-text-sm)]",
44
+ xs: "text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
45
+ sm: "text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
46
46
  md: "text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]",
47
47
  lg: "text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]"
48
48
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grPopoverStyles-Djh5RNhn.js","names":[],"sources":["../../src/components/GrPopover/grPopoverStyles.ts"],"sourcesContent":["import type { Placement } from '@floating-ui/dom'\n\nimport type { GrComponentSize } from '../shared/sizes'\n\nexport type GrPopoverSize = GrComponentSize\n\n/**\n * Роль панели.\n *\n * `dialog` — произвольный интерактивный контент (значение по умолчанию).\n * Остальные нужны компонентам, которые строятся поверх этого примитива:\n * меню (`GrMenu`, `GrContextMenu`), списки, палитры. Роль задаёт потребитель,\n * потому что клавиатурный паттерн принадлежит ему, а не поповеру.\n */\nexport type GrPopoverRole = 'dialog' | 'menu' | 'listbox' | 'grid' | 'group' | 'none'\n\n/** Поле панели. `none` — поле рисует содержимое (меню, список опций). */\nexport type GrPopoverPadding = 'default' | 'none'\n\nexport const panelSizes: Record<GrPopoverSize, string> = {\n xs: 'p-2 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'p-2.5 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'p-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]',\n lg: 'p-4 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]',\n}\n\n/**\n * `transform-origin` для scale-анимации: координаты панели уже посчитал\n * `useFloating`, здесь остаётся направление «роста» относительно триггера.\n *\n * Ключ — `resolvedPlacement`, то есть положение **после** `flip`: если снизу не\n * хватило места и панель перевернуло вверх, origin переворачивается вместе с ней.\n */\nexport const originClassByPlacement: Partial<Record<Placement, string>> = {\n 'bottom': 'origin-top',\n 'bottom-start': 'origin-top-left',\n 'bottom-end': 'origin-top-right',\n 'top': 'origin-bottom',\n 'top-start': 'origin-bottom-left',\n 'top-end': 'origin-bottom-right',\n 'left': 'origin-right',\n 'left-start': 'origin-top-right',\n 'left-end': 'origin-bottom-right',\n 'right': 'origin-left',\n 'right-start': 'origin-top-left',\n 'right-end': 'origin-bottom-left',\n}\n\nexport function grPopoverOriginClass(placement: Placement): string {\n return originClassByPlacement[placement] ?? 'origin-top'\n}\n\n/**\n * Поверхность панели. `max-w-[min(...)]` не даёт поповеру вылезти за узкий\n * экран: `useFloating` смещает панель в пределах viewport, но не сужает её.\n */\n/**\n * Кегль без поля.\n *\n * Отдельная мапа, а не `contentClass=\"p-0\"`: поле и кегль приезжают одной\n * строкой равной специфичности, и кто победит — решал бы порядок правил в\n * сгенерированном CSS. Меню внутри поповера с `p-3` — визуально не меню.\n */\nexport const panelSizesFlush: Record<GrPopoverSize, string> = {\n xs: 'text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]',\n lg: 'text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]',\n}\n\nexport const popoverPanelBaseClass = 'rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-popover)] text-[var(--gr-popover-fg)] shadow-[var(--gr-shadow-2)] max-w-[min(22rem,calc(100vw-1rem))] focus:outline-none'\n\nexport function grPopoverPanelClass(\n size: GrPopoverSize,\n placement: Placement,\n extra?: string,\n padding: GrPopoverPadding = 'default',\n): string {\n return [\n popoverPanelBaseClass,\n padding === 'none' ? panelSizesFlush[size] : panelSizes[size],\n grPopoverOriginClass(placement),\n extra ?? '',\n ].filter(Boolean).join(' ')\n}\n"],"mappings":";AAmBA,IAAa,aAA4C;CACvD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;;AASA,IAAa,yBAA6D;CACxE,UAAU;CACV,gBAAgB;CAChB,cAAc;CACd,OAAO;CACP,aAAa;CACb,WAAW;CACX,QAAQ;CACR,cAAc;CACd,YAAY;CACZ,SAAS;CACT,eAAe;CACf,aAAa;AACf;AAEA,SAAgB,qBAAqB,WAA8B;CACjE,OAAO,uBAAuB,cAAc;AAC9C;;;;;;;;;;;;AAaA,IAAa,kBAAiD;CAC5D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,wBAAwB;AAErC,SAAgB,oBACd,MACA,WACA,OACA,UAA4B,WACpB;CACR,OAAO;EACL;EACA,YAAY,SAAS,gBAAgB,QAAQ,WAAW;EACxD,qBAAqB,SAAS;EAC9B,SAAS;CACX,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AAC5B"}
@@ -51,10 +51,10 @@ var grRadioLabelTexts = {
51
51
  lg: "text-[length:var(--gr-text-base)] leading-[var(--gr-leading-base)]"
52
52
  };
53
53
  var grRadioDescriptionSizes = {
54
- xs: "text-[length:var(--gr-text-2xs)] text-[var(--gr-muted-fg)]",
55
- sm: "text-[length:var(--gr-text-xs)] text-[var(--gr-muted-fg)]",
56
- md: "text-[length:var(--gr-text-xs)] text-[var(--gr-muted-fg)]",
57
- lg: "text-[length:var(--gr-text-sm)] text-[var(--gr-muted-fg)]"
54
+ xs: "text-[length:var(--gr-text-2xs)] leading-[var(--gr-leading-2xs)] text-[var(--gr-muted-fg)]",
55
+ sm: "text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)]",
56
+ md: "text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)]",
57
+ lg: "text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)] text-[var(--gr-muted-fg)]"
58
58
  };
59
59
  /** Выбранный вариант выделяется текстом, а не только точкой. */
60
60
  var grRadioLabelCheckedColorClass = "text-[var(--gr-fg)] font-500";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grRadioStyles-D4gnU65n.js","names":[],"sources":["../../src/components/GrRadio/grRadioStyles.ts"],"sourcesContent":["import {\n grButtonBaseClass,\n grButtonClass,\n sizes as grButtonSizes,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from '../GrButton/grButtonStyles'\n\nexport type GrRadioVariant = 'radiobox' | 'button'\n\nexport const grRadioEnabledClass = 'cursor-pointer'\n\n/**\n * Отключённая кнопка-радио гасится, но НЕ теряет состояние: в отключённой\n * группе всё равно должно быть видно, что выбрано. Поэтому не отдаём вид\n * `GrButton`-у (его disabled состояние-слепой), а держим свою пару.\n */\nexport const grRadioButtonDisabledClass = 'cursor-not-allowed bg-transparent text-[var(--gr-muted-fg)] border border-[var(--gr-brd)]'\nexport const grRadioButtonDisabledCheckedClass = 'cursor-not-allowed bg-[var(--gr-muted)] text-[var(--gr-fg)] border border-[var(--gr-muted-fg)]'\n\n/**\n * Отключённый переключатель гасится токенами, а не `opacity`: прозрачность\n * разбавляет выверенные на AA цвета текста.\n */\nexport const grRadioRootDisabledClass = 'cursor-not-allowed text-[var(--gr-muted-fg)]'\nexport const grRadioRootEnabledClass = 'cursor-pointer'\n/** Только для чтения: значение видно и читается, но курсор не обещает клика. */\nexport const grRadioRootReadonlyClass = 'cursor-default'\n\nexport const grRadioControlCheckedClass = 'border-[var(--gr-primary)] bg-[color-mix(in_srgb,var(--gr-primary)_10%,var(--gr-bg))]'\nexport const grRadioControlUncheckedClass = 'border-[var(--gr-brd)] bg-[var(--gr-bg)]'\nexport const grRadioControlDisabledClass = 'border-[var(--gr-brd)] bg-[var(--gr-muted)]'\nexport const grRadioControlInvalidClass = 'border-[var(--gr-danger)] bg-[var(--gr-bg)]'\n\nexport const grRadioDotCheckedClass = 'bg-[var(--gr-primary)] opacity-100 scale-100'\nexport const grRadioDotUncheckedClass = 'bg-transparent opacity-0 scale-75'\nexport const grRadioDotDisabledClass = 'bg-[var(--gr-muted-fg)] opacity-100 scale-100'\n// Базовые классы «точки» внутри radiobox — нестандартный transition. Вынесены сюда,\n// чтобы `safelist` гарантировал их присутствие в сборке даже при tree-shaking шаблона.\nexport const grRadioDotBaseClass = 'rounded-[var(--gr-radius-full)] transition-[transform,opacity,background-color] duration-[var(--gr-duration-fast)]'\n\n/**\n * Ступени `radiobox`: коробка, точка и кегли подписи с описанием.\n *\n * До этого коробка была зашита `h-4 w-4` в шаблоне, а кегли — фиксированным\n * `--gr-text-sm`: вариант `radiobox` не масштабировался вовсе, хотя `size` у\n * компонента был и работал для варианта `button`. Ступени согласованы с высотой\n * кнопки (`grButtonStyles.sizes`: 28/32/40/44) — радио стоит в тех же формах.\n */\nexport const grRadioControlSizes: Record<GrButtonSize, string> = {\n xs: 'h-3.5 w-3.5',\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n}\n\nexport const grRadioDotSizes: Record<GrButtonSize, string> = {\n xs: 'h-[5px] w-[5px]',\n sm: 'h-[6px] w-[6px]',\n md: 'h-2 w-2',\n lg: 'h-2.5 w-2.5',\n}\n\nconst grRadioLabelTexts: Record<GrButtonSize, string> = {\n xs: 'text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)]',\n sm: 'text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)]',\n md: 'text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)]',\n lg: 'text-[length:var(--gr-text-base)] leading-[var(--gr-leading-base)]',\n}\n\nexport const grRadioDescriptionSizes: Record<GrButtonSize, string> = {\n xs: 'text-[length:var(--gr-text-2xs)] leading-[var(--gr-leading-2xs)] text-[var(--gr-muted-fg)]',\n sm: 'text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)]',\n md: 'text-[length:var(--gr-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)]',\n lg: 'text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)] text-[var(--gr-muted-fg)]',\n}\n\n/** Выбранный вариант выделяется текстом, а не только точкой. */\nexport const grRadioLabelCheckedColorClass = 'text-[var(--gr-fg)] font-500'\nexport const grRadioLabelColorClass = 'text-[var(--gr-muted-fg)]'\n\nexport function grRadioLabelClassFor(size: GrButtonSize, checked: boolean): string {\n return [\n grRadioLabelTexts[size],\n checked ? grRadioLabelCheckedColorClass : grRadioLabelColorClass,\n ].join(' ')\n}\n\nexport const grRadioLabelSizes = grRadioLabelTexts\n\nexport function grRadioButtonClass(options: {\n checked: boolean\n disabled: boolean\n readonly: boolean\n size: GrButtonSize\n buttonVariant: GrButtonVariant\n buttonTone: GrButtonTone\n selectedButtonVariant: GrButtonVariant\n selectedButtonTone: GrButtonTone\n}): string {\n if (options.disabled) {\n return [\n grButtonBaseClass,\n grButtonSizes[options.size],\n options.checked ? grRadioButtonDisabledCheckedClass : grRadioButtonDisabledClass,\n ].join(' ')\n }\n\n const variant = options.checked ? options.selectedButtonVariant : options.buttonVariant\n const tone = options.checked ? options.selectedButtonTone : options.buttonTone\n\n return [\n grButtonBaseClass,\n grButtonClass({\n variant,\n tone,\n size: options.size,\n square: false,\n }),\n options.readonly ? grRadioRootReadonlyClass : grRadioEnabledClass,\n ].join(' ')\n}\n\nexport function grRadioRootClass(options: { disabled: boolean, readonly: boolean }): string {\n if (options.disabled) return grRadioRootDisabledClass\n return options.readonly ? grRadioRootReadonlyClass : grRadioRootEnabledClass\n}\n\nexport function grRadioControlClass(options: {\n checked: boolean\n disabled: boolean\n invalid: boolean\n size: GrButtonSize\n}): string {\n const state = options.disabled\n ? grRadioControlDisabledClass\n : options.invalid && !options.checked\n ? grRadioControlInvalidClass\n : options.checked ? grRadioControlCheckedClass : grRadioControlUncheckedClass\n\n return [grRadioControlSizes[options.size], state].join(' ')\n}\n\nexport function grRadioDotClass(options: { checked: boolean, disabled: boolean }): string {\n if (!options.checked)\n return grRadioDotUncheckedClass\n\n return options.disabled ? grRadioDotDisabledClass : grRadioDotCheckedClass\n}\n"],"mappings":";;AAWA,IAAa,sBAAsB;;;;;;AAOnC,IAAa,6BAA6B;AAC1C,IAAa,oCAAoC;;;;;AAMjD,IAAa,2BAA2B;AACxC,IAAa,0BAA0B;;AAEvC,IAAa,2BAA2B;AAExC,IAAa,6BAA6B;AAC1C,IAAa,+BAA+B;AAC5C,IAAa,8BAA8B;AAC3C,IAAa,6BAA6B;AAE1C,IAAa,yBAAyB;AACtC,IAAa,2BAA2B;AACxC,IAAa,0BAA0B;AAGvC,IAAa,sBAAsB;;;;;;;;;AAUnC,IAAa,sBAAoD;CAC/D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,kBAAgD;CAC3D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,oBAAkD;CACtD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,0BAAwD;CACnE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;AAGA,IAAa,gCAAgC;AAC7C,IAAa,yBAAyB;AAEtC,SAAgB,qBAAqB,MAAoB,SAA0B;CACjF,OAAO,CACL,kBAAkB,OAClB,UAAU,gCAAgC,sBAC5C,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,IAAa,oBAAoB;AAEjC,SAAgB,mBAAmB,SASxB;CACT,IAAI,QAAQ,UACV,OAAO;EACL;EACA,MAAc,QAAQ;EACtB,QAAQ,UAAU,oCAAoC;CACxD,CAAC,CAAC,KAAK,GAAG;CAMZ,OAAO;EACL;EACA,cAAc;GACZ,SANY,QAAQ,UAAU,QAAQ,wBAAwB,QAAQ;GAOtE,MANS,QAAQ,UAAU,QAAQ,qBAAqB,QAAQ;GAOhE,MAAM,QAAQ;GACd,QAAQ;EACV,CAAC;EACD,QAAQ,WAAW,2BAA2B;CAChD,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,SAAgB,iBAAiB,SAA2D;CAC1F,IAAI,QAAQ,UAAU,OAAO;CAC7B,OAAO,QAAQ,WAAW,2BAA2B;AACvD;AAEA,SAAgB,oBAAoB,SAKzB;CACT,MAAM,QAAQ,QAAQ,WAClB,8BACA,QAAQ,WAAW,CAAC,QAAQ,UAC1B,6BACA,QAAQ,UAAU,6BAA6B;CAErD,OAAO,CAAC,oBAAoB,QAAQ,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG;AAC5D;AAEA,SAAgB,gBAAgB,SAA0D;CACxF,IAAI,CAAC,QAAQ,SACX,OAAO;CAET,OAAO,QAAQ,WAAW,0BAA0B;AACtD"}
@@ -18,16 +18,16 @@ var borderClassByState = {
18
18
  var invalidBorderClass = "border-[var(--gr-invalid-brd)] focus-visible:ring-[var(--gr-invalid-ring)]";
19
19
  var linkBaseClass = "cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]";
20
20
  var selectSizeClassBySize = {
21
- xs: "h-7 px-2.5 text-[length:var(--gr-control-text-xs)]",
22
- sm: "h-8 px-3 text-[length:var(--gr-control-text-sm)]",
23
- md: "h-10 px-3 text-[length:var(--gr-control-text-md)]",
24
- lg: "h-11 px-4 text-[length:var(--gr-control-text-lg)]"
21
+ xs: "h-7 px-2.5 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
22
+ sm: "h-8 px-3 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
23
+ md: "h-10 px-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]",
24
+ lg: "h-11 px-4 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]"
25
25
  };
26
26
  var selectLinkSizeClassBySize = {
27
- xs: "text-[length:var(--gr-control-text-xs)]",
28
- sm: "text-[length:var(--gr-control-text-sm)]",
29
- md: "text-[length:var(--gr-control-text-md)]",
30
- lg: "text-[length:var(--gr-control-text-lg)]"
27
+ xs: "text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
28
+ sm: "text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
29
+ md: "text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]",
30
+ lg: "text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]"
31
31
  };
32
32
  /**
33
33
  * Ссылка — это ТЕКСТ на фоне страницы, поэтому опасный тон берётся из
@@ -128,7 +128,7 @@ function grSelectTriggerClass(options) {
128
128
  var grSelectPanelClasses = "rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-card)] text-[var(--gr-card-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden";
129
129
  /** Общая подсветка наведения и активной опции панели. */
130
130
  var selectOptionHighlight = "bg-[color-mix(in_srgb,var(--gr-muted)_30%,transparent)]";
131
- var selectOptionBaseClass = "rounded-[var(--gr-radius-md)] px-3 py-2 text-left text-[length:var(--gr-text-sm)]";
131
+ var selectOptionBaseClass = "rounded-[var(--gr-radius-md)] px-3 py-2 text-left text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)]";
132
132
  var selectOptionLinkWidthClass = "block min-w-full w-max whitespace-nowrap";
133
133
  var selectOptionWidthClass = "w-full";
134
134
  var selectOptionEnabledClass = `hover:${selectOptionHighlight}`;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grSelectStyles-Cdtd10eY.js","names":[],"sources":["../../src/components/GrSelect/grSelectStyles.ts"],"sourcesContent":["import type { GrComponentSize, GrControlState } from '../shared/sizes'\n\nexport type GrSelectView = 'default' | 'link'\nexport type GrSelectSize = GrComponentSize\nexport type GrSelectVariant = 'primary' | 'default' | 'muted' | 'danger'\nexport type GrSelectUnderline = 'auto' | 'always' | 'none'\nexport type GrSelectOptionsView = 'native' | 'panel'\n/**\n * Тип значения опции. Ограничен примитивами, которые переживают путь через DOM:\n * нативный `<select>` хранит в `option.value` только строку, поэтому значение\n * должно однозначно восстанавливаться из своего строкового представления.\n * Объектные модели потребовали бы отдельного key-экстрактора — см. `docs/components.md`.\n */\n/**\n * Значение опции. Объект допустим, но тогда обязателен проп `valueKey`: в DOM\n * значение живёт строкой, и без ключа объекты неотличимы друг от друга.\n */\nexport type GrSelectValue = string | number | object\nexport type GrSelectState = GrControlState\n\nexport type GrSelectOption<TValue extends GrSelectValue = string> = {\n value: TValue\n label: string\n disabled?: boolean\n}\n/** Группа опций: заголовок `label` + вложенные опции `options`. */\nexport type GrSelectOptionGroup<TValue extends GrSelectValue = string> = {\n label: string\n options: GrSelectOption<TValue>[]\n}\n/** Элемент списка опций: либо одиночная опция, либо группа опций. */\nexport type GrSelectOptionOrGroup<TValue extends GrSelectValue = string> =\n | GrSelectOption<TValue>\n | GrSelectOptionGroup<TValue>\nexport type GrSelectModelValue<TValue extends GrSelectValue = string> = TValue | TValue[]\n\nexport const defaultBaseClass = 'w-full rounded-[var(--gr-radius-control)] border bg-[var(--gr-bg)] text-[var(--gr-fg)] transition-colors duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\n\n/**\n * Цвет рамки по состоянию — та же карта, что у `GrInput` и `GrTextarea`: поля\n * одной формы обязаны показывать ошибку одинаково.\n */\nexport const borderClassByState: Record<GrSelectState, string> = {\n default: 'border-[var(--gr-brd)]',\n success: 'border-[var(--gr-success)] focus-visible:ring-[var(--gr-success)]',\n warning: 'border-[var(--gr-warning)] focus-visible:ring-[var(--gr-warning)]',\n danger: 'border-[var(--gr-danger)] focus-visible:ring-[var(--gr-danger)]',\n}\n\n/**\n * Ошибка валидации красится своей ролью, а не декоративным тоном `danger`:\n * `state=\"danger\"` — это подсветка по решению разработчика, `invalid` — вердикт\n * валидации, и тема вправе развести их по цвету.\n */\nexport const invalidBorderClass = 'border-[var(--gr-invalid-brd)] focus-visible:ring-[var(--gr-invalid-ring)]'\nexport const linkBaseClass = 'cursor-pointer inline-block w-auto align-baseline appearance-none bg-transparent border border-transparent px-0 py-0 rounded-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--gr-ring)]'\n\n\nexport const selectSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'h-7 px-2.5 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'h-8 px-3 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'h-10 px-3 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]',\n lg: 'h-11 px-4 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]',\n}\n\nexport const selectLinkSizeClassBySize: Record<GrSelectSize, string> = {\n xs: 'text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]',\n lg: 'text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]',\n}\n\n/**\n * Ссылка — это ТЕКСТ на фоне страницы, поэтому опасный тон берётся из\n * `--gr-danger-text`, а не из насыщенного `--gr-danger` (последний под текст не\n * рассчитан). Hover/active выводятся подмесом `--gr-fg` — той же формулой, что\n * `GrLink`. `primary` берётся из `--gr-primary-text` по той же причине: на фоне\n * страницы насыщенный `--gr-primary` под текст не рассчитан.\n *\n * Классы записаны литералами, а не собраны интерполяцией: safelist и скан\n * UnoCSS читают исходник, и вычисленная строка для них не класс.\n */\nexport const selectLinkVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--gr-primary-text)] hover:text-[color-mix(in_srgb,var(--gr-primary-text)_92%,var(--gr-fg))] active:text-[color-mix(in_srgb,var(--gr-primary-text)_84%,var(--gr-fg))]',\n default: 'text-[var(--gr-fg)] hover:text-[var(--gr-primary-text)] active:text-[color-mix(in_srgb,var(--gr-primary-text)_84%,var(--gr-fg))]',\n muted: 'text-[var(--gr-muted-fg)] hover:text-[var(--gr-fg)] active:text-[var(--gr-fg)]',\n danger: 'text-[var(--gr-danger-text)] hover:text-[color-mix(in_srgb,var(--gr-danger-text)_92%,var(--gr-fg))] active:text-[color-mix(in_srgb,var(--gr-danger-text)_84%,var(--gr-fg))]',\n}\n\n/**\n * Variant-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Hover-цвет приходит через `peer-hover:` от прозрачного `<select>`-overlay,\n * т.к. видимая метка имеет `pointer-events-none` и не получает hover напрямую.\n */\nexport const selectLinkNativeLabelVariantClassByVariant: Record<GrSelectVariant, string> = {\n primary: 'text-[var(--gr-primary-text)] peer-hover:text-[color-mix(in_srgb,var(--gr-primary-text)_92%,var(--gr-fg))] peer-active:text-[color-mix(in_srgb,var(--gr-primary-text)_84%,var(--gr-fg))]',\n default: 'text-[var(--gr-fg)] peer-hover:text-[var(--gr-primary-text)] peer-active:text-[color-mix(in_srgb,var(--gr-primary-text)_84%,var(--gr-fg))]',\n muted: 'text-[var(--gr-muted-fg)] peer-hover:text-[var(--gr-fg)] peer-active:text-[var(--gr-fg)]',\n danger: 'text-[var(--gr-danger-text)] peer-hover:text-[color-mix(in_srgb,var(--gr-danger-text)_92%,var(--gr-fg))] peer-active:text-[color-mix(in_srgb,var(--gr-danger-text)_84%,var(--gr-fg))]',\n}\n\nfunction selectLinkUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline hover:underline hover:underline-offset-4'\n}\n\n/**\n * Underline-классы для видимой метки в `view=\"link\"` + `optionsView=\"native\"`.\n * Видимая метка имеет `pointer-events-none`, а hover получает прозрачный\n * `<select>`-overlay (peer), поэтому для `underline=\"auto\"` используем\n * `peer-hover:underline` вместо `hover:underline`.\n */\nfunction selectLinkNativeLabelUnderlineClass(options: { underline: GrSelectUnderline, disabled: boolean }): string {\n if (options.disabled) return 'no-underline'\n if (options.underline === 'always') return 'underline underline-offset-4'\n if (options.underline === 'none') return 'no-underline'\n return 'no-underline peer-hover:underline peer-hover:underline-offset-4'\n}\n\n/**\n * Классы прозрачного `<select>`-overlay для `view=\"link\"` + `optionsView=\"native\"`.\n * Нативный селект растягивается на всю обёртку, но визуально невидим — ширину обёртки\n * задаёт видимый `<span>` с выбранной меткой, благодаря чему компонент в закрытом\n * состоянии занимает столько места, сколько нужно текущей опции (а не самой длинной).\n */\nexport const grSelectLinkNativeOverlayClass = 'peer absolute inset-0 w-full h-full m-0 p-0 border-0 bg-transparent text-transparent appearance-none opacity-0 cursor-pointer disabled:cursor-not-allowed focus:outline-none'\n\n/**\n * Классы видимой метки для `view=\"link\"` + `optionsView=\"native\"` (поверх прозрачного `<select>`).\n * Получает все link-стили (size/variant/underline), а также focus-ring через `peer-focus-visible`.\n */\nexport const grSelectLinkNativeLabelBaseClass = 'pointer-events-none inline-block whitespace-nowrap align-baseline rounded-[var(--gr-radius-control)] transition-colors duration-[var(--gr-duration-fast)]'\nexport const grSelectLinkNativeLabelDisabledClass = 'cursor-not-allowed text-[var(--gr-muted-fg)] no-underline'\nexport const grSelectLinkNativeLabelFocusClass = 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-[var(--gr-ring)]'\n\nexport function grSelectLinkNativeLabelClass(options: {\n size: GrSelectSize\n variant: GrSelectVariant\n underline: GrSelectUnderline\n disabled: boolean\n}): string {\n return [\n grSelectLinkNativeLabelBaseClass,\n selectLinkSizeClassBySize[options.size],\n selectLinkNativeLabelUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkNativeLabelVariantClassByVariant[options.variant],\n options.disabled ? grSelectLinkNativeLabelDisabledClass : '',\n grSelectLinkNativeLabelFocusClass,\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n state?: GrSelectState\n invalid?: boolean\n}): string {\n if (options.view === 'link') {\n return [\n selectLinkSizeClassBySize[options.size],\n selectLinkUnderlineClass({ underline: options.underline, disabled: options.disabled }),\n selectLinkVariantClassByVariant[options.variant],\n 'disabled:cursor-not-allowed disabled:text-[var(--gr-muted-fg)] disabled:no-underline',\n ].join(' ')\n }\n\n return [\n selectSizeClassBySize[options.size],\n // `invalid` сильнее `state`: ошибка перекрывает любую другую подсветку.\n options.invalid ? invalidBorderClass : borderClassByState[options.state ?? 'default'],\n // Заблокированный контрол гасится фоном и цветом текста, а не `opacity`:\n // прозрачность разбавляет выверенные на AA токены и роняет контраст.\n 'disabled:cursor-not-allowed disabled:bg-[var(--gr-muted)] disabled:text-[var(--gr-muted-fg)]',\n ].join(' ')\n}\n\nexport function grSelectNativeClass(options: {\n view: GrSelectView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n showNativeChevron: boolean\n state?: GrSelectState\n invalid?: boolean\n}): string {\n return [\n grSelectClass(options),\n options.showNativeChevron ? 'appearance-none pr-9' : '',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\nexport function grSelectTriggerClass(options: {\n view: GrSelectView\n optionsView: GrSelectOptionsView\n size: GrSelectSize\n disabled: boolean\n variant: GrSelectVariant\n underline: GrSelectUnderline\n state?: GrSelectState\n invalid?: boolean\n}): string {\n if (options.optionsView !== 'panel') {\n return grSelectClass(options)\n }\n\n if (options.view === 'link') {\n return [\n grSelectClass(options),\n 'inline-flex items-center gap-1 text-left',\n ].join(' ')\n }\n\n return [\n grSelectClass(options),\n 'flex items-center justify-between text-left',\n ].join(' ')\n}\n\nexport const grSelectPanelClasses = 'rounded-[var(--gr-radius-xl)] border border-[var(--gr-brd)] bg-[var(--gr-card)] text-[var(--gr-card-fg)] shadow-[var(--gr-shadow-2)] overflow-hidden'\n\n/** Общая подсветка наведения и активной опции панели. */\nconst selectOptionHighlight = 'bg-[color-mix(in_srgb,var(--gr-muted)_30%,transparent)]'\n\nexport const selectOptionBaseClass = 'rounded-[var(--gr-radius-md)] px-3 py-2 text-left text-[length:var(--gr-text-sm)] leading-[var(--gr-leading-sm)]'\nexport const selectOptionLinkWidthClass = 'block min-w-full w-max whitespace-nowrap'\nexport const selectOptionWidthClass = 'w-full'\nexport const selectOptionEnabledClass = `hover:${selectOptionHighlight}`\nexport const selectOptionActiveClass = selectOptionHighlight\n/** Выключенная опция гасится токеном текста — по той же причине, что и контрол. */\nexport const selectOptionDisabledClass = 'cursor-not-allowed text-[var(--gr-muted-fg)]'\n\nexport function grSelectOptionClass(options: {\n view: GrSelectView\n disabled: boolean\n active: boolean\n}): string {\n return [\n selectOptionBaseClass,\n options.view === 'link' ? selectOptionLinkWidthClass : selectOptionWidthClass,\n options.disabled ? selectOptionDisabledClass : selectOptionEnabledClass,\n !options.disabled && options.active ? selectOptionActiveClass : '',\n ]\n .filter(Boolean)\n .join(' ')\n}\n"],"mappings":";AAoCA,IAAa,mBAAmB;;;;;AAMhC,IAAa,qBAAoD;CAC/D,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;AACV;;;;;;AAOA,IAAa,qBAAqB;AAClC,IAAa,gBAAgB;AAG7B,IAAa,wBAAsD;CACjE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAa,4BAA0D;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;;;;;AAYA,IAAa,kCAAmE;CAC9E,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;AACV;;;;;;AAOA,IAAa,6CAA8E;CACzF,SAAS;CACT,SAAS;CACT,OAAO;CACP,QAAQ;AACV;AAEA,SAAS,yBAAyB,SAAsE;CACtG,IAAI,QAAQ,UAAU,OAAO;CAC7B,IAAI,QAAQ,cAAc,UAAU,OAAO;CAC3C,IAAI,QAAQ,cAAc,QAAQ,OAAO;CACzC,OAAO;AACT;;;;;;;AAQA,SAAS,oCAAoC,SAAsE;CACjH,IAAI,QAAQ,UAAU,OAAO;CAC7B,IAAI,QAAQ,cAAc,UAAU,OAAO;CAC3C,IAAI,QAAQ,cAAc,QAAQ,OAAO;CACzC,OAAO;AACT;;;;;;;AAQA,IAAa,iCAAiC;;;;;AAM9C,IAAa,mCAAmC;AAChD,IAAa,uCAAuC;AACpD,IAAa,oCAAoC;AAEjD,SAAgB,6BAA6B,SAKlC;CACT,OAAO;EACL;EACA,0BAA0B,QAAQ;EAClC,oCAAoC;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;EAAS,CAAC;EAChG,2CAA2C,QAAQ;EACnD,QAAQ,WAAW,uCAAuC;EAC1D;CACF,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb;AAEA,SAAgB,cAAc,SAQnB;CACT,IAAI,QAAQ,SAAS,QACnB,OAAO;EACL,0BAA0B,QAAQ;EAClC,yBAAyB;GAAE,WAAW,QAAQ;GAAW,UAAU,QAAQ;EAAS,CAAC;EACrF,gCAAgC,QAAQ;EACxC;CACF,CAAC,CAAC,KAAK,GAAG;CAGZ,OAAO;EACL,sBAAsB,QAAQ;EAE9B,QAAQ,UAAU,qBAAqB,mBAAmB,QAAQ,SAAS;EAG3E;CACF,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,SAAgB,oBAAoB,SASzB;CACT,OAAO,CACL,cAAc,OAAO,GACrB,QAAQ,oBAAoB,yBAAyB,EACvD,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb;AAEA,SAAgB,qBAAqB,SAS1B;CACT,IAAI,QAAQ,gBAAgB,SAC1B,OAAO,cAAc,OAAO;CAG9B,IAAI,QAAQ,SAAS,QACnB,OAAO,CACL,cAAc,OAAO,GACrB,0CACF,CAAC,CAAC,KAAK,GAAG;CAGZ,OAAO,CACL,cAAc,OAAO,GACrB,6CACF,CAAC,CAAC,KAAK,GAAG;AACZ;AAEA,IAAa,uBAAuB;;AAGpC,IAAM,wBAAwB;AAE9B,IAAa,wBAAwB;AACrC,IAAa,6BAA6B;AAC1C,IAAa,yBAAyB;AACtC,IAAa,2BAA2B,SAAS;AACjD,IAAa,0BAA0B;;AAEvC,IAAa,4BAA4B;AAEzC,SAAgB,oBAAoB,SAIzB;CACT,OAAO;EACL;EACA,QAAQ,SAAS,SAAS,6BAA6B;EACvD,QAAQ,WAAW,4BAA4B;EAC/C,CAAC,QAAQ,YAAY,QAAQ,SAAS,0BAA0B;CAClE,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;AACb"}
@@ -12,8 +12,8 @@
12
12
  * системная задача.
13
13
  */
14
14
  var tableSizes = {
15
- xs: "text-[length:var(--gr-control-text-xs)]",
16
- sm: "text-[length:var(--gr-control-text-sm)]",
15
+ xs: "text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
16
+ sm: "text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
17
17
  md: "text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]",
18
18
  lg: "text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]"
19
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"grTableStyles-C-iaqQUN.js","names":[],"sources":["../../src/components/GrTable/grTableStyles.ts"],"sourcesContent":["import type { GrComponentSize } from '../shared/sizes'\n\nexport type GrTableSize = GrComponentSize\n\n/**\n * `GrTable` — «тонкий» контейнер: он задаёт только кегль таблицы, паддинги\n * ячеек остаются за потребителем (см. `GrTableProps`). Поэтому карта здесь\n * одна, а метрики ячеек живут в `GrDataTable`, который рисует их сам.\n */\n/**\n * Лестница 12/13/14/16 совпадает с `GrInput`, `GrTextarea` и `GrSelect` — это\n * типографика контролов пакета, а не самодеятельность таблицы. В шкале\n * `--gr-text-*` ступени 13px нет, и подстановка `--gr-text-sm` схлопнула бы\n * `sm` и `md` в один кегль. Перевод всей лестницы на токены — отдельная\n * системная задача.\n */\nexport const tableSizes: Record<GrTableSize, string> = {\n xs: 'text-[length:var(--gr-control-text-xs)]',\n sm: 'text-[length:var(--gr-control-text-sm)]',\n md: 'text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]',\n lg: 'text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]',\n}\n\n/** Чередование строк и подсветка под курсором — на `<tbody>`, а не на ячейках. */\nexport const stripedClass = '[&>tr:nth-child(even)]:bg-[color-mix(in_srgb,var(--gr-muted)_35%,transparent)]'\nexport const hoverableClass = '[&>tr:hover]:bg-[color-mix(in_srgb,var(--gr-muted)_45%,transparent)]'\n\nexport const emptyCellClass = 'px-4 py-8 text-center text-[var(--gr-muted-fg)]'\nexport const loadingRowCellClass = 'px-4 py-3'\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAa,aAA0C;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;AAGA,IAAa,eAAe;AAC5B,IAAa,iBAAiB;AAE9B,IAAa,iBAAiB;AAC9B,IAAa,sBAAsB"}
1
+ {"version":3,"file":"grTableStyles-uuMPSOBR.js","names":[],"sources":["../../src/components/GrTable/grTableStyles.ts"],"sourcesContent":["import type { GrComponentSize } from '../shared/sizes'\n\nexport type GrTableSize = GrComponentSize\n\n/**\n * `GrTable` — «тонкий» контейнер: он задаёт только кегль таблицы, паддинги\n * ячеек остаются за потребителем (см. `GrTableProps`). Поэтому карта здесь\n * одна, а метрики ячеек живут в `GrDataTable`, который рисует их сам.\n */\n/**\n * Лестница 12/13/14/16 совпадает с `GrInput`, `GrTextarea` и `GrSelect` — это\n * типографика контролов пакета, а не самодеятельность таблицы. В шкале\n * `--gr-text-*` ступени 13px нет, и подстановка `--gr-text-sm` схлопнула бы\n * `sm` и `md` в один кегль. Перевод всей лестницы на токены — отдельная\n * системная задача.\n */\nexport const tableSizes: Record<GrTableSize, string> = {\n xs: 'text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'text-[length:var(--gr-control-text-md)] leading-[var(--gr-leading-sm)]',\n lg: 'text-[length:var(--gr-control-text-lg)] leading-[var(--gr-leading-base)]',\n}\n\n/** Чередование строк и подсветка под курсором — на `<tbody>`, а не на ячейках. */\nexport const stripedClass = '[&>tr:nth-child(even)]:bg-[color-mix(in_srgb,var(--gr-muted)_35%,transparent)]'\nexport const hoverableClass = '[&>tr:hover]:bg-[color-mix(in_srgb,var(--gr-muted)_45%,transparent)]'\n\nexport const emptyCellClass = 'px-4 py-8 text-center text-[var(--gr-muted-fg)]'\nexport const loadingRowCellClass = 'px-4 py-3'\n"],"mappings":";;;;;;;;;;;;;AAgBA,IAAa,aAA0C;CACrD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;AAGA,IAAa,eAAe;AAC5B,IAAa,iBAAiB;AAE9B,IAAa,iBAAiB;AAC9B,IAAa,sBAAsB"}
@@ -18,10 +18,10 @@ var invalidBorderClass = "border-[var(--gr-invalid-brd)] focus-visible:ring-[var
18
18
  * задаёт `rows`.
19
19
  */
20
20
  var sizes = {
21
- xs: "px-2.5 py-1 text-[length:var(--gr-control-text-xs)]",
22
- sm: "px-3 py-1.5 text-[length:var(--gr-control-text-sm)]",
23
- md: "px-3 py-2 text-[length:var(--gr-control-text-md)]",
24
- lg: "px-4 py-2.5 text-[length:var(--gr-control-text-lg)]"
21
+ xs: "px-2.5 py-1 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]",
22
+ sm: "px-3 py-1.5 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]",
23
+ md: "px-3 py-2 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]",
24
+ lg: "px-4 py-2.5 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]"
25
25
  };
26
26
  var resizeClass = {
27
27
  none: "resize-none",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grTextareaStyles-Bp35BGna.js","names":[],"sources":["../../src/components/GrTextarea/grTextareaStyles.ts"],"sourcesContent":["import type { GrComponentSize, GrControlState } from '../shared/sizes'\n\nexport type GrTextareaState = GrControlState\nexport type GrTextareaSize = GrComponentSize\n\nexport const borderClassByState: Record<GrTextareaState, string> = {\n default: 'border-[var(--gr-brd)]',\n success: 'border-[var(--gr-success)] focus-visible:ring-[var(--gr-success)]',\n warning: 'border-[var(--gr-warning)] focus-visible:ring-[var(--gr-warning)]',\n danger: 'border-[var(--gr-danger)] focus-visible:ring-[var(--gr-danger)]',\n}\n\n/**\n * Ошибка валидации красится своей ролью, а не декоративным тоном `danger`:\n * `state=\"danger\"` — это подсветка по решению разработчика, `invalid` — вердикт\n * валидации, и тема вправе развести их по цвету.\n */\nexport const invalidBorderClass = 'border-[var(--gr-invalid-brd)] focus-visible:ring-[var(--gr-invalid-ring)]'\n\n/**\n * Кегль совпадает с `GrInput` на каждой ступени: поле ввода и текстовая область\n * в одной форме обязаны читаться одинаково. Вертикальный паддинг меньше, чем у\n * `GrInput`: там он центрирует одну строку в фиксированной высоте, здесь высоту\n * задаёт `rows`.\n */\nexport const sizes: Record<GrTextareaSize, string> = {\n xs: 'px-2.5 py-1 text-[length:var(--gr-control-text-xs)] leading-[var(--gr-control-leading-xs)]',\n sm: 'px-3 py-1.5 text-[length:var(--gr-control-text-sm)] leading-[var(--gr-control-leading-sm)]',\n md: 'px-3 py-2 text-[length:var(--gr-control-text-md)] leading-[var(--gr-control-leading-md)]',\n lg: 'px-4 py-2.5 text-[length:var(--gr-control-text-lg)] leading-[var(--gr-control-leading-lg)]',\n}\n\nexport type GrTextareaResize = 'none' | 'vertical' | 'both'\n\nexport const resizeClass: Record<GrTextareaResize, string> = {\n none: 'resize-none',\n vertical: 'resize-y',\n both: 'resize',\n}\n\nexport const enabledSurfaceClass = 'bg-[var(--gr-bg)]'\n\n/**\n * Заблокированное поле гасится фоном, а не `opacity`: прозрачность разбавляет\n * выверенные на AA токены текста. Классы взаимоисключающие — два `bg-*` одной\n * специфичности разрулил бы порядок в сгенерированном CSS.\n */\nexport const disabledSurfaceClass = 'bg-[var(--gr-muted)] text-[var(--gr-muted-fg)] cursor-not-allowed'\n\n/**\n * Ряд счётчиков под полем: слева строки, справа символы. Обе подписи — один\n * визуальный уровень, поэтому кегль и цвет у них общие (`countClass`).\n */\nexport const countRowClass = 'mt-1 flex items-baseline justify-between gap-3'\n\n/** Счётчик строк. Слева, потому что читается раньше: сначала «сколько строк», потом лимит символов. */\nexport const lineCountClass = 'text-[length:var(--gr-control-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)] tabular-nums'\n\nexport const countClass = 'mt-1 text-right text-[length:var(--gr-control-text-xs)] leading-[var(--gr-leading-xs)] text-[var(--gr-muted-fg)] tabular-nums'\n\nexport function grTextareaClass(options: { state: GrTextareaState, invalid: boolean }): string {\n return options.invalid ? invalidBorderClass : borderClassByState[options.state]\n}\n"],"mappings":";AAKA,IAAa,qBAAsD;CACjE,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;AACV;;;;;;AAOA,IAAa,qBAAqB;;;;;;;AAQlC,IAAa,QAAwC;CACnD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAIA,IAAa,cAAgD;CAC3D,MAAM;CACN,UAAU;CACV,MAAM;AACR;AAEA,IAAa,sBAAsB;;;;;;AAOnC,IAAa,uBAAuB;;;;;AAMpC,IAAa,gBAAgB;;AAG7B,IAAa,iBAAiB;AAE9B,IAAa,aAAa;AAE1B,SAAgB,gBAAgB,SAA+D;CAC7F,OAAO,QAAQ,UAAU,qBAAqB,mBAAmB,QAAQ;AAC3E"}