@bethinkpl/design-system 26.4.0 → 26.6.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 (84) hide show
  1. package/dist/design-system.umd.cjs +18 -18
  2. package/dist/design-system.umd.cjs.map +1 -1
  3. package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.composables.d.ts +1 -1
  4. package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.vue.d.ts +31 -8
  5. package/dist/lib/js/components/DatePickers/DateRangePicker/DateRangePicker.vue.d.ts +4 -1
  6. package/dist/lib/js/components/Drawer/DrawerTile/DrawerTile.vue.d.ts +40 -14
  7. package/dist/lib/js/components/Headers/OverlayHeader/OverlayHeader.vue.d.ts +10 -0
  8. package/dist/lib/js/components/Outline/OutlineItem/OutlineItem.vue.d.ts +1 -0
  9. package/dist/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue.d.ts +122 -0
  10. package/dist/lib/js/components/SelectList/SelectListItemTile/SelectListItemTile.vue.d.ts +40 -14
  11. package/dist/lib/js/components/TextGroup/TextGroup.vue.d.ts +121 -0
  12. package/dist/lib/js/components/Tile/Tile.consts.d.ts +22 -0
  13. package/dist/lib/js/components/Tile/Tile.sb.shared.d.ts +1462 -0
  14. package/dist/lib/js/components/Tile/Tile.shared.d.ts +9 -4
  15. package/dist/lib/js/components/Tile/Tile.vue.d.ts +22 -7
  16. package/dist/lib/js/components/Tooltip/Tooltip.vue.d.ts +10 -0
  17. package/docs/assets/BasicRichListItem-Ctm7LWMn.js +1 -0
  18. package/docs/assets/{BasicRichListItem.stories-CYAxAAa4.js → BasicRichListItem.stories-CW9os382.js} +9 -5
  19. package/docs/assets/{Color-ERTF36HU-BKLy-2-d.js → Color-ERTF36HU-CqJ5SSs8.js} +1 -1
  20. package/docs/assets/DatePicker-Br-Dxnyn.js +2 -0
  21. package/docs/assets/DatePicker.stories-C4sN46Ws.js +175 -0
  22. package/docs/assets/DateRangePicker-B2xmoGPO.js +1 -0
  23. package/docs/assets/{DateRangePicker.stories-BEQd6aEn.js → DateRangePicker.stories-DGh5m4TF.js} +1 -1
  24. package/docs/assets/{DocsRenderer-CFRXHY34-vJAQuqDP.js → DocsRenderer-CFRXHY34-CemqquOQ.js} +5 -5
  25. package/docs/assets/{DrawerTile-BqpTb_42.js → DrawerTile-OeT5gefI.js} +1 -1
  26. package/docs/assets/DrawerTile.stories-nBKWobdB.js +10 -0
  27. package/docs/assets/OutlineItem-B0GAacWf.js +1 -0
  28. package/docs/assets/{OutlineItem.stories-CEsNJBgo.js → OutlineItem.stories-RvYTOp9N.js} +1 -1
  29. package/docs/assets/{OverlayHeader-Cuwk2J3B.js → OverlayHeader--26-GHPy.js} +1 -1
  30. package/docs/assets/{OverlayHeader.stories-WMRsiDpt.js → OverlayHeader.stories-BVxhjyuC.js} +1 -1
  31. package/docs/assets/{RichListItem.stories-CtgWAG3q.js → RichListItem.stories-B_DlwcQo.js} +1 -1
  32. package/docs/assets/SelectListItemTile-ohFw-wM4.js +1 -0
  33. package/docs/assets/SelectListItemTile.stories-BRCqpIYj.js +19 -0
  34. package/docs/assets/{SelectionTile-dsZMyVPh.js → SelectionTile-CjfV3f7H.js} +1 -1
  35. package/docs/assets/{SelectionTile.stories-DsAapWdD.js → SelectionTile.stories-PT6dhdE2.js} +1 -1
  36. package/docs/assets/TextGroup-lwPvABi6.js +1 -0
  37. package/docs/assets/TextGroup.stories-CnojKPTw.js +56 -0
  38. package/docs/assets/{ThreeColumnLayout-CRPRmmvx.js → ThreeColumnLayout-BR3bkVIs.js} +1 -1
  39. package/docs/assets/{ThreeColumnLayout.stories-CeCLjYHh.js → ThreeColumnLayout.stories-V4L7zdf_.js} +1 -1
  40. package/docs/assets/Tile-DjRk5xHI.js +1 -0
  41. package/docs/assets/Tile.sb.shared-Dt0Nhl_4.js +20 -0
  42. package/docs/assets/Tile.stories-lM4we8lW.js +12 -0
  43. package/docs/assets/Tooltip-Cni6OHo9.js +1 -0
  44. package/docs/assets/{Tooltip.stories-B94PUKgP.js → Tooltip.stories-C3h4ABpf.js} +1 -1
  45. package/docs/assets/{iframe-DuOsjH1S.js → iframe-OBly2w25.js} +11 -11
  46. package/docs/assets/{index-TQ9qBbRg.js → index-BX4u4pqi.js} +1 -1
  47. package/docs/assets/{index-D4AlyEjM.js → index-DRNPKjaN.js} +1 -1
  48. package/docs/assets/{preview-BjkZFWp3.js → preview-BA4xsxRI.js} +2 -2
  49. package/docs/assets/{preview-D76Q7lmj.js → preview-ByrBU2E6.js} +1 -1
  50. package/docs/iframe.html +1 -1
  51. package/docs/index.json +1 -1
  52. package/docs/project.json +1 -1
  53. package/lib/js/components/DatePickers/DatePicker/DatePicker.composables.ts +22 -1
  54. package/lib/js/components/DatePickers/DatePicker/DatePicker.stories.ts +26 -1
  55. package/lib/js/components/DatePickers/DatePicker/DatePicker.vue +36 -4
  56. package/lib/js/components/DatePickers/DateRangePicker/DateRangePicker.vue +15 -2
  57. package/lib/js/components/Layouts/ThreeColumnLayout/ThreeColumnLayout.vue +1 -0
  58. package/lib/js/components/Outline/OutlineItem/OutlineItem.vue +2 -1
  59. package/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.stories.ts +6 -0
  60. package/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue +5 -0
  61. package/lib/js/components/SelectList/SelectListItemTile/SelectListItemTile.vue +1 -1
  62. package/lib/js/components/TextGroup/TextGroup.stories.ts +20 -0
  63. package/lib/js/components/TextGroup/TextGroup.vue +51 -8
  64. package/lib/js/components/Tile/Tile.consts.ts +26 -0
  65. package/lib/js/components/Tile/Tile.sb.shared.ts +38 -4
  66. package/lib/js/components/Tile/Tile.shared.ts +19 -4
  67. package/lib/js/components/Tile/Tile.stories.ts +2 -2
  68. package/lib/js/components/Tile/Tile.vue +93 -44
  69. package/lib/js/components/Tooltip/Tooltip.vue +15 -1
  70. package/package.json +1 -1
  71. package/docs/assets/BasicRichListItem-VxP1mYya.js +0 -1
  72. package/docs/assets/DatePicker-B1ILf2Dx.js +0 -2
  73. package/docs/assets/DatePicker.stories-DOAIlaQC.js +0 -95
  74. package/docs/assets/DateRangePicker-DCZj8tMQ.js +0 -1
  75. package/docs/assets/DrawerTile.stories-BXRxmk1J.js +0 -10
  76. package/docs/assets/OutlineItem-BSNc7fID.js +0 -1
  77. package/docs/assets/SelectListItemTile-CRDx7Wjx.js +0 -1
  78. package/docs/assets/SelectListItemTile.stories-CADs56nZ.js +0 -19
  79. package/docs/assets/TextGroup-C6PK25ok.js +0 -1
  80. package/docs/assets/TextGroup.stories-DnrIWKMT.js +0 -48
  81. package/docs/assets/Tile-C731KsjF.js +0 -1
  82. package/docs/assets/Tile.sb.shared-Dr6W7Z8_.js +0 -16
  83. package/docs/assets/Tile.stories-CZlgEnY4.js +0 -12
  84. package/docs/assets/Tooltip-4m2CjENZ.js +0 -1
@@ -33,6 +33,10 @@ const StoryTemplate: StoryFn<typeof DsTextGroup> = (args) => ({
33
33
  :skeleton-loading-size="skeletonLoadingSize"
34
34
  :is-selected="isSelected"
35
35
  :state="state"
36
+ :is-supporting-text-tooltip-enabled="isSupportingTextTooltipEnabled"
37
+ :is-supporting-text-tooltip-enabled-on-mobile="isSupportingTextTooltipEnabledOnMobile"
38
+ :is-supporting-text-tooltip-auto-filled-with-content="isSupportingTextTooltipAutoFilledWithContent"
39
+ :supporting-text-tooltip-content="supportingTextTooltipContent"
36
40
  />
37
41
  <div style="margin-top: 100px; color: #888">
38
42
  <ds-divider />
@@ -57,6 +61,10 @@ Interactive.args = {
57
61
  skeletonLoadingSize: TEXT_GROUP_LOADING_SIZES.LARGE,
58
62
  isSelected: false,
59
63
  state: TEXT_GROUP_STATES.DEFAULT,
64
+ isSupportingTextTooltipEnabled: false,
65
+ isSupportingTextTooltipEnabledOnMobile: true,
66
+ isSupportingTextTooltipAutoFilledWithContent: true,
67
+ supportingTextTooltipContent: '',
60
68
  } as Args;
61
69
 
62
70
  Interactive.argTypes = {
@@ -103,6 +111,18 @@ Interactive.argTypes = {
103
111
  control: 'select',
104
112
  options: Object.values(TEXT_GROUP_STATES),
105
113
  },
114
+ isSupportingTextTooltipEnabled: {
115
+ control: 'boolean',
116
+ },
117
+ isSupportingTextTooltipEnabledOnMobile: {
118
+ control: 'boolean',
119
+ },
120
+ isSupportingTextTooltipAutoFilledWithContent: {
121
+ control: 'boolean',
122
+ },
123
+ supportingTextTooltipContent: {
124
+ control: 'text',
125
+ },
106
126
  } as ArgTypes;
107
127
 
108
128
  Interactive.parameters = {
@@ -43,18 +43,33 @@
43
43
  <span v-else-if="mainText === ''">&nbsp;</span>
44
44
  <span v-else>{{ mainText }}</span>
45
45
  </div>
46
- <div
47
- v-if="supportingText !== null"
48
- class="ds-textGroup__supporting"
49
- :class="{
50
- '-ds-ellipsis': supportingTextEllipsis,
51
- }"
52
- >
46
+ <div v-if="supportingText !== null" class="ds-textGroup__supportingWrapper">
53
47
  <div v-if="isLoading" class="ds-textGroup__skeletonWrapper">
54
48
  <ds-skeleton width="100%" height="100%" />
55
49
  </div>
56
50
  <span v-else-if="supportingText === ''">&nbsp;</span>
57
- <span v-else v-html="supportingText" />
51
+ <template v-else>
52
+ <ds-tooltip
53
+ class="ds-textGroup__supportingTooltip"
54
+ :text="
55
+ isSupportingTextTooltipAutoFilledWithContent
56
+ ? supportingText
57
+ : supportingTextTooltipContent
58
+ "
59
+ :is-disabled="!isSupportingTextTooltipEnabled"
60
+ :is-hidden-on-mobile="!isSupportingTextTooltipEnabledOnMobile"
61
+ inline
62
+ >
63
+ <div
64
+ class="ds-textGroup__supporting"
65
+ :class="{
66
+ '-ds-ellipsis': supportingTextEllipsis,
67
+ }"
68
+ >
69
+ <span v-html="supportingText" />
70
+ </div>
71
+ </ds-tooltip>
72
+ </template>
58
73
  </div>
59
74
  </div>
60
75
  </template>
@@ -172,6 +187,16 @@ $text-group-colors: (
172
187
  @include text-m-compact-bold;
173
188
  }
174
189
 
190
+ &__supportingWrapper {
191
+ display: flex;
192
+ }
193
+
194
+ &__supportingTooltip {
195
+ display: inline-flex;
196
+ max-width: 100%;
197
+ overflow: hidden;
198
+ }
199
+
175
200
  &__supporting {
176
201
  @include text-s-compact-regular;
177
202
  }
@@ -251,11 +276,13 @@ import {
251
276
  TextGroupSize,
252
277
  TextGroupState,
253
278
  } from './TextGroup.consts';
279
+ import DsTooltip from '../Tooltip';
254
280
 
255
281
  export default defineComponent({
256
282
  name: 'TextGroup',
257
283
  components: {
258
284
  DsSkeleton,
285
+ DsTooltip,
259
286
  },
260
287
  props: {
261
288
  size: {
@@ -310,6 +337,22 @@ export default defineComponent({
310
337
  type: String as PropType<TextGroupState>,
311
338
  default: TEXT_GROUP_STATES.DEFAULT,
312
339
  },
340
+ isSupportingTextTooltipEnabled: {
341
+ type: Boolean,
342
+ default: false,
343
+ },
344
+ isSupportingTextTooltipEnabledOnMobile: {
345
+ type: Boolean,
346
+ default: true,
347
+ },
348
+ isSupportingTextTooltipAutoFilledWithContent: {
349
+ type: Boolean,
350
+ default: true,
351
+ },
352
+ supportingTextTooltipContent: {
353
+ type: [String, null],
354
+ default: null,
355
+ },
313
356
  },
314
357
  data() {
315
358
  return {
@@ -20,3 +20,29 @@ export const TILE_STATES = {
20
20
  } as const;
21
21
 
22
22
  export type TileStates = Value<typeof TILE_STATES>;
23
+
24
+ export const TILE_BORDER_COLORS = {
25
+ NEUTRAL: 'neutral',
26
+ NEUTRAL_WEAK: 'neutralWeak',
27
+ PRIMARY: 'primary',
28
+ PRIMARY_WEAK: 'primaryWeak',
29
+ SUCCESS: 'success',
30
+ SUCCESS_WEAK: 'successWeak',
31
+ FAIL: 'fail',
32
+ FAIL_WEAK: 'failWeak',
33
+ DANGER: 'danger',
34
+ DANGER_WEAK: 'dangerWeak',
35
+ WARNING: 'warning',
36
+ WARNING_WEAK: 'warningWeak',
37
+ INFO: 'info',
38
+ INFO_WEAK: 'infoWeak',
39
+ } as const;
40
+
41
+ export type TileBorderColors = Value<typeof TILE_BORDER_COLORS>;
42
+
43
+ export const TILE_ADDITIONAL_TEXT_MAX_WIDTHS = {
44
+ SMALL: 'small',
45
+ MEDIUM: 'medium',
46
+ } as const;
47
+
48
+ export type TileAdditionalTextMaxWidths = Value<typeof TILE_ADDITIONAL_TEXT_MAX_WIDTHS>;
@@ -1,8 +1,10 @@
1
1
  import { ICONS } from '../Icons/Icon';
2
- import { TILE_COLORS, TILE_STATES } from './Tile.consts';
2
+ import { TILE_BORDER_COLORS, TILE_COLORS, TILE_STATES } from './Tile.consts';
3
3
  import { Args, ArgTypes } from '@storybook/vue3';
4
+ import DsBanner, { BANNER_COLORS } from '../Banner';
4
5
 
5
6
  export const template = (componentTag: string) => `
7
+ <div style="display: flex; row-gap: 16px; flex-direction: column">
6
8
  <${componentTag}
7
9
  :additional-text="additionalText"
8
10
  :color="color"
@@ -16,17 +18,45 @@ export const template = (componentTag: string) => `
16
18
  :state="state"
17
19
  :text-ellipsis="textEllipsis"
18
20
  :text="text"
19
- :has-border="hasBorder"
20
- />`;
21
+ :border-color="borderColor"
22
+ />
23
+ <ds-banner :color="BANNER_COLORS.WARNING" title="Taka kombinacja koloru komponentu z kolorem bordera jest niezgodna z design systemem!" v-if="borderColor && !allowedColorsToBorderColorsMap[color].includes(borderColor)" />
24
+ </div>
25
+ `;
21
26
 
22
27
  export const data = () => ({
23
28
  ICONS: Object.freeze(ICONS),
29
+ BANNER_COLORS: Object.freeze(BANNER_COLORS),
30
+ allowedColorsToBorderColorsMap: {
31
+ [TILE_COLORS.NEUTRAL]: [
32
+ TILE_BORDER_COLORS.NEUTRAL,
33
+ TILE_BORDER_COLORS.NEUTRAL_WEAK,
34
+ TILE_BORDER_COLORS.PRIMARY,
35
+ TILE_BORDER_COLORS.PRIMARY_WEAK,
36
+ ],
37
+ [TILE_COLORS.NEUTRAL_WEAK]: [
38
+ TILE_BORDER_COLORS.NEUTRAL,
39
+ TILE_BORDER_COLORS.NEUTRAL_WEAK,
40
+ TILE_BORDER_COLORS.PRIMARY,
41
+ TILE_BORDER_COLORS.PRIMARY_WEAK,
42
+ ],
43
+ [TILE_COLORS.PRIMARY]: [TILE_BORDER_COLORS.PRIMARY, TILE_BORDER_COLORS.PRIMARY_WEAK],
44
+ [TILE_COLORS.SUCCESS]: [TILE_BORDER_COLORS.SUCCESS, TILE_BORDER_COLORS.SUCCESS_WEAK],
45
+ [TILE_COLORS.FAIL]: [TILE_BORDER_COLORS.FAIL, TILE_BORDER_COLORS.FAIL_WEAK],
46
+ [TILE_COLORS.DANGER]: [TILE_BORDER_COLORS.DANGER, TILE_BORDER_COLORS.DANGER_WEAK],
47
+ [TILE_COLORS.WARNING]: [TILE_BORDER_COLORS.WARNING, TILE_BORDER_COLORS.WARNING_WEAK],
48
+ [TILE_COLORS.INFO]: [TILE_BORDER_COLORS.INFO, TILE_BORDER_COLORS.INFO_WEAK],
49
+ },
24
50
  });
25
51
 
52
+ export const components = {
53
+ DsBanner,
54
+ };
55
+
26
56
  export const args = {
27
57
  interactive: true,
28
58
  color: TILE_COLORS.NEUTRAL,
29
- hasBorder: false,
59
+ borderColor: null,
30
60
  iconLeft: null,
31
61
  iconRight: null,
32
62
  isIconRightHiddenOnMobile: false,
@@ -52,6 +82,10 @@ export const argTypes = {
52
82
  control: 'select',
53
83
  options: [...Object.values(TILE_COLORS)],
54
84
  },
85
+ borderColor: {
86
+ control: 'select',
87
+ options: [null, ...Object.values(TILE_BORDER_COLORS)],
88
+ },
55
89
  state: {
56
90
  control: 'select',
57
91
  options: [...Object.values(TILE_STATES)],
@@ -1,6 +1,14 @@
1
1
  import { PropType, toRaw } from 'vue';
2
2
  import { ICONS } from '../Icons/Icon';
3
- import { TILE_COLORS, TILE_STATES, TileColors, TileStates } from './Tile.consts';
3
+ import {
4
+ TILE_ADDITIONAL_TEXT_MAX_WIDTHS,
5
+ TILE_COLORS,
6
+ TILE_STATES,
7
+ TileAdditionalTextMaxWidths,
8
+ TileBorderColors,
9
+ TileColors,
10
+ TileStates,
11
+ } from './Tile.consts';
4
12
  import { Value } from '../../utils/type.utils';
5
13
 
6
14
  export const props = {
@@ -64,8 +72,15 @@ export const props = {
64
72
  type: Boolean,
65
73
  default: true,
66
74
  },
67
- hasBorder: {
68
- type: Boolean,
69
- default: false,
75
+ borderColor: {
76
+ type: String as PropType<TileBorderColors>,
77
+ default: null,
78
+ },
79
+ additionalTextMaxWidth: {
80
+ type: String as PropType<TileAdditionalTextMaxWidths>,
81
+ default: TILE_ADDITIONAL_TEXT_MAX_WIDTHS.SMALL,
82
+ validator(value: TileAdditionalTextMaxWidths) {
83
+ return Object.values(TILE_ADDITIONAL_TEXT_MAX_WIDTHS).includes(value);
84
+ },
70
85
  },
71
86
  };
@@ -4,7 +4,7 @@ import Tile from './Tile.vue';
4
4
  import { TILE_STATES } from './Tile.consts';
5
5
 
6
6
  import type { Args, Meta, StoryObj } from '@storybook/vue3';
7
- import { args, argTypes, data, template } from './Tile.sb.shared';
7
+ import { args, argTypes, components, data, template } from './Tile.sb.shared';
8
8
  import type { ComponentProps } from 'vue-component-type-helpers';
9
9
  import { withActions } from '@storybook/addon-actions/decorator';
10
10
 
@@ -15,7 +15,7 @@ const meta: Meta<TileProps> = {
15
15
  component: Tile,
16
16
  decorators: [withActions],
17
17
  render: (args) => ({
18
- components: { Tile },
18
+ components: { ...components, Tile },
19
19
  setup() {
20
20
  return args;
21
21
  },
@@ -3,7 +3,10 @@
3
3
  :class="[
4
4
  tileColor,
5
5
  tileState,
6
- { '-ds-interactive': interactive, '-ds-hasBorder': hasBorder },
6
+ {
7
+ '-ds-interactive': interactive,
8
+ [`-ds-border-${borderColor}`]: borderColor !== null,
9
+ },
7
10
  ]"
8
11
  class="ds-tile"
9
12
  >
@@ -39,7 +42,16 @@
39
42
  :icon="iconRight"
40
43
  :size="ICON_SIZES.SMALL"
41
44
  />
42
- <div v-else-if="additionalText" class="ds-tile__additionalText">
45
+ <div
46
+ v-else-if="additionalText"
47
+ class="ds-tile__additionalText"
48
+ :class="{
49
+ '-ds-max-width-small':
50
+ additionalTextMaxWidth === TILE_ADDITIONAL_TEXT_MAX_WIDTHS.SMALL,
51
+ '-ds-max-width-medium':
52
+ additionalTextMaxWidth === TILE_ADDITIONAL_TEXT_MAX_WIDTHS.MEDIUM,
53
+ }"
54
+ >
43
55
  {{ additionalText }}
44
56
  </div>
45
57
  </div>
@@ -54,21 +66,76 @@
54
66
  @import '../../../styles/settings/spacings';
55
67
  @import '../../../styles/settings/typography/tokens';
56
68
 
69
+ $tile-border-colors: (
70
+ 'neutral': (
71
+ 'default': $color-neutral-border,
72
+ 'disabled': $color-neutral-border-disabled,
73
+ ),
74
+ 'neutralWeak': (
75
+ 'default': $color-neutral-border-weak,
76
+ 'disabled': $color-neutral-border-weak-disabled,
77
+ ),
78
+ 'primary': (
79
+ 'default': $color-primary-border,
80
+ 'disabled': $color-primary-border-disabled,
81
+ ),
82
+ 'primaryWeak': (
83
+ 'default': $color-primary-border-weak,
84
+ 'disabled': $color-primary-border-weak-disabled,
85
+ ),
86
+ 'success': (
87
+ 'default': $color-success-border,
88
+ 'disabled': $color-success-border-disabled,
89
+ ),
90
+ 'successWeak': (
91
+ 'default': $color-success-border-weak,
92
+ 'disabled': $color-success-border-weak-disabled,
93
+ ),
94
+ 'fail': (
95
+ 'default': $color-fail-border,
96
+ 'disabled': $color-fail-border-disabled,
97
+ ),
98
+ 'failWeak': (
99
+ 'default': $color-fail-border-weak,
100
+ 'disabled': $color-fail-border-weak-disabled,
101
+ ),
102
+ 'danger': (
103
+ 'default': $color-danger-border,
104
+ 'disabled': $color-danger-border-disabled,
105
+ ),
106
+ 'dangerWeak': (
107
+ 'default': $color-danger-border-weak,
108
+ 'disabled': $color-danger-border-weak-disabled,
109
+ ),
110
+ 'warning': (
111
+ 'default': $color-warning-border,
112
+ 'disabled': $color-warning-border-disabled,
113
+ ),
114
+ 'warningWeak': (
115
+ 'default': $color-warning-border-weak,
116
+ 'disabled': $color-warning-border-weak-disabled,
117
+ ),
118
+ 'info': (
119
+ 'default': $color-info-border,
120
+ 'disabled': $color-info-border-disabled,
121
+ ),
122
+ 'infoWeak': (
123
+ 'default': $color-info-border-weak,
124
+ 'disabled': $color-info-border-weak-disabled,
125
+ ),
126
+ );
127
+
57
128
  $tile-colors: (
58
129
  'neutral': (
59
130
  'default': (
60
131
  'background': $color-neutral-background,
61
132
  'background-hover': $color-neutral-background-hovered,
62
- 'border': $color-neutral-border,
63
- 'border-interactive': $color-primary-border,
64
133
  'eyebrow-text': $color-neutral-text-weak,
65
134
  'icon': $color-neutral-icon,
66
135
  'icon-interactive': $color-primary-icon,
67
136
  ),
68
137
  'disabled': (
69
138
  'background': $color-neutral-background-disabled,
70
- 'border': $color-neutral-border-disabled,
71
- 'border-interactive': $color-primary-border-disabled,
72
139
  'eyebrow-text': $color-neutral-text-weak-disabled,
73
140
  'icon': $color-neutral-icon-disabled,
74
141
  'icon-interactive': $color-primary-icon-disabled,
@@ -78,16 +145,12 @@ $tile-colors: (
78
145
  'default': (
79
146
  'background': $color-neutral-background-weak,
80
147
  'background-hover': $color-neutral-background-weak-hovered,
81
- 'border': $color-neutral-border,
82
- 'border-interactive': $color-primary-border,
83
148
  'eyebrow-text': $color-neutral-text-weak,
84
149
  'icon': $color-neutral-icon,
85
150
  'icon-interactive': $color-primary-icon,
86
151
  ),
87
152
  'disabled': (
88
153
  'background': $color-neutral-background-weak-disabled,
89
- 'border': $color-neutral-border-disabled,
90
- 'border-interactive': $color-primary-border-disabled,
91
154
  'eyebrow-text': $color-neutral-text-weak-disabled,
92
155
  'icon': $color-neutral-icon-disabled,
93
156
  'icon-interactive': $color-primary-icon-disabled,
@@ -97,16 +160,12 @@ $tile-colors: (
97
160
  'default': (
98
161
  'background': $color-primary-background,
99
162
  'background-hover': $color-primary-background-hovered,
100
- 'border': $color-primary-border,
101
- 'border-interactive': $color-primary-border,
102
163
  'eyebrow-text': $color-primary-text,
103
164
  'icon': $color-primary-icon,
104
165
  'icon-interactive': $color-primary-icon,
105
166
  ),
106
167
  'disabled': (
107
168
  'background': $color-primary-background-disabled,
108
- 'border': $color-primary-border-disabled,
109
- 'border-interactive': $color-primary-border-disabled,
110
169
  'eyebrow-text': $color-primary-text-disabled,
111
170
  'icon': $color-primary-icon-disabled,
112
171
  'icon-interactive': $color-primary-icon-disabled,
@@ -116,16 +175,12 @@ $tile-colors: (
116
175
  'default': (
117
176
  'background': $color-success-background,
118
177
  'background-hover': $color-success-background-hovered,
119
- 'border': $color-success-border,
120
- 'border-interactive': $color-success-border,
121
178
  'eyebrow-text': $color-success-text,
122
179
  'icon': $color-success-icon,
123
180
  'icon-interactive': $color-success-icon,
124
181
  ),
125
182
  'disabled': (
126
183
  'background': $color-success-background-disabled,
127
- 'border': $color-success-border-disabled,
128
- 'border-interactive': $color-success-border-disabled,
129
184
  'eyebrow-text': $color-success-text-disabled,
130
185
  'icon': $color-success-icon-disabled,
131
186
  'icon-interactive': $color-success-icon-disabled,
@@ -135,16 +190,12 @@ $tile-colors: (
135
190
  'default': (
136
191
  'background': $color-fail-background,
137
192
  'background-hover': $color-fail-background-hovered,
138
- 'border': $color-fail-border,
139
- 'border-interactive': $color-fail-border,
140
193
  'eyebrow-text': $color-fail-text,
141
194
  'icon': $color-fail-icon,
142
195
  'icon-interactive': $color-fail-icon,
143
196
  ),
144
197
  'disabled': (
145
198
  'background': $color-fail-background-disabled,
146
- 'border': $color-fail-border-disabled,
147
- 'border-interactive': $color-fail-border-disabled,
148
199
  'eyebrow-text': $color-fail-text-disabled,
149
200
  'icon': $color-fail-icon-disabled,
150
201
  'icon-interactive': $color-fail-icon-disabled,
@@ -154,16 +205,12 @@ $tile-colors: (
154
205
  'default': (
155
206
  'background': $color-danger-background,
156
207
  'background-hover': $color-danger-background-hovered,
157
- 'border': $color-danger-border,
158
- 'border-interactive': $color-danger-border,
159
208
  'eyebrow-text': $color-danger-text,
160
209
  'icon': $color-danger-icon,
161
210
  'icon-interactive': $color-danger-icon,
162
211
  ),
163
212
  'disabled': (
164
213
  'background': $color-danger-background-disabled,
165
- 'border': $color-danger-border-disabled,
166
- 'border-interactive': $color-danger-border-disabled,
167
214
  'eyebrow-text': $color-danger-text-disabled,
168
215
  'icon': $color-danger-icon-disabled,
169
216
  'icon-interactive': $color-danger-icon-disabled,
@@ -173,16 +220,12 @@ $tile-colors: (
173
220
  'default': (
174
221
  'background': $color-warning-background,
175
222
  'background-hover': $color-warning-background-hovered,
176
- 'border': $color-warning-border,
177
- 'border-interactive': $color-warning-border,
178
223
  'eyebrow-text': $color-warning-text,
179
224
  'icon': $color-warning-icon,
180
225
  'icon-interactive': $color-warning-icon,
181
226
  ),
182
227
  'disabled': (
183
228
  'background': $color-warning-background-disabled,
184
- 'border': $color-warning-border-disabled,
185
- 'border-interactive': $color-warning-border-disabled,
186
229
  'eyebrow-text': $color-warning-text-disabled,
187
230
  'icon': $color-warning-icon-disabled,
188
231
  'icon-interactive': $color-warning-icon-disabled,
@@ -192,16 +235,12 @@ $tile-colors: (
192
235
  'default': (
193
236
  'background': $color-info-background,
194
237
  'background-hover': $color-info-background-hovered,
195
- 'border': $color-info-border,
196
- 'border-interactive': $color-info-border,
197
238
  'eyebrow-text': $color-info-text,
198
239
  'icon': $color-info-icon,
199
240
  'icon-interactive': $color-info-icon,
200
241
  ),
201
242
  'disabled': (
202
243
  'background': $color-info-background-disabled,
203
- 'border': $color-info-border-disabled,
204
- 'border-interactive': $color-info-border-disabled,
205
244
  'eyebrow-text': $color-info-text-disabled,
206
245
  'icon': $color-info-icon-disabled,
207
246
  'icon-interactive': $color-info-icon-disabled,
@@ -212,10 +251,6 @@ $tile-colors: (
212
251
  @mixin setColors($root, $color-map) {
213
252
  background-color: map-get($color-map, 'background');
214
253
 
215
- &.-ds-hasBorder {
216
- outline: $border-xs solid map-get($color-map, 'border');
217
- }
218
-
219
254
  #{$root}__eyebrowText {
220
255
  color: map-get($color-map, 'eyebrow-text');
221
256
  }
@@ -226,10 +261,6 @@ $tile-colors: (
226
261
  }
227
262
 
228
263
  &.-ds-interactive {
229
- &.-ds-hasBorder {
230
- outline: $border-xs solid map-get($color-map, 'border-interactive');
231
- }
232
-
233
264
  #{$root}__iconRight {
234
265
  color: map-get($color-map, 'icon-interactive');
235
266
  }
@@ -255,6 +286,16 @@ $tile-colors: (
255
286
  }
256
287
  }
257
288
 
289
+ @each $border-color-name, $border-color-map in $tile-border-colors {
290
+ &.-ds-border-#{$border-color-name} {
291
+ outline: $border-xs solid map-get($border-color-map, 'default');
292
+
293
+ &.-ds-disabled {
294
+ outline: $border-xs solid map-get($border-color-map, 'disabled');
295
+ }
296
+ }
297
+ }
298
+
258
299
  align-items: center;
259
300
  border-radius: $radius-s;
260
301
  display: flex;
@@ -283,8 +324,15 @@ $tile-colors: (
283
324
  color: $color-neutral-text;
284
325
  flex-grow: 1;
285
326
  margin-left: $space-xs;
286
- max-width: 30%;
287
327
  text-align: right;
328
+
329
+ &.-ds-max-width-small {
330
+ max-width: 30%;
331
+ }
332
+
333
+ &.-ds-max-width-medium {
334
+ max-width: 50%;
335
+ }
288
336
  }
289
337
 
290
338
  &__center {
@@ -346,7 +394,7 @@ $tile-colors: (
346
394
 
347
395
  <script lang="ts">
348
396
  import DsIcon, { ICON_SIZES, ICONS } from '../Icons/Icon';
349
- import { TILE_COLORS, TILE_STATES } from './Tile.consts';
397
+ import { TILE_ADDITIONAL_TEXT_MAX_WIDTHS, TILE_COLORS, TILE_STATES } from './Tile.consts';
350
398
  import { props } from './Tile.shared';
351
399
  import { defineComponent } from 'vue';
352
400
 
@@ -361,6 +409,7 @@ export default defineComponent({
361
409
  ICONS: Object.freeze(ICONS),
362
410
  ICON_SIZES: Object.freeze(ICON_SIZES),
363
411
  TILE_STATES: Object.freeze(TILE_STATES),
412
+ TILE_ADDITIONAL_TEXT_MAX_WIDTHS: Object.freeze(TILE_ADDITIONAL_TEXT_MAX_WIDTHS),
364
413
  };
365
414
  },
366
415
  computed: {
@@ -9,6 +9,7 @@
9
9
 
10
10
  <style lang="scss">
11
11
  @import '../../../styles/settings/typography/tokens';
12
+ @import '../../../styles/settings/media-queries';
12
13
 
13
14
  .ds-tooltip-text {
14
15
  @include text-s-compact-bold;
@@ -17,6 +18,14 @@
17
18
  .ds-tooltip-arrow-hide {
18
19
  display: none;
19
20
  }
21
+
22
+ .ds-tooltip-hide-on-mobile {
23
+ display: none !important;
24
+
25
+ @media #{breakpoint-l()} {
26
+ display: inline-block !important;
27
+ }
28
+ }
20
29
  </style>
21
30
 
22
31
  <script lang="ts">
@@ -50,6 +59,10 @@ export default defineComponent({
50
59
  type: Boolean,
51
60
  default: false,
52
61
  },
62
+ isHiddenOnMobile: {
63
+ type: Boolean,
64
+ default: false,
65
+ },
53
66
  },
54
67
  computed: {
55
68
  tooltipParams() {
@@ -68,8 +81,9 @@ export default defineComponent({
68
81
  background: 'var(--neutral-background-medium, #E5E7ED)',
69
82
  color: 'var(--neutral-text-heavy, #343C50)',
70
83
  borderRadius: '4px',
71
- maxWidth: '240px',
84
+ maxWidth: '900px',
72
85
  },
86
+ class: this.isHiddenOnMobile ? 'ds-tooltip-hide-on-mobile' : null,
73
87
  ptOptions: {
74
88
  mergeProps: true,
75
89
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bethinkpl/design-system",
3
- "version": "26.4.0",
3
+ "version": "26.6.0",
4
4
  "description": "Bethink universe design-system",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +0,0 @@
1
- import{i as y,R as r,c as l,b as u,a as t,d as v,e as d,f as b}from"./GroupRichListItem-DEqhXKuF.js";import{D as T,T as p,c as n}from"./TextGroup-C6PK25ok.js";import{d as S,t as g,b as E,h as L,e as s,n as R,r as f,o as C,f as i,a as h,k as O}from"./vue.esm-bundler-CWlcb7ht.js";import{I as _,c as D}from"./Icon-ChGia3n4.js";import{_ as M}from"./_plugin-vue_export-helper-DlAUqK2U.js";const m=S({name:"BasicRichListItem",components:{DsTextGroup:T,RichListItem:y},props:{type:{type:String,default:r.DEFAULT,validator(e){return Object.values(r).includes(e)}},state:{type:String,default:l.DEFAULT,validator(e){return Object.values(l).includes(e)}},layout:{type:String,default:u.HORIZONTAL,validator(e){return Object.values(u).includes(e)}},size:{type:String,default:t.MEDIUM,validator(e){return Object.values(t).includes(e)}},isInteractive:{type:Boolean,default:!0},isDimmed:{type:Boolean,default:!1},isDraggable:{type:Boolean,default:!0},icon:{type:Object,default:null,validator(e){return Object.values(_).includes(g(e))}},iconColor:{type:String,default:null,validator(e){return Object.values(D).includes(e)}},iconColorHex:{type:String,default:null},borderColor:{type:String,default:null,validator(e){return Object.values(v).includes(e)}},borderColorHex:{type:String,default:null},text:{type:String,required:!0},textEllipsis:{type:Boolean,default:!1},eyebrow:{type:String,default:null},eyebrowEllipsis:{type:Boolean,default:!1},isEyebrowUppercase:{type:Boolean,default:!1},supportingText:{type:String,default:null},supportingTextEllipsis:{type:Boolean,default:!1},backgroundColor:{type:String,default:d.NEUTRAL,validator(e){return Object.values(d).includes(e)}},elevation:{type:String,default:null,validator(e){return Object.values(b).includes(e)}},hasDraggableHandler:{type:Boolean,default:!0},hasActionsSlotDivider:{type:Boolean,default:!0},isSelectable:{type:Boolean,default:!0},isSelected:{type:Boolean,default:!1}},emits:{"update:is-selected":e=>!0},data(){return{hovered:!1,RICH_LIST_ITEM_SIZE:Object.freeze(t),RICH_LIST_ITEM_STATE:Object.freeze(l)}},computed:{textGroupSize(){return{[t.SMALL]:p.SMALL,[t.MEDIUM]:p.MEDIUM}[this.size]},textGroupState(){return this.state===l.LOADING?n.LOADING:this.hovered&&this.isInteractive?n.HOVERED:n.DEFAULT}}}),A={class:"ds-basicRichListItem__content"};function H(e,a,V,B,U,w){const c=f("ds-text-group"),I=f("rich-list-item");return C(),E(I,{size:e.size,type:e.type,layout:e.layout,"is-interactive":e.isInteractive,"is-draggable":e.isDraggable,icon:e.icon,"icon-color":e.iconColor,"icon-color-hex":e.iconColorHex,"is-dimmed":e.isDimmed,"border-color":e.borderColor,"border-color-hex":e.borderColorHex,state:e.state,"background-color":e.backgroundColor,elevation:e.elevation,"has-draggable-handler":e.hasDraggableHandler,"has-actions-slot-divider":e.hasActionsSlotDivider,"is-selectable":e.isSelectable,"is-selected":e.isSelected,class:R(["ds-basicRichListItem",{"-ds-loading":e.state===e.RICH_LIST_ITEM_STATE.LOADING,"-ds-small":e.size===e.RICH_LIST_ITEM_SIZE.SMALL}]),onMouseover:a[0]||(a[0]=o=>e.hovered=!0),onMouseleave:a[1]||(a[1]=o=>e.hovered=!1),"onUpdate:isSelected":a[2]||(a[2]=o=>e.$emit("update:is-selected",o))},L({content:s(()=>[h("div",A,[O(c,{"eyebrow-text":e.eyebrow,"eyebrow-text-ellipsis":e.eyebrowEllipsis,"is-eyebrow-text-uppercase":e.isEyebrowUppercase,"is-selected":e.isSelected,"is-interactive":!1,"main-text":e.text,"main-text-ellipsis":e.textEllipsis,"supporting-text":e.supportingText,"supporting-text-ellipsis":e.supportingTextEllipsis,size:e.textGroupSize,state:e.textGroupState},null,8,["eyebrow-text","eyebrow-text-ellipsis","is-eyebrow-text-uppercase","is-selected","main-text","main-text-ellipsis","supporting-text","supporting-text-ellipsis","size","state"])])]),_:2},[e.$slots.media?{name:"media",fn:s(()=>[i(e.$slots,"media",{},void 0,!0)]),key:"0"}:void 0,e.$slots.metadata?{name:"metadata",fn:s(()=>[i(e.$slots,"metadata",{},void 0,!0)]),key:"1"}:void 0,e.$slots.actions?{name:"actions",fn:s(()=>[i(e.$slots,"actions",{},void 0,!0)]),key:"2"}:void 0]),1032,["size","type","layout","is-interactive","is-draggable","icon","icon-color","icon-color-hex","is-dimmed","border-color","border-color-hex","state","background-color","elevation","has-draggable-handler","has-actions-slot-divider","is-selectable","is-selected","class"])}const G=M(m,[["render",H],["__scopeId","data-v-d2d3c19f"]]);m.__docgenInfo={displayName:"BasicRichListItem",exportName:"default",description:"",tags:{},props:[{name:"type",type:{name:"RichListItemType"},defaultValue:{func:!1,value:"RICH_LIST_ITEM_TYPE.DEFAULT"}},{name:"state",type:{name:"RichListItemState"},defaultValue:{func:!1,value:"RICH_LIST_ITEM_STATE.DEFAULT"}},{name:"layout",type:{name:"RichListItemLayout"},defaultValue:{func:!1,value:"RICH_LIST_ITEM_LAYOUT.HORIZONTAL"}},{name:"size",type:{name:"RichListItemSize"},defaultValue:{func:!1,value:"RICH_LIST_ITEM_SIZE.MEDIUM"}},{name:"isInteractive",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"isDimmed",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"isDraggable",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"icon",type:{name:"IconItem"},defaultValue:{func:!1,value:"null"}},{name:"iconColor",type:{name:"IconColor"},defaultValue:{func:!1,value:"null"}},{name:"iconColorHex",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"borderColor",type:{name:"RichListItemBorderColor"},defaultValue:{func:!1,value:"null"}},{name:"borderColorHex",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"text",type:{name:"string"},required:!0},{name:"textEllipsis",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"eyebrow",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"eyebrowEllipsis",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"isEyebrowUppercase",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"supportingText",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"supportingTextEllipsis",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"backgroundColor",type:{name:"RichListItemBackgroundColor"},defaultValue:{func:!1,value:"RICH_LIST_ITEM_BACKGROUND_COLOR.NEUTRAL"}},{name:"elevation",type:{name:"RichListItemElevation"},defaultValue:{func:!1,value:"null"}},{name:"hasDraggableHandler",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"hasActionsSlotDivider",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"isSelectable",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"isSelected",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}}],events:[{name:"update:is-selected"}],slots:[{name:"media"},{name:"metadata"},{name:"actions"}],sourceFiles:["/home/runner/work/design-system/design-system/lib/js/components/RichList/BasicRichListItem/BasicRichListItem.vue"]};export{G as B};