@iamproperty/components 3.4.6 → 3.4.7

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 (149) hide show
  1. package/assets/css/components/accordion.css.map +1 -1
  2. package/assets/css/components/applied-filters.css +1 -0
  3. package/assets/css/components/applied-filters.css.map +1 -0
  4. package/assets/css/components/card.css +1 -1
  5. package/assets/css/components/card.css.map +1 -1
  6. package/assets/css/components/charts.css +1 -1
  7. package/assets/css/components/charts.css.map +1 -1
  8. package/assets/css/components/container.css +1 -1
  9. package/assets/css/components/container.css.map +1 -1
  10. package/assets/css/components/dialog.css +1 -0
  11. package/assets/css/components/dialog.css.map +1 -0
  12. package/assets/css/components/forms.css +1 -1
  13. package/assets/css/components/forms.css.map +1 -1
  14. package/assets/css/components/lists.css +1 -1
  15. package/assets/css/components/lists.css.map +1 -1
  16. package/assets/css/components/nav.css +1 -1
  17. package/assets/css/components/nav.css.map +1 -1
  18. package/assets/css/components/pagination.css +1 -0
  19. package/assets/css/components/pagination.css.map +1 -0
  20. package/assets/css/components/table.css +1 -0
  21. package/assets/css/components/table.css.map +1 -0
  22. package/assets/css/core.min.css +1 -1
  23. package/assets/css/core.min.css.map +1 -1
  24. package/assets/css/style.min.css +1 -1
  25. package/assets/css/style.min.css.map +1 -1
  26. package/assets/js/bundle.js +18 -11
  27. package/assets/js/components/accordion/accordion.component.js +6 -0
  28. package/assets/js/components/accordion/accordion.component.min.js +3 -3
  29. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  30. package/assets/js/components/applied-filters/applied-filters.component.js +26 -0
  31. package/assets/js/components/card/card.component.js +91 -0
  32. package/assets/js/components/card/card.component.min.js +21 -0
  33. package/assets/js/components/card/card.component.min.js.map +1 -0
  34. package/assets/js/components/filterlist/filterlist.component.js +49 -0
  35. package/assets/js/components/filterlist/filterlist.component.min.js +23 -0
  36. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -0
  37. package/assets/js/components/header/header.component.js +6 -0
  38. package/assets/js/components/header/header.component.min.js +2 -2
  39. package/assets/js/components/header/header.component.min.js.map +1 -1
  40. package/assets/js/components/pagination/pagination.component.js +34 -0
  41. package/assets/js/components/table/table.component.js +104 -0
  42. package/assets/js/components/table/table.component.min.js +24 -0
  43. package/assets/js/components/table/table.component.min.js.map +1 -0
  44. package/assets/js/components/tabs/tabs.component.js +6 -0
  45. package/assets/js/components/tabs/tabs.component.min.js +17 -0
  46. package/assets/js/components/tabs/tabs.component.min.js.map +1 -0
  47. package/assets/js/dynamic.js +7 -18
  48. package/assets/js/dynamic.min.js +2 -53
  49. package/assets/js/dynamic.min.js.map +1 -1
  50. package/assets/js/flat-components.js +27 -9
  51. package/assets/js/modules/applied-filters.js +100 -0
  52. package/assets/js/modules/data-layer.js +45 -0
  53. package/assets/js/modules/filterlist.js +32 -0
  54. package/assets/js/modules/helpers.js +77 -49
  55. package/assets/js/modules/pagination.js +33 -0
  56. package/assets/js/modules/table.js +507 -420
  57. package/assets/js/modules/tabs.js +6 -0
  58. package/assets/js/modules/youtubevideo.js +53 -61
  59. package/assets/js/scripts.bundle.js +77 -62
  60. package/assets/js/scripts.bundle.js.map +1 -1
  61. package/assets/js/scripts.bundle.min.js +2 -2
  62. package/assets/js/scripts.bundle.min.js.map +1 -1
  63. package/assets/js/tests/filterlist.spec.js +22 -0
  64. package/assets/js/tests/pagination.spec.js +15 -0
  65. package/assets/js/tests/table.spec.js +147 -0
  66. package/assets/sass/_components.scss +1 -2
  67. package/assets/sass/_corefiles.scss +5 -4
  68. package/assets/sass/_functions/utilities.scss +16 -0
  69. package/assets/sass/_functions/variables.scss +32 -18
  70. package/assets/sass/_tests/colours.spec.scss +1 -1
  71. package/assets/sass/components/applied-filters.scss +65 -0
  72. package/assets/sass/components/card.scss +177 -233
  73. package/assets/sass/components/charts.scss +4 -0
  74. package/assets/sass/components/container.scss +7 -2
  75. package/assets/sass/components/dialog.scss +202 -0
  76. package/assets/sass/components/forms.scss +37 -5
  77. package/assets/sass/components/lists.scss +15 -0
  78. package/assets/sass/components/nav.scss +5 -1
  79. package/assets/sass/components/pagination.scss +140 -0
  80. package/assets/sass/components/table.scss +419 -0
  81. package/assets/sass/foundations/icons.scss +1 -1
  82. package/assets/sass/{components → foundations}/links.scss +26 -0
  83. package/assets/sass/foundations/reboot.scss +19 -13
  84. package/assets/svg/illustrations/table.svg +165 -0
  85. package/assets/ts/bundle.ts +23 -12
  86. package/assets/ts/components/accordion/accordion.component.ts +7 -0
  87. package/assets/ts/components/applied-filters/README.md +5 -0
  88. package/assets/ts/components/applied-filters/applied-filters.component.ts +33 -0
  89. package/assets/ts/components/card/README.md +22 -0
  90. package/assets/ts/components/card/card.component.ts +117 -0
  91. package/assets/ts/components/filterlist/README.md +17 -0
  92. package/assets/ts/components/filterlist/filterlist.component.ts +60 -0
  93. package/assets/ts/components/header/header.component.ts +8 -0
  94. package/assets/ts/components/pagination/README.md +11 -0
  95. package/assets/ts/components/pagination/pagination.component.ts +45 -0
  96. package/assets/ts/components/table/README.md +23 -0
  97. package/assets/ts/components/table/table.component.ts +128 -0
  98. package/assets/ts/components/tabs/tabs.component.ts +7 -0
  99. package/assets/ts/dynamic.ts +12 -19
  100. package/assets/ts/flat-components.ts +37 -9
  101. package/assets/ts/modules/applied-filters.ts +146 -0
  102. package/assets/ts/modules/data-layer.ts +58 -0
  103. package/assets/ts/modules/filterlist.ts +46 -0
  104. package/assets/ts/modules/helpers.ts +90 -60
  105. package/assets/ts/modules/pagination.ts +44 -0
  106. package/assets/ts/modules/table.ts +598 -433
  107. package/assets/ts/modules/tabs.ts +8 -1
  108. package/assets/ts/modules/youtubevideo.ts +58 -63
  109. package/assets/ts/tests/filterlist.spec.ts +29 -0
  110. package/assets/ts/tests/pagination.spec.ts +21 -0
  111. package/assets/ts/tests/table.spec.ts +191 -0
  112. package/dist/components.es.js +1264 -1296
  113. package/dist/components.umd.js +70 -65
  114. package/dist/style.css +1 -1
  115. package/package.json +7 -5
  116. package/src/components/AppliedFilters/AppliedFilters.vue +20 -0
  117. package/src/components/AppliedFilters/README.md +5 -0
  118. package/src/components/Card/Card.vue +11 -112
  119. package/src/components/Card/README.md +16 -18
  120. package/src/components/Carousel/Carousel.vue +49 -10
  121. package/src/components/Chart/Chart.vue +46 -4
  122. package/src/components/Filterlist/Filterlist.vue +20 -0
  123. package/src/components/Filterlist/README.md +17 -0
  124. package/src/components/Pagination/Pagination.vue +30 -0
  125. package/src/components/Pagination/README.md +11 -0
  126. package/src/components/Table/README.md +29 -44
  127. package/src/components/Table/Table.spec.js +5 -37
  128. package/src/components/Table/Table.vue +16 -91
  129. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +1 -1
  130. package/src/index.js +3 -2
  131. package/assets/css/components/cardDeck.css +0 -1
  132. package/assets/css/components/cardDeck.css.map +0 -1
  133. package/assets/css/components/links.css +0 -1
  134. package/assets/css/components/links.css.map +0 -1
  135. package/assets/css/components/modal.css +0 -1
  136. package/assets/css/components/modal.css.map +0 -1
  137. package/assets/css/components/tables.css +0 -1
  138. package/assets/css/components/tables.css.map +0 -1
  139. package/assets/js/modules/modal.js +0 -69
  140. package/assets/sass/components/cardDeck.scss +0 -108
  141. package/assets/sass/components/modal.scss +0 -136
  142. package/assets/sass/components/tables.scss +0 -291
  143. package/assets/ts/modules/modal.ts +0 -91
  144. package/src/components/CardDeck/CardDeck.spec.js +0 -99
  145. package/src/components/CardDeck/CardDeck.vue +0 -77
  146. package/src/components/CardDeck/README.md +0 -25
  147. package/src/components/Modal/Modal.spec.js +0 -22
  148. package/src/components/Modal/Modal.vue +0 -43
  149. package/src/components/Modal/README.md +0 -20
@@ -0,0 +1,22 @@
1
+ // @ts-nocheck
2
+ import '@testing-library/jest-dom';
3
+ import { filterTheList } from "../modules/filterlist.js";
4
+ const listHTML = `
5
+ <li class="lead text-primary pb-1">Olivia Anderson</li>
6
+ <li class="lead text-primary pb-1">Ethan Ramirez</li>
7
+ <li class="lead text-primary pb-1">Sophia Patel</li>
8
+ <li class="lead text-primary pb-1">Noah Jenkins</li>
9
+ <li class="lead text-primary pb-1">Ava Thompson</li>
10
+ <li class="lead text-primary pb-1">Lucas Myers</li>
11
+ <li class="lead text-primary pb-1">Mia Carter</li>
12
+ <li class="lead text-primary pb-1">Benjamin Lee</li>
13
+ `;
14
+ describe('addDataAttributes', () => {
15
+ let list = document.createElement('ul');
16
+ list.innerHTML = listHTML;
17
+ filterTheList(list, "Lucas");
18
+ test('should add a class of d-none to each item except the one containing Lucas Myers', () => {
19
+ expect(list.querySelectorAll('li:not(.d-none)').length).toEqual(1);
20
+ expect(list.querySelector('li:not(.d-none').textContent).toEqual('Lucas Myers');
21
+ });
22
+ });
@@ -0,0 +1,15 @@
1
+ // @ts-nocheck
2
+ import '@testing-library/jest-dom';
3
+ import createPaginationButttons from "../modules/pagination.js";
4
+ describe('createPaginationButttons', () => {
5
+ const pagination = document.createElement('div');
6
+ pagination.setAttribute('data-page', 2);
7
+ pagination.setAttribute('data-pages', 5);
8
+ pagination.setAttribute('data-show', 15);
9
+ pagination.setAttribute('data-total', 150);
10
+ pagination.setAttribute('data-increment', 15);
11
+ createPaginationButttons(pagination, pagination);
12
+ test('should populate the pagination with links to each page', () => {
13
+ expect(pagination.querySelectorAll('a.page-link').length).toEqual(6);
14
+ });
15
+ });
@@ -0,0 +1,147 @@
1
+ // @ts-nocheck
2
+ import '@testing-library/jest-dom';
3
+ import * as tableModule from "../modules/table.js";
4
+ import "expect-puppeteer";
5
+ const basicTable = `<thead>
6
+ <tr>
7
+ <th>Heading 1</th>
8
+ <th>Heading 2</th>
9
+ <th>Heading 3</th>
10
+ </tr>
11
+ </thead>
12
+ <tbody
13
+ <tr>
14
+ <td>Cell 1</td>
15
+ <td>Low</td>
16
+ <td>Cell 3</td>
17
+ </tr>
18
+ <tr>
19
+ <td>Cell 1</td>
20
+ <td>Low</td>
21
+ <td><a href="/link">View information</a></td>
22
+ </tr>
23
+ <tr>
24
+ <td>Different Cell 1</td>
25
+ <td>Medium</td>
26
+ <td><a href="/link">View information</a></td>
27
+ </tr>
28
+ <tr>
29
+ <td>Different Cell 1</td>
30
+ <td>High</td>
31
+ <td><a href="/link">View information</a></td>
32
+ </tr>
33
+ </tbody>`;
34
+ describe('addDataAttributes', () => {
35
+ const table = document.createElement('table');
36
+ table.innerHTML = basicTable;
37
+ tableModule.addDataAttributes(table);
38
+ test('should add data-label attribute to the table cells', () => {
39
+ expect(table.querySelector('tbody td').getAttribute('data-label')).toEqual('Heading 1');
40
+ expect(table.querySelector('tbody td:nth-child(2)').getAttribute('data-label')).toEqual('Heading 2');
41
+ });
42
+ test('should add data-content attribute to the table cells if the content matches a pre-defined list', () => {
43
+ expect(table.querySelector('tbody tr:nth-child(2) td:nth-child(2)').getAttribute('data-content')).toEqual('Low');
44
+ expect(table.querySelector('tbody tr:nth-child(3) td:nth-child(2)').getAttribute('data-content')).toEqual('Medium');
45
+ });
46
+ });
47
+ /* TODO: This unit test doesn't work as puppeteer seems to have an issue with query selector all
48
+ describe('getLargestLastColWidth', () => {
49
+
50
+ test('should return the width of the largest last column content', async() => {
51
+
52
+ const browser = await puppeteer.launch({});
53
+ try {
54
+ const page = await browser.newPage();
55
+ await page.exposeFunction("getLargestLastColWidth", tableModule.getLargestLastColWidth);
56
+ await page.setContent(`<table id="table">${basicTable}</table>`);
57
+ await page.waitForSelector('#table tr');
58
+
59
+ const largestWidth = await page.evaluate(`getLargestLastColWidth(document.querySelector("#table"))`);
60
+
61
+ //const links = await page.$$eval('#table', e=>getLargestLastColWidth(e))
62
+ console.log(await largestWidth)
63
+
64
+
65
+ } catch (e) {
66
+ console.error(e);
67
+ } finally {
68
+ await browser.close();
69
+ }
70
+
71
+
72
+ });
73
+
74
+ });
75
+ */
76
+ describe('createMobileButton', () => {
77
+ const table = document.createElement('table');
78
+ table.innerHTML = basicTable;
79
+ tableModule.createMobileButton(table);
80
+ test('should add a button to the first cell in a column', () => {
81
+ expect(table.querySelector('tbody td:nth-child(1) button').textContent).toEqual('Cell 1');
82
+ expect(table.querySelector('tbody td:nth-child(1) span').textContent).toEqual('Cell 1');
83
+ });
84
+ });
85
+ describe('createSearchDataList', () => {
86
+ const table = document.createElement('table');
87
+ table.innerHTML = basicTable;
88
+ const form = document.createElement('form');
89
+ form.innerHTML += `<div><input name="search" id="search" type="text" class="form-control" data-search="Heading 1"></div>`;
90
+ tableModule.addDataAttributes(table);
91
+ tableModule.createSearchDataList(table, form);
92
+ test('should create a datalist populated by the defined columns in the data-search ', () => {
93
+ expect(form.querySelectorAll('datalist').length).toEqual(1);
94
+ expect(form.querySelectorAll('datalist option').length).toEqual(2);
95
+ expect(form.querySelector('datalist option:nth-child(1)').value).toEqual('Cell 1');
96
+ expect(form.querySelector('datalist option:nth-child(2)').value).toEqual('Different Cell 1');
97
+ });
98
+ test('should set the autocomplete attribute to off', () => {
99
+ expect(form.querySelectorAll('datalist').length).toEqual(1);
100
+ expect(form.querySelectorAll('datalist option').length).toEqual(2);
101
+ expect(form.querySelector('datalist option:nth-child(1)').value).toEqual('Cell 1');
102
+ expect(form.querySelector('input').getAttribute('autocomplete')).toEqual('off');
103
+ });
104
+ });
105
+ describe('sortTable', () => {
106
+ const table = document.createElement('table');
107
+ table.innerHTML = basicTable;
108
+ const form = document.createElement('form');
109
+ form.innerHTML += `<div><select type="select" name="sort" id="sort" class="form-select" data-sort=""><option value="-1">Sort by</option><option value="high" data-sort="Heading 2" data-order="High,Medium,Low" selected="selected">high to low</option></select></div>`;
110
+ const savedTableBody = table.querySelector('tbody');
111
+ tableModule.addDataAttributes(table);
112
+ tableModule.sortTable(table, form, savedTableBody);
113
+ test('should sort the table from high to low', () => {
114
+ expect(table.querySelector('tbody tr:nth-child(1) td:nth-child(2)').textContent).toEqual('High');
115
+ expect(table.querySelector('tbody tr:nth-child(2) td:nth-child(2)').textContent).toEqual('Medium');
116
+ expect(table.querySelector('tbody tr:nth-child(3) td:nth-child(2)').textContent).toEqual('Low');
117
+ });
118
+ });
119
+ describe('filterTable', () => {
120
+ const table = document.createElement('table');
121
+ table.innerHTML = basicTable;
122
+ const form = document.createElement('form');
123
+ form.innerHTML += `<div><input type="text" name="filter" id="filter" data-filter="Heading 2" value="High" /></div>`;
124
+ tableModule.addDataAttributes(table);
125
+ tableModule.filterTable(table, form, document.createElement('div'));
126
+ test('should filter the table to only show high values', () => {
127
+ expect(table.querySelectorAll('tbody tr.filtered--matched').length).toEqual(1);
128
+ });
129
+ });
130
+ describe('populateDataQueries', () => {
131
+ const table = document.createElement('table');
132
+ table.innerHTML = basicTable;
133
+ const form = document.createElement('form');
134
+ form.innerHTML += `<div><span data-query="total"></span><span data-query="Heading 2 == Low"></span></div>`;
135
+ tableModule.addDataAttributes(table);
136
+ tableModule.populateDataQueries(table, form);
137
+ test('should populate elements with the data-query attribute with the result of the corresponding query', () => {
138
+ expect(form.querySelector('[data-query="total"]').textContent).toEqual('4');
139
+ expect(form.querySelector('[data-query="Heading 2 == Low"]').textContent).toEqual('2');
140
+ });
141
+ });
142
+ describe('formatCell', () => {
143
+ test('should format the text correctly', () => {
144
+ expect(tableModule.formatCell('date', '2023-05-15 12:10:45.000000')).toEqual('15 May 23');
145
+ expect(tableModule.formatCell('capitalise', 'low')).toEqual('Low');
146
+ });
147
+ });
@@ -1,13 +1,12 @@
1
+ @use "components/card.scss";
1
2
  @use "components/nav.scss";
2
3
  @use "components/header.scss";
3
4
  @use "components/testimonial.scss";
4
- @use "components/cardDeck.scss";
5
5
  @use "components/accordion.scss";
6
6
  @use "components/alert";
7
7
  @use "components/carousel.scss";
8
8
  @use "components/property-searchbar.scss";
9
9
  @use "components/tabs.scss";
10
- @use "components/modal.scss";
11
10
  @use "components/charts.scss";
12
11
  @use "components/timeline.scss";
13
12
  @use "components/snapshot.scss";
@@ -13,15 +13,16 @@
13
13
  @use "components/lists.scss";
14
14
  @use "components/tooltips.scss";
15
15
  @use "components/container.scss";
16
- @use "components/tables.scss";
17
- @use "components/links.scss";
16
+ @use "components/table.scss";
17
+ @use "foundations/links.scss";
18
18
  @use "components/buttons";
19
- @use "components/card.scss";
20
19
  @use "components/panel.scss";
20
+ @use "components/dialog.scss";
21
+
22
+ @use "components/pagination.scss";
21
23
 
22
24
  // Bootstrap elements
23
25
  @import "../../node_modules/bootstrap/scss/_transitions.scss";
24
- @import "../../node_modules/bootstrap/scss/_pagination.scss";
25
26
  @import "../../node_modules/bootstrap/scss/_badge.scss";
26
27
 
27
28
  // Helpers
@@ -120,6 +120,22 @@ $utilities: map-merge(
120
120
  "primary": linear-gradient(var(--gradient-direction), var(--colour-primary) 0, transparent 100%),
121
121
  "info": linear-gradient(var(--gradient-direction), var(--colour-info) 0, transparent 100%)
122
122
  )
123
+ ),
124
+ "colour": (
125
+ property: --colour,
126
+ class: colour,
127
+ values:
128
+ (
129
+ "primary": var(--colour-primary),
130
+ "secondary": var(--colour-secondary),
131
+ "info": var(--colour-info),
132
+ "success": var(--colour-success),
133
+ "warning": var(--colour-warning),
134
+ "danger": var(--colour-danger),
135
+ "light": var(--colour-light),
136
+ "dark": var(--colour-dark),
137
+ "admin": var(--colour-admin)
138
+ )
123
139
  )
124
140
  )
125
141
  );
@@ -89,7 +89,7 @@ $dark: #46003c;
89
89
  // Functional/state variables
90
90
  $colour-body: #595959;
91
91
  $colour-muted: #9d9d9d;
92
- $colour-border: #6f6f6f;
92
+ $colour-border: #D8D8D8;
93
93
  $colour-link: $primary;
94
94
  $colour-focus: #000000;
95
95
  $colour-hover: #000000;
@@ -331,7 +331,8 @@ $input-line-height: 1.5;
331
331
  $input-padding-y: 0.75em;
332
332
  $input-padding-x: 1em;
333
333
  $input-border-radius: rem(10);
334
- $input-border-color: var(--colour-border);
334
+ $input-border-color: var(--colour-primary);
335
+ $input-border-width: 2px;
335
336
 
336
337
  // sm
337
338
  $input-height-sm: null;
@@ -357,8 +358,9 @@ $input-group-addon-border-color: var(--colour-border);
357
358
  $form-select-padding-y: $input-padding-y;
358
359
  //$form-select-indicator-padding
359
360
  $form-select-padding-x: #{$input-padding-x};
360
- $form-select-border-color: var(--colour-border);
361
+ $form-select-border-color: var(--colour-primary);
361
362
  $form-select-border-radius: $input-border-radius;
363
+ $form-select-border-width: 2px;
362
364
 
363
365
  // Checkbox
364
366
  $form-check-input-width: 1.5rem;
@@ -369,13 +371,13 @@ $form-check-margin-bottom: #{rem(16)};
369
371
  $form-check-input-border: 1px solid var(--colour-border);
370
372
 
371
373
  $form-check-input-checked-color: $primary;
372
- $form-check-input-checked-bg-color: var(--colour-success);
374
+ $form-check-input-checked-bg-color: var(--colour-info);
373
375
  $form-check-input-checked-border-color: var(--colour-border);
374
376
  $form-check-input-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-checked-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10l3 3l6-6'/></svg>");
375
377
 
376
378
  $form-check-input-indeterminate-color: $primary;
377
- $form-check-input-indeterminate-bg-color: var(--colour-success);
378
- $form-check-input-indeterminate-border-color: var(--colour-success);
379
+ $form-check-input-indeterminate-bg-color: var(--colour-info);
380
+ $form-check-input-indeterminate-border-color: var(--colour-info);
379
381
  $form-check-input-indeterminate-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$form-check-input-indeterminate-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 10h8'/></svg>");
380
382
 
381
383
  $form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$colour-border}'/></svg>");
@@ -403,7 +405,7 @@ $card-cap-bg: transparent;
403
405
  // #endregion card-variables
404
406
 
405
407
  // #region Icons
406
- $icon-blank: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M17 13v6c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293h-11c-0.276 0-0.525-0.111-0.707-0.293s-0.293-0.431-0.293-0.707v-11c0-0.276 0.111-0.525 0.293-0.707s0.431-0.293 0.707-0.293h6c0.552 0 1-0.448 1-1s-0.448-1-1-1h-6c-0.828 0-1.58 0.337-2.121 0.879s-0.879 1.293-0.879 2.121v11c0 0.828 0.337 1.58 0.879 2.121s1.293 0.879 2.121 0.879h11c0.828 0 1.58-0.337 2.121-0.879s0.879-1.293 0.879-2.121v-6c0-0.552-0.448-1-1-1s-1 0.448-1 1zM10.707 14.707l9.293-9.293v3.586c0 0.552 0.448 1 1 1s1-0.448 1-1v-6c0-0.136-0.027-0.265-0.076-0.383s-0.121-0.228-0.216-0.323c-0.001-0.001-0.001-0.001-0.002-0.002-0.092-0.092-0.202-0.166-0.323-0.216-0.118-0.049-0.247-0.076-0.383-0.076h-6c-0.552 0-1 0.448-1 1s0.448 1 1 1h3.586l-9.293 9.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0z' stroke-width='2px'></path></svg>");
408
+ $icon-blank: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='M17 13v6c0 0.276-0.111 0.525-0.293 0.707s-0.431 0.293-0.707 0.293h-11c-0.276 0-0.525-0.111-0.707-0.293s-0.293-0.431-0.293-0.707v-11c0-0.276 0.111-0.525 0.293-0.707s0.431-0.293 0.707-0.293h6c0.552 0 1-0.448 1-1s-0.448-1-1-1h-6c-0.828 0-1.58 0.337-2.121 0.879s-0.879 1.293-0.879 2.121v11c0 0.828 0.337 1.58 0.879 2.121s1.293 0.879 2.121 0.879h11c0.828 0 1.58-0.337 2.121-0.879s0.879-1.293 0.879-2.121v-6c0-0.552-0.448-1-1-1s-1 0.448-1 1zM10.707 14.707l9.293-9.293v3.586c0 0.552 0.448 1 1 1s1-0.448 1-1v-6c0-0.136-0.027-0.265-0.076-0.383s-0.121-0.228-0.216-0.323c-0.001-0.001-0.001-0.001-0.002-0.002-0.092-0.092-0.202-0.166-0.323-0.216-0.118-0.049-0.247-0.076-0.383-0.076h-6c-0.552 0-1 0.448-1 1s0.448 1 1 1h3.586l-9.293 9.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0z' stroke-width='4px'></path></svg>");
407
409
  $icon-sort: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' preserveAspectRatio='none'%3E%3Cpath opacity='.3' d='M51 1l25 23 24 22H1l25-22zm0 100l25-23 24-22H1l25 22z'/%3E%3C/svg%3E");
408
410
  $icon-arrow: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'><path d='M6.5,2l9,9-9,9' style='fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px'/></svg>");
409
411
  $icon-close: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
@@ -425,26 +427,25 @@ $vars: map-merge((
425
427
  // #region pagination
426
428
  // Default
427
429
  $pagination-color: var(--colour-heading);
428
- $pagination-disabled-color: var(--colour-muted);
430
+ $pagination-disabled-color: var(--colour-border);
429
431
  $pagination-bg: transparent;
430
432
  $pagination-border-width: 1px;
431
- $pagination-border-color: var(--colour-border);
433
+ $pagination-border-color: var(--colour-primary);
432
434
 
433
435
  // Hover and focus
434
436
  $pagination-hover-color: var(--colour-heading);
435
- $pagination-hover-bg: var(--colour-muted);
436
- $pagination-hover-border-color: var(--colour-border);
437
- $pagination-focus-color: var(--colour-hover);
438
- $pagination-focus-bg: var(--colour-muted);
437
+ $pagination-hover-bg: var(--colour-info);
438
+ $pagination-hover-border-color: var(--colour-info);
439
+ $pagination-focus-color: var(--colour-heading);
440
+ $pagination-focus-bg: var(--colour-info);
439
441
 
440
442
  // Active
441
- $pagination-active-color: var(--body-bg);
442
- $pagination-active-bg: var(--colour-heading);
443
- $pagination-active-border-color: var(--colour-heading);
444
-
443
+ $pagination-active-color: var(--colour-primary);
444
+ $pagination-active-bg: var(--colour-info);
445
+ $pagination-active-border-color: var(--colour-info);
445
446
  // Disabled
446
447
  $pagination-disabled-bg: $pagination-bg;
447
- $pagination-disabled-border-color: $pagination-border-color;
448
+ $pagination-disabled-border-color: var(--colour-border);
448
449
  // #endregion
449
450
 
450
451
  // #region Accordion
@@ -493,4 +494,17 @@ $zindex-modal-backdrop: var(--index-overlay);
493
494
  $zindex-modal: var(--index-overlay);
494
495
  $zindex-popover: var(--index-above);
495
496
  $zindex-tooltip: var(--index-above);
497
+ // #endregion
498
+
499
+ // #region Table
500
+ $td-mw-px: 120;
501
+ $td-mw: #{rem($td-mw-px)};
502
+ $table-padding-px: 32;
503
+ $table-padding: #{rem($table-padding-px)};
504
+ $table-mh-sm-px: 200;
505
+ $table-mh-sm: #{rem($table-mh-sm-px)};
506
+ $table-mh-md-px: 400;
507
+ $table-mh-md: #{rem($table-mh-md-px)};
508
+ $table-mh-lg-px: 600;
509
+ $table-mh-lg: #{rem($table-mh-lg-px)};
496
510
  // #endregion
@@ -13,7 +13,7 @@ $test_colors: map-merge((
13
13
  "dark": rgba(70, 0, 60, var(--alpha, 1)),
14
14
  "muted-theme": #9d9d9d,
15
15
  "muted": var(--colour-muted-theme),
16
- "border-theme": #6f6f6f,
16
+ "border-theme": #D8D8D8,
17
17
  "border": var(--colour-border-theme),
18
18
  "link-theme": #00313c,
19
19
  "link": var(--colour-link-theme),
@@ -0,0 +1,65 @@
1
+ @use "../_func.scss" as *;
2
+
3
+ .applied-filters {
4
+
5
+ &:not(.applied-filters--compact):not(:empty):before {
6
+ content: "Applied filters";
7
+ font-weight: bold;
8
+ font-size: rem(18);
9
+ line-height: rem(22);
10
+ color: var(--colour-header);
11
+ margin-bottom: rem(16);
12
+ display: block;
13
+ }
14
+
15
+ &:not(:empty) {
16
+ margin-bottom: 1rem;
17
+ }
18
+ }
19
+
20
+ .applied-filters .filter {
21
+
22
+ border: 1px solid var(--colour-border);
23
+ padding: 1rem rem(24) 1rem rem(24);
24
+ background: transparent;
25
+ margin-right: 0.5rem!important;
26
+ margin-bottom: 0.5rem!important;
27
+ line-height: rem(24);
28
+ white-space: nowrap;
29
+
30
+ &:after {
31
+ content: "";
32
+ display: inline-block;
33
+ height: rem(20);
34
+ width: rem(20);
35
+ padding:0;
36
+ margin-left: rem(24);
37
+ margin-bottom: -0.25rem;
38
+ border: none;
39
+ z-index: var(--index-focus);
40
+ background: currentColor;
41
+ mask-image: var(--icon-close);
42
+ mask-size: 100%;
43
+ mask-repeat: no-repeat;
44
+ mask-position: 50% 50%;
45
+ -webkit-mask-image: var(--icon-close);
46
+ -webkit-mask-size: 100%;
47
+ -webkit-mask-repeat: no-repeat;
48
+ -webkit-mask-position: 50% 50%;
49
+ }
50
+ }
51
+
52
+ .applied-filters--compact .filter {
53
+ background-color: var(--colour-light);
54
+ border: none;
55
+ padding: rem(10);
56
+ line-height: rem(16);
57
+ border-radius: rem(5);
58
+
59
+ &:after {
60
+ margin-left: rem(10);
61
+ height: rem(16);
62
+ width: rem(16);
63
+ margin-bottom: -0.1rem;
64
+ }
65
+ }