@bethinkpl/design-system 28.1.0 → 28.1.2

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 (62) hide show
  1. package/dist/RadioButton-CW_pQ22k.js +63 -0
  2. package/dist/RadioButton-CW_pQ22k.js.map +1 -0
  3. package/dist/RadioButton-D4PqxF7h.js +63 -0
  4. package/dist/RadioButton-D4PqxF7h.js.map +1 -0
  5. package/dist/design-system.css +1 -1
  6. package/dist/design-system.js +51 -50
  7. package/dist/index-Cw_ZUe18.js +24353 -0
  8. package/dist/index-Cw_ZUe18.js.map +1 -0
  9. package/dist/index-DoYtlMO1.js +24340 -0
  10. package/dist/index-DoYtlMO1.js.map +1 -0
  11. package/dist/lib/js/components/DatePickers/DatePicker/DatePicker.vue.d.ts +29 -344
  12. package/dist/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue.d.ts +9 -0
  13. package/dist/lib/js/components/Drawer/DrawerTile/DrawerTile.vue.d.ts +24 -343
  14. package/dist/lib/js/components/SelectList/SelectListItemTile/SelectListItemTile.vue.d.ts +24 -343
  15. package/dist/lib/js/components/Tile/Tile.consts.d.ts +7 -0
  16. package/dist/lib/js/components/Tile/Tile.shared.d.ts +6 -5
  17. package/dist/lib/js/components/Tile/Tile.vue.d.ts +13 -334
  18. package/docs/assets/{BasicRichListItem.stories-BombKUP8.js → BasicRichListItem.stories-To26d0ud.js} +1 -1
  19. package/docs/assets/{Color-ERTF36HU-BlBs6xBv.js → Color-ERTF36HU-DBRw6WGm.js} +1 -1
  20. package/docs/assets/{DateBox.stories-CvSdYJL_.js → DateBox.stories-DC9cjrGL.js} +1 -1
  21. package/docs/assets/{DatePicker-BVx6P3PE.css → DatePicker-BWZO6ZC5.css} +1 -1
  22. package/docs/assets/DatePicker-C0aX9aQq.js +1 -0
  23. package/docs/assets/{DatePicker.stories-BF9g3cAo.js → DatePicker.stories-D6dLAs0e.js} +1 -1
  24. package/docs/assets/{DateRangePicker-Dk7Hhmj_.js → DateRangePicker-te5p1lzV.js} +1 -1
  25. package/docs/assets/{DateRangePicker.stories-DV_HvnIE.js → DateRangePicker.stories-aI8ObB8_.js} +1 -1
  26. package/docs/assets/{DocsRenderer-CFRXHY34-BtXyHL3w.js → DocsRenderer-CFRXHY34-BANCZeDH.js} +5 -5
  27. package/docs/assets/DrawerHeader-2_o1tH77.css +1 -0
  28. package/docs/assets/DrawerHeader-Dl-SWpsp.js +1 -0
  29. package/docs/assets/{DrawerHeader.stories-D4zWk3nM.js → DrawerHeader.stories-CM2_zZ3T.js} +5 -3
  30. package/docs/assets/{DrawerTile-CHCKt-6O.js → DrawerTile-OJ7fZEGc.js} +1 -1
  31. package/docs/assets/{DrawerTile.stories-mGJZCeHv.js → DrawerTile.stories-DQjStS7E.js} +1 -1
  32. package/docs/assets/{RichListItem.stories-Ctzvcidt.js → RichListItem.stories-S0XhcUL9.js} +1 -1
  33. package/docs/assets/{SelectListItemTile-DMMvPXiH.js → SelectListItemTile-rpzPcOOm.js} +1 -1
  34. package/docs/assets/{SelectListItemTile.stories-4vopjjZy.js → SelectListItemTile.stories-DNVbGIPG.js} +1 -1
  35. package/docs/assets/{SelectionTile-Doi187cR.js → SelectionTile-DZ7fLYvR.js} +1 -1
  36. package/docs/assets/{SelectionTile.stories-BqenNNPT.js → SelectionTile.stories-qyDBAi7s.js} +1 -1
  37. package/docs/assets/Tile-C5uMgiEB.js +1 -0
  38. package/docs/assets/Tile-D82_FDdl.css +1 -0
  39. package/docs/assets/{Tile.sb.shared-DgtJ_hH9.js → Tile.sb.shared-BFRnT0QY.js} +4 -4
  40. package/docs/assets/{Tile.stories-n8PAS1c3.js → Tile.stories-WO2bZrBA.js} +1 -1
  41. package/docs/assets/{iframe-BIhQskTb.js → iframe-DJqDpuzz.js} +2 -2
  42. package/docs/assets/{index-CrqSFYdH.js → index-DYcbzxsX.js} +1 -1
  43. package/docs/assets/{index-Dmw1sHC8.js → index-j8yEukOi.js} +1 -1
  44. package/docs/assets/{preview-DOhGpjgA.js → preview-CbUssxZj.js} +1 -1
  45. package/docs/assets/{preview-hC0Zi1u8.js → preview-kJ3x2L6r.js} +2 -2
  46. package/docs/iframe.html +1 -1
  47. package/docs/project.json +1 -1
  48. package/lib/js/components/DatePickers/DatePicker/DatePicker.spec.ts +41 -0
  49. package/lib/js/components/DatePickers/DatePicker/DatePicker.vue +12 -6
  50. package/lib/js/components/Drawer/DrawerHeader/DrawerHeader.spec.ts +55 -0
  51. package/lib/js/components/Drawer/DrawerHeader/DrawerHeader.stories.ts +3 -0
  52. package/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue +49 -29
  53. package/lib/js/components/Tile/Tile.consts.ts +9 -0
  54. package/lib/js/components/Tile/Tile.sb.shared.ts +7 -3
  55. package/lib/js/components/Tile/Tile.shared.ts +9 -4
  56. package/lib/js/components/Tile/Tile.vue +83 -57
  57. package/package.json +2 -2
  58. package/docs/assets/DatePicker-DN-tNmqU.js +0 -1
  59. package/docs/assets/DrawerHeader-6wWrTFMU.css +0 -1
  60. package/docs/assets/DrawerHeader-CRcLTxbC.js +0 -1
  61. package/docs/assets/Tile-CL6-scA8.css +0 -1
  62. package/docs/assets/Tile-DEjMPKc5.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DocsRenderer-CFRXHY34-BtXyHL3w.js","./iframe-BIhQskTb.js","./index-C7dYv50j.js"])))=>i.map(i=>d[i]);
2
- import{_ as s}from"./iframe-BIhQskTb.js";import"../sb-preview/runtime.js";const{global:_}=__STORYBOOK_MODULE_GLOBAL__;var o,i=Object.entries((o=_.TAGS_OPTIONS)!=null?o:{}).reduce((e,r)=>{let[t,a]=r;return a.excludeFromDocsStories&&(e[t]=!0),e},{}),d={docs:{renderer:async()=>{let{DocsRenderer:e}=await s(()=>import("./DocsRenderer-CFRXHY34-BtXyHL3w.js").then(r=>r.an),__vite__mapDeps([0,1,2]),import.meta.url);return new e},stories:{filter:e=>{var r;return(e.tags||[]).filter(t=>i[t]).length===0&&!((r=e.parameters.docs)!=null&&r.disable)}}}};export{d as parameters};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DocsRenderer-CFRXHY34-BANCZeDH.js","./iframe-DJqDpuzz.js","./index-C7dYv50j.js"])))=>i.map(i=>d[i]);
2
+ import{_ as s}from"./iframe-DJqDpuzz.js";import"../sb-preview/runtime.js";const{global:_}=__STORYBOOK_MODULE_GLOBAL__;var o,i=Object.entries((o=_.TAGS_OPTIONS)!=null?o:{}).reduce((e,r)=>{let[t,a]=r;return a.excludeFromDocsStories&&(e[t]=!0),e},{}),d={docs:{renderer:async()=>{let{DocsRenderer:e}=await s(()=>import("./DocsRenderer-CFRXHY34-BANCZeDH.js").then(r=>r.an),__vite__mapDeps([0,1,2]),import.meta.url);return new e},stories:{filter:e=>{var r;return(e.tags||[]).filter(t=>i[t]).length===0&&!((r=e.parameters.docs)!=null&&r.disable)}}}};export{d as parameters};
package/docs/iframe.html CHANGED
@@ -510,7 +510,7 @@
510
510
  </script>
511
511
  <link rel="stylesheet" href="./preview.css">
512
512
 
513
- <script type="module" crossorigin src="./assets/iframe-BIhQskTb.js"></script>
513
+ <script type="module" crossorigin src="./assets/iframe-DJqDpuzz.js"></script>
514
514
  </head>
515
515
 
516
516
  <body>
package/docs/project.json CHANGED
@@ -1 +1 @@
1
- {"generatedAt":1753253492063,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":true,"refCount":0,"testPackages":{"@vitest/coverage-c8":"0.33.0","@vitest/ui":"3.1.4","vitest":"3.1.4"},"packageManager":{"type":"yarn","version":"1.22.22"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/vue3-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/vue3","portableStoriesFileCount":3,"storybookVersion":"8.3.4","storybookVersionSpecifier":"^8.3.4","language":"typescript","storybookPackages":{"@storybook/vue3":{"version":"8.3.4"},"@storybook/vue3-vite":{"version":"8.3.4"},"eslint-plugin-storybook":{"version":"0.8.0"},"storybook":{"version":"8.3.4"}},"addons":{"@storybook/addon-actions":{"version":"8.3.4"},"@storybook/addon-designs":{"version":"8.0.3"},"@storybook/addon-docs":{"version":"8.3.4"},"@storybook/addon-controls":{"version":"8.3.4"},"@storybook/addon-storysource":{"version":"8.3.4"},"@storybook/addon-viewport":{"version":"8.3.4"}}}
1
+ {"generatedAt":1754641575729,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":true,"refCount":0,"testPackages":{"@vitest/coverage-c8":"0.33.0","@vitest/ui":"3.1.4","vitest":"3.1.4"},"packageManager":{"type":"yarn","version":"1.22.22"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/vue3-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/vue3","portableStoriesFileCount":3,"storybookVersion":"8.3.4","storybookVersionSpecifier":"^8.3.4","language":"typescript","storybookPackages":{"@storybook/vue3":{"version":"8.3.4"},"@storybook/vue3-vite":{"version":"8.3.4"},"eslint-plugin-storybook":{"version":"0.8.0"},"storybook":{"version":"8.3.4"}},"addons":{"@storybook/addon-actions":{"version":"8.3.4"},"@storybook/addon-designs":{"version":"8.0.3"},"@storybook/addon-docs":{"version":"8.3.4"},"@storybook/addon-controls":{"version":"8.3.4"},"@storybook/addon-storysource":{"version":"8.3.4"},"@storybook/addon-viewport":{"version":"8.3.4"}}}
@@ -0,0 +1,41 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { mount } from '@vue/test-utils';
3
+ import DatePicker from './DatePicker.vue';
4
+ import { Tile, TILE_COMPACT_LAYOUTS } from '../../../';
5
+
6
+ const createComponent = (props = {}) => {
7
+ return mount(DatePicker, {
8
+ props,
9
+ });
10
+ };
11
+
12
+ describe('DatePicker', () => {
13
+ describe('Hidden Icon', () => {
14
+ it('should pass DEFAULT compact layout to Tile when isIconHiddenOnMobile is not set', () => {
15
+ const component = createComponent();
16
+
17
+ const tile = component.findComponent(Tile);
18
+
19
+ expect(tile.exists()).toBeTruthy();
20
+ expect(tile.props().compactLayout).toEqual(TILE_COMPACT_LAYOUTS.DEFAULT);
21
+ });
22
+
23
+ it('should pass DEFAULT compact layout to Tile when isIconHiddenOnMobile is set to false', () => {
24
+ const component = createComponent({ isIconHiddenOnMobile: false });
25
+
26
+ const tile = component.findComponent(Tile);
27
+
28
+ expect(tile.exists()).toBeTruthy();
29
+ expect(tile.props().compactLayout).toEqual(TILE_COMPACT_LAYOUTS.DEFAULT);
30
+ });
31
+
32
+ it('should pass ICON_RIGHT_HIDDEN compact layout to Tile when isIconHiddenOnMobile is set to true', () => {
33
+ const component = createComponent({ isIconHiddenOnMobile: true });
34
+
35
+ const tile = component.findComponent(Tile);
36
+
37
+ expect(tile.exists()).toBeTruthy();
38
+ expect(tile.props().compactLayout).toEqual(TILE_COMPACT_LAYOUTS.ICON_RIGHT_HIDDEN);
39
+ });
40
+ });
41
+ });
@@ -28,10 +28,14 @@
28
28
  :border-color="borderColor"
29
29
  :state="tileState"
30
30
  :icon-right="tileIcon"
31
- :is-icon-right-hidden-on-mobile="isIconHiddenOnMobile"
32
31
  :eyebrow-text="eyebrowText"
33
32
  :additional-text-max-width="TILE_ADDITIONAL_TEXT_MAX_WIDTHS.MEDIUM"
34
33
  has-border
34
+ :compact-layout="
35
+ isIconHiddenOnMobile
36
+ ? TILE_COMPACT_LAYOUTS.ICON_RIGHT_HIDDEN
37
+ : TILE_COMPACT_LAYOUTS.DEFAULT
38
+ "
35
39
  @click.stop.prevent="toggle"
36
40
  />
37
41
  </template>
@@ -145,6 +149,7 @@ import { Instance as DatePickerInstance } from 'flatpickr/dist/types/instance';
145
149
  import DsTile, {
146
150
  TILE_ADDITIONAL_TEXT_MAX_WIDTHS,
147
151
  TILE_BORDER_COLORS,
152
+ TILE_COMPACT_LAYOUTS,
148
153
  TileColor,
149
154
  TileState,
150
155
  } from '../../Tile';
@@ -297,11 +302,12 @@ export default defineComponent({
297
302
  toggleDatePicker,
298
303
  updateDatePicker,
299
304
  createDatePicker,
300
- DATE_PICKER_CALENDAR_POSITIONS: Object.freeze(DATE_PICKER_CALENDAR_POSITIONS),
301
- DATE_PICKER_COLORS: Object.freeze(DATE_PICKER_COLORS),
302
- DATE_PICKER_STATES: Object.freeze(DATE_PICKER_STATES),
303
- DATE_PICKER_TRIGGER_TYPES: Object.freeze(DATE_PICKER_TRIGGER_TYPES),
304
- TILE_ADDITIONAL_TEXT_MAX_WIDTHS: Object.freeze(TILE_ADDITIONAL_TEXT_MAX_WIDTHS),
305
+ DATE_PICKER_CALENDAR_POSITIONS,
306
+ DATE_PICKER_COLORS,
307
+ DATE_PICKER_STATES,
308
+ DATE_PICKER_TRIGGER_TYPES,
309
+ TILE_ADDITIONAL_TEXT_MAX_WIDTHS,
310
+ TILE_COMPACT_LAYOUTS,
305
311
  };
306
312
  },
307
313
  computed: {
@@ -0,0 +1,55 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { mount } from '@vue/test-utils';
3
+ import DrawerHeader from './DrawerHeader.vue';
4
+ import { IconButton } from '../../../';
5
+
6
+ const createComponent = (props = {}) => {
7
+ return mount(DrawerHeader, {
8
+ props,
9
+ });
10
+ };
11
+
12
+ describe('DrawerHeader', () => {
13
+ describe('hasBackButton', () => {
14
+ it('should show back button on first level when hasBackButton set to true', () => {
15
+ const component = createComponent({ hasBackButton: true });
16
+
17
+ const backButton = component
18
+ .find('.ds-drawerHeader__firstLevel')
19
+ .findComponent(IconButton);
20
+
21
+ expect(backButton.exists()).toBeTruthy();
22
+ });
23
+ it('should hide back button on first level when not set', () => {
24
+ const component = createComponent();
25
+
26
+ const backButton = component
27
+ .find('.ds-drawerHeader__firstLevel')
28
+ .findComponent(IconButton);
29
+
30
+ expect(backButton.exists()).toBeFalsy();
31
+ });
32
+ it('should hide back button on first level when hasBackButton set to false', () => {
33
+ const component = createComponent({ hasBackButton: false });
34
+
35
+ const backButton = component
36
+ .find('.ds-drawerHeader__firstLevel')
37
+ .findComponent(IconButton);
38
+
39
+ expect(backButton.exists()).toBeFalsy();
40
+ });
41
+ it('should emit backClicked when clicking on back', async () => {
42
+ const component = createComponent({ hasBackButton: true });
43
+
44
+ const backButton = component
45
+ .find('.ds-drawerHeader__firstLevel')
46
+ .findComponent(IconButton);
47
+
48
+ expect(backButton.exists()).toBeTruthy();
49
+
50
+ await backButton.trigger('click');
51
+
52
+ expect(component.emitted().backClicked).toHaveLength(1);
53
+ });
54
+ });
55
+ });
@@ -32,6 +32,7 @@ const StoryTemplate: StoryFn<typeof DrawerHeader> = (args) => ({
32
32
  :title-color="titleColor"
33
33
  :title-ellipsis="titleEllipsis"
34
34
  :title="title"
35
+ :has-back-button="hasBackButton"
35
36
  >
36
37
  <template #actions v-if="actions">
37
38
  <div v-html="actions" />
@@ -58,6 +59,7 @@ const args = {
58
59
  isSecondLevel: false,
59
60
  actions: 'actions slot',
60
61
  titleTrailing: 'trailing slot',
62
+ hasBackButton: false,
61
63
  } as Args;
62
64
 
63
65
  const argTypes = {
@@ -80,6 +82,7 @@ const argTypes = {
80
82
  isClosable: { control: 'boolean' },
81
83
  actions: { control: 'text' },
82
84
  titleTrailing: { control: 'text' },
85
+ hasBackButton: { control: 'boolean' },
83
86
  } as ArgTypes;
84
87
 
85
88
  Interactive.argTypes = argTypes;
@@ -11,34 +11,43 @@
11
11
  Wróć
12
12
  </ds-button>
13
13
  <div :class="{ '-ds-hidden': isSecondLevel }" class="ds-drawerHeader__firstLevel">
14
- <span
15
- v-if="eyebrowText"
16
- :class="{
17
- '-ds-isInteractive': isInteractiveEyebrow,
18
- '-ds-ellipsis': eyebrowEllipsis,
19
- }"
20
- class="ds-drawerHeader__eyebrow"
21
- @click="isInteractiveEyebrow && $emit('eyebrowClicked')"
22
- >
23
- {{ eyebrowText }}
24
- </span>
25
- <div class="ds-drawerHeader__title">
26
- <icon
27
- v-if="leftIcon"
28
- :icon="leftIcon"
29
- :size="ICON_SIZES.X_SMALL"
30
- class="ds-drawerHeader__leftIcon"
31
- />
14
+ <icon-button
15
+ v-if="hasBackButton"
16
+ :size="ICON_BUTTON_SIZES.MEDIUM"
17
+ :icon="ICONS.FA_CHEVRON_LEFT"
18
+ :touchable="false"
19
+ @click="$emit('backClicked')"
20
+ />
21
+ <div class="ds-drawerHeader__textWrapper">
32
22
  <span
33
- v-if="title"
34
- class="ds-drawerHeader__titleText"
35
- :class="{ '-ds-ellipsis': titleEllipsis, [`-ds-${titleColor}`]: true }"
36
- :title="titleEllipsis ? title : undefined"
37
- >{{ title }}</span
23
+ v-if="eyebrowText"
24
+ :class="{
25
+ '-ds-isInteractive': isInteractiveEyebrow,
26
+ '-ds-ellipsis': eyebrowEllipsis,
27
+ }"
28
+ class="ds-drawerHeader__eyebrow"
29
+ @click="isInteractiveEyebrow && $emit('eyebrowClicked')"
38
30
  >
39
- <chip v-if="chipLabel" :label="chipLabel" />
40
- <div v-if="$slots.titleTrailing">
41
- <slot name="titleTrailing" />
31
+ {{ eyebrowText }}
32
+ </span>
33
+ <div class="ds-drawerHeader__title">
34
+ <icon
35
+ v-if="leftIcon"
36
+ :icon="leftIcon"
37
+ :size="ICON_SIZES.X_SMALL"
38
+ class="ds-drawerHeader__leftIcon"
39
+ />
40
+ <span
41
+ v-if="title"
42
+ class="ds-drawerHeader__titleText"
43
+ :class="{ '-ds-ellipsis': titleEllipsis, [`-ds-${titleColor}`]: true }"
44
+ :title="titleEllipsis ? title : undefined"
45
+ >{{ title }}</span
46
+ >
47
+ <chip v-if="chipLabel" :label="chipLabel" />
48
+ <div v-if="$slots.titleTrailing">
49
+ <slot name="titleTrailing" />
50
+ </div>
42
51
  </div>
43
52
  </div>
44
53
  </div>
@@ -77,16 +86,23 @@ $minimal-drawer-header-height: 82px;
77
86
  }
78
87
 
79
88
  &__firstLevel {
89
+ align-items: center;
80
90
  display: flex;
81
- flex-direction: column;
82
91
  min-width: 0;
83
- row-gap: $space-4xs;
84
92
 
85
93
  &.-ds-hidden {
86
94
  visibility: hidden; // by this we make sure that height does not change when switching to second level
87
95
  }
88
96
  }
89
97
 
98
+ &__textWrapper {
99
+ display: flex;
100
+ flex-direction: column;
101
+ min-width: 0;
102
+ padding-left: $space-4xs;
103
+ row-gap: $space-4xs;
104
+ }
105
+
90
106
  &__eyebrow {
91
107
  @include info-s-extensive-bold-uppercase;
92
108
 
@@ -134,7 +150,7 @@ $minimal-drawer-header-height: 82px;
134
150
  display: flex;
135
151
  justify-content: space-between;
136
152
  min-height: $minimal-drawer-header-height;
137
- padding: $space-m $space-xs $space-m $space-s;
153
+ padding: $space-m $space-xs;
138
154
  }
139
155
 
140
156
  &__actions {
@@ -211,6 +227,10 @@ export default defineComponent({
211
227
  type: Boolean,
212
228
  default: false,
213
229
  },
230
+ hasBackButton: {
231
+ type: Boolean,
232
+ default: false,
233
+ },
214
234
  },
215
235
  // TODO fix me when touching this file
216
236
  // eslint-disable-next-line vue/require-emit-validator
@@ -46,3 +46,12 @@ export const TILE_ADDITIONAL_TEXT_MAX_WIDTHS = {
46
46
  } as const;
47
47
 
48
48
  export type TileAdditionalTextMaxWidth = Value<typeof TILE_ADDITIONAL_TEXT_MAX_WIDTHS>;
49
+
50
+ export const TILE_COMPACT_LAYOUTS = {
51
+ DEFAULT: 'default',
52
+ ICON_RIGHT_HIDDEN: 'iconRightHidden',
53
+ ICON_LEFT_ONLY: 'iconLeftOnly',
54
+ ICON_RIGHT_ONLY: 'iconRightOnly',
55
+ } as const;
56
+
57
+ export type TileCompactLayout = Value<typeof TILE_COMPACT_LAYOUTS>;
@@ -1,5 +1,5 @@
1
1
  import { ICONS } from '../Icons/Icon';
2
- import { TILE_BORDER_COLORS, TILE_COLORS, TILE_STATES } from './Tile.consts';
2
+ import { TILE_BORDER_COLORS, TILE_COLORS, TILE_COMPACT_LAYOUTS, TILE_STATES } from './Tile.consts';
3
3
  import { Args, ArgTypes } from '@storybook/vue3';
4
4
  import DsBanner, { BANNER_COLORS } from '../Banner';
5
5
 
@@ -12,13 +12,13 @@ export const template = (componentTag: string) => `
12
12
  :eyebrow-text="eyebrowText"
13
13
  :icon-left="ICONS[iconLeft]"
14
14
  :icon-right="ICONS[iconRight]"
15
- :is-icon-right-hidden-on-mobile="isIconRightHiddenOnMobile"
16
15
  :interactive="interactive"
17
16
  :is-eyebrow-text-uppercase="isEyebrowTextUppercase"
18
17
  :state="state"
19
18
  :text-ellipsis="textEllipsis"
20
19
  :text="text"
21
20
  :border-color="borderColor"
21
+ :compact-layout="compactLayout"
22
22
  />
23
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
24
  </div>
@@ -59,7 +59,6 @@ export const args = {
59
59
  borderColor: null,
60
60
  iconLeft: null,
61
61
  iconRight: null,
62
- isIconRightHiddenOnMobile: false,
63
62
  eyebrowText: 'this is an eyebrowText text',
64
63
  eyebrowEllipsis: true,
65
64
  isEyebrowTextUppercase: false,
@@ -67,6 +66,7 @@ export const args = {
67
66
  textEllipsis: true,
68
67
  additionalText: '',
69
68
  state: TILE_STATES.DEFAULT,
69
+ compactLayout: TILE_COMPACT_LAYOUTS.DEFAULT,
70
70
  } as Args;
71
71
 
72
72
  export const argTypes = {
@@ -90,4 +90,8 @@ export const argTypes = {
90
90
  control: 'select',
91
91
  options: [...Object.values(TILE_STATES)],
92
92
  },
93
+ compactLayout: {
94
+ control: 'select',
95
+ options: [...Object.values(TILE_COMPACT_LAYOUTS)],
96
+ },
93
97
  } as ArgTypes;
@@ -3,10 +3,12 @@ import { ICONS } from '../Icons/Icon';
3
3
  import {
4
4
  TILE_ADDITIONAL_TEXT_MAX_WIDTHS,
5
5
  TILE_COLORS,
6
+ TILE_COMPACT_LAYOUTS,
6
7
  TILE_STATES,
7
8
  TileAdditionalTextMaxWidth,
8
9
  TileBorderColors,
9
10
  TileColor,
11
+ TileCompactLayout,
10
12
  TileState,
11
13
  } from './Tile.consts';
12
14
 
@@ -29,10 +31,6 @@ export const props = {
29
31
  return Object.values(ICONS).includes(toRaw(iconRight));
30
32
  },
31
33
  },
32
- isIconRightHiddenOnMobile: {
33
- type: Boolean,
34
- default: false,
35
- },
36
34
  text: {
37
35
  type: String,
38
36
  required: true,
@@ -82,4 +80,11 @@ export const props = {
82
80
  return Object.values(TILE_ADDITIONAL_TEXT_MAX_WIDTHS).includes(value);
83
81
  },
84
82
  },
83
+ compactLayout: {
84
+ type: String as PropType<TileCompactLayout>,
85
+ default: TILE_COMPACT_LAYOUTS.DEFAULT,
86
+ validator(value: TileCompactLayout) {
87
+ return Object.values(TILE_COMPACT_LAYOUTS).includes(value);
88
+ },
89
+ },
85
90
  };
@@ -3,6 +3,7 @@
3
3
  :class="[
4
4
  tileColor,
5
5
  tileState,
6
+ tileCompactLayoutClass,
6
7
  {
7
8
  '-ds-interactive': interactive,
8
9
  [`-ds-border-${borderColor}`]: borderColor !== null,
@@ -38,7 +39,6 @@
38
39
  <ds-icon
39
40
  v-else-if="iconRight"
40
41
  class="ds-tile__iconRight"
41
- :class="{ '-ds-hiddenOnMobile': isIconRightHiddenOnMobile }"
42
42
  :icon="iconRight"
43
43
  :size="ICON_SIZES.SMALL"
44
44
  />
@@ -300,6 +300,8 @@ $tile-colors: (
300
300
  border-radius: $radius-s;
301
301
  display: flex;
302
302
  flex-direction: row;
303
+ gap: $space-xs;
304
+ justify-content: center;
303
305
  min-height: 48px;
304
306
  padding: $space-2xs $space-xs;
305
307
  transition: background-color ease-in-out $default-transition-time;
@@ -318,6 +320,40 @@ $tile-colors: (
318
320
  }
319
321
  }
320
322
 
323
+ &.-ds-iconLeftOnly {
324
+ #{$self}__center,
325
+ #{$self}__iconRight {
326
+ display: none;
327
+ }
328
+ }
329
+
330
+ &.-ds-iconRightOnly {
331
+ #{$self}__center,
332
+ #{$self}__iconLeft {
333
+ display: none;
334
+ }
335
+ }
336
+
337
+ &.-ds-iconRightHidden {
338
+ #{$self}__iconRight {
339
+ display: none;
340
+ }
341
+ }
342
+
343
+ &.-ds-iconRightHidden,
344
+ &.-ds-iconLeftOnly,
345
+ &.-ds-iconRightOnly {
346
+ container-type: inline-size;
347
+
348
+ @container (width > 165px) {
349
+ #{$self}__center,
350
+ #{$self}__iconRight,
351
+ #{$self}__iconLeft {
352
+ display: flex;
353
+ }
354
+ }
355
+ }
356
+
321
357
  &__additionalText {
322
358
  @include info-s-default-regular;
323
359
 
@@ -370,68 +406,58 @@ $tile-colors: (
370
406
  }
371
407
  }
372
408
 
373
- &__iconLeft {
374
- margin-right: $space-xs;
375
- }
376
-
377
- &__iconRight {
378
- margin-left: $space-xs;
379
-
380
- &.-ds-hiddenOnMobile {
381
- display: none;
382
-
383
- @media #{breakpoint-s()} {
384
- display: block;
385
- }
386
- }
387
- }
388
-
389
409
  &.-ds-interactive:not(.-ds-disabled):not(.-ds-loading) {
390
410
  cursor: pointer;
391
411
  }
392
412
  }
393
413
  </style>
394
414
 
395
- <script lang="ts">
415
+ <script setup lang="ts">
396
416
  import DsIcon, { ICON_SIZES, ICONS } from '../Icons/Icon';
397
- import { TILE_ADDITIONAL_TEXT_MAX_WIDTHS, TILE_COLORS, TILE_STATES } from './Tile.consts';
398
- import { props } from './Tile.shared';
399
- import { defineComponent } from 'vue';
400
-
401
- export default defineComponent({
402
- name: 'Tile',
403
- components: {
404
- DsIcon,
405
- },
406
- props,
407
- data() {
408
- return {
409
- ICONS: Object.freeze(ICONS),
410
- ICON_SIZES: Object.freeze(ICON_SIZES),
411
- TILE_STATES: Object.freeze(TILE_STATES),
412
- TILE_ADDITIONAL_TEXT_MAX_WIDTHS: Object.freeze(TILE_ADDITIONAL_TEXT_MAX_WIDTHS),
413
- };
414
- },
415
- computed: {
416
- tileColor() {
417
- return {
418
- [TILE_COLORS.NEUTRAL]: '-ds-neutral',
419
- [TILE_COLORS.NEUTRAL_WEAK]: '-ds-neutralWeak',
420
- [TILE_COLORS.PRIMARY]: '-ds-primary',
421
- [TILE_COLORS.SUCCESS]: '-ds-success',
422
- [TILE_COLORS.FAIL]: '-ds-fail',
423
- [TILE_COLORS.DANGER]: '-ds-danger',
424
- [TILE_COLORS.WARNING]: '-ds-warning',
425
- [TILE_COLORS.INFO]: '-ds-info',
426
- }[this.color];
427
- },
428
- tileState() {
429
- return {
430
- [TILE_STATES.DEFAULT]: null,
431
- [TILE_STATES.DISABLED]: '-ds-disabled',
432
- [TILE_STATES.LOADING]: '-ds-loading',
433
- }[this.state];
434
- },
435
- },
417
+ import {
418
+ TILE_ADDITIONAL_TEXT_MAX_WIDTHS,
419
+ TILE_COLORS,
420
+ TILE_COMPACT_LAYOUTS,
421
+ TILE_STATES,
422
+ } from './Tile.consts';
423
+ import { props as TileProps } from './Tile.shared';
424
+ import { computed } from 'vue';
425
+
426
+ const props = defineProps(TileProps);
427
+
428
+ const tileCompactLayoutClass = computed(() => {
429
+ switch (props.compactLayout) {
430
+ case TILE_COMPACT_LAYOUTS.ICON_LEFT_ONLY:
431
+ return '-ds-iconLeftOnly';
432
+ case TILE_COMPACT_LAYOUTS.ICON_RIGHT_ONLY:
433
+ return '-ds-iconRightOnly';
434
+ case TILE_COMPACT_LAYOUTS.ICON_RIGHT_HIDDEN:
435
+ return '-ds-iconRightHidden';
436
+ default:
437
+ return '';
438
+ }
436
439
  });
440
+
441
+ const tileColor = computed(
442
+ () =>
443
+ ({
444
+ [TILE_COLORS.NEUTRAL]: '-ds-neutral',
445
+ [TILE_COLORS.NEUTRAL_WEAK]: '-ds-neutralWeak',
446
+ [TILE_COLORS.PRIMARY]: '-ds-primary',
447
+ [TILE_COLORS.SUCCESS]: '-ds-success',
448
+ [TILE_COLORS.FAIL]: '-ds-fail',
449
+ [TILE_COLORS.DANGER]: '-ds-danger',
450
+ [TILE_COLORS.WARNING]: '-ds-warning',
451
+ [TILE_COLORS.INFO]: '-ds-info',
452
+ }[props.color]),
453
+ );
454
+
455
+ const tileState = computed(
456
+ () =>
457
+ ({
458
+ [TILE_STATES.DEFAULT]: null,
459
+ [TILE_STATES.DISABLED]: '-ds-disabled',
460
+ [TILE_STATES.LOADING]: '-ds-loading',
461
+ }[props.state]),
462
+ );
437
463
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bethinkpl/design-system",
3
- "version": "28.1.0",
3
+ "version": "28.1.2",
4
4
  "description": "Bethink universe design-system",
5
5
  "repository": {
6
6
  "type": "git",
@@ -100,4 +100,4 @@
100
100
  "vee-validate": ">=4.15.0",
101
101
  "vue": ">=3.5.0"
102
102
  }
103
- }
103
+ }
@@ -1 +0,0 @@
1
- import{d as $,j as L,c as l,a as s,g as o,e as P,y as E,k as C,v as p,F as X,l as N,o as a,b as g,Y as J,w as W,f as Q,H as F}from"./vue.esm-bundler-DcRN7CPI.js";import{c as x,T as u,d as ee}from"./Tile-DEjMPKc5.js";import{a as te,b as ae,I}from"./Icon-D3_O-s4-.js";import{_ as Y}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{_ as G}from"./iframe-BIhQskTb.js";const c={NEUTRAL_WEAK:"neutralWeak",NEUTRAL:"neutral",WARNING:"warning",DANGER:"danger"},A={DEFAULT:"default",DISABLED:"disabled",LOADING:"loading"},f={TOP:"top",TOP_LEFT:"top-left",TOP_RIGHT:"top-right",BOTTOM:"bottom",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right"},U={BOX:"box",TILE:"tile"},H={[f.BOTTOM_LEFT]:"below left",[f.BOTTOM_RIGHT]:"below right",[f.BOTTOM]:"below",[f.TOP_LEFT]:"above left",[f.TOP_RIGHT]:"above right",[f.TOP]:"above"};function k(e){return e.toLocaleDateString("pl-PL",{dateStyle:void 0,timeStyle:void 0,weekday:"long"})}function ne(e){return e.toLocaleDateString("pl-PL",{dateStyle:"medium",timeStyle:void 0})}function j(e){return e.toLocaleDateString("pl-PL",{month:"short",day:"2-digit"})}const M=e=>e.charAt(0).toUpperCase()+e.slice(1),Z=$({name:"DateBox",components:{DsIcon:te},props:{isInteractive:{type:Boolean,default:!0},placeholder:{type:String,default:"Ustaw"},startDate:{type:Date,default:null},endDate:{type:Date,default:null},startIcon:{type:Object,default:null,validate:e=>e===null||Object.values(I).includes(L(e))},endIcon:{type:Object,default:null,validate:e=>e===null||Object.values(I).includes(L(e))},areIconsHiddenOnMobile:{type:Boolean,default:!1},state:{type:String||null,default:A.DEFAULT},color:{type:String,default:c.NEUTRAL_WEAK},isOpen:{type:Boolean,default:!1}},data(){return{ICONS:Object.freeze(I),ICON_SIZES:Object.freeze(ae),DATE_PICKER_STATES:Object.freeze(A),DATE_PICKER_COLORS:Object.freeze(c)}},computed:{startDateText(){return this.startDate?j(this.startDate):this.placeholder},endDateIfDifferentThanStartDate(){return this.startDate&&this.endDate&&this.startDate.toDateString()!==this.endDate.toDateString()?this.endDate:null},endDateText(){return j(this.endDateIfDifferentThanStartDate)},startDateEyebrowText(){return this.startDate?M(k(this.startDate)):""},endDateEyebrowText(){return this.endDateIfDifferentThanStartDate?M(k(this.endDateIfDifferentThanStartDate)):""}}}),se={key:0,class:"ds-dateBox__loader"},le={class:"ds-dateBox__dateWrapper"},oe={key:0,class:"ds-dateBox__eyebrow"},ie={class:"ds-dateBox__date"},re={class:"ds-dateBox__dateText"},de={key:0,class:"ds-dateBox__loader"},ue={class:"ds-dateBox__dateWrapper"},ce={key:0,class:"ds-dateBox__eyebrow"},fe={class:"ds-dateBox__date"},De={class:"ds-dateBox__dateText"};function Te(e,D,_,T,m,t){const n=N("ds-icon");return a(),l("div",{class:p(["ds-dateBox",{"-ds-disabled":e.state===e.DATE_PICKER_STATES.DISABLED,"-ds-loading":e.state===e.DATE_PICKER_STATES.LOADING,"-ds-interactive":e.isInteractive,"-ds-warning":e.color===e.DATE_PICKER_COLORS.WARNING,"-ds-neutralWeak":e.DATE_PICKER_COLORS.NEUTRAL_WEAK===e.color,"-ds-neutral":e.DATE_PICKER_COLORS.NEUTRAL===e.color,"-ds-danger":e.color===e.DATE_PICKER_COLORS.DANGER,"-ds-isOpen":e.isOpen}])},[s("div",{class:p(["ds-dateBox__widthWrapper",{"-ds-has-icon":e.startIcon,"-ds-iconHiddenOnMobile":e.areIconsHiddenOnMobile}])},[e.state===e.DATE_PICKER_STATES.LOADING?(a(),l("div",se,[P(n,{icon:e.ICONS.FAD_SPINNER_THIRD,size:e.ICON_SIZES.X_SMALL,spinning:""},null,8,["icon","size"])])):o("",!0),s("div",le,[e.startDateEyebrowText?(a(),l("span",oe,E(e.startDateEyebrowText),1)):o("",!0),s("div",ie,[e.startIcon?(a(),C(n,{key:0,class:p(["ds-dateBox__icon",{"-ds-hiddenOnMobile":e.areIconsHiddenOnMobile}]),icon:e.startIcon,size:e.ICON_SIZES.XX_SMALL},null,8,["class","icon","size"])):o("",!0),s("span",re,E(e.startDateText),1)])])],2),e.startDate&&e.endDateIfDifferentThanStartDate?(a(),l(X,{key:0},[D[0]||(D[0]=s("span",{class:"ds-dateBox__separator"},"–",-1)),s("div",{class:p(["ds-dateBox__widthWrapper -ds-justify-to-end",{"-ds-has-icon":e.endIcon,"-ds-iconHiddenOnMobile":e.areIconsHiddenOnMobile}])},[e.state===e.DATE_PICKER_STATES.LOADING?(a(),l("div",de,[P(n,{icon:e.ICONS.FAD_SPINNER_THIRD,size:e.ICON_SIZES.X_SMALL,spinning:""},null,8,["icon","size"])])):o("",!0),s("div",ue,[e.endDateEyebrowText?(a(),l("span",ce,E(e.endDateEyebrowText),1)):o("",!0),s("div",fe,[e.endIcon?(a(),C(n,{key:0,class:p(["ds-dateBox__icon",{"-ds-hiddenOnMobile":e.areIconsHiddenOnMobile}]),icon:e.endIcon,size:e.ICON_SIZES.XX_SMALL},null,8,["class","icon","size"])):o("",!0),s("span",De,E(e.endDateText),1)])])],2)],64)):o("",!0)],2)}const pe=Y(Z,[["render",Te],["__scopeId","data-v-0e144c0e"]]);Z.__docgenInfo={displayName:"DateBox",exportName:"default",description:"",tags:{},props:[{name:"isInteractive",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"placeholder",type:{name:"string"},defaultValue:{func:!1,value:"'Ustaw'"}},{name:"startDate",type:{name:"date"},defaultValue:{func:!1,value:"null"}},{name:"endDate",type:{name:"date"},defaultValue:{func:!1,value:"null"}},{name:"startIcon",type:{name:"object"},defaultValue:{func:!1,value:"null"}},{name:"endIcon",type:{name:"object"},defaultValue:{func:!1,value:"null"}},{name:"areIconsHiddenOnMobile",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"state",type:{name:"(String as PropType<DatePickerStates>) || null"},defaultValue:{func:!1,value:"DATE_PICKER_STATES.DEFAULT"}},{name:"color",type:{name:"DatePickerColors"},defaultValue:{func:!1,value:"DATE_PICKER_COLORS.NEUTRAL_WEAK"}},{name:"isOpen",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}}],sourceFiles:["/home/runner/work/design-system/design-system/lib/js/components/DatePickers/DateBox/DateBox.vue"]};let v=null,z;function Ee({props:e,onChange:D,onClose:_,defaultDates:T,mode:m="single"}){let t=null;const n=g(!1),r=d=>{t==null||t.setDate(d,!1),t==null||t.updateValue(!1),t==null||t.jumpToDate(Array.isArray(d)?d[0]:d,!1)},R=async(d,h,S)=>{var B,w,K,V;if(!t){if(!v)try{v=(await G(async()=>{const{default:i}=await import("./index-CBmJdl9t.js");return{default:i}},[],import.meta.url)).default,z=(await G(async()=>{const{Polish:i}=await import("./pl-1OaNPZt2.js").then(b=>b.p);return{Polish:i}},[],import.meta.url)).Polish}catch(i){console.error("Failed to load flatpickr",i);return}if(t=v(d,{mode:m,locale:z,disableMobile:!0,positionElement:h,ignoredFocusElements:[h],position:H[e.calendarPosition],defaultDate:T,disable:e.disableDates,minDate:e.minDate,maxDate:e.maxDate,onClose:[()=>{n.value=!1,setTimeout(()=>{_()})}],onOpen:[()=>{n.value=!0}],onChange:D}),S){const i=document.querySelector(S),b=()=>{t==null||t._positionCalendar()};i&&((w=(B=t==null?void 0:t.config)==null?void 0:B.onOpen)==null||w.push(()=>{i.addEventListener("scroll",b,{passive:!0})}),(V=(K=t==null?void 0:t.config)==null?void 0:K.onClose)==null||V.push(()=>{i.removeEventListener("scroll",b)}))}return t}},y=()=>{t==null||t.destroy(),t=null};J(()=>{y()}),W([()=>e.calendarPosition,()=>e.minDate,()=>e.maxDate,()=>e.disableDates,()=>T],()=>{t==null||t.set({position:H[e.calendarPosition],defaultDate:T,disable:e.disableDates,minDate:e.minDate,maxDate:e.maxDate})},{flush:"post"}),W([()=>e.date,()=>e.startDate,()=>e.endDate],()=>{O()},{flush:"post"});const O=()=>{e.date?r(e.date):e.startDate&&e.endDate?r([e.startDate,e.endDate]):e.startDate&&!e.endDate?r(e.startDate):!e.startDate&&e.endDate?r(e.endDate):t==null||t.clear(!1)};return{datePicker:t,createDatePicker:R,destroyDatePicker:y,updateDatePicker:O,isOpen:n,toggle:()=>{t==null||t.toggle()}}}const q=$({name:"DatePicker",components:{DsTile:x,DateBox:pe},props:{triggerType:{type:String,default:U.TILE},isInteractive:{type:Boolean,default:!0},placeholder:{type:String,default:"Wybierz datę"},date:{type:Date,default:null},additionalText:{type:String,default:""},helpMessage:{type:String,default:null},label:{type:String,default:""},isLabelUppercase:{type:Boolean,default:!1},icon:{type:[Object,null],default:I.FA_CALENDAR_DAYS,validator(e){return e===null||Object.values(I).includes(L(e))}},isIconHiddenOnMobile:{type:Boolean,default:!1},errorMessage:{type:String,default:null},state:{type:String,default:A.DEFAULT},color:{type:String,default:c.NEUTRAL_WEAK},calendarPosition:{type:String,default:f.BOTTOM_LEFT},disableDates:{type:Array,default:()=>[]},minDate:{type:Date,default:null},maxDate:{type:Date,default:null},updatePositionBasedOnScrollableSelector:{type:String,default:""}},emits:{"update:date":e=>!0},setup(e,{emit:D}){var h;const _=g(null),T=g(),m=g(),t=S=>{D("update:date",S[0])},n=()=>{O(),_.value=null},{isOpen:r,toggle:R,createDatePicker:y,destroyDatePicker:O,updateDatePicker:d}=Ee({props:e,onChange:t,onClose:n,defaultDates:(h=e.date)!=null?h:new Date,mode:"single"});return{flatpickrInstance:_,flatpickrInputRef:T,datePickerRef:m,isOpen:r,toggleDatePicker:R,updateDatePicker:d,createDatePicker:y,DATE_PICKER_CALENDAR_POSITIONS:Object.freeze(f),DATE_PICKER_COLORS:Object.freeze(c),DATE_PICKER_STATES:Object.freeze(A),DATE_PICKER_TRIGGER_TYPES:Object.freeze(U),TILE_ADDITIONAL_TEXT_MAX_WIDTHS:Object.freeze(ee)}},computed:{borderColor(){return{[c.NEUTRAL]:this.isInteractive?u.PRIMARY:u.NEUTRAL_WEAK,[c.NEUTRAL_WEAK]:this.isInteractive?u.PRIMARY:u.NEUTRAL_WEAK,[c.DANGER]:this.isInteractive?u.DANGER:u.DANGER_WEAK,[c.WARNING]:this.isInteractive?u.WARNING:u.WARNING_WEAK}[this.color]},eyebrowText(){return this.date?M(k(this.date)):""},text(){return this.date?ne(this.date):this.placeholder},tileIcon(){return this.additionalText||!this.icon?null:this.isOpen?I.FA_CHEVRON_UP:this.icon},showErrorMessage(){return this.errorMessage!==null},showHelpMessage(){return this.helpMessage!==null},tileState(){return this.state},tileColor(){return this.color}},methods:{async bindFlatpickrInstance(){this.flatpickrInstance=await this.createDatePicker(this.flatpickrInputRef,this.datePickerRef,this.updatePositionBasedOnScrollableSelector),this.updateDatePicker()},async toggle(){this.isInteractive&&this.state===A.DEFAULT&&(this.flatpickrInstance||await this.bindFlatpickrInstance(),this.toggleDatePicker())}}}),_e={class:"ds-datePicker__labelWrapper"},Ie={key:2,class:"ds-datePicker__errorMessage"},me={key:3,class:"ds-datePicker__helpMessage"},he={ref:"flatpickrInputRef",class:"ds-datePicker__hiddenInput"};function Ae(e,D,_,T,m,t){const n=N("ds-tile"),r=N("date-box");return a(),l("div",{ref:"datePickerRef",class:p(["ds-datePicker",{"-ds-box":e.triggerType===e.DATE_PICKER_TRIGGER_TYPES.BOX}])},[e.triggerType===e.DATE_PICKER_TRIGGER_TYPES.TILE?(a(),l(X,{key:0},[s("div",_e,[e.label?(a(),l("span",{key:0,class:p(["ds-datePicker__label",{"-ds-isUppercase":e.isLabelUppercase,"-ds-disabled":e.state===e.DATE_PICKER_STATES.DISABLED}])},E(e.label),3)):o("",!0),e.$slots.default?Q(e.$slots,"default",{key:1},void 0,!0):o("",!0)]),P(n,{class:"ds-datePicker__tile",text:e.text,interactive:e.isInteractive,"additional-text":e.additionalText,color:e.tileColor,"border-color":e.borderColor,state:e.tileState,"icon-right":e.tileIcon,"is-icon-right-hidden-on-mobile":e.isIconHiddenOnMobile,"eyebrow-text":e.eyebrowText,"additional-text-max-width":e.TILE_ADDITIONAL_TEXT_MAX_WIDTHS.MEDIUM,"has-border":"",onClick:F(e.toggle,["stop","prevent"])},null,8,["text","interactive","additional-text","color","border-color","state","icon-right","is-icon-right-hidden-on-mobile","eyebrow-text","additional-text-max-width","onClick"])],64)):(a(),C(r,{key:1,"is-interactive":e.isInteractive,placeholder:e.placeholder,"start-date":e.date,"start-icon":e.icon,"are-icons-hidden-on-mobile":e.isIconHiddenOnMobile,state:e.state,color:e.color,"is-open":e.isOpen,onClick:F(e.toggle,["stop","prevent"])},null,8,["is-interactive","placeholder","start-date","start-icon","are-icons-hidden-on-mobile","state","color","is-open","onClick"])),e.showErrorMessage?(a(),l("span",Ie,E(e.errorMessage),1)):e.showHelpMessage?(a(),l("span",me,E(e.helpMessage),1)):o("",!0),s("input",he,null,512)],2)}const Re=Y(q,[["render",Ae],["__scopeId","data-v-337a8b07"]]);q.__docgenInfo={displayName:"DatePicker",exportName:"default",description:"",tags:{},props:[{name:"triggerType",type:{name:"DatePickerTriggerTypes"},defaultValue:{func:!1,value:"DATE_PICKER_TRIGGER_TYPES.TILE"}},{name:"isInteractive",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"placeholder",type:{name:"string"},defaultValue:{func:!1,value:"'Wybierz datę'"}},{name:"date",type:{name:"date"},defaultValue:{func:!1,value:"null"}},{name:"additionalText",type:{name:"string"},defaultValue:{func:!1,value:"''"}},{name:"helpMessage",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"label",type:{name:"string"},defaultValue:{func:!1,value:"''"}},{name:"isLabelUppercase",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"icon",type:{name:"IconItem | null"},defaultValue:{func:!1,value:"ICONS.FA_CALENDAR_DAYS"}},{name:"isIconHiddenOnMobile",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"errorMessage",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"state",type:{name:"DatePickerStates"},defaultValue:{func:!1,value:"DATE_PICKER_STATES.DEFAULT"}},{name:"color",type:{name:"DatePickerColors"},defaultValue:{func:!1,value:"DATE_PICKER_COLORS.NEUTRAL_WEAK"}},{name:"calendarPosition",type:{name:"DatePickerCalendarPositions"},defaultValue:{func:!1,value:"DATE_PICKER_CALENDAR_POSITIONS.BOTTOM_LEFT"}},{name:"disableDates",type:{name:"Array<Date>"},defaultValue:{func:!0,value:"() => []"}},{name:"minDate",type:{name:"date"},defaultValue:{func:!1,value:"null"}},{name:"maxDate",type:{name:"date"},defaultValue:{func:!1,value:"null"}},{name:"updatePositionBasedOnScrollableSelector",type:{name:"string"},defaultValue:{func:!1,value:"''"}}],events:[{name:"update:date"}],slots:[{name:"default"}],sourceFiles:["/home/runner/work/design-system/design-system/lib/js/components/DatePickers/DatePicker/DatePicker.vue"]};export{pe as D,A as a,c as b,Re as c,f as d,U as e,Ee as i};
@@ -1 +0,0 @@
1
- .ds-drawerHeader[data-v-5b63b67e]{display:flex;flex-direction:column}.ds-drawerHeader__secondLevel[data-v-5b63b67e]{position:absolute!important}.ds-drawerHeader__leftIcon[data-v-5b63b67e]{color:var(--color-neutral-icon)}.ds-drawerHeader__firstLevel[data-v-5b63b67e]{display:flex;flex-direction:column;min-width:0;row-gap:4px}.ds-drawerHeader__firstLevel.-ds-hidden[data-v-5b63b67e]{visibility:hidden}.ds-drawerHeader__eyebrow[data-v-5b63b67e]{--token: info-s-extensive-bold-uppercase;font-weight:var(--typography-font-weight-bold);font-style:var(--typography-font-style-normal);line-height:var(--typography-line-height-4xs);font-size:var(--typography-font-size-2xs);letter-spacing:var(--typography-letter-spacing-xl);text-decoration:var(--typography-text-decoration-none);text-transform:var(--typography-text-transform-uppercase);color:var(--color-neutral-text-weak)}.ds-drawerHeader__eyebrow.-ds-isInteractive[data-v-5b63b67e]:hover{color:var(--color-neutral-text-weak-hovered);cursor:pointer}.ds-drawerHeader__eyebrow.-ds-ellipsis[data-v-5b63b67e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-drawerHeader__title[data-v-5b63b67e]{align-items:center;column-gap:6px;display:flex}.ds-drawerHeader__titleText[data-v-5b63b67e]{--token: heading-s-default-bold-uppercase;font-weight:var(--typography-font-weight-bold);font-style:var(--typography-font-style-normal);line-height:var(--typography-line-height-xs);font-size:var(--typography-font-size-s);letter-spacing:var(--typography-letter-spacing-l);text-decoration:var(--typography-text-decoration-none);text-transform:var(--typography-text-transform-uppercase)}.ds-drawerHeader__titleText.-ds-neutralStrong[data-v-5b63b67e]{color:var(--color-neutral-text-strong)}.ds-drawerHeader__titleText.-ds-neutralWeak[data-v-5b63b67e]{color:var(--color-neutral-text-weak)}.ds-drawerHeader__titleText.-ds-ellipsis[data-v-5b63b67e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-drawerHeader__titleWrapper[data-v-5b63b67e]{align-items:center;column-gap:4px;display:flex;justify-content:space-between;min-height:82px;padding:24px 12px 24px 16px}.ds-drawerHeader__actions[data-v-5b63b67e]{margin-left:auto}
@@ -1 +0,0 @@
1
- import{d as b,c as s,a as i,k as n,g as l,h as _,v as r,y as u,f,l as o,o as a,B as v}from"./vue.esm-bundler-DcRN7CPI.js";import{_ as S,d as C}from"./Button-Cvj_OfTr.js";import{D as T,b as N,a as D}from"./Divider-NOTDPuJ1.js";import{I as O,c as w}from"./IconButton-BN-L0wvM.js";import{C as k}from"./Chip-D9pOGYtq.js";import{a as R,b as L,I as V}from"./Icon-D3_O-s4-.js";import{_ as B}from"./_plugin-vue_export-helper-DlAUqK2U.js";const H={NEUTRAL_STRONG:"neutralStrong",NEUTRAL_WEAK:"neutralWeak"},p=b({name:"DrawerHeader",components:{DsButton:S,Divider:T,Icon:R,IconButton:O,Chip:k},props:{eyebrowText:{type:String,default:null},isInteractiveEyebrow:{type:Boolean,default:!1},eyebrowEllipsis:{type:Boolean,default:!1},title:{type:String,default:null},titleEllipsis:{type:Boolean,default:!1},titleColor:{type:String,default:H.NEUTRAL_STRONG},leftIcon:{type:[Object,null],default:null},chipLabel:{type:String,default:null},isClosable:{type:Boolean,default:!0},hasDivider:{type:Boolean,default:!1},isSecondLevel:{type:Boolean,default:!1}},emits:["backClicked","close","eyebrowClicked"],data(){return{BUTTON_TYPES:Object.freeze(C),DIVIDER_SIZES:Object.freeze(D),DIVIDER_PROMINENCES:Object.freeze(N),ICONS:Object.freeze(V),ICON_BUTTON_SIZES:Object.freeze(w),ICON_SIZES:Object.freeze(L)}}}),g={class:"ds-drawerHeader"},$={class:"ds-drawerHeader__titleWrapper"},h={class:"ds-drawerHeader__title"},A=["title"],z={key:3},U={key:1,class:"ds-drawerHeader__actions"};function j(e,t,Z,M,W,P){const c=o("ds-button"),m=o("icon"),E=o("chip"),y=o("icon-button"),I=o("divider");return a(),s("div",g,[i("div",$,[e.isSecondLevel?(a(),n(c,{key:0,"icon-left":e.ICONS.FA_CHEVRON_LEFT,type:e.BUTTON_TYPES.TEXT,class:"ds-drawerHeader__secondLevel",onClick:t[0]||(t[0]=d=>e.$emit("backClicked"))},{default:_(()=>t[3]||(t[3]=[v(" Wróć ")])),_:1,__:[3]},8,["icon-left","type"])):l("",!0),i("div",{class:r([{"-ds-hidden":e.isSecondLevel},"ds-drawerHeader__firstLevel"])},[e.eyebrowText?(a(),s("span",{key:0,class:r([{"-ds-isInteractive":e.isInteractiveEyebrow,"-ds-ellipsis":e.eyebrowEllipsis},"ds-drawerHeader__eyebrow"]),onClick:t[1]||(t[1]=d=>e.isInteractiveEyebrow&&e.$emit("eyebrowClicked"))},u(e.eyebrowText),3)):l("",!0),i("div",h,[e.leftIcon?(a(),n(m,{key:0,icon:e.leftIcon,size:e.ICON_SIZES.X_SMALL,class:"ds-drawerHeader__leftIcon"},null,8,["icon","size"])):l("",!0),e.title?(a(),s("span",{key:1,class:r(["ds-drawerHeader__titleText",{"-ds-ellipsis":e.titleEllipsis,[`-ds-${e.titleColor}`]:!0}]),title:e.titleEllipsis?e.title:void 0},u(e.title),11,A)):l("",!0),e.chipLabel?(a(),n(E,{key:2,label:e.chipLabel},null,8,["label"])):l("",!0),e.$slots.titleTrailing?(a(),s("div",z,[f(e.$slots,"titleTrailing",{},void 0,!0)])):l("",!0)])],2),e.$slots.actions?(a(),s("div",U,[f(e.$slots,"actions",{},void 0,!0)])):l("",!0),e.isClosable?(a(),n(y,{key:2,icon:e.ICONS.FA_XMARK,size:e.ICON_BUTTON_SIZES.MEDIUM,touchable:!1,onClick:t[2]||(t[2]=d=>e.$emit("close"))},null,8,["icon","size"])):l("",!0)]),e.hasDivider?(a(),n(I,{key:0,size:e.DIVIDER_SIZES.L,prominence:e.DIVIDER_PROMINENCES.WEAK},null,8,["size","prominence"])):l("",!0)])}const Q=B(p,[["render",j],["__scopeId","data-v-5b63b67e"]]);p.__docgenInfo={displayName:"DrawerHeader",exportName:"default",description:"",tags:{},props:[{name:"eyebrowText",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"isInteractiveEyebrow",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"eyebrowEllipsis",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"title",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"titleEllipsis",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"titleColor",type:{name:"DrawerHeaderTitleColor"},defaultValue:{func:!1,value:"DRAWER_HEADER_TITLE_COLORS.NEUTRAL_STRONG"}},{name:"leftIcon",type:{name:"object|null"},defaultValue:{func:!1,value:"null"}},{name:"chipLabel",type:{name:"string"},defaultValue:{func:!1,value:"null"}},{name:"isClosable",type:{name:"boolean"},defaultValue:{func:!1,value:"true"}},{name:"hasDivider",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"isSecondLevel",type:{name:"boolean"},defaultValue:{func:!1,value:"false"}}],events:[{name:"backClicked"},{name:"eyebrowClicked"},{name:"close"}],slots:[{name:"titleTrailing"},{name:"actions"}],sourceFiles:["/home/runner/work/design-system/design-system/lib/js/components/Drawer/DrawerHeader/DrawerHeader.vue"]};export{Q as D,H as a};