@3t-transform/threeteeui 0.1.37 → 0.1.42

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 (155) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  2. package/dist/cjs/css-shim-211819bc.js +6 -0
  3. package/dist/cjs/dom-9deb26c8.js +75 -0
  4. package/dist/cjs/domsanitiser.options-277161b9.js +1667 -0
  5. package/dist/cjs/domsanitiser.options-3f1501b5.js +1697 -0
  6. package/dist/cjs/index-39a867c5.js +3298 -0
  7. package/dist/cjs/{index-457ca775.js → index-76f14107.js} +2 -88
  8. package/dist/cjs/loader.cjs.js +18 -3
  9. package/dist/cjs/shadow-css-bf3843d2.js +389 -0
  10. package/dist/cjs/tttx-button.cjs.entry.js +25 -25
  11. package/dist/cjs/tttx-filter.cjs.entry.js +159 -159
  12. package/dist/cjs/tttx-form.cjs.entry.js +459 -373
  13. package/dist/cjs/tttx-icon.cjs.entry.js +11 -11
  14. package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +59 -59
  15. package/dist/cjs/tttx-list.cjs.entry.js +32 -1694
  16. package/dist/cjs/tttx-loading-spinner.cjs.entry.js +16 -16
  17. package/dist/cjs/tttx-sorter.cjs.entry.js +102 -102
  18. package/dist/cjs/tttx-standalone-input.cjs.entry.js +79 -79
  19. package/dist/cjs/tttx-toolbar.cjs.entry.js +10 -10
  20. package/dist/cjs/tttx.cjs.js +116 -8
  21. package/dist/collection/collection-manifest.json +2 -2
  22. package/dist/collection/components/atoms/tttx-button/tttx-button.css +4 -4
  23. package/dist/collection/components/atoms/tttx-button/tttx-button.js +110 -110
  24. package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +14 -14
  25. package/dist/collection/components/atoms/tttx-icon/tttx-icon.js +62 -62
  26. package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +22 -22
  27. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.js +109 -109
  28. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.js +38 -38
  29. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +67 -67
  30. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +17 -17
  31. package/dist/collection/components/molecules/tttx-filter/tttx-filter.js +334 -334
  32. package/dist/collection/components/molecules/tttx-filter/tttx-filter.stories.js +62 -62
  33. package/dist/collection/components/molecules/tttx-form/lib/setErrorState.js +37 -37
  34. package/dist/collection/components/molecules/tttx-form/lib/validityCheck.js +61 -58
  35. package/dist/collection/components/molecules/tttx-form/tttx-form.css +98 -2
  36. package/dist/collection/components/molecules/tttx-form/tttx-form.js +479 -393
  37. package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +274 -218
  38. package/dist/collection/components/molecules/tttx-list/tttx-list.js +105 -105
  39. package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +43 -43
  40. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.js +224 -224
  41. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.stories.js +42 -42
  42. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +759 -759
  43. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +172 -172
  44. package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.js +44 -44
  45. package/dist/collection/components/molecules/tttx-toolbar/tttx-toolbar.stories.js +14 -14
  46. package/dist/collection/components/palette.stories.js +7 -7
  47. package/dist/collection/docs/gettingstarted-developer.stories.js +5 -5
  48. package/dist/collection/icons.js +2838 -2838
  49. package/dist/collection/index.js +1 -1
  50. package/dist/collection/shared/domsanitiser.options.js +14 -14
  51. package/dist/components/domsanitiser.options.js +1694 -0
  52. package/dist/components/index.d.ts +0 -9
  53. package/dist/components/index.js +5 -1
  54. package/dist/components/tttx-button.js +49 -49
  55. package/dist/components/tttx-filter.js +191 -191
  56. package/dist/components/tttx-form.js +477 -391
  57. package/dist/components/tttx-icon2.js +28 -28
  58. package/dist/components/tttx-keyvalue-block.js +76 -76
  59. package/dist/components/tttx-list.js +54 -1716
  60. package/dist/components/tttx-loading-spinner.js +33 -33
  61. package/dist/components/tttx-sorter.js +130 -130
  62. package/dist/components/tttx-standalone-input.js +130 -130
  63. package/dist/components/tttx-toolbar.js +26 -26
  64. package/dist/esm/app-globals-0f993ce5.js +3 -0
  65. package/dist/esm/css-shim-9d54a2f2.js +4 -0
  66. package/dist/esm/dom-6be6f662.js +73 -0
  67. package/dist/esm/domsanitiser.options-6f2878c8.js +1694 -0
  68. package/dist/esm/domsanitiser.options-cc420431.js +1664 -0
  69. package/dist/esm/{index-d784fb3e.js → index-9cde46a5.js} +3 -88
  70. package/dist/esm/index-e3e64631.js +3262 -0
  71. package/dist/esm/loader.js +18 -3
  72. package/dist/esm/polyfills/core-js.js +0 -0
  73. package/dist/esm/polyfills/css-shim.js +1 -1
  74. package/dist/esm/polyfills/dom.js +0 -0
  75. package/dist/esm/polyfills/es5-html-element.js +0 -0
  76. package/dist/esm/polyfills/index.js +0 -0
  77. package/dist/esm/polyfills/system.js +0 -0
  78. package/dist/esm/shadow-css-ed4599f8.js +387 -0
  79. package/dist/esm/tttx-button.entry.js +25 -25
  80. package/dist/esm/tttx-filter.entry.js +159 -159
  81. package/dist/esm/tttx-form.entry.js +459 -373
  82. package/dist/esm/tttx-icon.entry.js +11 -11
  83. package/dist/esm/tttx-keyvalue-block.entry.js +59 -59
  84. package/dist/esm/tttx-list.entry.js +32 -1694
  85. package/dist/esm/tttx-loading-spinner.entry.js +16 -16
  86. package/dist/esm/tttx-sorter.entry.js +102 -102
  87. package/dist/esm/tttx-standalone-input.entry.js +79 -79
  88. package/dist/esm/tttx-toolbar.entry.js +10 -10
  89. package/dist/esm/tttx.js +116 -5
  90. package/dist/tttx/app-globals-0f993ce5.js +3 -0
  91. package/dist/tttx/css-shim-9d54a2f2.js +4 -0
  92. package/dist/tttx/dom-6be6f662.js +73 -0
  93. package/dist/tttx/domsanitiser.options-6f2878c8.js +1694 -0
  94. package/dist/tttx/index-e3e64631.js +3262 -0
  95. package/dist/tttx/index.esm.js +1 -0
  96. package/dist/tttx/{p-400868f1.entry.js → p-3b1be372.entry.js} +1 -1
  97. package/dist/tttx/p-4e637d50.entry.js +1 -0
  98. package/dist/tttx/{p-563605b2.entry.js → p-561224f5.entry.js} +1 -1
  99. package/dist/tttx/{p-b720c4ad.entry.js → p-9f1e9cc1.entry.js} +1 -1
  100. package/dist/tttx/{p-798a098a.entry.js → p-aef96333.entry.js} +1 -1
  101. package/dist/tttx/p-b4290a5b.js +3 -0
  102. package/dist/tttx/p-bd1edaed.entry.js +1 -0
  103. package/dist/tttx/p-d0ff9ad0.entry.js +1 -0
  104. package/dist/tttx/{p-cac26a1b.entry.js → p-d2f1aa8e.entry.js} +1 -1
  105. package/dist/tttx/p-db059a69.js +2 -0
  106. package/dist/tttx/p-dc2a37b0.entry.js +1 -0
  107. package/dist/tttx/{p-ab6ce9f6.entry.js → p-e53c7f9d.entry.js} +1 -1
  108. package/dist/tttx/{p-92cade7f.entry.js → p-f885f17a.entry.js} +1 -1
  109. package/dist/tttx/shadow-css-ed4599f8.js +387 -0
  110. package/dist/tttx/tttx-button.entry.js +30 -0
  111. package/dist/tttx/tttx-filter.entry.js +165 -0
  112. package/dist/tttx/tttx-form.entry.js +468 -0
  113. package/dist/tttx/tttx-icon.entry.js +17 -0
  114. package/dist/tttx/tttx-keyvalue-block.entry.js +65 -0
  115. package/dist/tttx/tttx-list.entry.js +38 -0
  116. package/dist/tttx/tttx-loading-spinner.entry.js +22 -0
  117. package/dist/tttx/tttx-sorter.entry.js +108 -0
  118. package/dist/tttx/tttx-standalone-input.entry.js +85 -0
  119. package/dist/tttx/tttx-toolbar.entry.js +16 -0
  120. package/dist/tttx/tttx.esm.js +129 -1
  121. package/dist/types/components/atoms/tttx-button/tttx-button.d.ts +10 -10
  122. package/dist/types/components/atoms/tttx-button/tttx-button.stories.d.ts +10 -10
  123. package/dist/types/components/atoms/tttx-icon/tttx-icon.d.ts +5 -5
  124. package/dist/types/components/atoms/tttx-icon/tttx-icon.stories.d.ts +20 -20
  125. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.d.ts +7 -7
  126. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.d.ts +9 -9
  127. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.d.ts +6 -6
  128. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.d.ts +17 -17
  129. package/dist/types/components/molecules/tttx-filter/tttx-filter.d.ts +39 -39
  130. package/dist/types/components/molecules/tttx-filter/tttx-filter.stories.d.ts +68 -68
  131. package/dist/types/components/molecules/tttx-form/lib/setErrorState.d.ts +13 -13
  132. package/dist/types/components/molecules/tttx-form/lib/validityCheck.d.ts +17 -17
  133. package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +133 -111
  134. package/dist/types/components/molecules/tttx-form/tttx-form.stories.d.ts +278 -13
  135. package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +11 -11
  136. package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +14 -14
  137. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.d.ts +19 -19
  138. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.stories.d.ts +30 -30
  139. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +69 -69
  140. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +143 -143
  141. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.d.ts +4 -4
  142. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.stories.d.ts +13 -13
  143. package/dist/types/components/palette.stories.d.ts +6 -6
  144. package/dist/types/components.d.ts +1 -1
  145. package/dist/types/docs/gettingstarted-developer.stories.d.ts +5 -5
  146. package/dist/types/icons.d.ts +2 -2
  147. package/dist/types/index.d.ts +1 -1
  148. package/dist/types/shared/domsanitiser.options.d.ts +10 -10
  149. package/dist/types/stencil-public-runtime.d.ts +3 -59
  150. package/loader/index.d.ts +0 -9
  151. package/package.json +1 -1
  152. package/dist/tttx/p-0ebffdfc.js +0 -2
  153. package/dist/tttx/p-72e7f7dd.entry.js +0 -3
  154. package/dist/tttx/p-c4162029.entry.js +0 -1
  155. package/dist/tttx/p-eb126fd0.entry.js +0 -1
@@ -1,112 +1,161 @@
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 id='form' formSchema='${jsonFormSchema}'></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
+ dropdown: {
107
+ form: {
108
+ type: 'select',
109
+ blankDefault: true,
110
+ label: 'Food category',
111
+ options: [
112
+ { label: 'Choose an option', value: '', placeholder: true },
113
+ { label: 'Poultry', value: 'Chicken' },
114
+ { label: 'Fish', value: 'Salmon' },
115
+ { label: 'Veg', value: 'Lettuce' },
116
+ ],
117
+ validation: {
118
+ required: {
119
+ message: 'Must select a value',
120
+ },
121
+ },
122
+ },
123
+ },
124
+ permissions: {
125
+ form: {
126
+ type: 'checkbox',
127
+ label: 'Permissions',
128
+ inlineLabel: 'Please grant permissions to use data',
129
+ validation: {
130
+ required: {
131
+ message: 'Please grant permissions to use data',
132
+ },
133
+ },
134
+ },
135
+ },
136
+ },
137
+ };
138
+ export const SingleFormItem = args => `<tttx-form formSchema='${JSON.stringify(args.formSchema)}'></tttx-form>`;
139
+ SingleFormItem.args = {
140
+ formSchema: {
141
+ properties: {
142
+ input: {
143
+ type: 'string',
144
+ format: 'string',
145
+ form: {
146
+ type: 'text',
147
+ label: 'Input Field',
148
+ validation: {
149
+ required: {
150
+ message: 'Please enter something',
151
+ },
152
+ },
153
+ },
154
+ },
155
+ },
156
+ },
157
+ };
158
+ export const ExampleFormFromJSON = args => `<tttx-form id='form' formSchema='${JSON.stringify(args.formSchema)}'></tttx-form>
110
159
  <hr/>
111
160
  <button type='button' id='button'>Submit Form</button>
112
161
  <script>
@@ -122,114 +171,117 @@ export const ExampleFormFromJSON = () => `<tttx-form id='form' formSchema='${jso
122
171
  tttxform.submit();
123
172
  }
124
173
  }
125
- </script>`;
126
- const formSchemaWithReadonly = JSON.stringify({
127
- properties: {
128
- title: {
129
- type: 'string',
130
- format: 'string',
131
- form: {
132
- type: 'text',
133
- placeholder: 'Mr, Mrs, Dr, Hon Rev',
134
- label: 'Title'
135
- },
136
- },
137
- forename: {
138
- type: 'string',
139
- format: 'string',
140
- form: {
141
- type: 'text',
142
- placeholder: 'John',
143
- label: 'Forename',
144
- validation: {
145
- required: {
146
- message: 'Please enter your forename',
147
- },
148
- },
149
- },
150
- },
151
- surname: {
152
- type: 'string',
153
- format: 'string',
154
- form: {
155
- type: 'text',
156
- placeholder: 'Doe',
157
- label: 'Surname',
158
- validation: {
159
- required: {
160
- message: 'Please enter your surname',
161
- },
162
- },
163
- },
164
- },
165
- postcode: {
166
- type: 'string',
167
- format: 'string',
168
- form: {
169
- type: 'text',
170
- placeholder: 'AB10',
171
- label: 'Start of postcode',
172
- validation: {
173
- required: {
174
- message: 'Please enter the beginning of your postcode',
175
- },
176
- pattern: {
177
- 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)$',
178
- message: 'Please enter the first half of your postcode. EG: ZZ99',
179
- },
180
- maxlength: 4,
181
- },
182
- },
183
- },
184
- age: {
185
- type: 'number',
186
- format: 'number',
187
- form: {
188
- type: 'number',
189
- placeholder: '',
190
- label: 'Age',
191
- readonly: true,
192
- validation: {
193
- required: {
194
- message: 'Please enter your age',
195
- },
196
- badInput: {
197
- message: 'Please enter a number',
198
- },
199
- },
200
- },
201
- },
202
- dob: {
203
- type: 'string',
204
- format: 'date-time',
205
- form: {
206
- type: 'date',
207
- placeholder: '',
208
- label: 'Date of birth',
209
- readonly: true,
210
- validation: {
211
- required: {
212
- message: 'Please enter your date of birth',
213
- },
214
- minmax: {
215
- min: '1900-01-01',
216
- max: '2100-12-31',
217
- message: 'Please enter a date between 1900 and 2100',
218
- },
219
- },
220
- },
221
- },
222
- },
223
- });
224
- const data = JSON.stringify({
225
- title: 'Ms',
226
- forename: 'Jane',
227
- surname: 'Doe',
228
- postcode: 'AB10',
229
- age: '50',
230
- dob: '1973-06-02'
231
- });
232
- export const PrePopulateForm = () => `<tttx-form id='form' formSchema='${formSchemaWithReadonly}' data='${data}'></tttx-form>
174
+ </script>`;
175
+ ExampleFormFromJSON.args = {
176
+ formSchema,
177
+ };
178
+ const formSchemaWithReadonly = {
179
+ properties: {
180
+ title: {
181
+ type: 'string',
182
+ format: 'string',
183
+ form: {
184
+ type: 'text',
185
+ placeholder: 'Mr, Mrs, Dr, Hon Rev',
186
+ label: 'Title',
187
+ },
188
+ },
189
+ forename: {
190
+ type: 'string',
191
+ format: 'string',
192
+ form: {
193
+ type: 'text',
194
+ placeholder: 'John',
195
+ label: 'Forename',
196
+ validation: {
197
+ required: {
198
+ message: 'Please enter your forename',
199
+ },
200
+ },
201
+ },
202
+ },
203
+ surname: {
204
+ type: 'string',
205
+ format: 'string',
206
+ form: {
207
+ type: 'text',
208
+ placeholder: 'Doe',
209
+ label: 'Surname',
210
+ validation: {
211
+ required: {
212
+ message: 'Please enter your surname',
213
+ },
214
+ },
215
+ },
216
+ },
217
+ postcode: {
218
+ type: 'string',
219
+ format: 'string',
220
+ form: {
221
+ type: 'text',
222
+ placeholder: 'AB10',
223
+ label: 'Start of postcode',
224
+ validation: {
225
+ required: {
226
+ message: 'Please enter the beginning of your postcode',
227
+ },
228
+ pattern: {
229
+ 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)$',
230
+ message: 'Please enter the first half of your postcode. EG: ZZ99',
231
+ },
232
+ maxlength: 4,
233
+ },
234
+ },
235
+ },
236
+ age: {
237
+ type: 'number',
238
+ format: 'number',
239
+ form: {
240
+ type: 'number',
241
+ placeholder: '',
242
+ label: 'Age',
243
+ readonly: true,
244
+ validation: {
245
+ required: {
246
+ message: 'Please enter your age',
247
+ },
248
+ badInput: {
249
+ message: 'Please enter a number',
250
+ },
251
+ },
252
+ },
253
+ },
254
+ dob: {
255
+ type: 'string',
256
+ format: 'date-time',
257
+ form: {
258
+ type: 'date',
259
+ placeholder: '',
260
+ label: 'Date of birth',
261
+ readonly: true,
262
+ validation: {
263
+ required: {
264
+ message: 'Please enter your date of birth',
265
+ },
266
+ minmax: {
267
+ min: '1900-01-01',
268
+ max: '2100-12-31',
269
+ message: 'Please enter a date between 1900 and 2100',
270
+ },
271
+ },
272
+ },
273
+ },
274
+ },
275
+ };
276
+ const data = {
277
+ title: 'Ms',
278
+ forename: 'Jane',
279
+ surname: 'Doe',
280
+ postcode: 'AB10',
281
+ age: '50',
282
+ dob: '1973-06-02',
283
+ };
284
+ export const PrePopulateForm = args => `<tttx-form id='form' formSchema='${JSON.stringify(args.formSchema)}' data='${JSON.stringify(args.data)}'></tttx-form>
233
285
  <hr/>
234
286
  <button type='button' id='button'>Submit Form</button>
235
287
  <script>
@@ -245,4 +297,8 @@ export const PrePopulateForm = () => `<tttx-form id='form' formSchema='${formSch
245
297
  tttxform.submit();
246
298
  }
247
299
  }
248
- </script>`;
300
+ </script>`;
301
+ PrePopulateForm.args = {
302
+ data,
303
+ formSchema: formSchemaWithReadonly,
304
+ };