@3t-transform/threeteeui 0.1.42 → 0.1.43

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 (152) hide show
  1. package/dist/cjs/{domsanitiser.options-277161b9.js → domsanitiser.options-975e3317.js} +12 -12
  2. package/dist/cjs/{index-76f14107.js → index-457ca775.js} +88 -2
  3. package/dist/cjs/loader.cjs.js +4 -19
  4. package/dist/cjs/tttx-button.cjs.entry.js +24 -24
  5. package/dist/cjs/tttx-filter.cjs.entry.js +177 -159
  6. package/dist/cjs/tttx-form.cjs.entry.js +458 -458
  7. package/dist/cjs/tttx-icon.cjs.entry.js +11 -11
  8. package/dist/cjs/tttx-keyvalue-block.cjs.entry.js +59 -59
  9. package/dist/cjs/tttx-list.cjs.entry.js +32 -32
  10. package/dist/cjs/tttx-loading-spinner.cjs.entry.js +16 -16
  11. package/dist/cjs/tttx-sorter.cjs.entry.js +102 -102
  12. package/dist/cjs/tttx-standalone-input.cjs.entry.js +79 -79
  13. package/dist/cjs/tttx-toolbar.cjs.entry.js +10 -10
  14. package/dist/cjs/tttx.cjs.js +9 -117
  15. package/dist/collection/collection-manifest.json +2 -2
  16. package/dist/collection/components/atoms/tttx-button/tttx-button.js +110 -110
  17. package/dist/collection/components/atoms/tttx-button/tttx-button.stories.js +14 -14
  18. package/dist/collection/components/atoms/tttx-icon/tttx-icon.js +62 -62
  19. package/dist/collection/components/atoms/tttx-icon/tttx-icon.stories.js +22 -22
  20. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.js +109 -109
  21. package/dist/collection/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.js +38 -38
  22. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.js +67 -67
  23. package/dist/collection/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.js +17 -17
  24. package/dist/collection/components/molecules/tttx-filter/tttx-filter.js +369 -334
  25. package/dist/collection/components/molecules/tttx-filter/tttx-filter.stories.js +73 -62
  26. package/dist/collection/components/molecules/tttx-form/lib/setErrorState.js +37 -37
  27. package/dist/collection/components/molecules/tttx-form/lib/validityCheck.js +61 -61
  28. package/dist/collection/components/molecules/tttx-form/tttx-form.js +479 -479
  29. package/dist/collection/components/molecules/tttx-form/tttx-form.stories.js +272 -272
  30. package/dist/collection/components/molecules/tttx-list/tttx-list.js +105 -105
  31. package/dist/collection/components/molecules/tttx-list/tttx-list.stories.js +43 -43
  32. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.js +224 -224
  33. package/dist/collection/components/molecules/tttx-sorter/tttx-sorter.stories.js +42 -42
  34. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.js +759 -759
  35. package/dist/collection/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.js +172 -172
  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/domsanitiser.options.js +15 -45
  44. package/dist/components/index.d.ts +9 -0
  45. package/dist/components/index.js +1 -5
  46. package/dist/components/tttx-button.js +48 -48
  47. package/dist/components/tttx-filter.js +210 -191
  48. package/dist/components/tttx-form.js +475 -475
  49. package/dist/components/tttx-icon2.js +28 -28
  50. package/dist/components/tttx-keyvalue-block.js +76 -76
  51. package/dist/components/tttx-list.js +53 -53
  52. package/dist/components/tttx-loading-spinner.js +33 -33
  53. package/dist/components/tttx-sorter.js +130 -130
  54. package/dist/components/tttx-standalone-input.js +130 -130
  55. package/dist/components/tttx-toolbar.js +26 -26
  56. package/dist/esm/{domsanitiser.options-cc420431.js → domsanitiser.options-3c7ded83.js} +12 -12
  57. package/dist/esm/{index-9cde46a5.js → index-d784fb3e.js} +88 -3
  58. package/dist/esm/loader.js +4 -19
  59. package/dist/esm/polyfills/core-js.js +0 -0
  60. package/dist/esm/polyfills/css-shim.js +1 -1
  61. package/dist/esm/polyfills/dom.js +0 -0
  62. package/dist/esm/polyfills/es5-html-element.js +0 -0
  63. package/dist/esm/polyfills/index.js +0 -0
  64. package/dist/esm/polyfills/system.js +0 -0
  65. package/dist/esm/tttx-button.entry.js +24 -24
  66. package/dist/esm/tttx-filter.entry.js +177 -159
  67. package/dist/esm/tttx-form.entry.js +458 -458
  68. package/dist/esm/tttx-icon.entry.js +11 -11
  69. package/dist/esm/tttx-keyvalue-block.entry.js +59 -59
  70. package/dist/esm/tttx-list.entry.js +32 -32
  71. package/dist/esm/tttx-loading-spinner.entry.js +16 -16
  72. package/dist/esm/tttx-sorter.entry.js +102 -102
  73. package/dist/esm/tttx-standalone-input.entry.js +79 -79
  74. package/dist/esm/tttx-toolbar.entry.js +10 -10
  75. package/dist/esm/tttx.js +6 -117
  76. package/dist/tttx/index.esm.js +0 -1
  77. package/dist/tttx/p-0ebffdfc.js +2 -0
  78. package/dist/tttx/{p-dc2a37b0.entry.js → p-1db3704e.entry.js} +1 -1
  79. package/dist/tttx/p-350ddb03.js +3 -0
  80. package/dist/tttx/{p-561224f5.entry.js → p-563605b2.entry.js} +1 -1
  81. package/dist/tttx/{p-aef96333.entry.js → p-798a098a.entry.js} +1 -1
  82. package/dist/tttx/{p-f885f17a.entry.js → p-92cade7f.entry.js} +1 -1
  83. package/dist/tttx/{p-bd1edaed.entry.js → p-aaf02902.entry.js} +1 -1
  84. package/dist/tttx/{p-e53c7f9d.entry.js → p-ab6ce9f6.entry.js} +1 -1
  85. package/dist/tttx/{p-9f1e9cc1.entry.js → p-b720c4ad.entry.js} +1 -1
  86. package/dist/tttx/{p-d2f1aa8e.entry.js → p-cac26a1b.entry.js} +1 -1
  87. package/dist/tttx/p-ec253eea.entry.js +1 -0
  88. package/dist/tttx/{p-4e637d50.entry.js → p-f702df4f.entry.js} +1 -1
  89. package/dist/tttx/tttx.esm.js +1 -129
  90. package/dist/types/components/atoms/tttx-button/tttx-button.d.ts +10 -10
  91. package/dist/types/components/atoms/tttx-button/tttx-button.stories.d.ts +10 -10
  92. package/dist/types/components/atoms/tttx-icon/tttx-icon.d.ts +5 -5
  93. package/dist/types/components/atoms/tttx-icon/tttx-icon.stories.d.ts +20 -20
  94. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.d.ts +7 -7
  95. package/dist/types/components/atoms/tttx-keyvalue-block/tttx-keyvalue-block.stories.d.ts +9 -9
  96. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.d.ts +6 -6
  97. package/dist/types/components/atoms/tttx-loading-spinner/tttx-loading-spinner.stories.d.ts +17 -17
  98. package/dist/types/components/molecules/tttx-filter/tttx-filter.d.ts +41 -39
  99. package/dist/types/components/molecules/tttx-filter/tttx-filter.stories.d.ts +70 -68
  100. package/dist/types/components/molecules/tttx-form/lib/setErrorState.d.ts +13 -13
  101. package/dist/types/components/molecules/tttx-form/lib/validityCheck.d.ts +17 -17
  102. package/dist/types/components/molecules/tttx-form/tttx-form.d.ts +133 -133
  103. package/dist/types/components/molecules/tttx-form/tttx-form.stories.d.ts +278 -278
  104. package/dist/types/components/molecules/tttx-list/tttx-list.d.ts +11 -11
  105. package/dist/types/components/molecules/tttx-list/tttx-list.stories.d.ts +14 -14
  106. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.d.ts +19 -19
  107. package/dist/types/components/molecules/tttx-sorter/tttx-sorter.stories.d.ts +30 -30
  108. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.d.ts +69 -69
  109. package/dist/types/components/molecules/tttx-standalone-input/tttx-standalone-input.stories.d.ts +143 -143
  110. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.d.ts +4 -4
  111. package/dist/types/components/molecules/tttx-toolbar/tttx-toolbar.stories.d.ts +13 -13
  112. package/dist/types/components/palette.stories.d.ts +6 -6
  113. package/dist/types/components.d.ts +2 -0
  114. package/dist/types/docs/gettingstarted-developer.stories.d.ts +5 -5
  115. package/dist/types/icons.d.ts +2 -2
  116. package/dist/types/index.d.ts +1 -1
  117. package/dist/types/shared/domsanitiser.options.d.ts +10 -10
  118. package/dist/types/stencil-public-runtime.d.ts +59 -3
  119. package/loader/index.d.ts +9 -0
  120. package/package.json +2 -2
  121. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  122. package/dist/cjs/css-shim-211819bc.js +0 -6
  123. package/dist/cjs/dom-9deb26c8.js +0 -75
  124. package/dist/cjs/domsanitiser.options-3f1501b5.js +0 -1697
  125. package/dist/cjs/index-39a867c5.js +0 -3298
  126. package/dist/cjs/shadow-css-bf3843d2.js +0 -389
  127. package/dist/esm/app-globals-0f993ce5.js +0 -3
  128. package/dist/esm/css-shim-9d54a2f2.js +0 -4
  129. package/dist/esm/dom-6be6f662.js +0 -73
  130. package/dist/esm/domsanitiser.options-6f2878c8.js +0 -1694
  131. package/dist/esm/index-e3e64631.js +0 -3262
  132. package/dist/esm/shadow-css-ed4599f8.js +0 -387
  133. package/dist/tttx/app-globals-0f993ce5.js +0 -3
  134. package/dist/tttx/css-shim-9d54a2f2.js +0 -4
  135. package/dist/tttx/dom-6be6f662.js +0 -73
  136. package/dist/tttx/domsanitiser.options-6f2878c8.js +0 -1694
  137. package/dist/tttx/index-e3e64631.js +0 -3262
  138. package/dist/tttx/p-3b1be372.entry.js +0 -1
  139. package/dist/tttx/p-b4290a5b.js +0 -3
  140. package/dist/tttx/p-d0ff9ad0.entry.js +0 -1
  141. package/dist/tttx/p-db059a69.js +0 -2
  142. package/dist/tttx/shadow-css-ed4599f8.js +0 -387
  143. package/dist/tttx/tttx-button.entry.js +0 -30
  144. package/dist/tttx/tttx-filter.entry.js +0 -165
  145. package/dist/tttx/tttx-form.entry.js +0 -468
  146. package/dist/tttx/tttx-icon.entry.js +0 -17
  147. package/dist/tttx/tttx-keyvalue-block.entry.js +0 -65
  148. package/dist/tttx/tttx-list.entry.js +0 -38
  149. package/dist/tttx/tttx-loading-spinner.entry.js +0 -22
  150. package/dist/tttx/tttx-sorter.entry.js +0 -108
  151. package/dist/tttx/tttx-standalone-input.entry.js +0 -85
  152. package/dist/tttx/tttx-toolbar.entry.js +0 -16
@@ -1,160 +1,160 @@
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
- };
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
158
  export const ExampleFormFromJSON = args => `<tttx-form id='form' formSchema='${JSON.stringify(args.formSchema)}'></tttx-form>
159
159
  <hr/>
160
160
  <button type='button' id='button'>Submit Form</button>
@@ -171,116 +171,116 @@ export const ExampleFormFromJSON = args => `<tttx-form id='form' formSchema='${J
171
171
  tttxform.submit();
172
172
  }
173
173
  }
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
- };
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
284
  export const PrePopulateForm = args => `<tttx-form id='form' formSchema='${JSON.stringify(args.formSchema)}' data='${JSON.stringify(args.data)}'></tttx-form>
285
285
  <hr/>
286
286
  <button type='button' id='button'>Submit Form</button>
@@ -297,8 +297,8 @@ export const PrePopulateForm = args => `<tttx-form id='form' formSchema='${JSON.
297
297
  tttxform.submit();
298
298
  }
299
299
  }
300
- </script>`;
301
- PrePopulateForm.args = {
302
- data,
303
- formSchema: formSchemaWithReadonly,
304
- };
300
+ </script>`;
301
+ PrePopulateForm.args = {
302
+ data,
303
+ formSchema: formSchemaWithReadonly,
304
+ };