@feugene/granularity 0.6.2 → 0.8.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 (151) hide show
  1. package/dist/GrBadge.css +1 -0
  2. package/dist/chunks/{config-Dkq0HeLe.js → config-3I3vqDW4.js} +1 -1
  3. package/dist/chunks/{config-Dkq0HeLe.js.map → config-3I3vqDW4.js.map} +1 -1
  4. package/dist/chunks/{config-BaMO9dQh.js → config-B61cX08u.js} +1 -1
  5. package/dist/chunks/{config-BaMO9dQh.js.map → config-B61cX08u.js.map} +1 -1
  6. package/dist/chunks/{config-C_-02Pu-.js.map → config-BgBWt9-A.js.map} +1 -1
  7. package/dist/chunks/{config-Cn8TG49a.js.map → config-CUwF4E4R.js.map} +1 -1
  8. package/dist/chunks/config-DK2NpdyX2.js.map +1 -0
  9. package/dist/chunks/{config-BXffa3ta.js → config-DZAQpfz0.js} +2 -2
  10. package/dist/chunks/{config-BXffa3ta.js.map → config-DZAQpfz0.js.map} +1 -1
  11. package/dist/chunks/{config-C9AOlKah.js.map → config-V3LF-b_F.js.map} +1 -1
  12. package/dist/chunks/config-iDTkWUdh2.js.map +1 -0
  13. package/dist/chunks/{en-BMjJZttK.js → en-QNZhjmSJ.js} +18 -1
  14. package/dist/chunks/en-QNZhjmSJ.js.map +1 -0
  15. package/dist/chunks/{es-EYCf8G_1.js → es-C1c5XsIK.js} +18 -1
  16. package/dist/chunks/es-C1c5XsIK.js.map +1 -0
  17. package/dist/chunks/{es-Cu_RlgIr.js → es-CKLPuE0h.js} +3 -3
  18. package/dist/chunks/{es-Cu_RlgIr.js.map → es-CKLPuE0h.js.map} +1 -1
  19. package/dist/chunks/{grBadgeStyles-pqqbVgLk.js → grBadgeStyles-Cq0hH2Ls.js} +7 -5
  20. package/dist/chunks/grBadgeStyles-Cq0hH2Ls.js.map +1 -0
  21. package/dist/chunks/{grButtonStyles-BxZW2x0-.js.map → grButtonStyles-DKuXUemw.js.map} +1 -1
  22. package/dist/chunks/granularityI18n-CXa_uN7f.js +46 -0
  23. package/dist/chunks/granularityI18n-CXa_uN7f.js.map +1 -0
  24. package/dist/chunks/loader-circle-BUntgosj.js.map +1 -0
  25. package/dist/chunks/{ru-DKswMSdd.js → ru-DcF7ciz0.js} +18 -1
  26. package/dist/chunks/ru-DcF7ciz0.js.map +1 -0
  27. package/dist/chunks/{safelist-BY7z8fOl.js → safelist-DccvJqCE.js} +1 -1
  28. package/dist/chunks/{safelist-BY7z8fOl.js.map → safelist-DccvJqCE.js.map} +1 -1
  29. package/dist/chunks/{shared-DO3Sr5FJ.js → shared-D7q-upeJ.js} +15 -8
  30. package/dist/chunks/shared-D7q-upeJ.js.map +1 -0
  31. package/dist/components/GrBadge/chunks/GrBadge-Cs_cVfuO.js +36 -0
  32. package/dist/components/GrBadge/chunks/GrBadge-Cs_cVfuO.js.map +1 -0
  33. package/dist/components/GrBadge/index.js +2 -2
  34. package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-CxtamOZ-.js.map → GrBadgeWrap-BEnE9DyJ.js.map} +1 -1
  35. package/dist/components/GrBadgeWrap/index.js +2 -2
  36. package/dist/components/GrBottomNav/chunks/{GrBottomNav-CsmQ7mTJ.js.map → GrBottomNav-XPHwd7UQ.js.map} +1 -1
  37. package/dist/components/GrBottomNav/index.js +2 -2
  38. package/dist/components/GrButton/chunks/{GrButton-BmGdp8-4.js → GrButton-CPDKonoB.js} +2 -2
  39. package/dist/components/GrButton/chunks/{GrButton-BmGdp8-4.js.map → GrButton-CPDKonoB.js.map} +1 -1
  40. package/dist/components/GrButton/index.js +4 -4
  41. package/dist/components/GrButtonGroup/chunks/{GrButtonGroup-CBj4tpms.js.map → GrButtonGroup-CPOH6V-P.js.map} +1 -1
  42. package/dist/components/GrButtonGroup/index.js +2 -2
  43. package/dist/components/GrCard/chunks/{GrCard-xtDcXBr7.js → GrCard-6yk1RRAQ.js} +1 -1
  44. package/dist/components/GrCard/chunks/{GrCard-xtDcXBr7.js.map → GrCard-6yk1RRAQ.js.map} +1 -1
  45. package/dist/components/GrCard/index.js +1 -1
  46. package/dist/components/GrCollapse/chunks/{GrCollapse-HU20VTVn.js → GrCollapse-CU94BTAR.js} +1 -1
  47. package/dist/components/GrCollapse/chunks/{GrCollapse-HU20VTVn.js.map → GrCollapse-CU94BTAR.js.map} +1 -1
  48. package/dist/components/GrCollapse/index.js +1 -1
  49. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DjGOX9Hd.js → GrConfirmDialog-DE-d77Us.js} +2 -2
  50. package/dist/components/GrConfirmDialog/chunks/{GrConfirmDialog-DjGOX9Hd.js.map → GrConfirmDialog-DE-d77Us.js.map} +1 -1
  51. package/dist/components/GrConfirmDialog/index.js +2 -2
  52. package/dist/components/GrDataTable/index.js +1 -1
  53. package/dist/components/GrDialog/chunks/{GrDialog-gObmaVEl.js → GrDialog-Ba3Ojcsq.js} +1 -1
  54. package/dist/components/GrDialog/chunks/{GrDialog-gObmaVEl.js.map → GrDialog-Ba3Ojcsq.js.map} +1 -1
  55. package/dist/components/GrDialog/index.js +1 -1
  56. package/dist/components/GrDrawer/chunks/{GrDrawer-BJL_gTxI.js → GrDrawer-h33X403E.js} +1 -1
  57. package/dist/components/GrDrawer/chunks/{GrDrawer-BJL_gTxI.js.map → GrDrawer-h33X403E.js.map} +1 -1
  58. package/dist/components/GrDrawer/index.js +1 -1
  59. package/dist/components/GrFormFile/chunks/{GrFormFile-deDPicM2.js → GrFormFile-WqF-dPTB.js} +2 -2
  60. package/dist/components/GrFormFile/chunks/{GrFormFile-deDPicM2.js.map → GrFormFile-WqF-dPTB.js.map} +1 -1
  61. package/dist/components/GrFormFile/index.js +1 -1
  62. package/dist/components/GrInputTag/chunks/{GrInputTag-G_VYJPF9.js → GrInputTag-CeEy0IwD.js} +1 -1
  63. package/dist/components/GrInputTag/chunks/{GrInputTag-G_VYJPF9.js.map → GrInputTag-CeEy0IwD.js.map} +1 -1
  64. package/dist/components/GrInputTag/index.js +1 -1
  65. package/dist/components/GrList/chunks/{GrList-BPjQf-72.js → GrList-C2GpK56-.js} +1 -1
  66. package/dist/components/GrList/chunks/{GrList-BPjQf-72.js.map → GrList-C2GpK56-.js.map} +1 -1
  67. package/dist/components/GrList/index.js +1 -1
  68. package/dist/components/GrLoading/chunks/{GrLoading-C3QZKwE-.js → GrLoading-CxNgHgNw.js} +1 -1
  69. package/dist/components/GrLoading/chunks/{GrLoading-C3QZKwE-.js.map → GrLoading-CxNgHgNw.js.map} +1 -1
  70. package/dist/components/GrLoading/index.js +1 -1
  71. package/dist/components/GrNavbar/chunks/{GrNavbar-BDIKAYfN.js → GrNavbar-CxHwBvSG.js} +2 -2
  72. package/dist/components/GrNavbar/chunks/{GrNavbar-BDIKAYfN.js.map → GrNavbar-CxHwBvSG.js.map} +1 -1
  73. package/dist/components/GrNavbar/index.js +1 -1
  74. package/dist/components/GrPagination/chunks/{GrPagination-BZlH-uEd.js → GrPagination-dMXZz120.js} +2 -2
  75. package/dist/components/GrPagination/chunks/{GrPagination-BZlH-uEd.js.map → GrPagination-dMXZz120.js.map} +1 -1
  76. package/dist/components/GrPagination/index.js +1 -1
  77. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-CUMW6_58.js → GrPromptDialog-CfKf4tPx.js} +2 -2
  78. package/dist/components/GrPromptDialog/chunks/{GrPromptDialog-CUMW6_58.js.map → GrPromptDialog-CfKf4tPx.js.map} +1 -1
  79. package/dist/components/GrPromptDialog/index.js +1 -1
  80. package/dist/components/GrRadio/chunks/{GrRadio-B_t_ZNVl.js → GrRadio-CQ3w3Bj6.js} +1 -1
  81. package/dist/components/GrRadio/chunks/{GrRadio-B_t_ZNVl.js.map → GrRadio-CQ3w3Bj6.js.map} +1 -1
  82. package/dist/components/GrRadio/index.js +2 -2
  83. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-CVlgpUBr.js → GrRadioGroup-DAaVzlPx.js} +2 -2
  84. package/dist/components/GrRadioGroup/chunks/{GrRadioGroup-CVlgpUBr.js.map → GrRadioGroup-DAaVzlPx.js.map} +1 -1
  85. package/dist/components/GrRadioGroup/index.js +1 -1
  86. package/dist/components/GrToaster/chunks/{GrToaster-I1e-zCpf.js → GrToaster-BGNNmnr9.js} +1 -1
  87. package/dist/components/GrToaster/chunks/{GrToaster-I1e-zCpf.js.map → GrToaster-BGNNmnr9.js.map} +1 -1
  88. package/dist/components/GrToaster/index.js +1 -1
  89. package/dist/components/GrTree/chunks/{GrTree-Dlev9oBd.js → GrTree-mYa3COxG.js} +1 -1
  90. package/dist/components/GrTree/chunks/{GrTree-Dlev9oBd.js.map → GrTree-mYa3COxG.js.map} +1 -1
  91. package/dist/components/GrTree/index.js +1 -1
  92. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-n0CZT4Ic.js → GrTreeSelect-BEdtrjwX.js} +2 -2
  93. package/dist/components/GrTreeSelect/chunks/{GrTreeSelect-n0CZT4Ic.js.map → GrTreeSelect-BEdtrjwX.js.map} +1 -1
  94. package/dist/components/GrTreeSelect/index.js +1 -1
  95. package/dist/directives/loading.js +1 -1
  96. package/dist/granular-provider-node.js +2 -2
  97. package/dist/granular-provider.js +1 -1
  98. package/dist/i18n/all.js +1 -1
  99. package/dist/i18n/index.js +1 -1
  100. package/dist/index.js +1006 -33
  101. package/dist/index.js.map +1 -1
  102. package/dist/types/src/components/GrBadge/grBadgeStyles.d.ts +1 -1
  103. package/dist/types/src/components/GrResponseErrorBanner/GrFormErrorBanner.vue.d.ts +70 -0
  104. package/dist/types/src/components/GrResponseErrorBanner/GrResponseErrorBanner.vue.d.ts +96 -0
  105. package/dist/types/src/components/GrResponseErrorBanner/GrUploadErrorBanner.vue.d.ts +73 -0
  106. package/dist/types/src/components/GrResponseErrorBanner/config.d.ts +1 -0
  107. package/dist/types/src/components/GrResponseErrorBanner/index.d.ts +10 -0
  108. package/dist/types/src/components/GrResponseErrorBanner/parsers/abortErrorParser.d.ts +15 -0
  109. package/dist/types/src/components/GrResponseErrorBanner/parsers/createResponseErrorClassifier.d.ts +28 -0
  110. package/dist/types/src/components/GrResponseErrorBanner/parsers/fileValidationParser.d.ts +12 -0
  111. package/dist/types/src/components/GrResponseErrorBanner/parsers/httpStatusParser.d.ts +15 -0
  112. package/dist/types/src/components/GrResponseErrorBanner/parsers/index.d.ts +11 -0
  113. package/dist/types/src/components/GrResponseErrorBanner/parsers/jsonApiErrorParser.d.ts +17 -0
  114. package/dist/types/src/components/GrResponseErrorBanner/parsers/laravelValidationParser.d.ts +15 -0
  115. package/dist/types/src/components/GrResponseErrorBanner/parsers/networkErrorParser.d.ts +14 -0
  116. package/dist/types/src/components/GrResponseErrorBanner/parsers/normalizeError.d.ts +19 -0
  117. package/dist/types/src/components/GrResponseErrorBanner/parsers/plainMessageParser.d.ts +15 -0
  118. package/dist/types/src/components/GrResponseErrorBanner/parsers/problemDetailsParser.d.ts +17 -0
  119. package/dist/types/src/components/GrResponseErrorBanner/responseError.defaults.d.ts +18 -0
  120. package/dist/types/src/components/GrResponseErrorBanner/responseError.types.d.ts +115 -0
  121. package/dist/types/src/components/GrResponseErrorBanner/useResponseError.d.ts +62 -0
  122. package/dist/types/src/components/GrToaster/GrToaster.vue.d.ts +1 -1
  123. package/dist/types/src/granular-provider/shared.d.ts +1 -0
  124. package/dist/types/src/i18n/messages/en.d.ts +32 -0
  125. package/dist/types/src/i18n/messages/es.d.ts +32 -0
  126. package/dist/types/src/i18n/messages/ru.d.ts +32 -0
  127. package/dist/types/src/index.d.ts +1 -0
  128. package/package.json +1 -1
  129. package/dist/chunks/config-C_AOYGBr.js.map +0 -1
  130. package/dist/chunks/config-DJWf0kWe.js.map +0 -1
  131. package/dist/chunks/en-BMjJZttK.js.map +0 -1
  132. package/dist/chunks/es-EYCf8G_1.js.map +0 -1
  133. package/dist/chunks/grBadgeStyles-pqqbVgLk.js.map +0 -1
  134. package/dist/chunks/granularityI18n-Dm4DuCS9.js +0 -26
  135. package/dist/chunks/granularityI18n-Dm4DuCS9.js.map +0 -1
  136. package/dist/chunks/loader-circle-B2rWDk5u.js.map +0 -1
  137. package/dist/chunks/ru-DKswMSdd.js.map +0 -1
  138. package/dist/chunks/shared-DO3Sr5FJ.js.map +0 -1
  139. package/dist/components/GrBadge/chunks/GrBadge-wuIb4_2K.js +0 -32
  140. package/dist/components/GrBadge/chunks/GrBadge-wuIb4_2K.js.map +0 -1
  141. /package/dist/chunks/{_plugin-vue_export-helper-BG_EqiDU.js → _plugin-vue_export-helper-DQR7Sy7Q.js} +0 -0
  142. /package/dist/chunks/{config-C_-02Pu-.js → config-BgBWt9-A.js} +0 -0
  143. /package/dist/chunks/{config-Cn8TG49a.js → config-CUwF4E4R.js} +0 -0
  144. /package/dist/chunks/{config-DJWf0kWe.js → config-DK2NpdyX2.js} +0 -0
  145. /package/dist/chunks/{config-C9AOlKah.js → config-V3LF-b_F.js} +0 -0
  146. /package/dist/chunks/{config-C_AOYGBr.js → config-iDTkWUdh2.js} +0 -0
  147. /package/dist/chunks/{grButtonStyles-BxZW2x0-.js → grButtonStyles-DKuXUemw.js} +0 -0
  148. /package/dist/chunks/{loader-circle-B2rWDk5u.js → loader-circle-BUntgosj.js} +0 -0
  149. /package/dist/components/GrBadgeWrap/chunks/{GrBadgeWrap-CxtamOZ-.js → GrBadgeWrap-BEnE9DyJ.js} +0 -0
  150. /package/dist/components/GrBottomNav/chunks/{GrBottomNav-CsmQ7mTJ.js → GrBottomNav-XPHwd7UQ.js} +0 -0
  151. /package/dist/components/GrButtonGroup/chunks/{GrButtonGroup-CBj4tpms.js → GrButtonGroup-CPOH6V-P.js} +0 -0
@@ -0,0 +1 @@
1
+ .gr-badge__label[data-v-c44afbc8]{align-items:center;min-height:1lh;display:flex}.gr-badge__text[data-v-c44afbc8]{text-box-trim:trim-both;text-box-edge:cap alphabetic;text-box:trim-both cap alphabetic;display:block}
@@ -1,4 +1,4 @@
1
- import { n as grButtonSafelist } from "./safelist-BY7z8fOl.js";
1
+ import { n as grButtonSafelist } from "./safelist-DccvJqCE.js";
2
2
  import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
3
3
  //#region src/components/GrButton/config.ts
4
4
  var grButtonConfig = defineGranularComponent(import.meta.url, {
@@ -1 +1 @@
1
- {"version":3,"file":"config-Dkq0HeLe.js","names":[],"sources":["../../src/components/GrButton/config.ts"],"sourcesContent":["import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\nimport { grButtonSafelist } from './safelist'\n\nexport const grButtonConfig = defineGranularComponent(import.meta.url, {\n name: 'GrButton',\n safelist: grButtonSafelist,\n})\n"],"mappings":";;;AAGA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"config-3I3vqDW4.js","names":[],"sources":["../../src/components/GrButton/config.ts"],"sourcesContent":["import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\nimport { grButtonSafelist } from './safelist'\n\nexport const grButtonConfig = defineGranularComponent(import.meta.url, {\n name: 'GrButton',\n safelist: grButtonSafelist,\n})\n"],"mappings":";;;AAGA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,UAAU;CACX,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { t as splitClassTokens } from "./classTokens-BPeBXNzu.js";
2
- import { a as sizeClassBySize, i as semiRadiusClassBySize, r as lightToneClassByTone, t as darkToneClassByTone } from "./grBadgeStyles-pqqbVgLk.js";
2
+ import { a as sizeClassBySize, i as semiRadiusClassBySize, r as lightToneClassByTone, t as darkToneClassByTone } from "./grBadgeStyles-Cq0hH2Ls.js";
3
3
  import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
4
4
  //#region src/components/GrBadge/safelist.ts
5
5
  var grBadgeSafelist = [...new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"config-BaMO9dQh.js","names":[],"sources":["../../src/components/GrBadge/safelist.ts","../../src/components/GrBadge/config.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\nimport {\n darkToneClassByTone,\n lightToneClassByTone,\n semiRadiusClassBySize,\n sizeClassBySize,\n} from './grBadgeStyles'\n\nexport const grBadgeSafelist = [...new Set([\n ...Object.values(sizeClassBySize).flatMap(splitClassTokens),\n ...Object.values(semiRadiusClassBySize).flatMap(splitClassTokens),\n 'rounded-[var(--ds-radius-none)]',\n 'rounded-full',\n ...Object.values(lightToneClassByTone).flatMap(splitClassTokens),\n ...Object.values(darkToneClassByTone).flatMap(splitClassTokens),\n])]\n","import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grBadgeSafelist } from './safelist'\n\nexport const grBadgeConfig = defineGranularComponent(import.meta.url, {\n name: 'GrBadge',\n safelist: grBadgeSafelist,\n})"],"mappings":";;;;AAQA,IAAa,kBAAkB,CAAC,GAAG,IAAI,IAAI;CACzC,GAAG,OAAO,OAAO,gBAAgB,CAAC,QAAQ,iBAAiB;CAC3D,GAAG,OAAO,OAAO,sBAAsB,CAAC,QAAQ,iBAAiB;CACjE;CACA;CACA,GAAG,OAAO,OAAO,qBAAqB,CAAC,QAAQ,iBAAiB;CAChE,GAAG,OAAO,OAAO,oBAAoB,CAAC,QAAQ,iBAAiB;CAChE,CAAC,CAAC;;;ACXH,IAAa,gBAAgB,wBAAwB,OAAO,KAAK,KAAK;CACpE,MAAM;CACN,UAAU;CACX,CAAA"}
1
+ {"version":3,"file":"config-B61cX08u.js","names":[],"sources":["../../src/components/GrBadge/safelist.ts","../../src/components/GrBadge/config.ts"],"sourcesContent":["import { splitClassTokens } from '../shared/classTokens'\nimport {\n darkToneClassByTone,\n lightToneClassByTone,\n semiRadiusClassBySize,\n sizeClassBySize,\n} from './grBadgeStyles'\n\nexport const grBadgeSafelist = [...new Set([\n ...Object.values(sizeClassBySize).flatMap(splitClassTokens),\n ...Object.values(semiRadiusClassBySize).flatMap(splitClassTokens),\n 'rounded-[var(--ds-radius-none)]',\n 'rounded-full',\n ...Object.values(lightToneClassByTone).flatMap(splitClassTokens),\n ...Object.values(darkToneClassByTone).flatMap(splitClassTokens),\n])]\n","import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grBadgeSafelist } from './safelist'\n\nexport const grBadgeConfig = defineGranularComponent(import.meta.url, {\n name: 'GrBadge',\n safelist: grBadgeSafelist,\n})"],"mappings":";;;;AAQA,IAAa,kBAAkB,CAAC,GAAG,IAAI,IAAI;CACzC,GAAG,OAAO,OAAO,gBAAgB,CAAC,QAAQ,iBAAiB;CAC3D,GAAG,OAAO,OAAO,sBAAsB,CAAC,QAAQ,iBAAiB;CACjE;CACA;CACA,GAAG,OAAO,OAAO,qBAAqB,CAAC,QAAQ,iBAAiB;CAChE,GAAG,OAAO,OAAO,oBAAoB,CAAC,QAAQ,iBAAiB;CAChE,CAAC,CAAC;;;ACXH,IAAa,gBAAgB,wBAAwB,OAAO,KAAK,KAAK;CACpE,MAAM;CACN,UAAU;CACX,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-C_-02Pu-.js","names":[],"sources":["../../src/components/GrBottomNav/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grBottomNavConfig = defineGranularComponent(import.meta.url, {\n name: 'GrBottomNav',\n})"],"mappings":";;AAEA,IAAa,oBAAoB,wBAAwB,OAAO,KAAK,KAAK,EACtE,MAAM,eACT,CAAA"}
1
+ {"version":3,"file":"config-BgBWt9-A.js","names":[],"sources":["../../src/components/GrBottomNav/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grBottomNavConfig = defineGranularComponent(import.meta.url, {\n name: 'GrBottomNav',\n})"],"mappings":";;AAEA,IAAa,oBAAoB,wBAAwB,OAAO,KAAK,KAAK,EACtE,MAAM,eACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-Cn8TG49a.js","names":[],"sources":["../../src/components/GrButtonGroup/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grButtonGroupConfig = defineGranularComponent(import.meta.url, {\n name: 'GrButtonGroup',\n})"],"mappings":";;AAEA,IAAa,sBAAsB,wBAAwB,OAAO,KAAK,KAAK,EACxE,MAAM,iBACT,CAAA"}
1
+ {"version":3,"file":"config-CUwF4E4R.js","names":[],"sources":["../../src/components/GrButtonGroup/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grButtonGroupConfig = defineGranularComponent(import.meta.url, {\n name: 'GrButtonGroup',\n})"],"mappings":";;AAEA,IAAa,sBAAsB,wBAAwB,OAAO,KAAK,KAAK,EACxE,MAAM,iBACT,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-DK2NpdyX2.js","names":[],"sources":["../../src/components/GrDataTable/config.ts"],"sourcesContent":["import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nexport const grDataTableConfig = defineGranularComponent(import.meta.url, {\n name: 'GrDataTable',\n dependencies: ['GrTable', 'GrIcon'],\n})\n"],"mappings":";;AAEA,IAAa,oBAAoB,wBAAwB,OAAO,KAAK,KAAK;CACxE,MAAM;CACN,cAAc,CAAC,WAAW,SAAS;CACpC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { t as splitClassTokens } from "./classTokens-BPeBXNzu.js";
2
- import { n as grButtonBaseClass, r as grButtonClass } from "./grButtonStyles-BxZW2x0-.js";
3
- import { n as grButtonSafelist } from "./safelist-BY7z8fOl.js";
2
+ import { n as grButtonBaseClass, r as grButtonClass } from "./grButtonStyles-DKuXUemw.js";
3
+ import { n as grButtonSafelist } from "./safelist-DccvJqCE.js";
4
4
  import { defineGranularComponent } from "@feugene/unocss-preset-granular/contract";
5
5
  //#region src/components/GrRadio/grRadioStyles.ts
6
6
  var grRadioDisabledClass = "opacity-50 cursor-not-allowed";
@@ -1 +1 @@
1
- {"version":3,"file":"config-BXffa3ta.js","names":[],"sources":["../../src/components/GrRadio/grRadioStyles.ts","../../src/components/GrRadio/safelist.ts","../../src/components/GrRadio/config.ts"],"sourcesContent":["import {\n grButtonBaseClass,\n grButtonClass,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from '../GrButton/grButtonStyles'\n\nexport type GrRadioVariant = 'radiobox' | 'button'\n\nexport const grRadioDisabledClass = 'opacity-50 cursor-not-allowed'\nexport const grRadioEnabledClass = 'cursor-pointer'\nexport const grRadioRootDisabledClass = 'cursor-not-allowed opacity-70'\nexport const grRadioRootEnabledClass = 'cursor-pointer'\nexport const grRadioControlCheckedClass = 'border-[var(--primary)] bg-[color-mix(in_srgb,var(--primary)_10%,var(--bg))]'\nexport const grRadioControlUncheckedClass = 'border-[var(--brd)] bg-[var(--bg)]'\nexport const grRadioDotCheckedClass = 'bg-[var(--primary)] opacity-100 scale-100'\nexport const grRadioDotUncheckedClass = 'bg-transparent opacity-0 scale-75'\n// Базовые классы «точки» внутри radiobox — нестандартные (`h-[6px]`, `w-[6px]`, произвольный transition).\n// Вынесены сюда, чтобы `safelist` мог гарантировать их присутствие в сборке даже при tree-shaking шаблона.\nexport const grRadioDotBaseClass = 'h-[6px] w-[6px] rounded-full transition-[transform,opacity,background-color] duration-150'\n\nexport function grRadioButtonClass(options: {\n checked: boolean\n disabled: boolean\n size: GrButtonSize\n buttonVariant: GrButtonVariant\n buttonTone: GrButtonTone\n selectedButtonVariant: GrButtonVariant\n selectedButtonTone: GrButtonTone\n}): string {\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.disabled ? grRadioDisabledClass : grRadioEnabledClass,\n ].join(' ')\n}\n\nexport function grRadioRootClass(disabled: boolean): string {\n return disabled ? grRadioRootDisabledClass : grRadioRootEnabledClass\n}\n\nexport function grRadioControlClass(checked: boolean): string {\n return checked ? grRadioControlCheckedClass : grRadioControlUncheckedClass\n}\n\nexport function grRadioDotClass(checked: boolean): string {\n return checked ? grRadioDotCheckedClass : grRadioDotUncheckedClass\n}\n","import {splitClassTokens} from '../shared/classTokens'\nimport {grButtonSafelist} from '../GrButton/safelist'\nimport {\n grRadioControlCheckedClass,\n grRadioControlUncheckedClass,\n grRadioDisabledClass,\n grRadioDotBaseClass,\n grRadioDotCheckedClass,\n grRadioDotUncheckedClass,\n grRadioEnabledClass,\n grRadioRootDisabledClass,\n grRadioRootEnabledClass,\n} from './grRadioStyles'\nexport const grRadioSafelist = [...new Set([\n ...grButtonSafelist,\n ...splitClassTokens(grRadioDisabledClass),\n ...splitClassTokens(grRadioEnabledClass),\n ...splitClassTokens(grRadioRootDisabledClass),\n ...splitClassTokens(grRadioRootEnabledClass),\n ...splitClassTokens(grRadioControlCheckedClass),\n ...splitClassTokens(grRadioControlUncheckedClass),\n ...splitClassTokens(grRadioDotCheckedClass),\n ...splitClassTokens(grRadioDotUncheckedClass),\n ...splitClassTokens(grRadioDotBaseClass),\n])]\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nimport { grRadioSafelist } from './safelist'\n\nexport const grRadioConfig = defineGranularComponent(import.meta.url, {\n name: 'GrRadio',\n dependencies: ['GrButton'],\n safelist: grRadioSafelist,\n})"],"mappings":";;;;;AAUA,IAAa,uBAAuB;AACpC,IAAa,sBAAsB;AACnC,IAAa,2BAA2B;AACxC,IAAa,0BAA0B;AACvC,IAAa,6BAA6B;AAC1C,IAAa,+BAA+B;AAC5C,IAAa,yBAAyB;AACtC,IAAa,2BAA2B;AAGxC,IAAa,sBAAsB;AAEnC,SAAgB,mBAAmB,SAQxB;AAIP,QAAO;EACH;EACA,cAAc;GACV,SANQ,QAAQ,UAAU,QAAQ,wBAAwB,QAAQ;GAOlE,MANK,QAAQ,UAAU,QAAQ,qBAAqB,QAAQ;GAO5D,MAAM,QAAQ;GACd,QAAQ;GACX,CAAC;EACF,QAAQ,WAAW,uBAAuB;EAC7C,CAAC,KAAK,IAAI;;AAGf,SAAgB,iBAAiB,UAA2B;AACxD,QAAO,WAAW,2BAA2B;;AAGjD,SAAgB,oBAAoB,SAA0B;AAC1D,QAAO,UAAU,6BAA6B;;AAGlD,SAAgB,gBAAgB,SAA0B;AACtD,QAAO,UAAU,yBAAyB;;;;AC1C9C,IAAa,kBAAkB,CAAC,GAAG,IAAI,IAAI;CACvC,GAAG;CACH,GAAG,iBAAiB,qBAAqB;CACzC,GAAG,iBAAiB,oBAAoB;CACxC,GAAG,iBAAiB,yBAAyB;CAC7C,GAAG,iBAAiB,wBAAwB;CAC5C,GAAG,iBAAiB,2BAA2B;CAC/C,GAAG,iBAAiB,6BAA6B;CACjD,GAAG,iBAAiB,uBAAuB;CAC3C,GAAG,iBAAiB,yBAAyB;CAC7C,GAAG,iBAAiB,oBAAoB;CAC3C,CAAC,CAAC;;;ACpBH,IAAa,gBAAgB,wBAAwB,OAAO,KAAK,KAAK;CACpE,MAAM;CACN,cAAc,CAAC,WAAW;CAC1B,UAAU;CACX,CAAA"}
1
+ {"version":3,"file":"config-DZAQpfz0.js","names":[],"sources":["../../src/components/GrRadio/grRadioStyles.ts","../../src/components/GrRadio/safelist.ts","../../src/components/GrRadio/config.ts"],"sourcesContent":["import {\n grButtonBaseClass,\n grButtonClass,\n type GrButtonSize,\n type GrButtonTone,\n type GrButtonVariant,\n} from '../GrButton/grButtonStyles'\n\nexport type GrRadioVariant = 'radiobox' | 'button'\n\nexport const grRadioDisabledClass = 'opacity-50 cursor-not-allowed'\nexport const grRadioEnabledClass = 'cursor-pointer'\nexport const grRadioRootDisabledClass = 'cursor-not-allowed opacity-70'\nexport const grRadioRootEnabledClass = 'cursor-pointer'\nexport const grRadioControlCheckedClass = 'border-[var(--primary)] bg-[color-mix(in_srgb,var(--primary)_10%,var(--bg))]'\nexport const grRadioControlUncheckedClass = 'border-[var(--brd)] bg-[var(--bg)]'\nexport const grRadioDotCheckedClass = 'bg-[var(--primary)] opacity-100 scale-100'\nexport const grRadioDotUncheckedClass = 'bg-transparent opacity-0 scale-75'\n// Базовые классы «точки» внутри radiobox — нестандартные (`h-[6px]`, `w-[6px]`, произвольный transition).\n// Вынесены сюда, чтобы `safelist` мог гарантировать их присутствие в сборке даже при tree-shaking шаблона.\nexport const grRadioDotBaseClass = 'h-[6px] w-[6px] rounded-full transition-[transform,opacity,background-color] duration-150'\n\nexport function grRadioButtonClass(options: {\n checked: boolean\n disabled: boolean\n size: GrButtonSize\n buttonVariant: GrButtonVariant\n buttonTone: GrButtonTone\n selectedButtonVariant: GrButtonVariant\n selectedButtonTone: GrButtonTone\n}): string {\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.disabled ? grRadioDisabledClass : grRadioEnabledClass,\n ].join(' ')\n}\n\nexport function grRadioRootClass(disabled: boolean): string {\n return disabled ? grRadioRootDisabledClass : grRadioRootEnabledClass\n}\n\nexport function grRadioControlClass(checked: boolean): string {\n return checked ? grRadioControlCheckedClass : grRadioControlUncheckedClass\n}\n\nexport function grRadioDotClass(checked: boolean): string {\n return checked ? grRadioDotCheckedClass : grRadioDotUncheckedClass\n}\n","import {splitClassTokens} from '../shared/classTokens'\nimport {grButtonSafelist} from '../GrButton/safelist'\nimport {\n grRadioControlCheckedClass,\n grRadioControlUncheckedClass,\n grRadioDisabledClass,\n grRadioDotBaseClass,\n grRadioDotCheckedClass,\n grRadioDotUncheckedClass,\n grRadioEnabledClass,\n grRadioRootDisabledClass,\n grRadioRootEnabledClass,\n} from './grRadioStyles'\nexport const grRadioSafelist = [...new Set([\n ...grButtonSafelist,\n ...splitClassTokens(grRadioDisabledClass),\n ...splitClassTokens(grRadioEnabledClass),\n ...splitClassTokens(grRadioRootDisabledClass),\n ...splitClassTokens(grRadioRootEnabledClass),\n ...splitClassTokens(grRadioControlCheckedClass),\n ...splitClassTokens(grRadioControlUncheckedClass),\n ...splitClassTokens(grRadioDotCheckedClass),\n ...splitClassTokens(grRadioDotUncheckedClass),\n ...splitClassTokens(grRadioDotBaseClass),\n])]\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nimport { grRadioSafelist } from './safelist'\n\nexport const grRadioConfig = defineGranularComponent(import.meta.url, {\n name: 'GrRadio',\n dependencies: ['GrButton'],\n safelist: grRadioSafelist,\n})"],"mappings":";;;;;AAUA,IAAa,uBAAuB;AACpC,IAAa,sBAAsB;AACnC,IAAa,2BAA2B;AACxC,IAAa,0BAA0B;AACvC,IAAa,6BAA6B;AAC1C,IAAa,+BAA+B;AAC5C,IAAa,yBAAyB;AACtC,IAAa,2BAA2B;AAGxC,IAAa,sBAAsB;AAEnC,SAAgB,mBAAmB,SAQxB;AAIP,QAAO;EACH;EACA,cAAc;GACV,SANQ,QAAQ,UAAU,QAAQ,wBAAwB,QAAQ;GAOlE,MANK,QAAQ,UAAU,QAAQ,qBAAqB,QAAQ;GAO5D,MAAM,QAAQ;GACd,QAAQ;GACX,CAAC;EACF,QAAQ,WAAW,uBAAuB;EAC7C,CAAC,KAAK,IAAI;;AAGf,SAAgB,iBAAiB,UAA2B;AACxD,QAAO,WAAW,2BAA2B;;AAGjD,SAAgB,oBAAoB,SAA0B;AAC1D,QAAO,UAAU,6BAA6B;;AAGlD,SAAgB,gBAAgB,SAA0B;AACtD,QAAO,UAAU,yBAAyB;;;;AC1C9C,IAAa,kBAAkB,CAAC,GAAG,IAAI,IAAI;CACvC,GAAG;CACH,GAAG,iBAAiB,qBAAqB;CACzC,GAAG,iBAAiB,oBAAoB;CACxC,GAAG,iBAAiB,yBAAyB;CAC7C,GAAG,iBAAiB,wBAAwB;CAC5C,GAAG,iBAAiB,2BAA2B;CAC/C,GAAG,iBAAiB,6BAA6B;CACjD,GAAG,iBAAiB,uBAAuB;CAC3C,GAAG,iBAAiB,yBAAyB;CAC7C,GAAG,iBAAiB,oBAAoB;CAC3C,CAAC,CAAC;;;ACpBH,IAAa,gBAAgB,wBAAwB,OAAO,KAAK,KAAK;CACpE,MAAM;CACN,cAAc,CAAC,WAAW;CAC1B,UAAU;CACX,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-C9AOlKah.js","names":[],"sources":["../../src/components/GrBadgeWrap/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grBadgeWrapConfig = defineGranularComponent(import.meta.url, {\n name: 'GrBadgeWrap',\n})"],"mappings":";;AAEA,IAAa,oBAAoB,wBAAwB,OAAO,KAAK,KAAK,EACxE,MAAM,eACP,CAAA"}
1
+ {"version":3,"file":"config-V3LF-b_F.js","names":[],"sources":["../../src/components/GrBadgeWrap/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grBadgeWrapConfig = defineGranularComponent(import.meta.url, {\n name: 'GrBadgeWrap',\n})"],"mappings":";;AAEA,IAAa,oBAAoB,wBAAwB,OAAO,KAAK,KAAK,EACxE,MAAM,eACP,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-iDTkWUdh2.js","names":[],"sources":["../../src/components/GrConfirmDialog/config.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nexport const grConfirmDialogConfig = defineGranularComponent(import.meta.url, {\n name: 'GrConfirmDialog',\n dependencies: ['GrButton', 'GrDialog'],\n})"],"mappings":";;AAEA,IAAa,wBAAwB,wBAAwB,OAAO,KAAK,KAAK;CAC1E,MAAM;CACN,cAAc,CAAC,YAAY,WAAW;CACzC,CAAA"}
@@ -25,6 +25,22 @@ var pagination = {
25
25
  "next": "Next"
26
26
  };
27
27
  var navbar = { "openMenu": "Open menu" };
28
+ var responseError = {
29
+ "networkTitle": "No connection to the server",
30
+ "networkMessage": "Check your internet connection and try again.",
31
+ "abortedTitle": "Request cancelled",
32
+ "abortedMessage": "The request was cancelled.",
33
+ "validationTitle": "Check the data",
34
+ "validationMessage": "The server returned a validation error. Fix the fields and try again.",
35
+ "clientTitle": "Request error",
36
+ "clientMessage": "The server rejected the request.",
37
+ "serverTitle": "Server error",
38
+ "serverMessage": "A server error occurred. Please try again.",
39
+ "unknownTitle": "Something went wrong",
40
+ "unknownMessage": "The operation could not be completed. Please try again.",
41
+ "retryLabel": "Retry",
42
+ "dismissLabel": "Dismiss"
43
+ };
28
44
  var colors = {
29
45
  "neutral": "Neutral",
30
46
  "success": "Success",
@@ -42,7 +58,8 @@ var en_default = {
42
58
  dialog,
43
59
  pagination,
44
60
  navbar,
61
+ responseError,
45
62
  colors
46
63
  };
47
64
  //#endregion
48
- export { colors, common, en_default as default, dialog, loading, navbar, pagination, treeSelect };
65
+ export { colors, common, en_default as default, dialog, loading, navbar, pagination, responseError, treeSelect };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en-QNZhjmSJ.js","names":[],"sources":["../../src/i18n/locales/en.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Confirm\",\n \"cancel\": \"Cancel\",\n \"add\": \"Add\",\n \"clear\": \"Clear\",\n \"close\": \"Close\"\n },\n \"loading\": {\n \"defaultText\": \"Loading...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Search…\",\n \"empty\": \"No data\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Confirm\"\n },\n \"prompt\": {\n \"title\": \"Prompt\",\n \"label\": \"Value\",\n \"required\": \"Enter a value.\"\n }\n },\n \"pagination\": {\n \"pageSize\": \"Page size\",\n \"prev\": \"Prev\",\n \"next\": \"Next\"\n },\n \"navbar\": {\n \"openMenu\": \"Open menu\"\n },\n \"responseError\": {\n \"networkTitle\": \"No connection to the server\",\n \"networkMessage\": \"Check your internet connection and try again.\",\n \"abortedTitle\": \"Request cancelled\",\n \"abortedMessage\": \"The request was cancelled.\",\n \"validationTitle\": \"Check the data\",\n \"validationMessage\": \"The server returned a validation error. Fix the fields and try again.\",\n \"clientTitle\": \"Request error\",\n \"clientMessage\": \"The server rejected the request.\",\n \"serverTitle\": \"Server error\",\n \"serverMessage\": \"A server error occurred. Please try again.\",\n \"unknownTitle\": \"Something went wrong\",\n \"unknownMessage\": \"The operation could not be completed. Please try again.\",\n \"retryLabel\": \"Retry\",\n \"dismissLabel\": \"Dismiss\"\n },\n \"colors\": {\n \"neutral\": \"Neutral\",\n \"success\": \"Success\",\n \"warning\": \"Warning\",\n \"danger\": \"Danger\",\n \"info\": \"Info\",\n \"primary\": \"Primary\",\n \"slate\": \"Slate\",\n \"azure\": \"Azure\"\n }\n}\n"],"mappings":""}
@@ -25,6 +25,22 @@ var pagination = {
25
25
  "next": "Siguiente"
26
26
  };
27
27
  var navbar = { "openMenu": "Abrir menú" };
28
+ var responseError = {
29
+ "networkTitle": "Sin conexión con el servidor",
30
+ "networkMessage": "Compruebe su conexión a internet e inténtelo de nuevo.",
31
+ "abortedTitle": "Solicitud cancelada",
32
+ "abortedMessage": "La solicitud fue cancelada.",
33
+ "validationTitle": "Compruebe los datos",
34
+ "validationMessage": "El servidor devolvió un error de validación. Corrija los campos e inténtelo de nuevo.",
35
+ "clientTitle": "Error de solicitud",
36
+ "clientMessage": "El servidor rechazó la solicitud.",
37
+ "serverTitle": "Error del servidor",
38
+ "serverMessage": "Se produjo un error en el servidor. Inténtelo de nuevo.",
39
+ "unknownTitle": "Algo salió mal",
40
+ "unknownMessage": "No se pudo completar la operación. Inténtelo de nuevo.",
41
+ "retryLabel": "Reintentar",
42
+ "dismissLabel": "Descartar"
43
+ };
28
44
  var colors = {
29
45
  "neutral": "Neutral",
30
46
  "success": "Éxito",
@@ -42,7 +58,8 @@ var es_default = {
42
58
  dialog,
43
59
  pagination,
44
60
  navbar,
61
+ responseError,
45
62
  colors
46
63
  };
47
64
  //#endregion
48
- export { colors, common, es_default as default, dialog, loading, navbar, pagination, treeSelect };
65
+ export { colors, common, es_default as default, dialog, loading, navbar, pagination, responseError, treeSelect };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es-C1c5XsIK.js","names":[],"sources":["../../src/i18n/locales/es.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Confirmar\",\n \"cancel\": \"Cancelar\",\n \"add\": \"Añadir\",\n \"clear\": \"Limpiar\",\n \"close\": \"Cerrar\"\n },\n \"loading\": {\n \"defaultText\": \"Cargando...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Buscar…\",\n \"empty\": \"Sin datos\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Confirmar\"\n },\n \"prompt\": {\n \"title\": \"Aviso\",\n \"label\": \"Valor\",\n \"required\": \"Introduzca un valor.\"\n }\n },\n \"pagination\": {\n \"pageSize\": \"Tamaño de página\",\n \"prev\": \"Anterior\",\n \"next\": \"Siguiente\"\n },\n \"navbar\": {\n \"openMenu\": \"Abrir menú\"\n },\n \"responseError\": {\n \"networkTitle\": \"Sin conexión con el servidor\",\n \"networkMessage\": \"Compruebe su conexión a internet e inténtelo de nuevo.\",\n \"abortedTitle\": \"Solicitud cancelada\",\n \"abortedMessage\": \"La solicitud fue cancelada.\",\n \"validationTitle\": \"Compruebe los datos\",\n \"validationMessage\": \"El servidor devolvió un error de validación. Corrija los campos e inténtelo de nuevo.\",\n \"clientTitle\": \"Error de solicitud\",\n \"clientMessage\": \"El servidor rechazó la solicitud.\",\n \"serverTitle\": \"Error del servidor\",\n \"serverMessage\": \"Se produjo un error en el servidor. Inténtelo de nuevo.\",\n \"unknownTitle\": \"Algo salió mal\",\n \"unknownMessage\": \"No se pudo completar la operación. Inténtelo de nuevo.\",\n \"retryLabel\": \"Reintentar\",\n \"dismissLabel\": \"Descartar\"\n },\n \"colors\": {\n \"neutral\": \"Neutral\",\n \"success\": \"Éxito\",\n \"warning\": \"Advertencia\",\n \"danger\": \"Peligro\",\n \"info\": \"Info\",\n \"primary\": \"Primario\",\n \"slate\": \"Pizarra\",\n \"azure\": \"Azul celeste\"\n }\n}\n"],"mappings":""}
@@ -9,12 +9,12 @@ var GRANULARITY_I18N_BLOCK = "gr";
9
9
  * can import only the languages they actually need — see the
10
10
  * "Authoring localization packages" guide in the docs.
11
11
  */
12
- var en = { en: { ["gr"]: () => import("./en-BMjJZttK.js") } };
12
+ var en = { en: { ["gr"]: () => import("./en-QNZhjmSJ.js") } };
13
13
  //#endregion
14
14
  //#region src/i18n/messages/ru.ts
15
- var ru = { ru: { ["gr"]: () => import("./ru-DKswMSdd.js") } };
15
+ var ru = { ru: { ["gr"]: () => import("./ru-DcF7ciz0.js") } };
16
16
  //#endregion
17
17
  //#region src/i18n/messages/es.ts
18
- var es = { es: { ["gr"]: () => import("./es-EYCf8G_1.js") } };
18
+ var es = { es: { ["gr"]: () => import("./es-C1c5XsIK.js") } };
19
19
  //#endregion
20
20
  export { GRANULARITY_I18N_BLOCK as i, ru as n, en as r, es as t };
@@ -1 +1 @@
1
- {"version":3,"file":"es-Cu_RlgIr.js","names":[],"sources":["../../src/i18n/messages/const.ts","../../src/i18n/messages/en.ts","../../src/i18n/messages/ru.ts","../../src/i18n/messages/es.ts"],"sourcesContent":["export const GRANULARITY_I18N_BLOCK = 'gr'","import type {LocaleLoaderCollection} from '@feugene/fint-i18n/core'\nimport {GRANULARITY_I18N_BLOCK} from \"./const\";\n\n/**\n * English locale loaders for the playground app.\n *\n * Exported separately from other locales so that consumers (and bundlers)\n * can import only the languages they actually need — see the\n * \"Authoring localization packages\" guide in the docs.\n */\nexport const en = {\n en: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/en.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default en\n","import type {LocaleLoaderCollection} from '@feugene/fint-i18n/core'\nimport {GRANULARITY_I18N_BLOCK} from \"./const\";\n\nexport const ru = {\n ru: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/ru.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default ru\n","import type {LocaleLoaderCollection} from '@feugene/fint-i18n/core'\nimport {GRANULARITY_I18N_BLOCK} from \"./const\";\n\nexport const es = {\n es: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/es.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default es\n"],"mappings":";AAAA,IAAa,yBAAyB;;;;;;;;;;ACUtC,IAAa,KAAK,EACd,IAAI,GAAA,aACgC,OAAO,qBAC1C,EACJ;;;ACXD,IAAa,KAAK,EACd,IAAI,GAAA,aACgC,OAAO,qBAC1C,EACJ;;;ACJD,IAAa,KAAK,EACd,IAAI,GAAA,aACgC,OAAO,qBAC1C,EACJ"}
1
+ {"version":3,"file":"es-CKLPuE0h.js","names":[],"sources":["../../src/i18n/messages/const.ts","../../src/i18n/messages/en.ts","../../src/i18n/messages/ru.ts","../../src/i18n/messages/es.ts"],"sourcesContent":["export const GRANULARITY_I18N_BLOCK = 'gr'","import type {LocaleLoaderCollection} from '@feugene/fint-i18n/core'\nimport {GRANULARITY_I18N_BLOCK} from \"./const\";\n\n/**\n * English locale loaders for the playground app.\n *\n * Exported separately from other locales so that consumers (and bundlers)\n * can import only the languages they actually need — see the\n * \"Authoring localization packages\" guide in the docs.\n */\nexport const en = {\n en: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/en.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default en\n","import type {LocaleLoaderCollection} from '@feugene/fint-i18n/core'\nimport {GRANULARITY_I18N_BLOCK} from \"./const\";\n\nexport const ru = {\n ru: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/ru.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default ru\n","import type {LocaleLoaderCollection} from '@feugene/fint-i18n/core'\nimport {GRANULARITY_I18N_BLOCK} from \"./const\";\n\nexport const es = {\n es: {\n [GRANULARITY_I18N_BLOCK]: () => import('../locales/es.json'),\n },\n} satisfies LocaleLoaderCollection\n\nexport default es\n"],"mappings":";AAAA,IAAa,yBAAyB;;;;;;;;;;ACUtC,IAAa,KAAK,EACd,IAAI,GAAA,aACgC,OAAO,qBAC1C,EACJ;;;ACXD,IAAa,KAAK,EACd,IAAI,GAAA,aACgC,OAAO,qBAC1C,EACJ;;;ACJD,IAAa,KAAK,EACd,IAAI,GAAA,aACgC,OAAO,qBAC1C,EACJ"}
@@ -1,13 +1,15 @@
1
1
  //#region src/components/GrBadge/grBadgeStyles.ts
2
2
  var sizeClassBySize = {
3
- sm: "px-2 py-0.4 text-[11px]",
4
- md: "px-2.5 py-0.5 text-[12px]",
5
- lg: "px-3 py-1 text-[13px]"
3
+ xs: "px-2 py-0.4 text-[11px]",
4
+ sm: "px-2.5 py-0.5 text-[12px]",
5
+ md: "px-3 py-1 text-[13px]",
6
+ lg: "px-3.5 py-1.5 text-[14px]"
6
7
  };
7
8
  var semiRadiusClassBySize = {
9
+ xs: "rounded-[3px]",
8
10
  sm: "rounded-[3px]",
9
- md: "rounded-[3px]",
10
- lg: "rounded-[5px]"
11
+ md: "rounded-[5px]",
12
+ lg: "rounded-[7px]"
11
13
  };
12
14
  var lightToneClassByTone = {
13
15
  neutral: "bg-[var(--muted)] text-[var(--fg)] border-[var(--brd)]",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grBadgeStyles-Cq0hH2Ls.js","names":[],"sources":["../../src/components/GrBadge/grBadgeStyles.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrBadgeTone = GrTone\nexport type GrBadgeSize = 'xs' | 'sm' | 'md' | 'lg'\nexport type GrBadgeRadius = 'square' | 'semi' | 'round'\nexport const sizeClassBySize: Record<GrBadgeSize, string> = {\n xs: 'px-2 py-0.4 text-[11px]',\n sm: 'px-2.5 py-0.5 text-[12px]',\n md: 'px-3 py-1 text-[13px]',\n lg: 'px-3.5 py-1.5 text-[14px]',\n}\nexport const semiRadiusClassBySize: Record<GrBadgeSize, string> = {\n xs: 'rounded-[3px]',\n sm: 'rounded-[3px]',\n md: 'rounded-[5px]',\n lg: 'rounded-[7px]',\n}\nexport const lightToneClassByTone: Record<GrBadgeTone, string> = {\n neutral: 'bg-[var(--muted)] text-[var(--fg)] border-[var(--brd)]',\n primary:\n 'bg-[var(--accent)] text-[var(--accent-fg)] border-[color-mix(in_srgb,var(--primary)_30%,var(--accent))]',\n success: 'bg-[var(--ds-success-light)] text-[var(--ds-success)] border-[color-mix(in_srgb,var(--ds-success)_30%,var(--ds-success-light))]',\n warning: 'bg-[var(--ds-warning-light)] text-[var(--ds-warning)] border-[color-mix(in_srgb,var(--ds-warning)_30%,var(--ds-warning-light))]',\n danger: 'bg-[var(--ds-danger-light)] text-[var(--ds-danger)] border-[color-mix(in_srgb,var(--ds-danger)_30%,var(--ds-danger-light))]',\n info: 'bg-[var(--ds-info-light)] text-[var(--ds-info)] border-[color-mix(in_srgb,var(--ds-info)_30%,var(--ds-info-light))]',\n slate: 'bg-[var(--ds-slate-light)] text-[var(--ds-slate-text)] border-[color-mix(in_srgb,var(--ds-slate)_30%,var(--ds-slate-light))]',\n azure: 'bg-[var(--ds-azure-light)] text-[var(--ds-azure-text)] border-[color-mix(in_srgb,var(--ds-azure)_30%,var(--ds-azure-light))]',\n}\nexport const darkToneClassByTone: Record<GrBadgeTone, string> = {\n neutral: 'bg-[var(--fg)] text-[var(--bg)] border-[color-mix(in_srgb,var(--fg)_35%,var(--brd))]',\n primary: 'bg-[var(--primary)] text-[var(--primary-fg)] border-[var(--primary)]',\n success: 'bg-[var(--ds-success)] text-white border-[var(--ds-success)]',\n warning: 'bg-[var(--ds-warning)] text-white border-[var(--ds-warning)]',\n danger: 'bg-[var(--ds-danger)] text-white border-[var(--ds-danger)]',\n info: 'bg-[var(--ds-info)] text-white border-[var(--ds-info)]',\n slate: 'bg-[var(--ds-slate)] text-[var(--ds-slate-fg)] border-[var(--ds-slate)]',\n azure: 'bg-[var(--ds-azure)] text-[var(--ds-azure-fg)] border-[var(--ds-azure)]',\n}\nfunction radiusClass(radius: GrBadgeRadius, size: GrBadgeSize): string {\n if (radius === 'square') return 'rounded-[var(--ds-radius-none)]'\n if (radius === 'semi') return semiRadiusClassBySize[size]\n return 'rounded-full'\n}\nfunction toneClass(tone: GrBadgeTone, dark: boolean): string {\n return dark ? darkToneClassByTone[tone] : lightToneClassByTone[tone]\n}\nexport function grBadgeClass(options: { tone: GrBadgeTone, dark: boolean, size: GrBadgeSize, radius: GrBadgeRadius }): string {\n return [\n radiusClass(options.radius, options.size),\n sizeClassBySize[options.size],\n toneClass(options.tone, options.dark),\n ].join(' ')\n}\n"],"mappings":";AAKA,IAAa,kBAA+C;CAC1D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AACD,IAAa,wBAAqD;CAChE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AACD,IAAa,uBAAoD;CAC/D,SAAS;CACT,SACE;CACF,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACR;AACD,IAAa,sBAAmD;CAC9D,SAAS;CACT,SAAS;CACT,SAAS;CACT,SAAS;CACT,QAAQ;CACR,MAAM;CACN,OAAO;CACP,OAAO;CACR;AACD,SAAS,YAAY,QAAuB,MAA2B;AACrE,KAAI,WAAW,SAAU,QAAO;AAChC,KAAI,WAAW,OAAQ,QAAO,sBAAsB;AACpD,QAAO;;AAET,SAAS,UAAU,MAAmB,MAAuB;AAC3D,QAAO,OAAO,oBAAoB,QAAQ,qBAAqB;;AAEjE,SAAgB,aAAa,SAAiG;AAC5H,QAAO;EACL,YAAY,QAAQ,QAAQ,QAAQ,KAAK;EACzC,gBAAgB,QAAQ;EACxB,UAAU,QAAQ,MAAM,QAAQ,KAAK;EACtC,CAAC,KAAK,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"grButtonStyles-BxZW2x0-.js","names":[],"sources":["../../src/components/GrButton/grButtonStyles.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'ghost-border'\nexport type GrButtonTone = GrTone\nexport type GrButtonSize = 'xs' | 'sm' | 'md' | 'lg'\n\nexport type GrButtonClassOptions = {\n variant: GrButtonVariant\n tone: GrButtonTone\n size: GrButtonSize\n square: boolean\n}\n\nexport type GrButtonToneTokens = {\n solidBackground: string\n solidBackgroundHover: string\n solidBackgroundActive: string\n solidForeground: string\n accentText: string\n softBackground: string\n softBackgroundHover: string\n softBackgroundActive: string\n softForeground: string\n border: string\n borderHover: string\n borderActive: string\n}\n\nexport const base =\n 'inline-flex items-center justify-center gap-2 select-none whitespace-nowrap rounded-md transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed'\n\nexport const grButtonBaseClass = base\n\nexport const sizes: Record<GrButtonSize, string> = {\n xs: 'h-7 text-xs px-2.5',\n sm: 'h-8 text-sm px-3',\n md: 'h-10 text-sm px-4',\n lg: 'h-11 text-base px-5',\n}\n\nexport const squareSizes: Record<GrButtonSize, string> = {\n xs: 'h-7 w-7 p-0',\n sm: 'h-8 w-8 p-0',\n md: 'h-10 w-10 p-0',\n lg: 'h-11 w-11 p-0',\n}\n\nexport const tones: Record<GrButtonTone, GrButtonToneTokens> = {\n primary: {\n solidBackground: 'var(--ds-button-primary-bg,var(--primary))',\n solidBackgroundHover: 'var(--ds-button-primary-bg-hover,var(--primary-hover))',\n solidBackgroundActive: 'var(--ds-button-primary-bg-active,var(--primary-active))',\n solidForeground: 'var(--ds-button-primary-fg,var(--primary-fg))',\n accentText: 'var(--accent-fg)',\n softBackground: 'var(--ds-button-primary-soft-bg)',\n softBackgroundHover: 'var(--ds-button-primary-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-primary-soft-bg-active)',\n softForeground: 'var(--accent-fg)',\n border: 'var(--primary)',\n borderHover: 'var(--primary-hover)',\n borderActive: 'var(--primary-active)',\n },\n neutral: {\n solidBackground: 'var(--secondary)',\n solidBackgroundHover: 'var(--secondary-hover)',\n solidBackgroundActive: 'var(--secondary-active)',\n solidForeground: 'var(--secondary-fg)',\n accentText: 'var(--fg)',\n softBackground: 'var(--secondary)',\n softBackgroundHover: 'var(--secondary-hover)',\n softBackgroundActive: 'var(--secondary-active)',\n softForeground: 'var(--secondary-fg)',\n border: 'var(--brd)',\n borderHover: 'var(--brd-hover,var(--brd))',\n borderActive: 'var(--brd-active,var(--brd))',\n },\n success: {\n solidBackground: 'var(--ds-button-success-bg,var(--ds-success))',\n solidBackgroundHover: 'var(--ds-button-success-bg-hover,var(--ds-success-hover))',\n solidBackgroundActive: 'var(--ds-button-success-bg-active,var(--ds-success-active))',\n solidForeground: 'var(--ds-button-success-fg,var(--ds-success-fg,var(--fg)))',\n accentText: 'var(--ds-success-text,var(--ds-success))',\n softBackground: 'var(--ds-button-success-soft-bg)',\n softBackgroundHover: 'var(--ds-button-success-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-success-soft-bg-active)',\n softForeground: 'var(--ds-success-text,var(--ds-success))',\n border: 'var(--ds-success)',\n borderHover: 'var(--ds-success-hover)',\n borderActive: 'var(--ds-success-active)',\n },\n warning: {\n solidBackground: 'var(--ds-button-warning-bg,var(--ds-warning))',\n solidBackgroundHover: 'var(--ds-button-warning-bg-hover,var(--ds-warning-hover))',\n solidBackgroundActive: 'var(--ds-button-warning-bg-active,var(--ds-warning-active))',\n solidForeground: 'var(--ds-button-warning-fg,var(--ds-warning-fg,var(--fg)))',\n accentText: 'var(--ds-warning-text,var(--ds-warning))',\n softBackground: 'var(--ds-button-warning-soft-bg)',\n softBackgroundHover: 'var(--ds-button-warning-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-warning-soft-bg-active)',\n softForeground: 'var(--ds-warning-text,var(--ds-warning))',\n border: 'var(--ds-warning)',\n borderHover: 'var(--ds-warning-hover)',\n borderActive: 'var(--ds-warning-active)',\n },\n danger: {\n solidBackground: 'var(--ds-button-danger-bg,var(--ds-danger))',\n solidBackgroundHover: 'var(--ds-button-danger-bg-hover,var(--ds-danger-hover))',\n solidBackgroundActive: 'var(--ds-button-danger-bg-active,var(--ds-danger-active))',\n solidForeground: 'var(--ds-button-danger-fg,var(--ds-danger-fg,var(--fg)))',\n accentText: 'var(--ds-danger-text,var(--ds-danger))',\n softBackground: 'var(--ds-button-danger-soft-bg)',\n softBackgroundHover: 'var(--ds-button-danger-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-danger-soft-bg-active)',\n softForeground: 'var(--ds-danger-text,var(--ds-danger))',\n border: 'var(--ds-danger)',\n borderHover: 'var(--ds-danger-hover)',\n borderActive: 'var(--ds-danger-active)',\n },\n info: {\n solidBackground: 'var(--ds-button-info-bg,var(--ds-info))',\n solidBackgroundHover: 'var(--ds-button-info-bg-hover,var(--ds-info-hover))',\n solidBackgroundActive: 'var(--ds-button-info-bg-active,var(--ds-info-active))',\n solidForeground: 'var(--ds-button-info-fg,var(--ds-info-fg,var(--fg)))',\n accentText: 'var(--ds-info-text,var(--ds-info))',\n softBackground: 'var(--ds-button-info-soft-bg)',\n softBackgroundHover: 'var(--ds-button-info-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-info-soft-bg-active)',\n softForeground: 'var(--ds-info-text,var(--ds-info))',\n border: 'var(--ds-info)',\n borderHover: 'var(--ds-info-hover)',\n borderActive: 'var(--ds-info-active)',\n },\n slate: {\n solidBackground: 'var(--ds-button-slate-bg,var(--ds-slate))',\n solidBackgroundHover: 'var(--ds-button-slate-bg-hover,var(--ds-slate-hover))',\n solidBackgroundActive: 'var(--ds-button-slate-bg-active,var(--ds-slate-active))',\n solidForeground: 'var(--ds-button-slate-fg,var(--ds-slate-fg,var(--fg)))',\n accentText: 'var(--ds-slate-text,var(--ds-slate))',\n softBackground: 'var(--ds-button-slate-soft-bg)',\n softBackgroundHover: 'var(--ds-button-slate-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-slate-soft-bg-active)',\n softForeground: 'var(--ds-slate-text,var(--ds-slate))',\n border: 'var(--ds-slate)',\n borderHover: 'var(--ds-slate-hover)',\n borderActive: 'var(--ds-slate-active)',\n },\n azure: {\n solidBackground: 'var(--ds-button-azure-bg,var(--ds-azure))',\n solidBackgroundHover: 'var(--ds-button-azure-bg-hover,var(--ds-azure-hover))',\n solidBackgroundActive: 'var(--ds-button-azure-bg-active,var(--ds-azure-active))',\n solidForeground: 'var(--ds-button-azure-fg,var(--ds-azure-fg,var(--fg)))',\n accentText: 'var(--ds-azure-text,var(--ds-azure))',\n softBackground: 'var(--ds-button-azure-soft-bg)',\n softBackgroundHover: 'var(--ds-button-azure-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-azure-soft-bg-active)',\n softForeground: 'var(--ds-azure-text,var(--ds-azure))',\n border: 'var(--ds-azure)',\n borderHover: 'var(--ds-azure-hover)',\n borderActive: 'var(--ds-azure-active)',\n },\n}\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nexport function variantClass(variant: GrButtonVariant, tone: GrButtonTone): string {\n const tokens = tones[tone]\n\n if (variant === 'primary') {\n return [\n `bg-${withVar(tokens.solidBackground)}`,\n `text-${withVar(tokens.solidForeground)}`,\n `border border-${withVar(tokens.solidBackground)}`,\n `hover:bg-${withVar(tokens.solidBackgroundHover)}`,\n `hover:border-${withVar(tokens.solidBackgroundHover)}`,\n `active:bg-${withVar(tokens.solidBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.solidBackgroundActive)}`,\n `active:border-${withVar(tokens.solidBackgroundActive)}`,\n `hover:active:border-${withVar(tokens.solidBackgroundActive)}`,\n ].join(' ')\n }\n\n if (variant === 'secondary') {\n return [\n `bg-${withVar(tokens.softBackground)}`,\n `text-${withVar(tokens.softForeground)}`,\n `border border-${withVar(tokens.border)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n }\n\n if (variant === 'outline') {\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n `border border-${withVar(tokens.border)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n }\n\n if (variant === 'ghost') {\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n ].join(' ')\n }\n\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n 'border border-transparent',\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n}\n\nexport function grButtonClass(options: GrButtonClassOptions): string {\n return [\n options.square ? squareSizes[options.size] : sizes[options.size],\n variantClass(options.variant, options.tone),\n ].join(' ')\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"grButtonStyles-DKuXUemw.js","names":[],"sources":["../../src/components/GrButton/grButtonStyles.ts"],"sourcesContent":["import type { GrTone } from '../shared/tones'\n\nexport type GrButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'ghost-border'\nexport type GrButtonTone = GrTone\nexport type GrButtonSize = 'xs' | 'sm' | 'md' | 'lg'\n\nexport type GrButtonClassOptions = {\n variant: GrButtonVariant\n tone: GrButtonTone\n size: GrButtonSize\n square: boolean\n}\n\nexport type GrButtonToneTokens = {\n solidBackground: string\n solidBackgroundHover: string\n solidBackgroundActive: string\n solidForeground: string\n accentText: string\n softBackground: string\n softBackgroundHover: string\n softBackgroundActive: string\n softForeground: string\n border: string\n borderHover: string\n borderActive: string\n}\n\nexport const base =\n 'inline-flex items-center justify-center gap-2 select-none whitespace-nowrap rounded-md transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:cursor-not-allowed'\n\nexport const grButtonBaseClass = base\n\nexport const sizes: Record<GrButtonSize, string> = {\n xs: 'h-7 text-xs px-2.5',\n sm: 'h-8 text-sm px-3',\n md: 'h-10 text-sm px-4',\n lg: 'h-11 text-base px-5',\n}\n\nexport const squareSizes: Record<GrButtonSize, string> = {\n xs: 'h-7 w-7 p-0',\n sm: 'h-8 w-8 p-0',\n md: 'h-10 w-10 p-0',\n lg: 'h-11 w-11 p-0',\n}\n\nexport const tones: Record<GrButtonTone, GrButtonToneTokens> = {\n primary: {\n solidBackground: 'var(--ds-button-primary-bg,var(--primary))',\n solidBackgroundHover: 'var(--ds-button-primary-bg-hover,var(--primary-hover))',\n solidBackgroundActive: 'var(--ds-button-primary-bg-active,var(--primary-active))',\n solidForeground: 'var(--ds-button-primary-fg,var(--primary-fg))',\n accentText: 'var(--accent-fg)',\n softBackground: 'var(--ds-button-primary-soft-bg)',\n softBackgroundHover: 'var(--ds-button-primary-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-primary-soft-bg-active)',\n softForeground: 'var(--accent-fg)',\n border: 'var(--primary)',\n borderHover: 'var(--primary-hover)',\n borderActive: 'var(--primary-active)',\n },\n neutral: {\n solidBackground: 'var(--secondary)',\n solidBackgroundHover: 'var(--secondary-hover)',\n solidBackgroundActive: 'var(--secondary-active)',\n solidForeground: 'var(--secondary-fg)',\n accentText: 'var(--fg)',\n softBackground: 'var(--secondary)',\n softBackgroundHover: 'var(--secondary-hover)',\n softBackgroundActive: 'var(--secondary-active)',\n softForeground: 'var(--secondary-fg)',\n border: 'var(--brd)',\n borderHover: 'var(--brd-hover,var(--brd))',\n borderActive: 'var(--brd-active,var(--brd))',\n },\n success: {\n solidBackground: 'var(--ds-button-success-bg,var(--ds-success))',\n solidBackgroundHover: 'var(--ds-button-success-bg-hover,var(--ds-success-hover))',\n solidBackgroundActive: 'var(--ds-button-success-bg-active,var(--ds-success-active))',\n solidForeground: 'var(--ds-button-success-fg,var(--ds-success-fg,var(--fg)))',\n accentText: 'var(--ds-success-text,var(--ds-success))',\n softBackground: 'var(--ds-button-success-soft-bg)',\n softBackgroundHover: 'var(--ds-button-success-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-success-soft-bg-active)',\n softForeground: 'var(--ds-success-text,var(--ds-success))',\n border: 'var(--ds-success)',\n borderHover: 'var(--ds-success-hover)',\n borderActive: 'var(--ds-success-active)',\n },\n warning: {\n solidBackground: 'var(--ds-button-warning-bg,var(--ds-warning))',\n solidBackgroundHover: 'var(--ds-button-warning-bg-hover,var(--ds-warning-hover))',\n solidBackgroundActive: 'var(--ds-button-warning-bg-active,var(--ds-warning-active))',\n solidForeground: 'var(--ds-button-warning-fg,var(--ds-warning-fg,var(--fg)))',\n accentText: 'var(--ds-warning-text,var(--ds-warning))',\n softBackground: 'var(--ds-button-warning-soft-bg)',\n softBackgroundHover: 'var(--ds-button-warning-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-warning-soft-bg-active)',\n softForeground: 'var(--ds-warning-text,var(--ds-warning))',\n border: 'var(--ds-warning)',\n borderHover: 'var(--ds-warning-hover)',\n borderActive: 'var(--ds-warning-active)',\n },\n danger: {\n solidBackground: 'var(--ds-button-danger-bg,var(--ds-danger))',\n solidBackgroundHover: 'var(--ds-button-danger-bg-hover,var(--ds-danger-hover))',\n solidBackgroundActive: 'var(--ds-button-danger-bg-active,var(--ds-danger-active))',\n solidForeground: 'var(--ds-button-danger-fg,var(--ds-danger-fg,var(--fg)))',\n accentText: 'var(--ds-danger-text,var(--ds-danger))',\n softBackground: 'var(--ds-button-danger-soft-bg)',\n softBackgroundHover: 'var(--ds-button-danger-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-danger-soft-bg-active)',\n softForeground: 'var(--ds-danger-text,var(--ds-danger))',\n border: 'var(--ds-danger)',\n borderHover: 'var(--ds-danger-hover)',\n borderActive: 'var(--ds-danger-active)',\n },\n info: {\n solidBackground: 'var(--ds-button-info-bg,var(--ds-info))',\n solidBackgroundHover: 'var(--ds-button-info-bg-hover,var(--ds-info-hover))',\n solidBackgroundActive: 'var(--ds-button-info-bg-active,var(--ds-info-active))',\n solidForeground: 'var(--ds-button-info-fg,var(--ds-info-fg,var(--fg)))',\n accentText: 'var(--ds-info-text,var(--ds-info))',\n softBackground: 'var(--ds-button-info-soft-bg)',\n softBackgroundHover: 'var(--ds-button-info-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-info-soft-bg-active)',\n softForeground: 'var(--ds-info-text,var(--ds-info))',\n border: 'var(--ds-info)',\n borderHover: 'var(--ds-info-hover)',\n borderActive: 'var(--ds-info-active)',\n },\n slate: {\n solidBackground: 'var(--ds-button-slate-bg,var(--ds-slate))',\n solidBackgroundHover: 'var(--ds-button-slate-bg-hover,var(--ds-slate-hover))',\n solidBackgroundActive: 'var(--ds-button-slate-bg-active,var(--ds-slate-active))',\n solidForeground: 'var(--ds-button-slate-fg,var(--ds-slate-fg,var(--fg)))',\n accentText: 'var(--ds-slate-text,var(--ds-slate))',\n softBackground: 'var(--ds-button-slate-soft-bg)',\n softBackgroundHover: 'var(--ds-button-slate-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-slate-soft-bg-active)',\n softForeground: 'var(--ds-slate-text,var(--ds-slate))',\n border: 'var(--ds-slate)',\n borderHover: 'var(--ds-slate-hover)',\n borderActive: 'var(--ds-slate-active)',\n },\n azure: {\n solidBackground: 'var(--ds-button-azure-bg,var(--ds-azure))',\n solidBackgroundHover: 'var(--ds-button-azure-bg-hover,var(--ds-azure-hover))',\n solidBackgroundActive: 'var(--ds-button-azure-bg-active,var(--ds-azure-active))',\n solidForeground: 'var(--ds-button-azure-fg,var(--ds-azure-fg,var(--fg)))',\n accentText: 'var(--ds-azure-text,var(--ds-azure))',\n softBackground: 'var(--ds-button-azure-soft-bg)',\n softBackgroundHover: 'var(--ds-button-azure-soft-bg-hover)',\n softBackgroundActive: 'var(--ds-button-azure-soft-bg-active)',\n softForeground: 'var(--ds-azure-text,var(--ds-azure))',\n border: 'var(--ds-azure)',\n borderHover: 'var(--ds-azure-hover)',\n borderActive: 'var(--ds-azure-active)',\n },\n}\n\nfunction withVar(token: string): string {\n return `[${token}]`\n}\n\nexport function variantClass(variant: GrButtonVariant, tone: GrButtonTone): string {\n const tokens = tones[tone]\n\n if (variant === 'primary') {\n return [\n `bg-${withVar(tokens.solidBackground)}`,\n `text-${withVar(tokens.solidForeground)}`,\n `border border-${withVar(tokens.solidBackground)}`,\n `hover:bg-${withVar(tokens.solidBackgroundHover)}`,\n `hover:border-${withVar(tokens.solidBackgroundHover)}`,\n `active:bg-${withVar(tokens.solidBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.solidBackgroundActive)}`,\n `active:border-${withVar(tokens.solidBackgroundActive)}`,\n `hover:active:border-${withVar(tokens.solidBackgroundActive)}`,\n ].join(' ')\n }\n\n if (variant === 'secondary') {\n return [\n `bg-${withVar(tokens.softBackground)}`,\n `text-${withVar(tokens.softForeground)}`,\n `border border-${withVar(tokens.border)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n }\n\n if (variant === 'outline') {\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n `border border-${withVar(tokens.border)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n }\n\n if (variant === 'ghost') {\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n ].join(' ')\n }\n\n return [\n 'bg-transparent',\n `text-${withVar(tokens.accentText)}`,\n 'border border-transparent',\n `hover:bg-${withVar(tokens.softBackgroundHover)}`,\n `hover:border-${withVar(tokens.borderHover)}`,\n `active:bg-${withVar(tokens.softBackgroundActive)}`,\n `hover:active:bg-${withVar(tokens.softBackgroundActive)}`,\n `active:border-${withVar(tokens.borderActive)}`,\n `hover:active:border-${withVar(tokens.borderActive)}`,\n ].join(' ')\n}\n\nexport function grButtonClass(options: GrButtonClassOptions): string {\n return [\n options.square ? squareSizes[options.size] : sizes[options.size],\n variantClass(options.variant, options.tone),\n ].join(' ')\n}\n"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { t as GRANULARITY_I18N_KEY } from "./adapter-CRyH4YC8.js";
2
+ import { getCurrentInstance, inject } from "vue";
3
+ //#region src/internal/granularityI18n.ts
4
+ /**
5
+ * Ключ provide/inject из `@feugene/fint-i18n` (`Symbol.for("FintI18n")`).
6
+ *
7
+ * Дублируем константу здесь, чтобы не делать `@feugene/fint-i18n` обязательной
8
+ * runtime-зависимостью пакета: достаточно, чтобы приложение само установило
9
+ * fint-i18n через `installI18n(app, i18n)` — символ глобальный (Symbol.for),
10
+ * поэтому ключи будут совпадать без прямого импорта.
11
+ */
12
+ var FINT_I18N_KEY = Symbol.for("FintI18n");
13
+ function isGranularityI18nLike(value) {
14
+ return typeof value?.t === "function";
15
+ }
16
+ function resolveGranularityI18n(context) {
17
+ if (isGranularityI18nLike(context)) return context;
18
+ const provides = context?.provides;
19
+ if (provides) {
20
+ const fromGranularity = provides[GRANULARITY_I18N_KEY];
21
+ if (isGranularityI18nLike(fromGranularity)) return fromGranularity;
22
+ const fromFint = provides[FINT_I18N_KEY];
23
+ if (isGranularityI18nLike(fromFint)) return fromFint;
24
+ return null;
25
+ }
26
+ if (!getCurrentInstance()) return null;
27
+ const fromGranularity = inject(GRANULARITY_I18N_KEY, null);
28
+ if (isGranularityI18nLike(fromGranularity)) return fromGranularity;
29
+ const fromFint = inject(FINT_I18N_KEY, null);
30
+ if (isGranularityI18nLike(fromFint)) return fromFint;
31
+ return null;
32
+ }
33
+ function useGranularityTranslations(context) {
34
+ const i18n = resolveGranularityI18n(context);
35
+ const t = (key, fallback, params) => {
36
+ if (!i18n) return fallback;
37
+ const result = i18n.t(key, params);
38
+ return result === key ? fallback : result;
39
+ };
40
+ return {
41
+ i18n,
42
+ t
43
+ };
44
+ }
45
+ //#endregion
46
+ export { useGranularityTranslations as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"granularityI18n-CXa_uN7f.js","names":[],"sources":["../../src/internal/granularityI18n.ts"],"sourcesContent":["import { getCurrentInstance, inject, type AppContext } from 'vue'\n\nimport { GRANULARITY_I18N_KEY, type GranularityI18nAdapter } from '../i18n/adapter'\n\nexport type GranularityI18nLike = GranularityI18nAdapter\n\n/**\n * Ключ provide/inject из `@feugene/fint-i18n` (`Symbol.for(\"FintI18n\")`).\n *\n * Дублируем константу здесь, чтобы не делать `@feugene/fint-i18n` обязательной\n * runtime-зависимостью пакета: достаточно, чтобы приложение само установило\n * fint-i18n через `installI18n(app, i18n)` — символ глобальный (Symbol.for),\n * поэтому ключи будут совпадать без прямого импорта.\n */\nconst FINT_I18N_KEY: symbol = Symbol.for('FintI18n')\n\nfunction isGranularityI18nLike(value: unknown): value is GranularityI18nLike {\n return typeof (value as GranularityI18nLike | null)?.t === 'function'\n}\n\nexport function resolveGranularityI18n(context?: AppContext | GranularityI18nLike | null): GranularityI18nLike | null {\n if (isGranularityI18nLike(context)) {\n return context\n }\n\n const provides = context?.provides\n\n if (provides) {\n const fromGranularity = provides[GRANULARITY_I18N_KEY as symbol] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = provides[FINT_I18N_KEY] as GranularityI18nLike | null | undefined\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n }\n\n if (!getCurrentInstance()) {\n return null\n }\n\n const fromGranularity = inject<GranularityI18nLike | null>(GRANULARITY_I18N_KEY, null)\n if (isGranularityI18nLike(fromGranularity)) {\n return fromGranularity\n }\n\n const fromFint = inject<GranularityI18nLike | null>(FINT_I18N_KEY, null)\n if (isGranularityI18nLike(fromFint)) {\n return fromFint\n }\n\n return null\n}\n\nexport function useGranularityTranslations(context?: AppContext | GranularityI18nLike | null) {\n const i18n = resolveGranularityI18n(context)\n\n const t = (key: string, fallback: string, params?: Record<string, any>): string => {\n if (!i18n) {\n return fallback\n }\n\n const result = i18n.t(key, params)\n return result === key ? fallback : result\n }\n\n return {\n i18n,\n t,\n }\n}"],"mappings":";;;;;;;;;;;AAcA,IAAM,gBAAwB,OAAO,IAAI,WAAW;AAEpD,SAAS,sBAAsB,OAA8C;AAC3E,QAAO,OAAQ,OAAsC,MAAM;;AAG7D,SAAgB,uBAAuB,SAA+E;AACpH,KAAI,sBAAsB,QAAQ,CAChC,QAAO;CAGT,MAAM,WAAW,SAAS;AAE1B,KAAI,UAAU;EACZ,MAAM,kBAAkB,SAAS;AACjC,MAAI,sBAAsB,gBAAgB,CACxC,QAAO;EAGT,MAAM,WAAW,SAAS;AAC1B,MAAI,sBAAsB,SAAS,CACjC,QAAO;AAGT,SAAO;;AAGT,KAAI,CAAC,oBAAoB,CACvB,QAAO;CAGT,MAAM,kBAAkB,OAAmC,sBAAsB,KAAK;AACtF,KAAI,sBAAsB,gBAAgB,CACxC,QAAO;CAGT,MAAM,WAAW,OAAmC,eAAe,KAAK;AACxE,KAAI,sBAAsB,SAAS,CACjC,QAAO;AAGT,QAAO;;AAGT,SAAgB,2BAA2B,SAAmD;CAC5F,MAAM,OAAO,uBAAuB,QAAQ;CAE5C,MAAM,KAAK,KAAa,UAAkB,WAAyC;AACjF,MAAI,CAAC,KACH,QAAO;EAGT,MAAM,SAAS,KAAK,EAAE,KAAK,OAAO;AAClC,SAAO,WAAW,MAAM,WAAW;;AAGrC,QAAO;EACL;EACA;EACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-circle-BUntgosj.js","names":[],"sources":[],"mappings":""}
@@ -25,6 +25,22 @@ var pagination = {
25
25
  "next": "Вперёд"
26
26
  };
27
27
  var navbar = { "openMenu": "Открыть меню" };
28
+ var responseError = {
29
+ "networkTitle": "Нет связи с сервером",
30
+ "networkMessage": "Проверьте подключение к интернету и попробуйте ещё раз.",
31
+ "abortedTitle": "Запрос отменён",
32
+ "abortedMessage": "Запрос был отменён.",
33
+ "validationTitle": "Проверьте данные",
34
+ "validationMessage": "Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.",
35
+ "clientTitle": "Ошибка запроса",
36
+ "clientMessage": "Сервер отклонил запрос.",
37
+ "serverTitle": "Ошибка сервера",
38
+ "serverMessage": "Произошла ошибка на сервере. Попробуйте ещё раз.",
39
+ "unknownTitle": "Что-то пошло не так",
40
+ "unknownMessage": "Не удалось выполнить операцию. Попробуйте ещё раз.",
41
+ "retryLabel": "Повторить",
42
+ "dismissLabel": "Скрыть"
43
+ };
28
44
  var colors = {
29
45
  "neutral": "Нейтральный",
30
46
  "success": "Успех",
@@ -42,7 +58,8 @@ var ru_default = {
42
58
  dialog,
43
59
  pagination,
44
60
  navbar,
61
+ responseError,
45
62
  colors
46
63
  };
47
64
  //#endregion
48
- export { colors, common, ru_default as default, dialog, loading, navbar, pagination, treeSelect };
65
+ export { colors, common, ru_default as default, dialog, loading, navbar, pagination, responseError, treeSelect };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ru-DcF7ciz0.js","names":[],"sources":["../../src/i18n/locales/ru.json"],"sourcesContent":["{\n \"common\": {\n \"confirm\": \"Подтвердить\",\n \"cancel\": \"Отмена\",\n \"add\": \"Добавить\",\n \"clear\": \"Очистить\",\n \"close\": \"Закрыть\"\n },\n \"loading\": {\n \"defaultText\": \"Загрузка...\"\n },\n \"treeSelect\": {\n \"filterPlaceholder\": \"Поиск…\",\n \"empty\": \"Нет данных\"\n },\n \"dialog\": {\n \"confirm\": {\n \"title\": \"Подтверждение\"\n },\n \"prompt\": {\n \"title\": \"Введите значение\",\n \"label\": \"Значение\",\n \"required\": \"Введите значение.\"\n }\n },\n \"pagination\": {\n \"pageSize\": \"Размер страницы\",\n \"prev\": \"Назад\",\n \"next\": \"Вперёд\"\n },\n \"navbar\": {\n \"openMenu\": \"Открыть меню\"\n },\n \"responseError\": {\n \"networkTitle\": \"Нет связи с сервером\",\n \"networkMessage\": \"Проверьте подключение к интернету и попробуйте ещё раз.\",\n \"abortedTitle\": \"Запрос отменён\",\n \"abortedMessage\": \"Запрос был отменён.\",\n \"validationTitle\": \"Проверьте данные\",\n \"validationMessage\": \"Сервер вернул ошибку валидации. Исправьте поля и попробуйте снова.\",\n \"clientTitle\": \"Ошибка запроса\",\n \"clientMessage\": \"Сервер отклонил запрос.\",\n \"serverTitle\": \"Ошибка сервера\",\n \"serverMessage\": \"Произошла ошибка на сервере. Попробуйте ещё раз.\",\n \"unknownTitle\": \"Что-то пошло не так\",\n \"unknownMessage\": \"Не удалось выполнить операцию. Попробуйте ещё раз.\",\n \"retryLabel\": \"Повторить\",\n \"dismissLabel\": \"Скрыть\"\n },\n \"colors\": {\n \"neutral\": \"Нейтральный\",\n \"success\": \"Успех\",\n \"warning\": \"Предупреждение\",\n \"danger\": \"Опасность\",\n \"info\": \"Инфо\",\n \"primary\": \"Primary\",\n \"slate\": \"Сланцевый\",\n \"azure\": \"Лазурный\"\n }\n}\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { t as splitClassTokens } from "./classTokens-BPeBXNzu.js";
2
- import { a as squareSizes, i as sizes, o as tones, s as variantClass, t as base } from "./grButtonStyles-BxZW2x0-.js";
2
+ import { a as squareSizes, i as sizes, o as tones, s as variantClass, t as base } from "./grButtonStyles-DKuXUemw.js";
3
3
  //#region src/components/GrButton/safelist.ts
4
4
  var variantTokens = Object.keys(tones).flatMap((tone) => [
5
5
  "primary",
@@ -1 +1 @@
1
- {"version":3,"file":"safelist-BY7z8fOl.js","names":[],"sources":["../../src/components/GrButton/safelist.ts"],"sourcesContent":["import {splitClassTokens} from '../shared/classTokens'\nimport {\n base,\n sizes,\n squareSizes,\n tones,\n variantClass,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst variantTokens = (Object.keys(tones) as GrButtonTone[]).flatMap(tone =>\n (['primary', 'secondary', 'outline', 'ghost', 'ghost-border'] as GrButtonVariant[])\n .flatMap(variant => splitClassTokens(variantClass(variant, tone))),\n)\n\nexport const grButtonClassTokens = {\n base: splitClassTokens(base),\n sizes: Object.values(sizes).flatMap(splitClassTokens),\n squareSizes: Object.values(squareSizes).flatMap(splitClassTokens),\n variants: variantTokens,\n} as const\n\nexport const grButtonSafelist = [...new Set([\n ...grButtonClassTokens.base,\n ...grButtonClassTokens.sizes,\n ...grButtonClassTokens.squareSizes,\n ...grButtonClassTokens.variants,\n])]\n"],"mappings":";;;AAWA,IAAM,gBAAiB,OAAO,KAAK,MAAM,CAAoB,SAAQ,SAChE;CAAC;CAAW;CAAa;CAAW;CAAS;CAAe,CACxD,SAAQ,YAAW,iBAAiB,aAAa,SAAS,KAAK,CAAC,CAAC,CACzE;AAED,IAAa,sBAAsB;CAC/B,MAAM,iBAAiB,KAAK;CAC5B,OAAO,OAAO,OAAO,MAAM,CAAC,QAAQ,iBAAiB;CACrD,aAAa,OAAO,OAAO,YAAY,CAAC,QAAQ,iBAAiB;CACjE,UAAU;CACb;AAED,IAAa,mBAAmB,CAAC,GAAG,IAAI,IAAI;CACxC,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CAC1B,CAAC,CAAC"}
1
+ {"version":3,"file":"safelist-DccvJqCE.js","names":[],"sources":["../../src/components/GrButton/safelist.ts"],"sourcesContent":["import {splitClassTokens} from '../shared/classTokens'\nimport {\n base,\n sizes,\n squareSizes,\n tones,\n variantClass,\n type GrButtonTone,\n type GrButtonVariant,\n} from './grButtonStyles'\n\nconst variantTokens = (Object.keys(tones) as GrButtonTone[]).flatMap(tone =>\n (['primary', 'secondary', 'outline', 'ghost', 'ghost-border'] as GrButtonVariant[])\n .flatMap(variant => splitClassTokens(variantClass(variant, tone))),\n)\n\nexport const grButtonClassTokens = {\n base: splitClassTokens(base),\n sizes: Object.values(sizes).flatMap(splitClassTokens),\n squareSizes: Object.values(squareSizes).flatMap(splitClassTokens),\n variants: variantTokens,\n} as const\n\nexport const grButtonSafelist = [...new Set([\n ...grButtonClassTokens.base,\n ...grButtonClassTokens.sizes,\n ...grButtonClassTokens.squareSizes,\n ...grButtonClassTokens.variants,\n])]\n"],"mappings":";;;AAWA,IAAM,gBAAiB,OAAO,KAAK,MAAM,CAAoB,SAAQ,SAChE;CAAC;CAAW;CAAa;CAAW;CAAS;CAAe,CACxD,SAAQ,YAAW,iBAAiB,aAAa,SAAS,KAAK,CAAC,CAAC,CACzE;AAED,IAAa,sBAAsB;CAC/B,MAAM,iBAAiB,KAAK;CAC5B,OAAO,OAAO,OAAO,MAAM,CAAC,QAAQ,iBAAiB;CACrD,aAAa,OAAO,OAAO,YAAY,CAAC,QAAQ,iBAAiB;CACjE,UAAU;CACb;AAED,IAAa,mBAAmB,CAAC,GAAG,IAAI,IAAI;CACxC,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CACvB,GAAG,oBAAoB;CAC1B,CAAC,CAAC"}
@@ -1,16 +1,16 @@
1
1
  import { t as grAlertConfig } from "./config-BV4vBzdm.js";
2
2
  import { t as grAvatarConfig } from "./config-CU_CBd0k.js";
3
- import { t as grBadgeConfig } from "./config-BaMO9dQh.js";
4
- import { t as grBadgeWrapConfig } from "./config-C9AOlKah.js";
5
- import { t as grBottomNavConfig } from "./config-C_-02Pu-.js";
6
- import { t as grButtonConfig } from "./config-Dkq0HeLe.js";
7
- import { t as grButtonGroupConfig } from "./config-Cn8TG49a.js";
3
+ import { t as grBadgeConfig } from "./config-B61cX08u.js";
4
+ import { t as grBadgeWrapConfig } from "./config-V3LF-b_F.js";
5
+ import { t as grBottomNavConfig } from "./config-BgBWt9-A.js";
6
+ import { t as grButtonConfig } from "./config-3I3vqDW4.js";
7
+ import { t as grButtonGroupConfig } from "./config-CUwF4E4R.js";
8
8
  import { t as grCardConfig } from "./config-ChQxl75m.js";
9
9
  import { t as grCheckboxConfig } from "./config-C9MblwGq.js";
10
10
  import { t as grIconConfig } from "./config-DbghHyY_.js";
11
11
  import { t as grCollapseConfig } from "./config-D5ek7VSi.js";
12
- import { t as grConfirmDialogConfig } from "./config-C_AOYGBr.js";
13
- import { t as grDataTableConfig } from "./config-DJWf0kWe.js";
12
+ import { t as grConfirmDialogConfig } from "./config-iDTkWUdh2.js";
13
+ import { t as grDataTableConfig } from "./config-DK2NpdyX2.js";
14
14
  import { t as grDialogSafelist } from "./safelist-BF822K15.js";
15
15
  import { t as grDrawerConfig } from "./config-DxqpV-KM.js";
16
16
  import { t as grDropdownConfig } from "./config-C4AlNm912.js";
@@ -32,7 +32,7 @@ import { t as grNumberInputConfig } from "./config-wo-ncgTH.js";
32
32
  import { t as grPaginationConfig } from "./config-DudL02ag.js";
33
33
  import { t as grProgressBarConfig } from "./config-ZJVOVgqR.js";
34
34
  import { t as grPromptDialogConfig } from "./config-B8rC_K97.js";
35
- import { t as grRadioConfig } from "./config-BXffa3ta.js";
35
+ import { t as grRadioConfig } from "./config-DZAQpfz0.js";
36
36
  import { t as grRadioGroupConfig } from "./config-D27BL0H9.js";
37
37
  import { t as grSegmentedConfig } from "./config-BhvNm4Pp.js";
38
38
  import { t as grSelectConfig } from "./config-XoANT5mU.js";
@@ -54,6 +54,12 @@ var grDialogConfig = defineGranularComponent(import.meta.url, {
54
54
  safelist: grDialogSafelist
55
55
  });
56
56
  //#endregion
57
+ //#region src/components/GrResponseErrorBanner/config.ts
58
+ var grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {
59
+ name: "GrResponseErrorBanner",
60
+ dependencies: ["GrAlert", "GrButton"]
61
+ });
62
+ //#endregion
57
63
  //#region src/granular-provider/shared.ts
58
64
  /** Идентификатор провайдера — совпадает с именем пакета. */
59
65
  var GRANULARITY_PROVIDER_ID = "@feugene/granularity";
@@ -124,6 +130,7 @@ var granularityComponentConfigs = {
124
130
  GrPromptDialog: grPromptDialogConfig,
125
131
  GrRadio: grRadioConfig,
126
132
  GrRadioGroup: grRadioGroupConfig,
133
+ GrResponseErrorBanner: grResponseErrorBannerConfig,
127
134
  GrSegmented: grSegmentedConfig,
128
135
  GrSelect: grSelectConfig,
129
136
  GrSidebar: grSidebarConfig,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-D7q-upeJ.js","names":[],"sources":["../../src/components/GrDialog/config.ts","../../src/components/GrResponseErrorBanner/config.ts","../../src/granular-provider/shared.ts"],"sourcesContent":["import {defineGranularComponent} from '@feugene/unocss-preset-granular/contract'\n\nimport { grDialogSafelist } from './safelist'\n\nexport const grDialogConfig = defineGranularComponent(import.meta.url, {\n name: 'GrDialog',\n dependencies: ['GrButton', 'GrModal'],\n safelist: grDialogSafelist,\n})\n","import { defineGranularComponent } from '@feugene/unocss-preset-granular/contract'\n\nexport const grResponseErrorBannerConfig = defineGranularComponent(import.meta.url, {\n name: 'GrResponseErrorBanner',\n dependencies: ['GrAlert', 'GrButton'],\n})\n","// Общий код browser- и node-entry granular-provider'а.\n//\n// Оба entry (`./index.ts`, `./node.ts`) отличаются только списком\n// компонентов, у которых есть node-only вариант конфига (например,\n// `GrButton`, чей `config.node.ts` использует `tokenDefinitionsFromCssSync`\n// и тянет `node:fs`). Browser-вариант таких компонентов берёт облегчённый\n// `./config.ts`, node-вариант — `./config.node.ts`. Всё остальное — `id`,\n// `theme.*`, `packageBaseUrl` и полный список browser-safe компонентов —\n// живёт здесь.\n//\n// ВАЖНО: все `new URL('../styles/...', import.meta.url)` намеренно находятся\n// здесь — `shared.ts` лежит в той же директории, что и `index.ts` / `node.ts`,\n// поэтому относительные пути идентичны. Это ОК для браузера: бандлеры\n// транслируют такие конструкции в статические asset-URL и `node:*` в бандл\n// не утаскивают.\n//\n// Ключи записи `<Name>: ds<Name>Config` в `granularityComponentConfigs`\n// критичны для regex‑парсинга в `apps/showcase/scripts/generate-component-api.mjs`,\n// не ломайте формат.\nimport {\n defineGranularProvider,\n type GranularComponentDescriptor,\n type GranularProvider,\n} from '@feugene/unocss-preset-granular/contract'\nimport { grAlertConfig } from '../components/GrAlert/config'\nimport { grAvatarConfig } from '../components/GrAvatar/config'\nimport { grBadgeConfig } from '../components/GrBadge/config'\nimport { grBadgeWrapConfig } from '../components/GrBadgeWrap/config'\nimport { grBottomNavConfig } from '../components/GrBottomNav/config'\nimport { grButtonConfig } from '../components/GrButton/config'\nimport { grButtonGroupConfig } from '../components/GrButtonGroup/config'\nimport { grCardConfig } from '../components/GrCard/config'\nimport { grCheckboxConfig } from '../components/GrCheckbox/config'\nimport { grCollapseConfig } from '../components/GrCollapse/config'\nimport { grConfirmDialogConfig } from '../components/GrConfirmDialog/config'\nimport { grDataTableConfig } from '../components/GrDataTable/config'\nimport { grDialogConfig } from '../components/GrDialog/config'\nimport { grDrawerConfig } from '../components/GrDrawer/config'\nimport { grDropdownConfig } from '../components/GrDropdown/config'\nimport { grDropdownMenuConfig } from '../components/GrDropdownMenu/config'\nimport { grEmptyStateConfig } from '../components/GrEmptyState/config'\nimport { grFileUploadConfig } from '../components/GrFileUpload/config'\nimport { grFormFieldConfig } from '../components/GrFormField/config'\nimport { grFormFileConfig } from '../components/GrFormFile/config'\nimport { grFormSectionConfig } from '../components/GrFormSection/config'\nimport { grIconConfig } from '../components/GrIcon/config'\nimport { grImageViewerConfig } from '../components/GrImageViewer/config'\nimport { grInputConfig } from '../components/GrInput/config'\nimport { grInputTagConfig } from '../components/GrInputTag/config'\nimport { grLinkConfig } from '../components/GrLink/config'\nimport { grListConfig } from '../components/GrList/config'\nimport { grLoadingConfig } from '../components/GrLoading/config'\nimport { grModalConfig } from '../components/GrModal/config'\nimport { grNavbarConfig } from '../components/GrNavbar/config'\nimport { grNumberInputConfig } from '../components/GrNumberInput/config'\nimport { grPaginationConfig } from '../components/GrPagination/config'\nimport { grProgressBarConfig } from '../components/GrProgressBar/config'\nimport { grPromptDialogConfig } from '../components/GrPromptDialog/config'\nimport { grRadioConfig } from '../components/GrRadio/config'\nimport { grRadioGroupConfig } from '../components/GrRadioGroup/config'\nimport { grResponseErrorBannerConfig } from '../components/GrResponseErrorBanner/config'\nimport { grSegmentedConfig } from '../components/GrSegmented/config'\nimport { grSelectConfig } from '../components/GrSelect/config'\nimport { grSidebarConfig } from '../components/GrSidebar/config'\nimport { grSkeletonConfig } from '../components/GrSkeleton/config'\nimport { grSwitchConfig } from '../components/GrSwitch/config'\nimport { grTableConfig } from '../components/GrTable/config'\nimport { grTabsConfig } from '../components/GrTabs/config'\nimport { grTextareaConfig } from '../components/GrTextarea/config'\nimport { grToasterConfig } from '../components/GrToaster/config'\nimport { grTooltipConfig } from '../components/GrTooltip/config'\nimport { grTreeConfig } from '../components/GrTree/config'\nimport { grTreeSelectConfig } from '../components/GrTreeSelect/config'\n\n/** Идентификатор провайдера — совпадает с именем пакета. */\nexport const GRANULARITY_PROVIDER_ID = '@feugene/granularity'\n\n// runtime-concat: литерал `new URL('..', import.meta.url)` rolldown заменяет\n// на `data:`-URL, поэтому собираем корень пакета из `import.meta.url` вручную\n// (отрезая два последних сегмента: имя файла и каталог `granular-provider/`).\nconst packageBaseUrl = `${import.meta.url.slice(\n 0,\n import.meta.url.lastIndexOf('/', import.meta.url.lastIndexOf('/') - 1) + 1,\n)}`\n\n/** Встроенные темы пакета. Единственный источник правды о списке тем. */\nexport const granularityThemeNames = ['light', 'dark'] as const\nexport type GranularityThemeName = (typeof granularityThemeNames)[number]\n\n/** Темы, активные по умолчанию, если окружение не переопределяет выбор. */\nexport const granularityDefaultThemes: readonly GranularityThemeName[] = ['light']\n\nconst theme = {\n baseCssUrl: new URL('../styles/base.css', import.meta.url).href,\n tokensCssUrl: new URL('../styles/tokens.css', import.meta.url).href,\n themes: {\n light: new URL('../styles/themes/light.css', import.meta.url).href,\n dark: new URL('../styles/themes/dark.css', import.meta.url).href,\n },\n defaultThemes: granularityDefaultThemes,\n} as const\n\n/**\n * Полный реестр публичных компонентов пакета `@feugene/granularity`.\n *\n * Ключи — имена компонентов (совпадают с публичным subpath‑экспортом\n * `@feugene/granularity/components/<Name>`). Значения — browser‑safe\n * `ds<Name>Config` из `./config.ts` рядом с SFC.\n *\n * Для компонентов, у которых есть node-only вариант конфига\n * (например, `GrButton` с `tokenDefinitionsFromCssSync`), browser‑конфиг\n * остаётся здесь, а node‑вариант подставляется снаружи через\n * `createGranularityProvider(overrides)` — см. `./index.ts` (browser)\n * и `./node.ts` (node).\n *\n * Формат записи `<Name>: ds<Name>Config` критичен для regex‑парсинга\n * в `apps/showcase/scripts/generate-component-api.mjs`, не ломайте его.\n */\nexport const granularityComponentConfigs = {\n GrAlert: grAlertConfig,\n GrAvatar: grAvatarConfig,\n GrBadge: grBadgeConfig,\n GrBadgeWrap: grBadgeWrapConfig,\n GrBottomNav: grBottomNavConfig,\n GrButton: grButtonConfig,\n GrButtonGroup: grButtonGroupConfig,\n GrCard: grCardConfig,\n GrCheckbox: grCheckboxConfig,\n GrCollapse: grCollapseConfig,\n GrConfirmDialog: grConfirmDialogConfig,\n GrDataTable: grDataTableConfig,\n GrDialog: grDialogConfig,\n GrDrawer: grDrawerConfig,\n GrDropdown: grDropdownConfig,\n GrDropdownMenu: grDropdownMenuConfig,\n GrEmptyState: grEmptyStateConfig,\n GrFileUpload: grFileUploadConfig,\n GrFormField: grFormFieldConfig,\n GrFormFile: grFormFileConfig,\n GrFormSection: grFormSectionConfig,\n GrIcon: grIconConfig,\n GrImageViewer: grImageViewerConfig,\n GrInput: grInputConfig,\n GrInputTag: grInputTagConfig,\n GrLink: grLinkConfig,\n GrList: grListConfig,\n GrLoading: grLoadingConfig,\n GrModal: grModalConfig,\n GrNavbar: grNavbarConfig,\n GrNumberInput: grNumberInputConfig,\n GrPagination: grPaginationConfig,\n GrProgressBar: grProgressBarConfig,\n GrPromptDialog: grPromptDialogConfig,\n GrRadio: grRadioConfig,\n GrRadioGroup: grRadioGroupConfig,\n GrResponseErrorBanner: grResponseErrorBannerConfig,\n GrSegmented: grSegmentedConfig,\n GrSelect: grSelectConfig,\n GrSidebar: grSidebarConfig,\n GrSkeleton: grSkeletonConfig,\n GrSwitch: grSwitchConfig,\n GrTable: grTableConfig,\n GrTabs: grTabsConfig,\n GrTextarea: grTextareaConfig,\n GrToaster: grToasterConfig,\n GrTooltip: grTooltipConfig,\n GrTree: grTreeConfig,\n GrTreeSelect: grTreeSelectConfig,\n}\n\nexport type GranularityComponentName = keyof typeof granularityComponentConfigs\n\n/** Базовый (browser-safe) набор компонентов в порядке реестра. */\nconst baseComponents: readonly GranularComponentDescriptor[] = Object.values(\n granularityComponentConfigs,\n)\n\n/**\n * Собирает granular-provider пакета `@feugene/granularity`.\n *\n * Принимает массив `GranularComponentDescriptor`'ов — это компоненты,\n * у которых есть node-only вариант конфига (например, `GrButton` с\n * `tokenDefinitionsFromCssSync`). Дескрипторы с именем, которое уже\n * присутствует в базовом наборе, переопределяют его (побеждает\n * переданный снаружи), остальные — добавляются в конец списка.\n */\nexport function createGranularityProvider(\n overrides: readonly GranularComponentDescriptor[] = [],\n): GranularProvider {\n const overrideByName = new Map(\n overrides.map(component => [component.name, component]),\n )\n const components: GranularComponentDescriptor[] = [\n ...baseComponents.map(component => overrideByName.get(component.name) ?? component),\n ...overrides.filter(component => !baseComponents.some(base => base.name === component.name)),\n ]\n\n return defineGranularProvider({\n id: GRANULARITY_PROVIDER_ID,\n contractVersion: 1,\n packageBaseUrl,\n components,\n theme,\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAa,iBAAiB,wBAAwB,OAAO,KAAK,KAAK;CACrE,MAAM;CACN,cAAc,CAAC,YAAY,UAAU;CACrC,UAAU;CACX,CAAC;;;ACNF,IAAa,8BAA8B,wBAAwB,OAAO,KAAK,KAAK;CAClF,MAAM;CACN,cAAc,CAAC,WAAW,WAAW;CACtC,CAAC;;;;ACsEF,IAAa,0BAA0B;AAKvC,IAAM,iBAAiB,GAAG,OAAO,KAAK,IAAI,MACxC,GACA,OAAO,KAAK,IAAI,YAAY,KAAK,OAAO,KAAK,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,EAC1E;;AAGD,IAAa,wBAAwB,CAAC,SAAS,OAAO;;AAItD,IAAa,2BAA4D,CAAC,QAAQ;AAElF,IAAM,QAAQ;CACZ,YAAY,IAAA,IAAA,i2BAAA,KAAA,OAAA,KAAA,IAA8C,CAAC;CAC3D,cAAc,IAAA,IAAA,iuKAAA,KAAA,OAAA,KAAA,IAAgD,CAAC;CAC/D,QAAQ;EACN,OAAO,IAAA,IAAA,qrGAAA,KAAA,OAAA,KAAA,IAAsD,CAAC;EAC9D,MAAM,IAAA,IAAA,qxGAAA,KAAA,OAAA,KAAA,IAAqD,CAAC;EAC7D;CACD,eAAe;CAChB;;;;;;;;;;;;;;;;;AAkBD,IAAa,8BAA8B;CACzC,SAAS;CACT,UAAU;CACV,SAAS;CACT,aAAa;CACb,aAAa;CACb,UAAU;CACV,eAAe;CACf,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,aAAa;CACb,UAAU;CACV,UAAU;CACV,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,cAAc;CACd,aAAa;CACb,YAAY;CACZ,eAAe;CACf,QAAQ;CACR,eAAe;CACf,SAAS;CACT,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,SAAS;CACT,UAAU;CACV,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;CAChB,SAAS;CACT,cAAc;CACd,uBAAuB;CACvB,aAAa;CACb,UAAU;CACV,WAAW;CACX,YAAY;CACZ,UAAU;CACV,SAAS;CACT,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,WAAW;CACX,QAAQ;CACR,cAAc;CACf;;AAKD,IAAM,iBAAyD,OAAO,OACpE,4BACD;;;;;;;;;;AAWD,SAAgB,0BACd,YAAoD,EAAE,EACpC;CAClB,MAAM,iBAAiB,IAAI,IACzB,UAAU,KAAI,cAAa,CAAC,UAAU,MAAM,UAAU,CAAC,CACxD;AAMD,QAAO,uBAAuB;EAC5B,IAAI;EACJ,iBAAiB;EACjB;EACA,YATgD,CAChD,GAAG,eAAe,KAAI,cAAa,eAAe,IAAI,UAAU,KAAK,IAAI,UAAU,EACnF,GAAG,UAAU,QAAO,cAAa,CAAC,eAAe,MAAK,SAAQ,KAAK,SAAS,UAAU,KAAK,CAAC,CAC7F;EAOC;EACD,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { n as grBadgeClass } from "../../../chunks/grBadgeStyles-Cq0hH2Ls.js";
2
+ import { t as _plugin_vue_export_helper_default } from "../../../chunks/_plugin-vue_export-helper-DQR7Sy7Q.js";
3
+ import { computed, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, renderSlot } from "vue";
4
+ import '../../../GrBadge.css';//#region src/components/GrBadge/GrBadge.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = { class: "gr-badge__label" };
6
+ var _hoisted_2 = { class: "gr-badge__text" };
7
+ //#endregion
8
+ //#region src/components/GrBadge/GrBadge.vue
9
+ var GrBadge_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
10
+ __name: "GrBadge",
11
+ props: {
12
+ tone: { default: "neutral" },
13
+ dark: {
14
+ type: Boolean,
15
+ default: false
16
+ },
17
+ size: { default: "sm" },
18
+ radius: { default: "round" }
19
+ },
20
+ setup(__props) {
21
+ const props = __props;
22
+ const className = computed(() => {
23
+ return grBadgeClass({
24
+ tone: props.tone,
25
+ dark: props.dark,
26
+ size: props.size,
27
+ radius: props.radius
28
+ });
29
+ });
30
+ return (_ctx, _cache) => {
31
+ return openBlock(), createElementBlock("span", { class: normalizeClass(["gr-badge inline-block border whitespace-nowrap leading-none", className.value]) }, [createElementVNode("span", _hoisted_1, [createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])])], 2);
32
+ };
33
+ }
34
+ }), [["__scopeId", "data-v-c44afbc8"]]);
35
+ //#endregion
36
+ export { GrBadge_default as t };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrBadge-Cs_cVfuO.js","names":[],"sources":["../../../../src/components/GrBadge/GrBadge.vue","../../../../src/components/GrBadge/GrBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from './grBadgeStyles'\n\nimport {\n grBadgeClass,\n type GrBadgeRadius,\n type GrBadgeSize,\n type GrBadgeTone,\n} from './grBadgeStyles'\n\nconst props = withDefaults(\n defineProps<{\n tone?: GrBadgeTone\n dark?: boolean\n size?: GrBadgeSize\n radius?: GrBadgeRadius\n }>(),\n {\n tone: 'neutral',\n dark: false,\n size: 'sm',\n radius: 'round',\n },\n)\n\nconst className = computed(() => {\n return grBadgeClass({\n tone: props.tone,\n dark: props.dark,\n size: props.size,\n radius: props.radius,\n })\n})\n</script>\n\n<template>\n <span\n class=\"gr-badge inline-block border whitespace-nowrap leading-none\"\n :class=\"className\"\n >\n <span class=\"gr-badge__label\">\n <span class=\"gr-badge__text\">\n <slot />\n </span>\n </span>\n </span>\n</template>\n\n<style scoped>\n/*\n * Оптически центрируем текст по вертикали независимо от регистра,\n * не уменьшая высоту самого бейджа.\n *\n * Раньше `text-box-trim` висел прямо на тексте и обрезал line-box до\n * cap-height: текст центрировался корректно, но высота контента\n * падала до cap-height, из-за чего бейдж становился ниже.\n *\n * Теперь высоту держит обёртка `.gr-badge__label` (`min-height: 1lh` —\n * исходная высота line-box при `leading-none`), а сам текст\n * (`.gr-badge__text`) обрезается до cap-height/базовой линии и\n * центрируется внутри этой высоты через flex. В итоге высота бейджа\n * не меняется, а строчный/заглавный текст выглядит по центру.\n */\n.gr-badge__label {\n display: flex;\n align-items: center;\n min-height: 1lh;\n}\n\n.gr-badge__text {\n display: block;\n text-box-trim: trim-both;\n text-box-edge: cap alphabetic;\n /* Шорткат для браузеров с поддержкой нового синтаксиса. */\n text-box: trim-both cap alphabetic;\n}\n</style>","<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nexport type { GrBadgeRadius, GrBadgeSize, GrBadgeTone } from './grBadgeStyles'\n\nimport {\n grBadgeClass,\n type GrBadgeRadius,\n type GrBadgeSize,\n type GrBadgeTone,\n} from './grBadgeStyles'\n\nconst props = withDefaults(\n defineProps<{\n tone?: GrBadgeTone\n dark?: boolean\n size?: GrBadgeSize\n radius?: GrBadgeRadius\n }>(),\n {\n tone: 'neutral',\n dark: false,\n size: 'sm',\n radius: 'round',\n },\n)\n\nconst className = computed(() => {\n return grBadgeClass({\n tone: props.tone,\n dark: props.dark,\n size: props.size,\n radius: props.radius,\n })\n})\n</script>\n\n<template>\n <span\n class=\"gr-badge inline-block border whitespace-nowrap leading-none\"\n :class=\"className\"\n >\n <span class=\"gr-badge__label\">\n <span class=\"gr-badge__text\">\n <slot />\n </span>\n </span>\n </span>\n</template>\n\n<style scoped>\n/*\n * Оптически центрируем текст по вертикали независимо от регистра,\n * не уменьшая высоту самого бейджа.\n *\n * Раньше `text-box-trim` висел прямо на тексте и обрезал line-box до\n * cap-height: текст центрировался корректно, но высота контента\n * падала до cap-height, из-за чего бейдж становился ниже.\n *\n * Теперь высоту держит обёртка `.gr-badge__label` (`min-height: 1lh` —\n * исходная высота line-box при `leading-none`), а сам текст\n * (`.gr-badge__text`) обрезается до cap-height/базовой линии и\n * центрируется внутри этой высоты через flex. В итоге высота бейджа\n * не меняется, а строчный/заглавный текст выглядит по центру.\n */\n.gr-badge__label {\n display: flex;\n align-items: center;\n min-height: 1lh;\n}\n\n.gr-badge__text {\n display: block;\n text-box-trim: trim-both;\n text-box-edge: cap alphabetic;\n /* Шорткат для браузеров с поддержкой нового синтаксиса. */\n text-box: trim-both cap alphabetic;\n}\n</style>"],"mappings":";;;;;;;;;;;;;;;;;;;;EAYA,MAAM,QAAQ;EAed,MAAM,YAAY,eAAe;AAC/B,UAAO,aAAa;IAClB,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,QAAQ,MAAM;IACf,CAAA;IACF;;uBAIC,mBASO,QAAA,EARH,OAAK,eAAA,CAAC,+DACE,UAAA,MAAS,CAAA,EAAA,EAAA,CAEnB,mBAIO,QAJP,YAIO,CAHL,mBAEO,QAFP,YAEO,CADL,WAAQ,KAAA,QAAA,WAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA"}
@@ -1,3 +1,3 @@
1
- import { t as GrBadge_default } from "./chunks/GrBadge-wuIb4_2K.js";
2
- import { n as grBadgeSafelist, t as grBadgeConfig } from "../../chunks/config-BaMO9dQh.js";
1
+ import { t as GrBadge_default } from "./chunks/GrBadge-Cs_cVfuO.js";
2
+ import { n as grBadgeSafelist, t as grBadgeConfig } from "../../chunks/config-B61cX08u.js";
3
3
  export { GrBadge_default as GrBadge, GrBadge_default as default, grBadgeConfig, grBadgeSafelist };