@bethinkpl/design-system 26.10.1 → 26.11.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 (183) hide show
  1. package/.eslintrc.cjs +2 -3
  2. package/dist/design-system.umd.cjs +18 -18
  3. package/dist/design-system.umd.cjs.map +1 -1
  4. package/dist/lib/js/components/Avatar/Avatar.consts.d.ts +16 -1
  5. package/dist/lib/js/components/Avatar/Avatar.vue.d.ts +10 -21
  6. package/dist/lib/js/components/Badge/Badge.consts.d.ts +24 -0
  7. package/dist/lib/js/components/Badge/Badge.vue.d.ts +28 -0
  8. package/dist/lib/js/components/Badge/index.d.ts +4 -0
  9. package/dist/lib/js/components/BadgeScore/BadgeScore.vue.d.ts +2 -2
  10. package/dist/lib/js/components/Banner/Banner.vue.d.ts +11 -7
  11. package/dist/lib/js/components/Buttons/Button/Button.vue.d.ts +3 -2
  12. package/dist/lib/js/components/Buttons/IconButton/IconButton.vue.d.ts +6 -4
  13. package/dist/lib/js/components/Cards/CardExpandable/CardExpandable.vue.d.ts +2 -1
  14. package/dist/lib/js/components/Chip/Chip.vue.d.ts +8 -5
  15. package/dist/lib/js/components/DatePickers/DateBox/DateBox.vue.d.ts +2 -1
  16. package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.vue.d.ts +6 -4
  17. package/dist/lib/js/components/DatePickers/DateRangePicker/DateRangePicker.vue.d.ts +2 -1
  18. package/dist/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue.d.ts +19 -12
  19. package/dist/lib/js/components/Drawer/DrawerListItem/DrawerListItem.vue.d.ts +2 -1
  20. package/dist/lib/js/components/Drawer/DrawerSection/DrawerSection.vue.d.ts +11 -7
  21. package/dist/lib/js/components/Drawer/DrawerTile/DrawerTile.vue.d.ts +2 -1
  22. package/dist/lib/js/components/Form/Checkbox/Checkbox.vue.d.ts +2 -1
  23. package/dist/lib/js/components/Form/RadioButton/RadioButton.vue.d.ts +2 -1
  24. package/dist/lib/js/components/Form/SelectionControl/SelectionControl.vue.d.ts +1 -1
  25. package/dist/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue.d.ts +7 -4
  26. package/dist/lib/js/components/Headers/SectionHeader/SectionHeader.vue.d.ts +9 -6
  27. package/dist/lib/js/components/IconText/IconText.vue.d.ts +1 -1
  28. package/dist/lib/js/components/Icons/FeatureIcon/FeatureIcon.vue.d.ts +2 -2
  29. package/dist/lib/js/components/Icons/Icon/Icon.consts.d.ts +1 -0
  30. package/dist/lib/js/components/Icons/Icon/Icon.vue.d.ts +1 -1
  31. package/dist/lib/js/components/Modal/Modal.vue.d.ts +2 -1
  32. package/dist/lib/js/components/Modals/Modal/Modal.vue.d.ts +15 -11
  33. package/dist/lib/js/components/Modals/ModalDialog/ModalDialog.vue.d.ts +15 -11
  34. package/dist/lib/js/components/Outline/OutlineItem/OutlineItem.vue.d.ts +2 -1
  35. package/dist/lib/js/components/Pagination/Pagination.vue.d.ts +9 -5
  36. package/dist/lib/js/components/ProgressBar/ProgressBar.vue.d.ts +2 -1
  37. package/dist/lib/js/components/ProgressDonutChart/ProgressDonutChart.vue.d.ts +2 -1
  38. package/dist/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue.d.ts +8 -6
  39. package/dist/lib/js/components/RichList/RichListItem/RichListItem.vue.d.ts +6 -4
  40. package/dist/lib/js/components/SelectList/SelectListItem/SelectListItem.vue.d.ts +2 -1
  41. package/dist/lib/js/components/SelectList/SelectListItemTile/SelectListItemTile.vue.d.ts +2 -1
  42. package/dist/lib/js/components/SelectList/SelectListItemToggle/SelectListItemToggle.vue.d.ts +2 -1
  43. package/dist/lib/js/components/SelectionTile/SelectionTile.vue.d.ts +8 -5
  44. package/dist/lib/js/components/Statuses/AccessStatus/AccessStatus.vue.d.ts +2 -1
  45. package/dist/lib/js/components/Statuses/BlockadeStatus/BlockadeStatus.vue.d.ts +2 -1
  46. package/dist/lib/js/components/SurveyQuestions/SurveyQuestionOpenEnded/SurveyQuestionOpenEnded.vue.d.ts +12 -7
  47. package/dist/lib/js/components/SurveyQuestions/SurveyQuestionScale/SurveyQuestionScale.vue.d.ts +13 -8
  48. package/dist/lib/js/components/SurveyToggle/SurveyToggle.vue.d.ts +1 -1
  49. package/dist/lib/js/components/Switch/Switch.vue.d.ts +2 -1
  50. package/dist/lib/js/components/TabItem/TabItem.vue.d.ts +2 -2
  51. package/dist/lib/js/components/Tile/Tile.sb.shared.d.ts +14 -9
  52. package/dist/lib/js/components/Tile/Tile.vue.d.ts +2 -1
  53. package/dist/lib/js/components/Toast/Toast.vue.d.ts +5 -4
  54. package/dist/lib/js/components/Toggles/CounterToggle/CounterToggle.vue.d.ts +1 -1
  55. package/dist/lib/js/components/Toggles/ToggleButton/ToggleButton.vue.d.ts +2 -1
  56. package/dist/lib/js/icons/fontawesome.d.ts +1 -0
  57. package/dist/lib/js/index.d.ts +2 -0
  58. package/docs/assets/{AccessStatus-eOOeqKMq.js → AccessStatus-Bb89L0n4.js} +1 -1
  59. package/docs/assets/{AccessStatus.stories-Cj85qL9V.js → AccessStatus.stories-B3_KTVWu.js} +1 -1
  60. package/docs/assets/Avatar-BY2FHjur.js +1 -0
  61. package/docs/assets/Avatar.stories-CHgyprX4.js +37 -0
  62. package/docs/assets/Badge-DWUXekFu.js +1 -0
  63. package/docs/assets/Badge.stories-B90k4kes.js +21 -0
  64. package/docs/assets/{BadgeScore-BL8hbYk0.js → BadgeScore-VoyhoyPu.js} +1 -1
  65. package/docs/assets/{BadgeScore.stories-DdjqFD5U.js → BadgeScore.stories-CNY-1Nuu.js} +1 -1
  66. package/docs/assets/{Banner-CYq3U3dp.js → Banner-DaqGIRps.js} +1 -1
  67. package/docs/assets/{Banner.stories-C5AklXaE.js → Banner.stories-BP7LrBw0.js} +1 -1
  68. package/docs/assets/{BasicRichListItem-WZ8mj4WH.js → BasicRichListItem-C2lY5QHc.js} +1 -1
  69. package/docs/assets/{BasicRichListItem.stories-CnXil0XY.js → BasicRichListItem.stories-Cq_2y-ip.js} +2 -2
  70. package/docs/assets/{BlockadeStatus-0IfPTjpE.js → BlockadeStatus-BovI8qdo.js} +1 -1
  71. package/docs/assets/{BlockedeStatus.stories-ds5jeZmH.js → BlockedeStatus.stories-CZqKhsVe.js} +1 -1
  72. package/docs/assets/{Button-C9fw-hoQ.js → Button-TCMWFFTV.js} +1 -1
  73. package/docs/assets/{Button.stories-Bc7hSqem.js → Button.stories-BP78ebL5.js} +1 -1
  74. package/docs/assets/{CardExpandable-BzuBEb3B.js → CardExpandable-U3c3_RFR.js} +1 -1
  75. package/docs/assets/{CardExpandable.stories-Dw5ytiF1.js → CardExpandable.stories-CJJrRvWG.js} +1 -1
  76. package/docs/assets/{Checkbox-B9iZ2V6w.js → Checkbox-Bsa7X8oN.js} +1 -1
  77. package/docs/assets/{Checkbox.stories-XetNYP18.js → Checkbox.stories-D_FmTwaw.js} +1 -1
  78. package/docs/assets/{Chip-BioAps-y.js → Chip-CTSLlUHr.js} +1 -1
  79. package/docs/assets/{Chip.stories-gIHj4f0o.js → Chip.stories-BlDSOmpM.js} +1 -1
  80. package/docs/assets/{Color-ERTF36HU-OGMsUYvZ.js → Color-ERTF36HU-gYu0mrgM.js} +1 -1
  81. package/docs/assets/{CounterToggle-25cwaguS.js → CounterToggle-BVPp4FeG.js} +1 -1
  82. package/docs/assets/{CounterToggle.stories-CiNXxRaH.js → CounterToggle.stories-Bj6qyGpF.js} +1 -1
  83. package/docs/assets/{DateBox.stories-BkICbFGG.js → DateBox.stories-2Z3tCp_1.js} +1 -1
  84. package/docs/assets/{DatePicker-AYpn3Wnq.js → DatePicker-C2ooefT-.js} +1 -1
  85. package/docs/assets/{DatePicker.stories-B0s5x-tP.js → DatePicker.stories-CwMU6bVO.js} +1 -1
  86. package/docs/assets/{DateRangePicker-SPwTzS7T.js → DateRangePicker-BbtTUk2P.js} +1 -1
  87. package/docs/assets/{DateRangePicker.stories-BXBaAO1N.js → DateRangePicker.stories-DLDTFPz3.js} +1 -1
  88. package/docs/assets/{DocsRenderer-CFRXHY34-v9z3YwJj.js → DocsRenderer-CFRXHY34-CCozPr0-.js} +5 -5
  89. package/docs/assets/{DrawerHeader-CrvJW8a0.js → DrawerHeader-BUFtT2yY.js} +1 -1
  90. package/docs/assets/{DrawerHeader.stories-BXRweA8a.js → DrawerHeader.stories-C2E1814K.js} +1 -1
  91. package/docs/assets/{DrawerListItem-83NDSyje.js → DrawerListItem-BruVct4m.js} +1 -1
  92. package/docs/assets/{DrawerListItem.stories-Ctz2uc7L.js → DrawerListItem.stories-D5YRBGHl.js} +1 -1
  93. package/docs/assets/{DrawerListItemGroup.stories-C1MInA92.js → DrawerListItemGroup.stories-Bn3gvIvs.js} +1 -1
  94. package/docs/assets/{DrawerSection-JWZp34mG.js → DrawerSection-CGE0Z89z.js} +1 -1
  95. package/docs/assets/{DrawerSection.stories-C-0HGWbX.js → DrawerSection.stories-DanW010v.js} +1 -1
  96. package/docs/assets/{DrawerTile-CVzahKPW.js → DrawerTile-C4SUdovI.js} +1 -1
  97. package/docs/assets/{DrawerTile.stories-Cuv_lxak.js → DrawerTile.stories-DfNjL51X.js} +1 -1
  98. package/docs/assets/{Dropdown.stories-BO5wXz__.js → Dropdown.stories-ARX2jFhf.js} +1 -1
  99. package/docs/assets/{FeatureIcon-Bt2WOK2R.js → FeatureIcon-DEdW5Abw.js} +1 -1
  100. package/docs/assets/{FeatureIcon.stories-CQT4Ax6v.js → FeatureIcon.stories-BvrIv3nz.js} +1 -1
  101. package/docs/assets/{GroupRichListItem-DYIyXLew.js → GroupRichListItem-BvMN1U8t.js} +1 -1
  102. package/docs/assets/{GroupRichListItem.stories-CcpusO91.js → GroupRichListItem.stories-BBLgdtH3.js} +1 -1
  103. package/docs/assets/{Icon-Mp5xMpaO.js → Icon-BCID_1bx.js} +6 -6
  104. package/docs/assets/{Icon.stories-vgEeaZJT.js → Icon.stories-DGcaJLbW.js} +1 -1
  105. package/docs/assets/{IconButton-DIcq1fJw.js → IconButton-BAw3zjHF.js} +1 -1
  106. package/docs/assets/{IconButton.stories-BjASqqcL.js → IconButton.stories-qS45zAsa.js} +1 -1
  107. package/docs/assets/{IconText-DH8YnoAg.js → IconText-832pwWI9.js} +1 -1
  108. package/docs/assets/{IconText.stories-LbqRHqJE.js → IconText.stories-I2fBQvxS.js} +1 -1
  109. package/docs/assets/{Modal-C6oHTd9H.js → Modal-Dup6Muk_.js} +1 -1
  110. package/docs/assets/{Modal.stories-92Xf33XH.js → Modal.stories-BaoTM0GW.js} +1 -1
  111. package/docs/assets/{ModalDialog-dOgZn33y.js → ModalDialog-DOx_9BEj.js} +1 -1
  112. package/docs/assets/{ModalDialog.stories-Uc2W8IuG.js → ModalDialog.stories-D8jVrVFf.js} +1 -1
  113. package/docs/assets/{OutlineItem-DhfqJ-7-.js → OutlineItem-BsB-mMO_.js} +1 -1
  114. package/docs/assets/{OutlineItem.stories-cw0kKzcp.js → OutlineItem.stories-BWjCGXmh.js} +1 -1
  115. package/docs/assets/{OverlayHeader-CPMEh6FP.js → OverlayHeader-IVWPOkcc.js} +1 -1
  116. package/docs/assets/{OverlayHeader.stories-B9z4bc2U.js → OverlayHeader.stories-Bfs3IIBX.js} +1 -1
  117. package/docs/assets/{Pagination-BozsH7nA.js → Pagination-bDyh9QNI.js} +1 -1
  118. package/docs/assets/{Pagination.stories-CJ3Ji36t.js → Pagination.stories-UEaZytU1.js} +1 -1
  119. package/docs/assets/{PopOver-CtUX5GOv.js → PopOver-D3l-RPQg.js} +1 -1
  120. package/docs/assets/{PopOver.stories-BEx11Hdn.js → PopOver.stories-3vKhXSoG.js} +1 -1
  121. package/docs/assets/{ProgressBar--hC6PavB.js → ProgressBar-CS0FvbKL.js} +1 -1
  122. package/docs/assets/{ProgressBar.stories-RHlmumHR.js → ProgressBar.stories-D3hrlw5G.js} +1 -1
  123. package/docs/assets/{ProgressDonutChart-DeGyrmq6.js → ProgressDonutChart-Ds7o43EP.js} +1 -1
  124. package/docs/assets/{ProgressDonutChart.stories-rd58SqrJ.js → ProgressDonutChart.stories-D6gMV_Gy.js} +1 -1
  125. package/docs/assets/{RadioButton-Xhsqu9LZ.js → RadioButton-CPXnEX35.js} +1 -1
  126. package/docs/assets/{RadioButton.stories-fYfSB3kz.js → RadioButton.stories-BcRXcnlp.js} +1 -1
  127. package/docs/assets/{RichListItem.stories-V5ssb1ab.js → RichListItem.stories-Bjn9_BVO.js} +2 -2
  128. package/docs/assets/{SectionHeader-Cb_LRj0A.js → SectionHeader-uor_aNAH.js} +1 -1
  129. package/docs/assets/{SectionHeader.stories-Rr9liyKE.js → SectionHeader.stories-CPacayR1.js} +1 -1
  130. package/docs/assets/{SelectList.stories-xa5pMHWZ.js → SelectList.stories-B-sk3_IU.js} +1 -1
  131. package/docs/assets/{SelectListItem-CMEWk56_.js → SelectListItem-CwQPayet.js} +1 -1
  132. package/docs/assets/{SelectListItem.stories-CZQnbd9E.js → SelectListItem.stories-Czz_7goW.js} +1 -1
  133. package/docs/assets/{SelectListItemTile-BY_kD2tX.js → SelectListItemTile-BS64oXam.js} +1 -1
  134. package/docs/assets/{SelectListItemTile.stories-BNpIs1tL.js → SelectListItemTile.stories-B0tSdA5I.js} +1 -1
  135. package/docs/assets/{SelectListItemToggle-81A27VmN.js → SelectListItemToggle-6Qc40Pdh.js} +1 -1
  136. package/docs/assets/{SelectListItemToggle.stories-DHeAyW6U.js → SelectListItemToggle.stories-Du5NmLzv.js} +1 -1
  137. package/docs/assets/{SelectionControl-DBJI2z3t.js → SelectionControl-KJWkMhCz.js} +1 -1
  138. package/docs/assets/{SelectionTile-M5QhEL1-.js → SelectionTile-BKeLO5-6.js} +2 -2
  139. package/docs/assets/{SelectionTile.stories-D2AW9_Oc.js → SelectionTile.stories-BSF1jx58.js} +1 -1
  140. package/docs/assets/{SurveyQuestionOpenEnded-uAQcVFpH.js → SurveyQuestionOpenEnded-DP0hAB06.js} +1 -1
  141. package/docs/assets/{SurveyQuestionOpenEnded.stories-BeVoOnrr.js → SurveyQuestionOpenEnded.stories-Dz2pNxN6.js} +1 -1
  142. package/docs/assets/{SurveyQuestionScale-DIyyaIsW.js → SurveyQuestionScale-C0UAJdFd.js} +1 -1
  143. package/docs/assets/{SurveyQuestionScale.stories-CDVs61Et.js → SurveyQuestionScale.stories-BFpl63w3.js} +1 -1
  144. package/docs/assets/{SurveyToggle-BtVXTA2f.js → SurveyToggle-CUgbE0SL.js} +1 -1
  145. package/docs/assets/{SurveyToggle.stories-CGl5Hi4F.js → SurveyToggle.stories-DtsK6lka.js} +1 -1
  146. package/docs/assets/{Switch--1UZ60fL.js → Switch-Dba5kcqg.js} +1 -1
  147. package/docs/assets/{Switch.stories-B4EBe8Or.js → Switch.stories-DfL5rrfA.js} +1 -1
  148. package/docs/assets/{TabItem-B12iJLKS.js → TabItem-CapV8hZ1.js} +1 -1
  149. package/docs/assets/{TabItem.stories-DOya9_i9.js → TabItem.stories-DYTyMD_u.js} +1 -1
  150. package/docs/assets/{Tile-DysbzGgY.js → Tile-cjoefzuT.js} +1 -1
  151. package/docs/assets/{Tile.sb.shared-DecgtIfz.js → Tile.sb.shared-Cgo0fG1v.js} +1 -1
  152. package/docs/assets/{Tile.stories-Tgb-XmMQ.js → Tile.stories-B2oKdkzl.js} +1 -1
  153. package/docs/assets/{Toast-D729ZPpL.js → Toast-tGyu8Qsr.js} +1 -1
  154. package/docs/assets/{Toast.stories-BoBNQP7_.js → Toast.stories-BUAwdQVH.js} +1 -1
  155. package/docs/assets/{ToggleButton-O5xcFrKP.js → ToggleButton-BsVq0wUU.js} +1 -1
  156. package/docs/assets/{ToggleButton.stories-BChqfrqP.js → ToggleButton.stories-C88JvePy.js} +1 -1
  157. package/docs/assets/{Tooltip.stories-DgKbnjOD.js → Tooltip.stories-DTS2hkAV.js} +1 -1
  158. package/docs/assets/{iframe-CJMgMOL3.js → iframe-DM9VVuiu.js} +4 -3
  159. package/docs/assets/{index-C0CdTAAo.js → index-BLJge5bw.js} +1 -1
  160. package/docs/assets/{index-DIkIRRN2.js → index-GQAS3BWp.js} +1 -1
  161. package/docs/assets/{preview-Cpupz0H9.js → preview-Bx8DeNCo.js} +2 -2
  162. package/docs/assets/preview-IY5bCRtO.js +64 -0
  163. package/docs/assets/{string-It9PaX9k.js → string-CxurpGTK.js} +1 -1
  164. package/docs/iframe.html +1 -1
  165. package/docs/index.json +1 -1
  166. package/docs/project.json +1 -1
  167. package/lib/js/components/Avatar/Avatar.consts.ts +20 -1
  168. package/lib/js/components/Avatar/Avatar.spec.ts +83 -3
  169. package/lib/js/components/Avatar/Avatar.stories.ts +24 -4
  170. package/lib/js/components/Avatar/Avatar.vue +210 -46
  171. package/lib/js/components/Badge/Badge.consts.ts +29 -0
  172. package/lib/js/components/Badge/Badge.spec.ts +168 -0
  173. package/lib/js/components/Badge/Badge.stories.ts +99 -0
  174. package/lib/js/components/Badge/Badge.vue +297 -0
  175. package/lib/js/components/Badge/index.ts +4 -0
  176. package/lib/js/components/Chip/Chip.stories.ts +1 -1
  177. package/lib/js/icons/fontawesome.ts +2 -0
  178. package/lib/js/index.ts +2 -0
  179. package/package.json +3 -2
  180. package/docs/assets/Avatar-OqeGv3bT.js +0 -1
  181. package/docs/assets/Avatar.stories-Ran7nhCi.js +0 -35
  182. package/docs/assets/preview-C0zUF_bi.js +0 -64
  183. /package/lib/{js/components/Chip → images}/logo-badge.svg +0 -0
@@ -0,0 +1,297 @@
1
+ <template>
2
+ <div
3
+ class="ds-badge"
4
+ :class="{
5
+ '-ds-x-small': size === BADGE_SIZES.X_SMALL,
6
+ '-ds-small': size === BADGE_SIZES.SMALL,
7
+ '-ds-medium': size === BADGE_SIZES.MEDIUM,
8
+ '-ds-large': size === BADGE_SIZES.LARGE,
9
+ '-ds-x-large': size === BADGE_SIZES.X_LARGE,
10
+ '-ds-color-primary': color === BADGE_COLORS.PRIMARY,
11
+ '-ds-color-success': color === BADGE_COLORS.SUCCESS,
12
+ '-ds-color-fail': color === BADGE_COLORS.FAIL,
13
+ '-ds-color-danger': color === BADGE_COLORS.DANGER,
14
+ '-ds-color-neutral': color === BADGE_COLORS.NEUTRAL,
15
+ }"
16
+ >
17
+ <div
18
+ :class="[
19
+ 'ds-badge__elevation',
20
+ {
21
+ '-ds-no-elevation': elevation === BADGE_ELEVATIONS.NONE,
22
+ '-ds-elevation-s': elevation === BADGE_ELEVATIONS.SMALL,
23
+ },
24
+ ]"
25
+ >
26
+ </div>
27
+ <div v-if="!imageUrl && !icon" class="ds-badge__content">
28
+ {{ label }}
29
+ </div>
30
+ <icon v-if="!imageUrl && icon" :icon="icon" :size="iconSize" class="ds-badge__icon" />
31
+ <img v-if="imageUrl" :src="imageUrl" class="ds-badge__image" />
32
+ </div>
33
+ </template>
34
+
35
+ <style scoped lang="scss">
36
+ @import '../../../styles/settings/radiuses';
37
+ @import '../../../styles/settings/typography/tokens';
38
+ @import '../../../styles/settings/colors/tokens';
39
+ @import '../../../styles/settings/spacings';
40
+ @import '../../../styles/settings/shadows';
41
+
42
+ $badge-elevation-size-xl: 30px;
43
+ $badge-elevation-size-l: 24px;
44
+ $badge-elevation-size-m: 18px;
45
+ $badge-elevation-size-s: 12px;
46
+ $badge-elevation-size-xs: 10px;
47
+
48
+ $badge-content-size-xl: 20px;
49
+ $badge-content-size-l: 16px;
50
+ $badge-content-size-m: 12px;
51
+ $badge-content-size-s: 8px;
52
+ $badge-content-size-xs: 6px;
53
+
54
+ $elevation-gap-xl: ($badge-elevation-size-xl - $badge-content-size-xl) / 2;
55
+ $elevation-gap-l: ($badge-elevation-size-l - $badge-content-size-l) / 2;
56
+ $elevation-gap-m: ($badge-elevation-size-m - $badge-content-size-m) / 2;
57
+ $elevation-gap-s: ($badge-elevation-size-s - $badge-content-size-s) / 2;
58
+ $elevation-gap-xs: ($badge-elevation-size-xs - $badge-content-size-xs) / 2;
59
+
60
+ .ds-badge {
61
+ $root: &;
62
+
63
+ display: inline-flex;
64
+ justify-content: center;
65
+ position: relative;
66
+
67
+ &__elevation {
68
+ align-items: center;
69
+ background-color: $color-default-background;
70
+ border-radius: $radius-xl;
71
+ display: flex;
72
+ justify-content: center;
73
+ position: absolute;
74
+
75
+ &.-ds-no-elevation {
76
+ display: none;
77
+ }
78
+
79
+ &.-ds-elevation-s {
80
+ box-shadow: $shadow-s;
81
+ }
82
+ }
83
+
84
+ &__content {
85
+ align-items: center;
86
+ border-radius: $radius-xl;
87
+ color: $color-inverted-text;
88
+ display: flex;
89
+ justify-content: center;
90
+ position: relative;
91
+ width: 100%;
92
+ }
93
+
94
+ &__icon {
95
+ position: relative;
96
+ }
97
+
98
+ &__image {
99
+ position: relative;
100
+ }
101
+
102
+ &.-ds-x-small {
103
+ height: $badge-content-size-xs;
104
+ min-width: $badge-content-size-xs;
105
+
106
+ & #{$root}__elevation {
107
+ height: $badge-elevation-size-xs;
108
+ left: -$elevation-gap-xs;
109
+ padding: $elevation-gap-xs;
110
+ top: -$elevation-gap-xs;
111
+ width: calc(100% + 2 * $elevation-gap-xs);
112
+ }
113
+
114
+ & #{$root}__image {
115
+ max-width: $badge-content-size-xs;
116
+ }
117
+ }
118
+
119
+ &.-ds-small {
120
+ height: $badge-content-size-s;
121
+ min-width: $badge-content-size-s;
122
+
123
+ & #{$root}__elevation {
124
+ height: $badge-elevation-size-s;
125
+ left: -$elevation-gap-s;
126
+ padding: $elevation-gap-s;
127
+ top: -$elevation-gap-s;
128
+ width: calc(100% + 2 * $elevation-gap-s);
129
+ }
130
+
131
+ & #{$root}__image {
132
+ max-width: $badge-content-size-s;
133
+ }
134
+ }
135
+
136
+ &.-ds-medium {
137
+ height: $badge-content-size-m;
138
+ min-width: $badge-content-size-m;
139
+
140
+ & #{$root}__elevation {
141
+ height: $badge-elevation-size-m;
142
+ left: -$elevation-gap-m;
143
+ padding: $elevation-gap-m;
144
+ top: -$elevation-gap-m;
145
+ width: calc(100% + 2 * $elevation-gap-m);
146
+ }
147
+
148
+ & #{$root}__content {
149
+ @include label-xs-default-bold;
150
+
151
+ padding: 0 $space-5xs;
152
+ }
153
+
154
+ & #{$root}__image {
155
+ max-width: $badge-content-size-m;
156
+ }
157
+ }
158
+
159
+ &.-ds-large {
160
+ height: $badge-content-size-l;
161
+ min-width: $badge-content-size-l;
162
+
163
+ & #{$root}__elevation {
164
+ height: $badge-elevation-size-l;
165
+ left: -$elevation-gap-l;
166
+ padding: $elevation-gap-l;
167
+ top: -$elevation-gap-l;
168
+ width: calc(100% + 2 * $elevation-gap-l);
169
+ }
170
+
171
+ & #{$root}__content {
172
+ @include label-xs-default-bold;
173
+
174
+ padding: 0 $space-4xs;
175
+ }
176
+
177
+ & #{$root}__image {
178
+ max-width: $badge-content-size-l;
179
+ }
180
+ }
181
+
182
+ &.-ds-x-large {
183
+ height: $badge-content-size-xl;
184
+ min-width: $badge-content-size-xl;
185
+
186
+ & #{$root}__elevation {
187
+ height: $badge-elevation-size-xl;
188
+ left: -$elevation-gap-xl;
189
+ padding: $elevation-gap-xl;
190
+ top: -$elevation-gap-xl;
191
+ width: calc(100% + 2 * $elevation-gap-xl);
192
+ }
193
+
194
+ & #{$root}__content {
195
+ @include label-s-default-bold;
196
+
197
+ padding: 0 $space-4xs;
198
+ }
199
+
200
+ & #{$root}__image {
201
+ max-width: $badge-content-size-xl;
202
+ }
203
+ }
204
+
205
+ &.-ds-color-primary {
206
+ & #{$root}__content {
207
+ background-color: $color-primary-background-strong;
208
+ }
209
+
210
+ & #{$root}__icon {
211
+ color: $color-primary-icon;
212
+ }
213
+ }
214
+
215
+ &.-ds-color-success {
216
+ & #{$root}__content {
217
+ background-color: $color-success-background-strong;
218
+ }
219
+
220
+ & #{$root}__icon {
221
+ color: $color-success-icon;
222
+ }
223
+ }
224
+
225
+ &.-ds-color-fail {
226
+ & #{$root}__content {
227
+ background-color: $color-fail-background-strong;
228
+ }
229
+
230
+ & #{$root}__icon {
231
+ color: $color-fail-icon;
232
+ }
233
+ }
234
+
235
+ &.-ds-color-danger {
236
+ & #{$root}__content {
237
+ background-color: $color-danger-background-strong;
238
+ }
239
+
240
+ & #{$root}__icon {
241
+ color: $color-danger-icon;
242
+ }
243
+ }
244
+
245
+ &.-ds-color-neutral {
246
+ & #{$root}__content {
247
+ background-color: $color-neutral-background-heavy;
248
+ }
249
+
250
+ & #{$root}__icon {
251
+ color: $color-neutral-icon;
252
+ }
253
+ }
254
+ }
255
+ </style>
256
+
257
+ <script lang="ts" setup>
258
+ import {
259
+ BADGE_COLORS,
260
+ BADGE_SIZES,
261
+ BADGE_ELEVATIONS,
262
+ BadgeColor,
263
+ BadgeElevation,
264
+ BadgeSize,
265
+ } from './Badge.consts';
266
+ import Icon, { ICON_SIZES, IconItem } from '../Icons/Icon';
267
+ import { computed } from 'vue';
268
+
269
+ const {
270
+ size = BADGE_SIZES.SMALL,
271
+ color = BADGE_COLORS.PRIMARY,
272
+ elevation = BADGE_ELEVATIONS.X_SMALL,
273
+ icon,
274
+ } = defineProps<{
275
+ color?: BadgeColor;
276
+ size?: BadgeSize;
277
+ label?: string;
278
+ icon?: IconItem;
279
+ imageUrl?: string;
280
+ elevation?: BadgeElevation;
281
+ }>();
282
+
283
+ const iconSize = computed(() => {
284
+ // Casting to BadgeSize to work around an IDE issue (PhpStorm incorrectly flags some case branches as unreachable)
285
+ switch (size as BadgeSize) {
286
+ case BADGE_SIZES.SMALL:
287
+ return ICON_SIZES.XXX_SMALL;
288
+ case BADGE_SIZES.MEDIUM:
289
+ return ICON_SIZES.XX_SMALL;
290
+ case BADGE_SIZES.LARGE:
291
+ return ICON_SIZES.X_SMALL;
292
+ case BADGE_SIZES.X_LARGE:
293
+ default:
294
+ return ICON_SIZES.SMALL;
295
+ }
296
+ });
297
+ </script>
@@ -0,0 +1,4 @@
1
+ import Badge from './Badge.vue';
2
+
3
+ export default Badge;
4
+ export * from './Badge.consts';
@@ -1,7 +1,7 @@
1
1
  import Chip from './Chip.vue';
2
2
  import { CHIP_COLORS, CHIP_RADIUSES, CHIP_SIZES, CHIP_STATES } from './Chip.consts';
3
3
  import { ICONS } from '../Icons/Icon';
4
- import LogoBadge from './logo-badge.svg';
4
+ import LogoBadge from '../../../images/logo-badge.svg';
5
5
  import { Args, ArgTypes, Meta, StoryFn } from '@storybook/vue3';
6
6
 
7
7
  export default {
@@ -182,6 +182,7 @@ import { faInfo as fasInfo } from '@fortawesome/pro-solid-svg-icons/faInfo';
182
182
  import { faLightbulb as fasLightbulb } from '@fortawesome/pro-solid-svg-icons/faLightbulb';
183
183
  import { faMemoCircleInfo as fasMemoCircleInfo } from '@fortawesome/pro-solid-svg-icons/faMemoCircleInfo';
184
184
  import { faMessageQuestion as fasMessageQuestion } from '@fortawesome/pro-solid-svg-icons/faMessageQuestion';
185
+ import { faMessageQuestion } from '@fortawesome/pro-regular-svg-icons/faMessageQuestion';
185
186
  import { faMessageXmark } from '@fortawesome/pro-regular-svg-icons/faMessageXmark';
186
187
  import { faMessage } from '@fortawesome/pro-regular-svg-icons/faMessage';
187
188
  import { faPills as fasPills } from '@fortawesome/pro-solid-svg-icons/faPills';
@@ -352,6 +353,7 @@ export const FONTAWESOME_ICONS = {
352
353
  FA_MEMO_CIRCLE_INFO: faMemoCircleInfo,
353
354
  FA_MEMO_CIRCLE_INFO_SOLID: fasMemoCircleInfo,
354
355
  FA_MESSAGE_QUESTION_SOLID: fasMessageQuestion,
356
+ FA_MESSAGE_QUESTION: faMessageQuestion,
355
357
  FA_MESSAGE_XMARK: faMessageXmark,
356
358
  FA_MESSAGE: faMessage,
357
359
  FA_MINUS: faMinus,
package/lib/js/index.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { default as Avatar } from './components/Avatar';
2
2
  export * from './components/Avatar/Avatar.consts';
3
+ export { default as Badge } from './components/Badge';
4
+ export * from './components/Badge/Badge.consts';
3
5
  export { default as BadgeScore } from './components/BadgeScore';
4
6
  export { default as DsBadgeScore } from './components/BadgeScore';
5
7
  export * from './components/BadgeScore/BadgeScore.consts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bethinkpl/design-system",
3
- "version": "26.10.1",
3
+ "version": "26.11.0",
4
4
  "description": "Bethink universe design-system",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,7 +62,7 @@
62
62
  "eslint-config-prettier": "8.5.0",
63
63
  "eslint-plugin-import": "2.26.0",
64
64
  "eslint-plugin-storybook": "0.8.0",
65
- "eslint-plugin-vue": "9.6.0",
65
+ "eslint-plugin-vue": "10.0.0",
66
66
  "flatpickr": "^4.6.13",
67
67
  "jest": "^29.4.0",
68
68
  "jest-environment-jsdom": "^29.4.0",
@@ -87,6 +87,7 @@
87
87
  "vite-plugin-dts": "^3.9.1",
88
88
  "vite-svg-loader": "^5.1.0",
89
89
  "vue": "3.5.12",
90
+ "vue-eslint-parser": "^10.1.1",
90
91
  "vue-popperjs": "github:bethinkpl/vue-popper#03c7912c4729386743b0cca8f39b35448cc3db7f"
91
92
  },
92
93
  "dependencies": {
@@ -1 +0,0 @@
1
- import{d as A,q as o,c as n,a as v,j as _,s as L,n as g,u as s,o as l}from"./vue.esm-bundler-DmkhfO_9.js";import{_ as S}from"./_plugin-vue_export-helper-DlAUqK2U.js";const e={XX_SMALL:"xx-small",X_SMALL:"x-small",SMALL:"small",MEDIUM:"medium",LARGE:"large",X_LARGE:"x-large"},M=["src","alt"],y={key:1,class:"ds-avatar__initials"},d=A({__name:"Avatar",props:{username:{},avatarUrl:{default:void 0},size:{default:e.X_SMALL}},setup(c){const t=c,u=["#1abc9c","#2ecc71","#3498db","#9b59b6","#34495e","#16a085","#27ae60","#2980b9","#8e44ad","#2c3e50","#f1c40f","#e67e22","#e74c3c","#f39c12","#d35400","#c0392b"];function m(a){const[r,i]=a.split(/\s+/);return r&&i?`${r[0]}${i[0]}`.toUpperCase():r.substring(0,2).toUpperCase()}const p=o(()=>{if(t.avatarUrl)return;const a=(t.username.charCodeAt(0)-65)%16;return u[a]}),f=o(()=>m(t.username));return(a,r)=>(l(),n("div",{class:g(["ds-avatar",{"-ds-xx-small":a.size===s(e).XX_SMALL,"-ds-x-small":a.size===s(e).X_SMALL,"-ds-small":a.size===s(e).SMALL,"-ds-medium":a.size===s(e).MEDIUM,"-ds-large":a.size===s(e).LARGE,"-ds-x-large":a.size===s(e).X_LARGE}])},[v("div",{class:"ds-avatar__content",style:L({backgroundColor:p.value})},[a.avatarUrl?(l(),n("img",{key:0,src:a.avatarUrl,alt:a.username,class:"ds-avatar__image"},null,8,M)):(l(),n("span",y,_(f.value),1))],4)],2))}}),b=S(d,[["__scopeId","data-v-11da23f8"]]);d.__docgenInfo={exportName:"default",displayName:"Avatar",description:"",tags:{},props:[{name:"username",required:!0,type:{name:"string"}},{name:"avatarUrl",required:!1,type:{name:"string"},defaultValue:{func:!1,value:"undefined"}},{name:"size",required:!1,type:{name:"AvatarSize"},defaultValue:{func:!1,value:"AVATAR_SIZES.X_SMALL"}}],sourceFiles:["/home/runner/work/design-system/design-system/lib/js/components/Avatar/Avatar.vue"]};export{b as A,e as a};
@@ -1,35 +0,0 @@
1
- import{A as o,a as r}from"./Avatar-OqeGv3bT.js";import"./vue.esm-bundler-DmkhfO_9.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const z={title:"Components/Avatar",component:o,render:s=>({components:{Avatar:o},setup(){return{args:s}},template:'<Avatar v-bind="args" />'}),argTypes:{size:{control:"select",options:[...Object.values(r)]}}},a={args:{size:r.X_SMALL,username:"Dariusz Chrapek",avatarUrl:"https://wiecejnizlek.pl/wp-content/uploads/2021/08/Dariusz_Chrapek-uai-2996x2996-1-scaled.jpeg"}};a.parameters={design:{type:"figma",url:"https://www.figma.com/design/izQdYyiBR1GQgFkaOIfIJI/LMS---DS-Components?node-id=12364-12175&t=UpUoIm9oCAaH4dEp-4"}};const e={render:s=>({components:{Avatar:o},setup(){return{args:s,names:["Arkadiusz Kowalski","Bartosz Nowak","Cezary Kowalczyk","Dariusz Chrapek","Edward Nowak","Feliks Kowalski","Grzegorz Nowak","Henryk Kowalczyk","Ireneusz Nowak","Jacek Kowalski","Kamil Nowak","Leszek Kowalczyk","Marek Nowak","Norbert Kowalski","Oskar Nowak","Piotr Kowalczyk"]}},template:'<div style="display: flex; gap: 12px; flex-wrap: wrap;"><div v-for="name in names"><Avatar :username="name" :size="args.size" /></div></div>'}),argTypes:{size:{control:"select",options:Object.values(r)},username:{control:!1},avatarUrl:{control:!1}},args:{size:r.X_SMALL}};var t,n,i;a.parameters={...a.parameters,docs:{...(t=a.parameters)==null?void 0:t.docs,source:{originalSource:`{
2
- args: {
3
- size: AVATAR_SIZES.X_SMALL,
4
- username: 'Dariusz Chrapek',
5
- avatarUrl: 'https://wiecejnizlek.pl/wp-content/uploads/2021/08/Dariusz_Chrapek-uai-2996x2996-1-scaled.jpeg'
6
- }
7
- }`,...(i=(n=a.parameters)==null?void 0:n.docs)==null?void 0:i.source}}};var l,p,k;e.parameters={...e.parameters,docs:{...(l=e.parameters)==null?void 0:l.docs,source:{originalSource:`{
8
- render: (args: AvatarProps) => ({
9
- components: {
10
- Avatar
11
- },
12
- setup() {
13
- return {
14
- args,
15
- names: ['Arkadiusz Kowalski', 'Bartosz Nowak', 'Cezary Kowalczyk', 'Dariusz Chrapek', 'Edward Nowak', 'Feliks Kowalski', 'Grzegorz Nowak', 'Henryk Kowalczyk', 'Ireneusz Nowak', 'Jacek Kowalski', 'Kamil Nowak', 'Leszek Kowalczyk', 'Marek Nowak', 'Norbert Kowalski', 'Oskar Nowak', 'Piotr Kowalczyk']
16
- };
17
- },
18
- template: \`<div style="display: flex; gap: 12px; flex-wrap: wrap;"><div v-for="name in names"><Avatar :username="name" :size="args.size" /></div></div>\`
19
- }),
20
- argTypes: {
21
- size: {
22
- control: 'select',
23
- options: Object.values(AVATAR_SIZES)
24
- },
25
- username: {
26
- control: false
27
- },
28
- avatarUrl: {
29
- control: false
30
- }
31
- },
32
- args: {
33
- size: AVATAR_SIZES.X_SMALL
34
- }
35
- }`,...(k=(p=e.parameters)==null?void 0:p.docs)==null?void 0:k.source}}};const d=["Interactive","Colors"];export{e as Colors,a as Interactive,d as __namedExportsOrder,z as default};