@3t-transform/threeteeui 0.1.21 → 0.1.23

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 (120) hide show
  1. package/dist/cjs/{index-b8a62ede.js → index-dc6cc829.js} +2 -88
  2. package/dist/cjs/loader.cjs.js +3 -4
  3. package/dist/cjs/tttx-button.cjs.entry.js +24 -24
  4. package/dist/cjs/tttx-filter.cjs.entry.js +152 -152
  5. package/dist/cjs/tttx-form.cjs.entry.js +363 -363
  6. package/dist/cjs/tttx-icon.cjs.entry.js +11 -11
  7. package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +59 -59
  8. package/dist/cjs/tttx-list.cjs.entry.js +43 -43
  9. package/dist/cjs/tttx-loading-spinner.cjs.entry.js +16 -16
  10. package/dist/cjs/tttx-sorter.cjs.entry.js +112 -0
  11. package/dist/cjs/tttx-standalone-input.cjs.entry.js +60 -60
  12. package/dist/cjs/tttx-toolbar.cjs.entry.js +10 -10
  13. package/dist/cjs/tttx.cjs.js +3 -7
  14. package/dist/collection/collection-manifest.json +3 -2
  15. package/dist/collection/components/atoms/tttx-button/tttx-button.js +110 -110
  16. package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +14 -14
  17. package/dist/collection/components/atoms/tttx-icon/tttx-icon.js +62 -62
  18. package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +22 -22
  19. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.js +109 -109
  20. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.js +38 -38
  21. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +67 -67
  22. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +17 -17
  23. package/dist/collection/components/molecules/tttx-filter/tttx-filter.js +325 -325
  24. package/dist/collection/components/molecules/tttx-filter/tttx-filter.stories.js +89 -89
  25. package/dist/collection/components/molecules/tttx-form/lib/setErrorState.js +35 -35
  26. package/dist/collection/components/molecules/tttx-form/lib/validityCheck.js +58 -58
  27. package/dist/collection/components/molecules/tttx-form/tttx-form.js +364 -364
  28. package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +127 -127
  29. package/dist/collection/components/molecules/tttx-list/tttx-list.js +105 -105
  30. package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +43 -43
  31. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.css +108 -0
  32. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.js +224 -0
  33. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.stories.js +49 -0
  34. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +627 -627
  35. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +157 -157
  36. package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.js +44 -44
  37. package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.stories.js +14 -14
  38. package/dist/collection/components/palette.stories.js +7 -7
  39. package/dist/collection/docs/gettingstarted-developer.stories.js +5 -5
  40. package/dist/collection/icons.js +2838 -2838
  41. package/dist/collection/index.js +1 -1
  42. package/dist/collection/shared/domsanitiser.options.js +14 -14
  43. package/dist/components/index.d.ts +1 -9
  44. package/dist/components/index.js +2 -1
  45. package/dist/components/tttx-button.js +48 -48
  46. package/dist/components/tttx-filter.js +184 -184
  47. package/dist/components/tttx-form.js +380 -380
  48. package/dist/components/tttx-icon2.js +28 -28
  49. package/dist/components/tttx-keyvalue-block.js +76 -76
  50. package/dist/components/tttx-list.js +65 -65
  51. package/dist/components/tttx-loading-spinner.js +33 -33
  52. package/dist/components/tttx-sorter.d.ts +11 -0
  53. package/dist/components/tttx-sorter.js +141 -0
  54. package/dist/components/tttx-standalone-input.js +107 -107
  55. package/dist/components/tttx-toolbar.js +26 -26
  56. package/dist/esm/{index-e888a5f4.js → index-86faeaab.js} +3 -88
  57. package/dist/esm/loader.js +3 -4
  58. package/dist/esm/polyfills/core-js.js +0 -0
  59. package/dist/esm/polyfills/css-shim.js +1 -1
  60. package/dist/esm/polyfills/dom.js +0 -0
  61. package/dist/esm/polyfills/es5-html-element.js +0 -0
  62. package/dist/esm/polyfills/index.js +0 -0
  63. package/dist/esm/polyfills/system.js +0 -0
  64. package/dist/esm/tttx-button.entry.js +24 -24
  65. package/dist/esm/tttx-filter.entry.js +152 -152
  66. package/dist/esm/tttx-form.entry.js +363 -363
  67. package/dist/esm/tttx-icon.entry.js +11 -11
  68. package/dist/esm/tttx-keyvalue-block.entry.js +59 -59
  69. package/dist/esm/tttx-list.entry.js +43 -43
  70. package/dist/esm/tttx-loading-spinner.entry.js +16 -16
  71. package/dist/esm/tttx-sorter.entry.js +108 -0
  72. package/dist/esm/tttx-standalone-input.entry.js +60 -60
  73. package/dist/esm/tttx-toolbar.entry.js +10 -10
  74. package/dist/esm/tttx.js +3 -4
  75. package/dist/tttx/p-12fc0b16.entry.js +3 -0
  76. package/dist/tttx/p-52a47b7c.js +2 -0
  77. package/dist/tttx/{p-41f5b296.entry.js → p-603f6ebe.entry.js} +1 -1
  78. package/dist/tttx/{p-e145951b.entry.js → p-72b4c98a.entry.js} +1 -1
  79. package/dist/tttx/{p-043f9b8a.entry.js → p-8f3badad.entry.js} +1 -1
  80. package/dist/tttx/{p-4cf3e1e0.entry.js → p-ae48fe5a.entry.js} +1 -1
  81. package/dist/tttx/{p-01f4628e.entry.js → p-bdb054b2.entry.js} +1 -1
  82. package/dist/tttx/{p-dc5c356b.entry.js → p-c72d1a03.entry.js} +1 -1
  83. package/dist/tttx/{p-96bbf1ed.entry.js → p-e25d5fe2.entry.js} +1 -1
  84. package/dist/tttx/p-f19194f8.entry.js +1 -0
  85. package/dist/tttx/{p-b3a03986.entry.js → p-f1d7eb35.entry.js} +1 -1
  86. package/dist/tttx/tttx.esm.js +1 -1
  87. package/dist/types/components/atoms/tttx-button/tttx-button.d.ts +10 -10
  88. package/dist/types/components/atoms/tttx-button/tttx-button.stories.d.ts +10 -10
  89. package/dist/types/components/atoms/tttx-icon/tttx-icon.d.ts +5 -5
  90. package/dist/types/components/atoms/tttx-icon/tttx-icon.stories.d.ts +20 -20
  91. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.d.ts +7 -7
  92. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.d.ts +9 -9
  93. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.d.ts +6 -6
  94. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.d.ts +17 -17
  95. package/dist/types/components/molecules/tttx-filter/tttx-filter.d.ts +37 -37
  96. package/dist/types/components/molecules/tttx-filter/tttx-filter.stories.d.ts +43 -43
  97. package/dist/types/components/molecules/tttx-form/lib/setErrorState.d.ts +13 -13
  98. package/dist/types/components/molecules/tttx-form/lib/validityCheck.d.ts +17 -17
  99. package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +114 -114
  100. package/dist/types/components/molecules/tttx-form/tttx-form.stories.d.ts +13 -13
  101. package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +11 -11
  102. package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +14 -14
  103. package/dist/types/components/molecules/tttx-sorter/interfaces.d.ts +9 -0
  104. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.d.ts +19 -0
  105. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.stories.d.ts +30 -0
  106. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +56 -56
  107. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +123 -123
  108. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.d.ts +4 -4
  109. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.stories.d.ts +13 -13
  110. package/dist/types/components/palette.stories.d.ts +6 -6
  111. package/dist/types/components.d.ts +27 -0
  112. package/dist/types/docs/gettingstarted-developer.stories.d.ts +5 -5
  113. package/dist/types/icons.d.ts +2 -2
  114. package/dist/types/index.d.ts +1 -1
  115. package/dist/types/shared/domsanitiser.options.d.ts +10 -10
  116. package/dist/types/stencil-public-runtime.d.ts +3 -59
  117. package/loader/index.d.ts +0 -9
  118. package/package.json +1 -1
  119. package/dist/tttx/p-6dff6b5a.entry.js +0 -3
  120. package/dist/tttx/p-f764ffc4.js +0 -2
@@ -1,127 +1,127 @@
1
- import { withActions } from '@storybook/addon-actions/decorator';
2
- export default {
3
- title: 'molecules/Form',
4
- component: 'tttx-form',
5
- parameters: {
6
- actions: {
7
- handles: ['dataSubmitted', 'dataChanged'],
8
- },
9
- },
10
- decorators: [withActions],
11
- };
12
- const formSchema = {
13
- properties: {
14
- title: {
15
- type: 'string',
16
- format: 'string',
17
- form: {
18
- type: 'text',
19
- placeholder: 'Mr, Mrs, Dr, Hon Rev',
20
- label: 'Title',
21
- },
22
- },
23
- forename: {
24
- type: 'string',
25
- format: 'string',
26
- form: {
27
- type: 'text',
28
- placeholder: 'John',
29
- label: 'Forename',
30
- validation: {
31
- required: {
32
- message: 'Please enter your forename',
33
- },
34
- },
35
- },
36
- },
37
- surname: {
38
- type: 'string',
39
- format: 'string',
40
- form: {
41
- type: 'text',
42
- placeholder: 'Doe',
43
- label: 'Surname',
44
- validation: {
45
- required: {
46
- message: 'Please enter your surname',
47
- },
48
- },
49
- },
50
- },
51
- postcode: {
52
- type: 'string',
53
- format: 'string',
54
- form: {
55
- type: 'text',
56
- placeholder: 'AB10',
57
- label: 'Start of postcode',
58
- validation: {
59
- required: {
60
- message: 'Please enter the beginning of your postcode',
61
- },
62
- pattern: {
63
- pattern: '^([A-Za-z][0-9])$|^([A-Za-z][0-9]{2})$|^([A-Za-z]{2}[0-9])$|^([A-Za-z]{2}[0-9]{2})$|^([A-Za-z][0-9][A-Za-z])$|^([A-Za-z]{2}[0-9][A-Za-z])$|^(GIR|BF|BX|XX)$',
64
- message: 'Please enter the first half of your postcode. EG: ZZ99',
65
- },
66
- maxlength: 4,
67
- },
68
- },
69
- },
70
- age: {
71
- type: 'number',
72
- format: 'number',
73
- form: {
74
- type: 'number',
75
- placeholder: '',
76
- label: 'Age',
77
- validation: {
78
- required: {
79
- message: 'Please enter your age',
80
- },
81
- badInput: {
82
- message: 'Please enter a number',
83
- },
84
- },
85
- },
86
- },
87
- dob: {
88
- type: 'string',
89
- format: 'date-time',
90
- form: {
91
- type: 'date',
92
- placeholder: '',
93
- label: 'Date of birth',
94
- validation: {
95
- required: {
96
- message: 'Please enter your date of birth',
97
- },
98
- minmax: {
99
- min: '1900-01-01',
100
- max: '2100-12-31',
101
- message: 'Please enter a date between 1900 and 2100',
102
- },
103
- },
104
- },
105
- },
106
- },
107
- };
108
- const jsonFormSchema = JSON.stringify(formSchema);
109
- export const ExampleFormFromJSON = () => `<tttx-form formSchema='${jsonFormSchema}'></tttx-form>`;
110
- const singleFormItemSchema = {
111
- properties: {
112
- input: {
113
- type: 'string',
114
- format: 'string',
115
- form: {
116
- type: 'text',
117
- label: 'Input Field',
118
- validation: {
119
- required: {
120
- message: 'Please enter something'
121
- }
122
- }
123
- }
124
- }
125
- }
126
- };
127
- export const SingleFormItem = () => `<tttx-form formSchema='${JSON.stringify(singleFormItemSchema)}'></tttx-form>`;
1
+ import { withActions } from '@storybook/addon-actions/decorator';
2
+ export default {
3
+ title: 'molecules/Form',
4
+ component: 'tttx-form',
5
+ parameters: {
6
+ actions: {
7
+ handles: ['dataSubmitted', 'dataChanged'],
8
+ },
9
+ },
10
+ decorators: [withActions],
11
+ };
12
+ const formSchema = {
13
+ properties: {
14
+ title: {
15
+ type: 'string',
16
+ format: 'string',
17
+ form: {
18
+ type: 'text',
19
+ placeholder: 'Mr, Mrs, Dr, Hon Rev',
20
+ label: 'Title',
21
+ },
22
+ },
23
+ forename: {
24
+ type: 'string',
25
+ format: 'string',
26
+ form: {
27
+ type: 'text',
28
+ placeholder: 'John',
29
+ label: 'Forename',
30
+ validation: {
31
+ required: {
32
+ message: 'Please enter your forename',
33
+ },
34
+ },
35
+ },
36
+ },
37
+ surname: {
38
+ type: 'string',
39
+ format: 'string',
40
+ form: {
41
+ type: 'text',
42
+ placeholder: 'Doe',
43
+ label: 'Surname',
44
+ validation: {
45
+ required: {
46
+ message: 'Please enter your surname',
47
+ },
48
+ },
49
+ },
50
+ },
51
+ postcode: {
52
+ type: 'string',
53
+ format: 'string',
54
+ form: {
55
+ type: 'text',
56
+ placeholder: 'AB10',
57
+ label: 'Start of postcode',
58
+ validation: {
59
+ required: {
60
+ message: 'Please enter the beginning of your postcode',
61
+ },
62
+ pattern: {
63
+ pattern: '^([A-Za-z][0-9])$|^([A-Za-z][0-9]{2})$|^([A-Za-z]{2}[0-9])$|^([A-Za-z]{2}[0-9]{2})$|^([A-Za-z][0-9][A-Za-z])$|^([A-Za-z]{2}[0-9][A-Za-z])$|^(GIR|BF|BX|XX)$',
64
+ message: 'Please enter the first half of your postcode. EG: ZZ99',
65
+ },
66
+ maxlength: 4,
67
+ },
68
+ },
69
+ },
70
+ age: {
71
+ type: 'number',
72
+ format: 'number',
73
+ form: {
74
+ type: 'number',
75
+ placeholder: '',
76
+ label: 'Age',
77
+ validation: {
78
+ required: {
79
+ message: 'Please enter your age',
80
+ },
81
+ badInput: {
82
+ message: 'Please enter a number',
83
+ },
84
+ },
85
+ },
86
+ },
87
+ dob: {
88
+ type: 'string',
89
+ format: 'date-time',
90
+ form: {
91
+ type: 'date',
92
+ placeholder: '',
93
+ label: 'Date of birth',
94
+ validation: {
95
+ required: {
96
+ message: 'Please enter your date of birth',
97
+ },
98
+ minmax: {
99
+ min: '1900-01-01',
100
+ max: '2100-12-31',
101
+ message: 'Please enter a date between 1900 and 2100',
102
+ },
103
+ },
104
+ },
105
+ },
106
+ },
107
+ };
108
+ const jsonFormSchema = JSON.stringify(formSchema);
109
+ export const ExampleFormFromJSON = () => `<tttx-form formSchema='${jsonFormSchema}'></tttx-form>`;
110
+ const singleFormItemSchema = {
111
+ properties: {
112
+ input: {
113
+ type: 'string',
114
+ format: 'string',
115
+ form: {
116
+ type: 'text',
117
+ label: 'Input Field',
118
+ validation: {
119
+ required: {
120
+ message: 'Please enter something'
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ };
127
+ export const SingleFormItem = () => `<tttx-form formSchema='${JSON.stringify(singleFormItemSchema)}'></tttx-form>`;
@@ -1,105 +1,105 @@
1
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import { h } from '@stencil/core';
3
- import * as DOMPurify from 'dompurify';
4
- import domSanitiserOptions from '../../../shared/domsanitiser.options';
5
- export class TttxList {
6
- constructor() {
7
- this.data = undefined;
8
- this.name = undefined;
9
- }
10
- onRowClickHandler(item) {
11
- if (!item.clickable || !item.rowData)
12
- return;
13
- this.rowClick.emit({ name: this.name, data: item.rowData });
14
- }
15
- renderListItem(item) {
16
- const cleanHTML = DOMPurify.sanitize(item.element, domSanitiserOptions);
17
- return (h("li", { class: `item ${item.clickable ? 'clickable' : ''}`, onClick: () => {
18
- this.onRowClickHandler(item);
19
- } }, item.element && h("span", { class: "item-content", innerHTML: cleanHTML }), item.icon && h("tttx-icon", { class: "align-right ", icon: item.icon })));
20
- }
21
- render() {
22
- if (!this.data)
23
- return;
24
- if (typeof this.data === 'string') {
25
- this._data = JSON.parse(this.data);
26
- }
27
- else {
28
- this._data = this.data;
29
- }
30
- return h("ul", { class: "list" }, this._data.map((item) => this.renderListItem(item)));
31
- }
32
- static get is() { return "tttx-list"; }
33
- static get encapsulation() { return "shadow"; }
34
- static get originalStyleUrls() {
35
- return {
36
- "$": ["tttx-list.scss"]
37
- };
38
- }
39
- static get styleUrls() {
40
- return {
41
- "$": ["tttx-list.css"]
42
- };
43
- }
44
- static get properties() {
45
- return {
46
- "data": {
47
- "type": "string",
48
- "mutable": true,
49
- "complexType": {
50
- "original": "string | ListItem[]",
51
- "resolved": "ListItem[] | string",
52
- "references": {
53
- "ListItem": {
54
- "location": "import",
55
- "path": "./interfaces"
56
- }
57
- }
58
- },
59
- "required": false,
60
- "optional": false,
61
- "docs": {
62
- "tags": [],
63
- "text": ""
64
- },
65
- "attribute": "data",
66
- "reflect": false
67
- },
68
- "name": {
69
- "type": "string",
70
- "mutable": false,
71
- "complexType": {
72
- "original": "string",
73
- "resolved": "string",
74
- "references": {}
75
- },
76
- "required": false,
77
- "optional": false,
78
- "docs": {
79
- "tags": [],
80
- "text": ""
81
- },
82
- "attribute": "name",
83
- "reflect": false
84
- }
85
- };
86
- }
87
- static get events() {
88
- return [{
89
- "method": "rowClick",
90
- "name": "listRowClick",
91
- "bubbles": true,
92
- "cancelable": true,
93
- "composed": true,
94
- "docs": {
95
- "tags": [],
96
- "text": ""
97
- },
98
- "complexType": {
99
- "original": "any",
100
- "resolved": "any",
101
- "references": {}
102
- }
103
- }];
104
- }
105
- }
1
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
+ import { h } from '@stencil/core';
3
+ import * as DOMPurify from 'dompurify';
4
+ import domSanitiserOptions from '../../../shared/domsanitiser.options';
5
+ export class TttxList {
6
+ constructor() {
7
+ this.data = undefined;
8
+ this.name = undefined;
9
+ }
10
+ onRowClickHandler(item) {
11
+ if (!item.clickable || !item.rowData)
12
+ return;
13
+ this.rowClick.emit({ name: this.name, data: item.rowData });
14
+ }
15
+ renderListItem(item) {
16
+ const cleanHTML = DOMPurify.sanitize(item.element, domSanitiserOptions);
17
+ return (h("li", { class: `item ${item.clickable ? 'clickable' : ''}`, onClick: () => {
18
+ this.onRowClickHandler(item);
19
+ } }, item.element && h("span", { class: "item-content", innerHTML: cleanHTML }), item.icon && h("tttx-icon", { class: "align-right ", icon: item.icon })));
20
+ }
21
+ render() {
22
+ if (!this.data)
23
+ return;
24
+ if (typeof this.data === 'string') {
25
+ this._data = JSON.parse(this.data);
26
+ }
27
+ else {
28
+ this._data = this.data;
29
+ }
30
+ return h("ul", { class: "list" }, this._data.map((item) => this.renderListItem(item)));
31
+ }
32
+ static get is() { return "tttx-list"; }
33
+ static get encapsulation() { return "shadow"; }
34
+ static get originalStyleUrls() {
35
+ return {
36
+ "$": ["tttx-list.scss"]
37
+ };
38
+ }
39
+ static get styleUrls() {
40
+ return {
41
+ "$": ["tttx-list.css"]
42
+ };
43
+ }
44
+ static get properties() {
45
+ return {
46
+ "data": {
47
+ "type": "string",
48
+ "mutable": true,
49
+ "complexType": {
50
+ "original": "string | ListItem[]",
51
+ "resolved": "ListItem[] | string",
52
+ "references": {
53
+ "ListItem": {
54
+ "location": "import",
55
+ "path": "./interfaces"
56
+ }
57
+ }
58
+ },
59
+ "required": false,
60
+ "optional": false,
61
+ "docs": {
62
+ "tags": [],
63
+ "text": ""
64
+ },
65
+ "attribute": "data",
66
+ "reflect": false
67
+ },
68
+ "name": {
69
+ "type": "string",
70
+ "mutable": false,
71
+ "complexType": {
72
+ "original": "string",
73
+ "resolved": "string",
74
+ "references": {}
75
+ },
76
+ "required": false,
77
+ "optional": false,
78
+ "docs": {
79
+ "tags": [],
80
+ "text": ""
81
+ },
82
+ "attribute": "name",
83
+ "reflect": false
84
+ }
85
+ };
86
+ }
87
+ static get events() {
88
+ return [{
89
+ "method": "rowClick",
90
+ "name": "listRowClick",
91
+ "bubbles": true,
92
+ "cancelable": true,
93
+ "composed": true,
94
+ "docs": {
95
+ "tags": [],
96
+ "text": ""
97
+ },
98
+ "complexType": {
99
+ "original": "any",
100
+ "resolved": "any",
101
+ "references": {}
102
+ }
103
+ }];
104
+ }
105
+ }
@@ -1,30 +1,30 @@
1
- import { withActions } from '@storybook/addon-actions/decorator';
2
- export default {
3
- title: 'molecules/List',
4
- component: 'tttx-list',
5
- parameters: {
6
- actions: {
7
- handles: ['listRowClick'],
8
- },
9
- },
10
- decorators: [withActions],
11
- };
1
+ import { withActions } from '@storybook/addon-actions/decorator';
2
+ export default {
3
+ title: 'molecules/List',
4
+ component: 'tttx-list',
5
+ parameters: {
6
+ actions: {
7
+ handles: ['listRowClick'],
8
+ },
9
+ },
10
+ decorators: [withActions],
11
+ };
12
12
  const TemplateStringList = ({ data }) => `
13
13
  <tttx-list
14
14
  data='${JSON.stringify(data)}'
15
15
  id='list'
16
16
  name='stringList'
17
17
  ></tttx-list>
18
- `;
19
- export const BasicStringList = TemplateStringList.bind({});
20
- BasicStringList.args = {
21
- data: [
22
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="green" /></span> Demulon 1,000,000' },
23
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="green" /></span> Patrick' },
24
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="orange" /></span> Lee' },
25
- { element: '<span><tttx-icon icon="egg" color="red" /></span> Ben' },
26
- ],
27
- };
18
+ `;
19
+ export const BasicStringList = TemplateStringList.bind({});
20
+ BasicStringList.args = {
21
+ data: [
22
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="green" /></span> Demulon 1,000,000' },
23
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="green" /></span> Patrick' },
24
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="orange" /></span> Lee' },
25
+ { element: '<span><tttx-icon icon="egg" color="red" /></span> Ben' },
26
+ ],
27
+ };
28
28
  const TemplateObjectList = ({ data }) => `
29
29
  <tttx-list
30
30
  id='objectList'
@@ -36,16 +36,16 @@ const TemplateObjectList = ({ data }) => `
36
36
  }
37
37
  objectList.data = ${JSON.stringify(data)};
38
38
  </script>
39
- `;
40
- export const BasicObjectList = TemplateObjectList.bind({});
41
- BasicObjectList.args = {
42
- data: [
43
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Demulon 1,000,000' },
44
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="red" /></span> Patrick' },
45
- { icon: 'chevron_right', element: '<span><tttx-icon icon="add" /></span> Lee' },
46
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Ben' },
47
- ],
48
- };
39
+ `;
40
+ export const BasicObjectList = TemplateObjectList.bind({});
41
+ BasicObjectList.args = {
42
+ data: [
43
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Demulon 1,000,000' },
44
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="red" /></span> Patrick' },
45
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="add" /></span> Lee' },
46
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Ben' },
47
+ ],
48
+ };
49
49
  const TemplateClickableList = ({ data }) => `
50
50
  <tttx-list
51
51
  id='clickableList'
@@ -57,15 +57,15 @@ const TemplateClickableList = ({ data }) => `
57
57
  }
58
58
  clickableList.data = ${JSON.stringify(data)};
59
59
  </script>
60
- `;
61
- export const BasicClickableList = TemplateClickableList.bind({});
62
- BasicClickableList.args = {
63
- data: [
64
- { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Demulon 1,000,000', rowData: '[{ "name": "Demulon 1,000,000" }]' },
65
- { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="red" /></span> Emma', rowData: [{ name: 'Emma' }] },
66
- { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="green" /></span> Eulogio', rowData: 'Eulogio' },
67
- { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="red" /></span> Patrick' },
68
- { clickable: false, icon: 'chevron_right', element: '<span><tttx-icon icon="add" /></span> Lee ' },
69
- { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Ben' },
70
- ],
71
- };
60
+ `;
61
+ export const BasicClickableList = TemplateClickableList.bind({});
62
+ BasicClickableList.args = {
63
+ data: [
64
+ { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Demulon 1,000,000', rowData: '[{ "name": "Demulon 1,000,000" }]' },
65
+ { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="red" /></span> Emma', rowData: [{ name: 'Emma' }] },
66
+ { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="green" /></span> Eulogio', rowData: 'Eulogio' },
67
+ { clickable: true, icon: 'chevron_right', element: '<span><tttx-icon icon="egg" color="red" /></span> Patrick' },
68
+ { clickable: false, icon: 'chevron_right', element: '<span><tttx-icon icon="add" /></span> Lee ' },
69
+ { icon: 'chevron_right', element: '<span><tttx-icon icon="egg" /></span> Ben' },
70
+ ],
71
+ };
@@ -0,0 +1,108 @@
1
+ .material-symbols-rounded {
2
+ font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
3
+ }
4
+
5
+ .sorter-container {
6
+ display: flex;
7
+ flex-direction: row;
8
+ position: relative;
9
+ border: 1px solid #d5d5d5;
10
+ border-radius: 4px;
11
+ font-weight: 400;
12
+ }
13
+ @media (max-width: 475px) {
14
+ .sorter-container {
15
+ width: 68px;
16
+ }
17
+ }
18
+ .sorter-container .arrow-toggle-button {
19
+ display: inline-flex;
20
+ justify-content: center;
21
+ align-items: center;
22
+ flex-direction: column;
23
+ background-color: white;
24
+ border: none;
25
+ border-bottom-left-radius: 4px;
26
+ border-top-left-radius: 4px;
27
+ }
28
+ .sorter-container .arrow-toggle-button .hydrated {
29
+ display: flex;
30
+ justify-content: center;
31
+ align-items: center;
32
+ }
33
+ .sorter-container .arrow-toggle-button span {
34
+ display: block;
35
+ margin: auto;
36
+ line-height: 16px;
37
+ }
38
+ .sorter-container .arrow-toggle-button .material-symbols-rounded {
39
+ color: #212121;
40
+ }
41
+ .sorter-container .dropdown-selector {
42
+ display: inline-flex;
43
+ position: relative;
44
+ flex-grow: 1;
45
+ }
46
+ .sorter-container .dropdown-selector .dropdown-selector-button {
47
+ display: inline-flex;
48
+ flex-direction: row;
49
+ gap: 4px;
50
+ padding-right: 4px;
51
+ align-items: center;
52
+ color: #212121;
53
+ box-sizing: border-box;
54
+ width: 100%;
55
+ }
56
+ @media (max-width: 475px) {
57
+ .sorter-container .dropdown-selector .dropdown-selector-button .dropdown-selector-text {
58
+ display: none;
59
+ }
60
+ }
61
+ .sorter-container .dropdown-selector .dropdown-selector-chevron {
62
+ display: inline-flex;
63
+ margin-left: auto;
64
+ right: 0;
65
+ top: 0;
66
+ flex-direction: row;
67
+ align-items: center;
68
+ height: 36px;
69
+ }
70
+ .sorter-container .dropdown-selector .dropdown-selector-chevron .hydrated {
71
+ height: 24px;
72
+ }
73
+ .sorter-container .dropdown-options-list {
74
+ position: absolute;
75
+ top: 36px;
76
+ left: 0;
77
+ z-index: 1;
78
+ width: 100%;
79
+ line-height: 21px;
80
+ font-size: 16px;
81
+ border-radius: 4px;
82
+ padding-top: 8px;
83
+ padding-bottom: 7px;
84
+ box-shadow: 0px 1px 5px #1111114D;
85
+ box-sizing: border-box;
86
+ }
87
+ @media (max-width: 475px) {
88
+ .sorter-container .dropdown-options-list {
89
+ width: 220px;
90
+ padding-top: 8px;
91
+ }
92
+ }
93
+ .sorter-container .dropdown-options-list .dropdown-option {
94
+ padding: 8px 16px;
95
+ font-size: 16px;
96
+ line-height: 21px;
97
+ }
98
+ .sorter-container .dropdown-options-list .dropdown-option:hover, .sorter-container .dropdown-options-list .dropdown-option:focus {
99
+ background-color: #e7f1f9;
100
+ }
101
+ .sorter-container.--expanded {
102
+ border-color: #1579c6;
103
+ }
104
+ @media (max-width: 475px) {
105
+ .sorter-container.--expanded {
106
+ border: none;
107
+ }
108
+ }