@otto-de/b2b-core-components 1.6.0 → 1.7.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 (191) hide show
  1. package/dist/b2b-core-components/b2b-core-components.esm.js +1 -1
  2. package/dist/b2b-core-components/icons/b2b_icon-error-hint.svg +3 -0
  3. package/dist/b2b-core-components/p-03e21565.entry.js +1 -0
  4. package/dist/b2b-core-components/p-1c0df04b.entry.js +1 -0
  5. package/dist/b2b-core-components/p-1dc70300.js +1 -0
  6. package/dist/b2b-core-components/{p-a50ea33f.entry.js → p-33e66446.entry.js} +1 -1
  7. package/dist/b2b-core-components/{p-90a3ffed.entry.js → p-7a879329.entry.js} +1 -1
  8. package/dist/b2b-core-components/p-8bad814b.entry.js +1 -0
  9. package/dist/b2b-core-components/{p-db7d2ec3.entry.js → p-98b563a9.entry.js} +1 -1
  10. package/dist/b2b-core-components/p-9c0e419e.entry.js +1 -0
  11. package/dist/b2b-core-components/p-c60253d2.entry.js +1 -0
  12. package/dist/b2b-core-components/p-c885a630.entry.js +1 -0
  13. package/dist/b2b-core-components/p-cf0999e2.entry.js +1 -0
  14. package/dist/b2b-core-components/p-e31915cf.entry.js +1 -0
  15. package/dist/b2b-core-components/{p-0beabdb4.entry.js → p-f8ed569f.entry.js} +1 -1
  16. package/dist/cjs/b2b-breadcrumb-item.cjs.entry.js +40 -0
  17. package/dist/cjs/b2b-breadcrumb.cjs.entry.js +34 -0
  18. package/dist/cjs/b2b-button_2.cjs.entry.js +1 -1
  19. package/dist/cjs/b2b-checkbox_3.cjs.entry.js +24 -8
  20. package/dist/cjs/b2b-chip-component.cjs.entry.js +37 -0
  21. package/dist/cjs/b2b-core-components.cjs.js +1 -1
  22. package/dist/cjs/b2b-dropdown.cjs.entry.js +2 -2
  23. package/dist/cjs/b2b-icon.cjs.entry.js +1 -0
  24. package/dist/cjs/b2b-tab-group.cjs.entry.js +3 -1
  25. package/dist/cjs/b2b-table-row.cjs.entry.js +5 -8
  26. package/dist/cjs/b2b-table-rowgroup.cjs.entry.js +1 -1
  27. package/dist/cjs/b2b-table.cjs.entry.js +1 -1
  28. package/dist/cjs/b2b-textarea.cjs.entry.js +2 -1
  29. package/dist/cjs/index-04e07a00.js +12 -0
  30. package/dist/cjs/loader.cjs.js +1 -1
  31. package/dist/cjs/{table.types-00c8228a.js → table.types-196dc690.js} +6 -0
  32. package/dist/collection/collection-manifest.json +3 -0
  33. package/dist/collection/components/alert/alert.css +2 -2
  34. package/dist/collection/components/alert/alert.stories.js +1 -8
  35. package/dist/collection/components/anchor/anchor.css +2 -2
  36. package/dist/collection/components/anchor/anchor.stories.js +0 -6
  37. package/dist/collection/components/breadcrumb/breadcrumb-item.js +123 -0
  38. package/dist/collection/components/breadcrumb/breadcrumb.css +250 -0
  39. package/dist/collection/components/breadcrumb/breadcrumb.e2e.js +50 -0
  40. package/dist/collection/components/breadcrumb/breadcrumb.js +66 -0
  41. package/dist/collection/components/breadcrumb/breadcrumb.stories.js +22 -0
  42. package/dist/collection/components/button/button.css +10 -6
  43. package/dist/collection/components/button/button.stories.js +136 -80
  44. package/dist/collection/components/card/card.css +2 -2
  45. package/dist/collection/components/card/card.stories.js +0 -6
  46. package/dist/collection/components/checkbox/checkbox.css +5 -5
  47. package/dist/collection/components/checkbox/checkbox.js +1 -1
  48. package/dist/collection/components/checkbox/checkbox.stories.js +0 -6
  49. package/dist/collection/components/checkbox-group/checkbox-group.css +2 -2
  50. package/dist/collection/components/checkbox-group/checkbox-group.stories.js +0 -6
  51. package/dist/collection/components/chip/chip.css +249 -0
  52. package/dist/collection/components/chip/chip.e2e.js +19 -0
  53. package/dist/collection/components/chip/chip.js +134 -0
  54. package/dist/collection/components/chip/chip.stories.js +30 -0
  55. package/dist/collection/components/dropdown/dropdown.css +2 -2
  56. package/dist/collection/components/dropdown/dropdown.js +2 -2
  57. package/dist/collection/components/dropdown/dropdown.stories.js +0 -6
  58. package/dist/collection/components/grid/grid.stories.js +0 -4
  59. package/dist/collection/components/headline/headline.css +2 -2
  60. package/dist/collection/components/headline/headline.stories.js +0 -6
  61. package/dist/collection/components/icon/icon.css +2 -2
  62. package/dist/collection/components/icon/icon.js +1 -1
  63. package/dist/collection/components/icon/icon.stories.js +0 -6
  64. package/dist/collection/components/icon/icons/b2b_icon-error-hint.svg +3 -0
  65. package/dist/collection/components/icon/types.js +1 -0
  66. package/dist/collection/components/input/input.css +2 -2
  67. package/dist/collection/components/input/input.stories.js +124 -75
  68. package/dist/collection/components/input-group/input-group.css +2 -2
  69. package/dist/collection/components/input-group/input-group.stories.js +0 -6
  70. package/dist/collection/components/input-list/input-list.css +2 -2
  71. package/dist/collection/components/input-list/input-list.stories.js +74 -58
  72. package/dist/collection/components/label/label.css +2 -2
  73. package/dist/collection/components/label/label.stories.js +0 -6
  74. package/dist/collection/components/modal/modal.css +2 -2
  75. package/dist/collection/components/modal/modal.stories.js +1 -7
  76. package/dist/collection/components/pagination/pagination.css +2 -2
  77. package/dist/collection/components/pagination/pagination.stories.js +0 -4
  78. package/dist/collection/components/paragraph/paragraph.css +2 -2
  79. package/dist/collection/components/paragraph/paragraph.stories.js +0 -9
  80. package/dist/collection/components/radio/radio.css +2 -2
  81. package/dist/collection/components/radio/radio.stories.js +0 -6
  82. package/dist/collection/components/radio-group/radio-group.css +2 -2
  83. package/dist/collection/components/radio-group/radio-group.stories.js +0 -6
  84. package/dist/collection/components/required-separator/required-separator.css +2 -2
  85. package/dist/collection/components/required-separator/required-separator.stories.js +0 -6
  86. package/dist/collection/components/rounded-icon/rounded-icon.css +2 -2
  87. package/dist/collection/components/rounded-icon/rounded-icon.stories.js +0 -4
  88. package/dist/collection/components/scrollable-container/scrollable-container.css +2 -2
  89. package/dist/collection/components/scrollable-container/scrollable-container.stories.js +0 -4
  90. package/dist/collection/components/search/search.stories.js +2 -8
  91. package/dist/collection/components/separator/separator.css +2 -2
  92. package/dist/collection/components/separator/separator.stories.js +0 -6
  93. package/dist/collection/components/spinner/spinner.css +2 -2
  94. package/dist/collection/components/spinner/spinner.stories.js +0 -6
  95. package/dist/collection/components/tab/tab.css +2 -2
  96. package/dist/collection/components/tab-group/tab-group.e2e.js +1 -0
  97. package/dist/collection/components/tab-group/tab-group.js +3 -1
  98. package/dist/collection/components/tab-group/tab-group.stories.js +0 -6
  99. package/dist/collection/components/tab-panel/tab-panel.css +2 -2
  100. package/dist/collection/components/table/stories.data.js +4 -26
  101. package/dist/collection/components/table/table-cell/table-cell.css +2 -2
  102. package/dist/collection/components/table/table-header/table-header.css +27 -4
  103. package/dist/collection/components/table/table-header/table-header.js +46 -6
  104. package/dist/collection/components/table/table-row/table-row.css +2 -2
  105. package/dist/collection/components/table/table-row/table-row.js +4 -7
  106. package/dist/collection/components/table/table-rowgroup/table-rowgroup.css +2 -2
  107. package/dist/collection/components/table/table.css +2 -2
  108. package/dist/collection/components/table/table.e2e.js +7 -3
  109. package/dist/collection/components/table/table.stories.js +334 -275
  110. package/dist/collection/components/textarea/textarea.css +2 -2
  111. package/dist/collection/components/textarea/textarea.js +19 -1
  112. package/dist/collection/components/textarea/textarea.stories.js +5 -7
  113. package/dist/collection/components/toggle-button/toggle-button.css +2 -2
  114. package/dist/collection/components/toggle-group/toggle-group.css +2 -2
  115. package/dist/collection/components/toggle-group/toggle-group.stories.js +0 -6
  116. package/dist/collection/components/tooltip/tooltip.css +2 -2
  117. package/dist/collection/components/tooltip/tooltip.stories.js +1 -7
  118. package/dist/collection/components/wizard/wizard.css +2 -2
  119. package/dist/collection/components/wizard/wizard.stories.js +0 -4
  120. package/dist/collection/components/wizard-icon/wizard-icon.css +2 -2
  121. package/dist/collection/components/wizard-icon/wizard-icon.stories.js +9 -7
  122. package/dist/collection/docs/tokens/color.stories.js +1 -5
  123. package/dist/collection/docs/tokens/font.stories.js +1 -6
  124. package/dist/collection/docs/tokens/size.stories.js +1 -5
  125. package/dist/collection/utils/types/table.types.js +5 -0
  126. package/dist/components/b2b-breadcrumb-item.d.ts +11 -0
  127. package/dist/components/b2b-breadcrumb-item.js +58 -0
  128. package/dist/components/b2b-breadcrumb.d.ts +11 -0
  129. package/dist/components/b2b-breadcrumb.js +48 -0
  130. package/dist/components/b2b-chip-component.d.ts +11 -0
  131. package/dist/components/b2b-chip-component.js +56 -0
  132. package/dist/components/b2b-dropdown.js +2 -2
  133. package/dist/components/b2b-tab-group.js +3 -1
  134. package/dist/components/b2b-table-row.js +4 -7
  135. package/dist/components/b2b-textarea.js +4 -2
  136. package/dist/components/button.js +1 -1
  137. package/dist/components/checkbox.js +2 -2
  138. package/dist/components/icon.js +1 -0
  139. package/dist/components/table-header.js +25 -7
  140. package/dist/components/table.types.js +6 -1
  141. package/dist/custom-elements.json +76 -0
  142. package/dist/esm/b2b-breadcrumb-item.entry.js +36 -0
  143. package/dist/esm/b2b-breadcrumb.entry.js +30 -0
  144. package/dist/esm/b2b-button_2.entry.js +1 -1
  145. package/dist/esm/b2b-checkbox_3.entry.js +24 -8
  146. package/dist/esm/b2b-chip-component.entry.js +33 -0
  147. package/dist/esm/b2b-core-components.js +1 -1
  148. package/dist/esm/b2b-dropdown.entry.js +2 -2
  149. package/dist/esm/b2b-icon.entry.js +1 -0
  150. package/dist/esm/b2b-tab-group.entry.js +3 -1
  151. package/dist/esm/b2b-table-row.entry.js +5 -8
  152. package/dist/esm/b2b-table-rowgroup.entry.js +1 -1
  153. package/dist/esm/b2b-table.entry.js +1 -1
  154. package/dist/esm/b2b-textarea.entry.js +2 -1
  155. package/dist/esm/index-dfdbf4b9.js +12 -0
  156. package/dist/esm/loader.js +1 -1
  157. package/dist/esm/{table.types-dd829d83.js → table.types-46c5a83a.js} +6 -1
  158. package/{loader → dist/loader}/cdn.js +1 -1
  159. package/{loader → dist/loader}/index.cjs.js +1 -1
  160. package/{loader → dist/loader}/index.d.ts +1 -1
  161. package/dist/loader/index.es2017.js +3 -0
  162. package/{loader → dist/loader}/index.js +2 -2
  163. package/dist/types/components/breadcrumb/breadcrumb-item.d.ts +15 -0
  164. package/dist/types/components/breadcrumb/breadcrumb.d.ts +11 -0
  165. package/dist/types/components/breadcrumb/breadcrumb.stories.d.ts +4 -0
  166. package/dist/types/components/button/button.stories.d.ts +14 -12
  167. package/dist/types/components/chip/chip.d.ts +17 -0
  168. package/dist/types/components/chip/chip.stories.d.ts +6 -0
  169. package/dist/types/components/icon/types.d.ts +1 -1
  170. package/dist/types/components/input/input.stories.d.ts +14 -13
  171. package/dist/types/components/input-list/input-list.stories.d.ts +8 -7
  172. package/dist/types/components/paragraph/paragraph.stories.d.ts +0 -1
  173. package/dist/types/components/table/stories.data.d.ts +3 -3
  174. package/dist/types/components/table/table-header/table-header.d.ts +5 -2
  175. package/dist/types/components/table/table.stories.d.ts +18 -16
  176. package/dist/types/components/textarea/textarea.d.ts +2 -0
  177. package/dist/types/components/textarea/textarea.stories.d.ts +1 -0
  178. package/dist/types/components.d.ts +135 -4
  179. package/dist/types/utils/interfaces/form.interface.d.ts +3 -0
  180. package/dist/types/utils/interfaces/interaction.interface.d.ts +4 -0
  181. package/dist/types/utils/types/table.types.d.ts +6 -0
  182. package/dist/web-types.json +149 -3
  183. package/package.json +26 -21
  184. package/dist/b2b-core-components/p-01fd54a1.entry.js +0 -1
  185. package/dist/b2b-core-components/p-06aa96a8.entry.js +0 -1
  186. package/dist/b2b-core-components/p-077217b3.entry.js +0 -1
  187. package/dist/b2b-core-components/p-163466cf.entry.js +0 -1
  188. package/dist/b2b-core-components/p-34eb99cb.js +0 -1
  189. package/dist/b2b-core-components/p-d7bb8aa1.entry.js +0 -1
  190. package/loader/index.es2017.js +0 -3
  191. /package/{loader → dist/loader}/package.json +0 -0
@@ -1,298 +1,357 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s)
4
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
1
13
  import { getArgTypes } from '../../docs/config/utils';
14
+ import { userEvent } from '@storybook/testing-library';
2
15
  import { html } from 'lit-html';
3
- import tableDocs from './table.docs.mdx';
4
- import { ContentAlignment, TableRowgroupTypes, TableSizes, } from '../../utils/types/table.types';
16
+ import { repeat } from 'lit/directives/repeat.js';
5
17
  import { sampleData, smallSampleData, longSampleData, userSampleData, } from './stories.data';
6
- import { useArgs } from '@storybook/client-api';
7
- const Template = ({ data, parentWidth, firstColumnWidth, firstRowHeight, size, textWrap, align, highlight, withDividers, color, }) => {
8
- return html `
9
- <div style="width: ${parentWidth}">
10
- <b2b-table size="${size}">
18
+ import { useArgs } from '@storybook/preview-api';
19
+ const tableArgs = getArgTypes('b2b-table');
20
+ const cellArgs = getArgTypes('b2b-table-cell');
21
+ const rowArgs = getArgTypes('b2b-table-row');
22
+ const headerArgs = getArgTypes('b2b-table-header');
23
+ const meta = {
24
+ title: 'Components/Content/Table',
25
+ component: 'b2b-table',
26
+ parameters: {
27
+ backgrounds: {
28
+ default: 'docsBackground',
29
+ values: [{ name: 'docsBackground', value: '#ffffff' }],
30
+ },
31
+ },
32
+ args: {
33
+ size: 'expand',
34
+ textWrap: false,
35
+ align: 'left',
36
+ highlight: true,
37
+ withDividers: false,
38
+ color: 'default',
39
+ data: sampleData,
40
+ parentWidth: '600px',
41
+ firstColumnWidth: 'auto',
42
+ firstRowHeight: 'auto',
43
+ contentAlign: 'left',
44
+ },
45
+ argTypes: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, tableArgs), cellArgs), rowArgs), headerArgs), { data: { table: { disable: true } }, parentWidth: { table: { disable: true } }, firstColumnWidth: { table: { disable: true } }, firstRowHeight: { table: { disable: true } } }),
46
+ render: (_a) => {
47
+ var args = __rest(_a, []);
48
+ return html `<div style="width: ${args.parentWidth}"><b2b-table size="${args.size}">
11
49
  <b2b-table-rowgroup type="header">
12
50
  <b2b-table-row>
13
- ${data.columns.map((columnName, index) => {
14
- return html ` <b2b-table-header
15
- ?divider=${withDividers && index !== data.columns.length - 1}
16
- style=${index === 0 ? `width: ${firstColumnWidth}` : ''}
51
+ ${args.data.columns.map((columnName, index) => {
52
+ return html `<b2b-table-header
53
+ ?divider=${args.withDividers &&
54
+ index !== args.data.columns.length - 1}
55
+ style=${index === 0 ? `width: ${args.firstColumnWidth}` : ''}
17
56
  >${columnName}</b2b-table-header
18
57
  >`;
19
- })}
58
+ })}
59
+ </b2b-table-rowgroup>
60
+ <b2b-table-rowgroup type="body">
61
+ ${repeat(args.data.rows, (row, index) => html `
62
+ <b2b-table-row
63
+ highlight="${args.highlight}"
64
+ color=${index === 0 ? args.color : 'default'}>
65
+ ${repeat(
66
+ // @ts-ignore
67
+ row, (cell, index) => html `<b2b-table-cell
68
+ ?divider=${args.withDividers && index === 0}
69
+ align="${args.align}"
70
+ text-wrap="${args.textWrap}"
71
+ >${cell}</b2b-table-cell
72
+ >`)}<b2b-table-cell
73
+ ><b2b-button size="50">Action</b2b-button></b2b-table-cell
74
+ >
20
75
  </b2b-table-row>
21
- </b2b-table-rowgroup>
22
- <b2b-table-rowgroup type="body">
23
- ${data.rows.map((row, index) => {
24
- return html `<b2b-table-row
25
- highlight="${highlight}"
26
- style=${index === 0 ? `height: ${firstRowHeight}` : ''}
27
- color=${index === 0 ? color : 'default'}>
28
- ${row.map((data, index) => html `<b2b-table-cell
29
- ?divider=${withDividers && index === 0}
30
- align="${align}"
31
- text-wrap="${textWrap}"
32
- >${data}</b2b-table-cell
33
- >`)}
34
- </b2b-table-row>`;
35
- })}
36
- </b2b-table-rowgroup>
37
- </b2b-table>
38
- </div>
39
- `;
76
+ `)}
77
+ </b2b-table-rowgroup>
78
+ </b2b-table></div>`;
79
+ },
40
80
  };
41
- const defaultArgs = {
42
- data: sampleData,
43
- parentWidth: '600px',
44
- firstColumnWidth: 'auto',
45
- firstRowHeight: 'auto',
46
- size: 'expand',
47
- textWrap: false,
48
- align: 'left',
49
- highlight: true,
50
- withDividers: false,
51
- color: 'default',
81
+ export default meta;
82
+ export const SizeExpand = {
83
+ args: Object.assign({}, meta.args),
52
84
  };
53
- export const story010TableExpand = Template.bind({});
54
- story010TableExpand.args = Object.assign({}, defaultArgs);
55
- story010TableExpand.storyName = 'Size Expand';
56
- export const story020TableEqual = Template.bind({});
57
- story020TableEqual.args = Object.assign(Object.assign({}, defaultArgs), { size: 'equal' });
58
- story020TableEqual.storyName = 'Size Equal';
59
- export const story030TableExpand = Template.bind({});
60
- story030TableExpand.args = Object.assign(Object.assign({}, defaultArgs), { parentWidth: '100%' });
61
- story030TableExpand.storyName = 'Size Expand Full width';
62
- export const story040TableExpand = Template.bind({});
63
- story040TableExpand.args = Object.assign(Object.assign({}, defaultArgs), { data: smallSampleData, parentWidth: '450px' });
64
- story040TableExpand.storyName = 'Small Table Expand';
65
- export const story050TableEqual = Template.bind({});
66
- story050TableEqual.args = Object.assign(Object.assign({}, defaultArgs), { data: smallSampleData, parentWidth: '450px', size: 'equal' });
67
- story050TableEqual.storyName = 'Small Table Equal';
68
- export const story060TableFixedCellSize = Template.bind({});
69
- story060TableFixedCellSize.args = Object.assign(Object.assign({}, defaultArgs), { data: smallSampleData, size: 'equal', firstColumnWidth: '50%', withDividers: true });
70
- story060TableFixedCellSize.storyName = 'Fixed Cell Width';
71
- export const story070TableFixedRowHeight = Template.bind({});
72
- story070TableFixedRowHeight.args = Object.assign(Object.assign({}, defaultArgs), { data: smallSampleData, size: 'expand', firstRowHeight: '120px' });
73
- story070TableFixedRowHeight.storyName = 'Fixed Row Height';
74
- export const story080TableWithDividers = Template.bind({});
75
- story080TableWithDividers.args = Object.assign(Object.assign({}, defaultArgs), { withDividers: true });
76
- story080TableWithDividers.storyName = 'With dividers';
77
- export const story090TableColor = Template.bind({});
78
- story090TableColor.args = Object.assign(Object.assign({}, defaultArgs), { data: smallSampleData, color: 'group' });
79
- story090TableColor.storyName = 'Colored row';
80
- const TemplateScrollable = ({ data, parentWidth, parentHeight, columnsWidth, size, textWrap, align, withDividers, }) => {
81
- return html `
82
- <b2b-scrollable-container
83
- style="width: ${parentWidth}; height: ${parentHeight};">
84
- <b2b-table size="${size}">
85
- <b2b-table-rowgroup type="header">
86
- <b2b-table-row>
87
- ${data.columns.map((columnName, index) => {
88
- return html ` <b2b-table-header
89
- ?divider=${withDividers && index !== data.columns.length - 1}
90
- style=${`min-width: ${columnsWidth}`}
91
- >${columnName}</b2b-table-header
92
- >`;
93
- })}
94
- </b2b-table-row>
95
- </b2b-table-rowgroup>
96
- <b2b-table-rowgroup type="body">
97
- ${data.rows.map(row => {
98
- return html `<b2b-table-row>
99
- ${row.map((data, index) => html `<b2b-table-cell
100
- ?divider=${withDividers && index === 0}
101
- align="${align}"
102
- text-wrap="${textWrap}"
103
- >${data}</b2b-table-cell
104
- >`)}
105
- </b2b-table-row>`;
106
- })}
107
- </b2b-table-rowgroup>
108
- </b2b-table>
109
- </b2b-scrollable-container>
110
- `;
85
+ export const SizeEqual = {
86
+ args: Object.assign(Object.assign({}, meta.args), { size: 'equal' }),
111
87
  };
112
- export const story100ScrollableTable = TemplateScrollable.bind({});
113
- story100ScrollableTable.args = {
114
- parentWidth: '600px',
115
- parentHeight: '250px',
116
- columnsWidth: '80px',
117
- data: longSampleData,
118
- size: 'expand',
119
- withDividers: true,
120
- textWrap: false,
121
- align: 'left',
88
+ export const SizeExpandFullWidth = {
89
+ args: Object.assign(Object.assign({}, meta.args), { parentWidth: '100%' }),
122
90
  };
123
- story100ScrollableTable.storyName = 'Scrollable table';
124
- const TemplateSorting = ({ data, firstColumnWidth, size, textWrap, align, highlight, withDividers, color, }) => {
125
- const [_, updateArgs] = useArgs();
126
- const onSort = (event, index) => {
127
- switch (event.detail) {
128
- case 'ascending':
129
- data.rows.sort((a, b) => {
130
- if (a[index] < b[index]) {
131
- return -1;
132
- }
133
- else if (a[index] > b[index]) {
134
- return 1;
135
- }
136
- else {
137
- return 0;
138
- }
139
- });
140
- break;
141
- case 'descending':
142
- data.rows.sort((a, b) => {
143
- if (a[index] < b[index]) {
144
- return 1;
145
- }
146
- else if (a[index] > b[index]) {
147
- return -1;
148
- }
149
- else {
150
- return 0;
151
- }
152
- });
153
- break;
154
- }
155
- updateArgs({ data: data });
156
- };
157
- return html `
158
- <div>
159
- <b2b-table size="${size}">
160
- <b2b-table-rowgroup type="header">
161
- <b2b-table-row>
162
- ${data.columns.map(column => {
163
- return html ` <b2b-table-header
164
- sort-direction="not-sorted"
165
- @b2b-change=${event => onSort(event, column.id)}
166
- ?divider=${withDividers}
167
- style=${column.id === 0 ? `width: ${firstColumnWidth}` : ''}
168
- >${column.name}</b2b-table-header
169
- >`;
170
- })}
171
- </b2b-table-row>
172
- </b2b-table-rowgroup>
173
- <b2b-table-rowgroup type="body">
174
- ${data.rows.map((row, index) => {
175
- return html `<b2b-table-row
176
- highlight="${highlight}"
177
- color=${index === 0 ? color : 'default'}>
178
- ${row.map(data => html `<b2b-table-cell
179
- ?divider=${withDividers}
180
- align="${align}"
181
- text-wrap="${textWrap}"
182
- >${data}</b2b-table-cell
183
- >`)}
184
- </b2b-table-row>`;
185
- })}
186
- </b2b-table-rowgroup>
187
- </b2b-table>
188
- </div>
189
- `;
91
+ export const SmallTableExpand = {
92
+ args: Object.assign(Object.assign({}, meta.args), { data: smallSampleData, parentWidth: '450px' }),
93
+ };
94
+ export const SmallTableEqual = {
95
+ args: Object.assign(Object.assign({}, meta.args), { data: smallSampleData, size: 'equal', parentWidth: '450px' }),
96
+ };
97
+ export const FixedCellSize = {
98
+ args: Object.assign(Object.assign({}, meta.args), { data: smallSampleData, size: 'equal', firstColumnWidth: '50%', withDividers: true }),
99
+ };
100
+ export const FixedRowHeight = {
101
+ args: Object.assign(Object.assign({}, meta.args), { data: smallSampleData, size: 'expand', firstRowHeight: '120px' }),
102
+ };
103
+ export const WithDividers = {
104
+ args: Object.assign(Object.assign({}, meta.args), { withDividers: true }),
105
+ };
106
+ export const ColoredRow = {
107
+ args: Object.assign(Object.assign({}, meta.args), { data: smallSampleData, color: 'group' }),
190
108
  };
191
- export const story110Sorting = TemplateSorting.bind({});
192
- story110Sorting.args = Object.assign(Object.assign({}, defaultArgs), { withDividers: true, size: 'expand', data: userSampleData });
193
- story110Sorting.storyName = 'Table with Sorting';
194
- const TemplateAccordion = ({ data, firstColumnWidth, size, textWrap, align, highlight, withDividers, color, selectable, }) => {
109
+ export const ScrollableTable = {
110
+ args: Object.assign(Object.assign({}, meta.args), { parentWidth: '600px', parentHeight: '250px', columnsWidth: '80px', data: longSampleData, size: 'expand', withDividers: true, textWrap: false, align: 'left' }),
111
+ render: (_a) => {
112
+ var args = __rest(_a, []);
113
+ return html `<b2b-scrollable-container
114
+ style="width: ${args.parentWidth}; height: ${args.parentHeight};">
115
+ <b2b-table size="${args.size}">
116
+ <b2b-table-rowgroup type="header">
117
+ <b2b-table-row>
118
+ ${args.data.columns.map((columnName, index) => {
119
+ return html ` <b2b-table-header
120
+ ?divider=${args.withDividers &&
121
+ index !== args.data.columns.length - 1}
122
+ style=${`min-width: ${args.columnsWidth}`}
123
+ >${columnName}</b2b-table-header
124
+ >`;
125
+ })}
126
+ </b2b-table-row>
127
+ </b2b-table-rowgroup>
128
+ <b2b-table-rowgroup type="body">
129
+ ${args.data.rows.map((row, index) => {
130
+ return html `<b2b-table-row
131
+ highlight="${args.highlight}"
132
+ color=${index === 0 ? args.color : 'default'}>
133
+ ${row.map((data, index) => html `<b2b-table-cell
134
+ ?divider=${args.withDividers && index === 0}
135
+ align="${args.align}"
136
+ text-wrap="${args.textWrap}"
137
+ >${data}</b2b-table-cell
138
+ >`)}
139
+ </b2b-table-row>`;
140
+ })}
141
+ </b2b-table-rowgroup>
142
+ </b2b-table>
143
+ </b2b-scrollable-container>`;
144
+ },
145
+ };
146
+ const RenderSortableTable = (_a) => {
147
+ var args = __rest(_a, []);
195
148
  return html `
196
- <div>
197
- <b2b-table size="${size}">
198
- <b2b-table-rowgroup type="header" accordion selectable="${selectable}">
199
- <b2b-table-row>
200
- ${data.columns.map((columnName, index) => {
201
- return html ` <b2b-table-header
202
- ?divider=${withDividers && index !== data.columns.length - 1}
203
- style=${index === 0 ? `width: ${firstColumnWidth}` : ''}
204
- >${columnName}</b2b-table-header
205
- >`;
206
- })}
207
- </b2b-table-row>
208
- </b2b-table-rowgroup>
209
- <b2b-table-rowgroup type="body" accordion selectable="${selectable}">
210
- ${data.rows.map((row, index) => {
211
- return html `<b2b-table-row
212
- highlight="${highlight}"
213
- color=${index === 0 ? color : 'default'}
214
- value="${row[0]}">
215
- ${row.map(data => html `<b2b-table-cell
216
- ?divider=${withDividers}
217
- align="${align}"
218
- text-wrap="${textWrap}"
219
- >${data}</b2b-table-cell
220
- >`)}
221
- </b2b-table-row>`;
222
- })}
223
- </b2b-table-rowgroup>
224
- <b2b-table-rowgroup
225
- type="body"
226
- accordion
227
- opened
228
- selectable="${selectable}">
229
- ${data.rows.map((row, index) => {
149
+ <b2b-table-rowgroup type="body">
150
+ ${args.data.rows.map((row, index) => {
230
151
  return html `<b2b-table-row
231
- highlight="${highlight}"
232
- color=${index === 0 ? color : 'default'}
233
- value="${row[0]}">
234
- ${row.map(data => html `<b2b-table-cell
235
- ?divider=${withDividers}
236
- align="${align}"
237
- text-wrap="${textWrap}"
238
- >${data}</b2b-table-cell
239
- >`)}
240
- </b2b-table-row>`;
152
+ highlight="${args.highlight}"
153
+ color=${index === 0 ? args.color : 'default'}>
154
+ ${row.map(data => html `<b2b-table-cell
155
+ ?divider=${args.withDividers}
156
+ align="${args.align}"
157
+ text-wrap="${args.textWrap}"
158
+ >${data}</b2b-table-cell
159
+ >`)}
160
+ </b2b-table-row>`;
241
161
  })}
242
- </b2b-table-rowgroup>
243
- </b2b-table>
244
- </div>
245
- `;
246
- };
247
- export const story120Accordion = TemplateAccordion.bind({});
248
- story120Accordion.args = Object.assign(Object.assign({}, defaultArgs), { data: sampleData, selectable: false });
249
- story120Accordion.storyName = 'Accordion Table';
250
- export const story130Selectable = TemplateAccordion.bind({});
251
- story130Selectable.args = Object.assign(Object.assign({}, defaultArgs), { data: sampleData, selectable: true });
252
- story130Selectable.storyName = 'Selectable Table';
253
- const tableArgs = getArgTypes('b2b-table');
254
- const rowGroupArgs = getArgTypes('b2b-table-rowgroup');
255
- const rowArgs = getArgTypes('b2b-table-row');
256
- const headerArgs = getArgTypes('b2b-table-header');
257
- const cellArgs = getArgTypes('b2b-table-cell');
258
- // Override defaults
259
- tableArgs.size = Object.assign(Object.assign({}, tableArgs.size), { name: 'size (b2b-table)' });
260
- tableArgs.size.table.defaultValue = { summary: TableSizes.EXPAND };
261
- rowGroupArgs.type = Object.assign(Object.assign({}, rowGroupArgs.type), { name: 'type (b2b-table-rowgroup)', options: [] });
262
- rowGroupArgs.type.table.defaultValue = { summary: TableRowgroupTypes.HEADER };
263
- rowArgs.highlight = Object.assign(Object.assign({}, rowArgs.highlight), { name: 'highlight (b2b-table-row)' });
264
- cellArgs.align = Object.assign(Object.assign({}, cellArgs.align), { name: 'align (b2b-table-cell)' });
265
- cellArgs.align = Object.assign(Object.assign({}, cellArgs.align), { name: 'align (b2b-table-cell)' });
266
- cellArgs.align.table.defaultValue = { summary: ContentAlignment.LEFT };
267
- cellArgs.textWrap = Object.assign(Object.assign({}, cellArgs.textWrap), { name: 'textWrap (b2b-table-cell)' });
268
- const argsTableData = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, rowGroupArgs), rowArgs), headerArgs), cellArgs), tableArgs);
269
- argsTableData.parentWidth = {
270
- description: 'This is not a component prop. It is the width of the container the table in this example.',
162
+ </b2b-table-rowgroup>
163
+ </b2b-table>
164
+ </div>`;
271
165
  };
272
- argsTableData.parentHeight = {
273
- description: 'This is not a component prop. It is the height of the container the table in this example.',
166
+ const SortableTableMeta = {
167
+ args: Object.assign({}, meta.args),
168
+ decorators: [
169
+ story => {
170
+ const [args, updateArgs] = useArgs();
171
+ const onSort = (event, index, data) => {
172
+ switch (event.detail) {
173
+ case 'ascending':
174
+ data.rows.sort((a, b) => {
175
+ if (a[index] < b[index]) {
176
+ return -1;
177
+ }
178
+ else if (a[index] > b[index]) {
179
+ return 1;
180
+ }
181
+ else {
182
+ return 0;
183
+ }
184
+ });
185
+ break;
186
+ case 'descending':
187
+ data.rows.sort((a, b) => {
188
+ if (a[index] < b[index]) {
189
+ return 1;
190
+ }
191
+ else if (a[index] > b[index]) {
192
+ return -1;
193
+ }
194
+ else {
195
+ return 0;
196
+ }
197
+ });
198
+ break;
199
+ }
200
+ updateArgs({ data: data });
201
+ };
202
+ return html `<div>
203
+ <b2b-table size="expand">
204
+ <b2b-table-rowgroup type="header">
205
+ <b2b-table-row>
206
+ ${userSampleData.columns.map(column => {
207
+ return html ` <b2b-table-header
208
+ sort-direction="not-sorted"
209
+ content-align=${args.contentAlign}
210
+ @b2b-change=${event => onSort(event, column.id, userSampleData)}
211
+ ?divider="false"
212
+ >${column.name}</b2b-table-header
213
+ >`;
214
+ })}
215
+ </b2b-table-row> </b2b-table-rowgroup
216
+ >${story()}</b2b-table
217
+ >
218
+ </div>`;
219
+ },
220
+ ],
274
221
  };
275
- argsTableData.columnsWidth = {
276
- description: 'This is not a component prop. It is an example of a way to handle fixed width for table columns.',
222
+ export const SortableTable = {
223
+ args: Object.assign(Object.assign({}, SortableTableMeta.args), { contentAlign: 'left', align: 'left', data: userSampleData }),
224
+ decorators: SortableTableMeta.decorators,
225
+ render: RenderSortableTable,
226
+ play: async ({ canvasElement }) => {
227
+ setTimeout(async () => {
228
+ const header = await canvasElement.querySelector('b2b-table-header');
229
+ const sortArrow = header.shadowRoot.querySelector('div');
230
+ await userEvent.click(sortArrow);
231
+ }, 2000);
232
+ },
277
233
  };
278
- argsTableData.firstColumnWidth = {
279
- description: 'This is not a component prop. It is an example of a way to handle fixed width for a table column.',
234
+ export const SortableTableRightAlign = {
235
+ args: Object.assign(Object.assign({}, SortableTableMeta.args), { contentAlign: 'right', align: 'right', data: userSampleData }),
236
+ decorators: SortableTableMeta.decorators,
237
+ render: RenderSortableTable,
238
+ play: async ({ canvasElement }) => {
239
+ setTimeout(async () => {
240
+ const header = await canvasElement.querySelector('b2b-table-header');
241
+ const sortArrow = header.shadowRoot.querySelector('div');
242
+ await userEvent.click(sortArrow);
243
+ }, 1000);
244
+ },
280
245
  };
281
- argsTableData.data = {
282
- table: { disable: true },
246
+ export const AccordionTable = {
247
+ args: Object.assign({}, meta.args),
248
+ render: (_a) => {
249
+ var args = __rest(_a, []);
250
+ return html `<div>
251
+ <b2b-table size="${args.size}">
252
+ <b2b-table-rowgroup type="header" accordion>
253
+ <b2b-table-row>
254
+ ${args.data.columns.map((columnName, index) => {
255
+ return html ` <b2b-table-header
256
+ ?divider=${args.withDividers &&
257
+ index !== args.data.columns.length - 1}
258
+ style=${index === 0 ? `width: ${args.firstColumnWidth}` : ''}
259
+ >${columnName}</b2b-table-header
260
+ >`;
261
+ })}
262
+ </b2b-table-row>
263
+ </b2b-table-rowgroup>
264
+ <b2b-table-rowgroup type="body" accordion>
265
+ ${args.data.rows.map((row, index) => {
266
+ return html `<b2b-table-row
267
+ highlight="${args.highlight}"
268
+ color=${index === 0 ? args.color : 'default'}>
269
+ ${row.map(data => html `<b2b-table-cell
270
+ ?divider=${args.withDividers}
271
+ align="${args.align}"
272
+ text-wrap="${args.textWrap}"
273
+ >${data}</b2b-table-cell
274
+ >`)}
275
+ <b2b-table-cell
276
+ ><b2b-button size="50">Action</b2b-button></b2b-table-cell
277
+ >
278
+ </b2b-table-row>`;
279
+ })}
280
+ </b2b-table-rowgroup>
281
+ <b2b-table-rowgroup type="body" accordion opened>
282
+ ${args.data.rows.map((row, index) => {
283
+ return html `<b2b-table-row
284
+ highlight="${args.highlight}"
285
+ color=${index === 0 ? args.color : 'default'}>
286
+ ${row.map(data => html `<b2b-table-cell
287
+ ?divider=${args.withDividers}
288
+ align="${args.align}"
289
+ text-wrap="${args.textWrap}"
290
+ >${data}</b2b-table-cell
291
+ >`)}
292
+ <b2b-table-cell
293
+ ><b2b-button size="50">Action</b2b-button></b2b-table-cell
294
+ >
295
+ </b2b-table-row>`;
296
+ })}
297
+ </b2b-table-rowgroup>
298
+ </b2b-table>
299
+ </div>`;
300
+ },
283
301
  };
284
- export default {
285
- title: 'Components/Content/Table',
286
- argTypes: Object.assign(Object.assign({}, argsTableData), { sortDirection: false, type: false }),
287
- viewmode: 'docs',
288
- parameters: {
289
- controls: { expanded: true },
290
- docs: {
291
- page: tableDocs,
292
- },
293
- backgrounds: {
294
- default: 'docsBackground',
295
- values: [{ name: 'docsBackground', value: '#fff' }],
296
- },
302
+ export const Selectable = {
303
+ args: Object.assign({}, meta.args),
304
+ render: (_a) => {
305
+ var args = __rest(_a, []);
306
+ return html `<div>
307
+ <b2b-table size="${args.size}">
308
+ <b2b-table-rowgroup type="header" accordion selectable>
309
+ <b2b-table-row>
310
+ ${args.data.columns.map((columnName, index) => {
311
+ return html ` <b2b-table-header
312
+ ?divider=${args.withDividers &&
313
+ index !== args.data.columns.length - 1}
314
+ style=${index === 0 ? `width: ${args.firstColumnWidth}` : ''}
315
+ >${columnName}</b2b-table-header
316
+ >`;
317
+ })}
318
+ </b2b-table-row>
319
+ </b2b-table-rowgroup>
320
+ <b2b-table-rowgroup type="body" accordion selectable>
321
+ ${args.data.rows.map((row, index) => {
322
+ return html `<b2b-table-row
323
+ highlight="${args.highlight}"
324
+ color=${index === 0 ? args.color : 'default'}>
325
+ ${row.map(data => html `<b2b-table-cell
326
+ ?divider=${args.withDividers}
327
+ align="${args.align}"
328
+ text-wrap="${args.textWrap}"
329
+ >${data}</b2b-table-cell
330
+ >`)}
331
+ <b2b-table-cell
332
+ ><b2b-button size="50">Action</b2b-button></b2b-table-cell
333
+ >
334
+ </b2b-table-row>`;
335
+ })}
336
+ </b2b-table-rowgroup>
337
+ <b2b-table-rowgroup type="body" accordion opened selectable>
338
+ ${args.data.rows.map((row, index) => {
339
+ return html `<b2b-table-row
340
+ highlight="${args.highlight}"
341
+ color=${index === 0 ? args.color : 'default'}>
342
+ ${row.map(data => html `<b2b-table-cell
343
+ ?divider=${args.withDividers}
344
+ align="${args.align}"
345
+ text-wrap="${args.textWrap}"
346
+ >${data}</b2b-table-cell
347
+ >`)}
348
+ <b2b-table-cell
349
+ ><b2b-button size="50">Action</b2b-button></b2b-table-cell
350
+ >
351
+ </b2b-table-row>`;
352
+ })}
353
+ </b2b-table-rowgroup>
354
+ </b2b-table>
355
+ </div>`;
297
356
  },
298
357
  };
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Tue, 22 Aug 2023 11:28:34 GMT
3
+ * Generated on Thu, 26 Oct 2023 14:16:21 GMT
4
4
  */
5
5
  :root, :host {
6
6
  --b2b-size-200: 5rem; /* 80px */
@@ -122,7 +122,7 @@
122
122
  }
123
123
  /**
124
124
  * Do not edit directly
125
- * Generated on Tue, 22 Aug 2023 11:28:34 GMT
125
+ * Generated on Thu, 26 Oct 2023 14:16:22 GMT
126
126
  */
127
127
  :root [data-theme="dark"] {
128
128
  --b2b-size-200: 5rem; /* 80px */