testio-tailwind 1.0.0 → 1.1.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testio-tailwind",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "Tailwind based design system for Test IO",
5
5
  "scripts": {
6
6
  "clean": "del dist",
@@ -16,8 +16,7 @@
16
16
  }
17
17
  }
18
18
 
19
- .form-group .form-label,
20
- .form-group .field_with_errors {
19
+ .form-group .form-label {
21
20
  @apply pb-xxs md:pt-sm;
22
21
  }
23
22
 
@@ -46,6 +45,10 @@
46
45
  @apply text-danger;
47
46
  }
48
47
 
48
+ .field_with_errors .form-label {
49
+ @apply inline-block;
50
+ }
51
+
49
52
  .form-hint {
50
53
  @apply flex items-center text-sm mt-xs mb-xs;
51
54
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  th,
6
6
  td {
7
- @apply p-xs align-middle border-t border-bordercolor;
7
+ @apply py-xs px-sm align-middle border-t border-bordercolor;
8
8
  }
9
9
 
10
10
  thead th {
@@ -106,4 +106,282 @@
106
106
 
107
107
  .table tr:has(.highlight-parent-row:hover) {
108
108
  @apply text-white bg-link-hover cursor-pointer;
109
- }
109
+ }
110
+
111
+
112
+ .table-standard {
113
+ @apply w-full;
114
+ }
115
+
116
+ .table-standard th, .table-standard td {
117
+ @apply text-left w-0 md:whitespace-nowrap last:w-auto align-top;
118
+ }
119
+
120
+ .table-standard th.cell-full-width, .table-standard td.cell-full-width {
121
+ @apply w-full;
122
+ }
123
+
124
+ .table-standard th {
125
+ @apply pb-2.5 pr-spacing last:pr-0;
126
+ }
127
+
128
+ .table-standard tr {
129
+ @apply border-t first:border-0;
130
+ }
131
+
132
+ .table-standard tfoot {
133
+ @apply border-t;
134
+ }
135
+
136
+ .table-standard tfoot.sum {
137
+ @apply border-t-4 border-double;
138
+ }
139
+
140
+ .table-standard td {
141
+ @apply py-2.5 pr-spacing last:pr-0;
142
+ }
143
+
144
+ .table-standard th.wrap,
145
+ .table-standard td.wrap {
146
+ @apply whitespace-normal break-words;
147
+ word-break: break-word;
148
+ }
149
+
150
+ .table-standard th.pre,
151
+ .table-standard td.pre {
152
+ @apply whitespace-pre-line break-words;
153
+ word-break: break-word;
154
+ }
155
+
156
+ td.action-cell,
157
+ .table-cellstyle td.action-cell {
158
+ @apply text-right min-w-auto space-x-1.5 whitespace-nowrap;
159
+ }
160
+
161
+ .table-cellstyle {
162
+ border-spacing: 2px;
163
+ border-collapse: separate;
164
+ }
165
+
166
+ .table-cellstyle th {
167
+ @apply relative align-middle pl-2.5 pr-0.5 py-1 text-sm font-normal;
168
+ }
169
+
170
+ .table-cellstyle th.missing,
171
+ .table-cellstyle th.inprogress,
172
+ .table-cellstyle th.completed {
173
+ @apply pr-14;
174
+ }
175
+
176
+ .table-cellstyle th label {
177
+ @apply text-sm;
178
+ }
179
+
180
+ .table-cellstyle th.missing::after,
181
+ .table-cellstyle th.inprogress::after,
182
+ .table-cellstyle th.complete::after,
183
+ .table-cellstyle .cell-editable::after {
184
+ @apply absolute inline-block w-icon-xs h-icon-xs right-2.5 top-2;
185
+ content: "";
186
+ mask-repeat: no-repeat;
187
+ }
188
+
189
+ .table-cellstyle th.missing::after {
190
+ @apply right-0 bg-gray-600;
191
+ -webkit-mask-image: url("$package_path/images/exclamation.svg");
192
+ mask-image: url("$package_path/images/exclamation.svg");
193
+ }
194
+
195
+ .table-cellstyle th.inprogress::after {
196
+ @apply bg-gray-600;
197
+ -webkit-mask-image: url("$package_path/images/clock.svg");
198
+ mask-image: url("$package_path/images/clock.svg");
199
+ }
200
+
201
+ .table-cellstyle th.completed::after {
202
+ @apply h-2.5 top-2.5 right-1.5 bg-success;
203
+ -webkit-mask-image: url("$package_path/images/check-thick.svg");
204
+ mask-image: url("$package_path/images/check-thick.svg");
205
+ }
206
+
207
+ .table-cellstyle td {
208
+ @apply relative px-2.5 py-1.5 last:pr-3 min-w-cell min-h-11 align-top text-sm bg-gray-100;
209
+ }
210
+
211
+ .table-cellstyle td label {
212
+ @apply text-sm;
213
+ }
214
+
215
+ .table-cellstyle td::after {
216
+ @apply absolute inline-block w-icon-xs h-icon-xs right-2.5 top-2;
217
+ content: "";
218
+ mask-repeat: no-repeat;
219
+ }
220
+
221
+ .table-cellstyle td.missing {
222
+ @apply italic bg-transparent text-disabled;
223
+ }
224
+
225
+ .table-cellstyle td.inprogress {
226
+ @apply pr-9 italic bg-gray-200;
227
+ }
228
+
229
+ .table-cellstyle td.inprogress::after {
230
+ @apply bg-gray-600;
231
+ -webkit-mask-image: url("$package_path/images/clock.svg");
232
+ mask-image: url("$package_path/images/clock.svg");
233
+ }
234
+
235
+ .table-cellstyle td.completed {
236
+ @apply pr-8;
237
+ }
238
+
239
+ .table-cellstyle .completed::after {
240
+ @apply h-2.5 top-2.5 right-1.5 bg-success;
241
+ -webkit-mask-image: url("$package_path/images/check-thick.svg");
242
+ mask-image: url("$package_path/images/check-thick.svg");
243
+ }
244
+
245
+ .table-cellstyle td.cell-editable,
246
+ .table-cellstyle td.cell-editable.missing,
247
+ .table-cellstyle td.cell-editable.inprogress,
248
+ .table-cellstyle td.cell-editable.completed {
249
+ @apply w-full h-full p-0;
250
+ word-break: break-all;
251
+
252
+ &::after {
253
+ content: none;
254
+ }
255
+ }
256
+
257
+ .cell-editable .btn {
258
+ @apply w-btn-sm items-start justify-center px-xxs py-xs text-white;
259
+ }
260
+
261
+ .cell-content-editable, a.cell-content-editable {
262
+ @apply flex justify-between w-full h-full pl-2.5 pr-9 py-1.5 text-black no-underline font-normal hover:bg-link-hover hover:text-white cursor-pointer;
263
+ word-break: break-word;
264
+
265
+ &::after {
266
+ @apply absolute inline-block w-icon-xs h-icon-xs right-2.5 top-2 bg-primary;
267
+ content: "";
268
+ mask-repeat: round;
269
+ -webkit-mask-image: url("$package_path/images/edit.svg");
270
+ mask-image: url("$package_path/images/edit.svg");
271
+ }
272
+ }
273
+
274
+ .cell-content-editable:hover::after, a.cell-content-editable.cell-content-editable:hover::after {
275
+ @apply bg-white;
276
+ }
277
+
278
+ .cell-edit-state {
279
+ @apply flex justify-between items-stretch w-full h-full p-0 border-2 border-bordercolor;
280
+ }
281
+
282
+ .cell-edit-state .edit-form {
283
+ @apply flex justify-between items-stretch h-full w-full;
284
+ }
285
+
286
+ .cell-edit-state textarea {
287
+ @apply min-h-full w-full text-sm rounded-none border-none;
288
+ }
289
+
290
+ .cell-actions {
291
+ @apply flex flex-col;
292
+ }
293
+
294
+ .cell-actions .btn {
295
+ @apply flex-1 w-btn-sm items-center border-0 first:border-b-1 border-white rounded-none;
296
+ }
297
+
298
+ /*////// Grid Tables //////*/
299
+
300
+ .table-grid {
301
+ @apply grid grid-flow-col min-w-full place-items-stretch gap-0.5;
302
+ grid-auto-flow: row;
303
+ }
304
+
305
+ .table-grid thead,
306
+ .table-grid tbody,
307
+ .table-grid tr {
308
+ display: contents;
309
+ }
310
+
311
+ .table-grid th,
312
+ .table-grid td {
313
+ @apply w-full h-full whitespace-normal;
314
+ }
315
+
316
+ .table-grid th {
317
+ @apply flex justify-start items-center min-h-8;
318
+ }
319
+
320
+ .table-grid .cell-edit-state textarea {
321
+ @apply flex-1;
322
+ }
323
+
324
+ /*////// Selectable cells //////*/
325
+
326
+ .table-cellstyle .cell-selectable {
327
+ @apply w-full h-full p-0;
328
+ }
329
+
330
+ .table-cellstyle .cell-selectable input {
331
+ @apply absolute left-2.5 top-1.5 h-5 w-5 border-black border rounded bg-transparent;
332
+ }
333
+
334
+ .table-cellstyle .cell-selectable label {
335
+ @apply block w-full h-full pl-10 py-1.5 pr-10 hover:bg-link-hover hover:text-white cursor-pointer;
336
+ }
337
+
338
+ .table-cellstyle .cell-selectable input[type=checkbox]:checked {
339
+ @apply text-white border-black bg-black;
340
+ background-image: none;
341
+
342
+ &::after {
343
+ @apply block w-full h-full bg-white;
344
+ content: "";
345
+ mask-image: url("$package_path/images/checkbox-background.svg");
346
+ -webkit-mask-image: url("$package_path/images/checkbox-background.svg");
347
+ mask-repeat: no-repeat;
348
+ }
349
+ }
350
+
351
+ .table-cellstyle .cell-selectable input:checked + label {
352
+ @apply bg-primary text-white hover:bg-link-hover;
353
+ }
354
+
355
+ .table-cellstyle td.cell-selectable.inprogress,
356
+ .table-cellstyle td.cell-selectable.completed {
357
+ @apply pr-0;
358
+ &::after {
359
+ content: none;
360
+ }
361
+ }
362
+
363
+ .table-cellstyle td.cell-selectable label::after {
364
+ @apply absolute inline-block w-icon-xs h-icon-xs right-2.5 top-2;
365
+ content: "";
366
+ mask-repeat: no-repeat;
367
+ }
368
+
369
+ .table-cellstyle td.cell-selectable.inprogress label::after {
370
+ @apply bg-gray-600;
371
+ -webkit-mask-image: url("$package_path/images/clock.svg");
372
+ mask-image: url("$package_path/images/clock.svg");
373
+ }
374
+
375
+ .table-cellstyle .cell-selectable.completed label::after {
376
+ @apply h-2.5 top-2.5 right-1.5 bg-success;
377
+ -webkit-mask-image: url("$package_path/images/check-thick.svg");
378
+ mask-image: url("$package_path/images/check-thick.svg");
379
+ }
380
+
381
+
382
+ .table-cellstyle td.cell-selectable.inprogress label:hover::after,
383
+ .table-cellstyle td.cell-selectable.completed label:hover::after,
384
+ .table-cellstyle .cell-selectable.inprogress input:checked + label::after,
385
+ .table-cellstyle .cell-selectable.completed input:checked + label::after {
386
+ @apply bg-white;
387
+ }
@@ -172,6 +172,7 @@ module.exports = {
172
172
  'lg': '50px',
173
173
  'xl': '60px',
174
174
  'xxl': '90px',
175
+ 'spacing-2xl': '120px',
175
176
  'spacing-3xl': '180px',
176
177
  'spacing-4xl': '240px',
177
178
  'spacing-5xl': '300px',
@@ -233,6 +234,20 @@ module.exports = {
233
234
  '36': '9rem',
234
235
  '56': '14rem',
235
236
  'spacing': '30px',
237
+ 'xxs': '5px',
238
+ 'xs': '10px',
239
+ 'sm': '15px',
240
+ 'md': '20px',
241
+ 'lg': '50px',
242
+ 'xl': '60px',
243
+ 'xxl': '90px',
244
+ 'spacing-2xl': '150px',
245
+ 'spacing-3xl': '180px',
246
+ 'spacing-4xl': '240px',
247
+ 'spacing-5xl': '300px',
248
+ 'spacing-6xl': '360px',
249
+ 'spacing-7xl': '420px',
250
+ 'spacing-8xl': '480px'
236
251
  },
237
252
  minHeight: {
238
253
  'auto': 'auto',
@@ -0,0 +1,285 @@
1
+ ---
2
+ tags: ['components']
3
+ title: Tables - Cell style
4
+ ---
5
+
6
+ .space-y-5
7
+
8
+ .overflow-x-auto
9
+ table.table-standard.table-cellstyle
10
+ thead
11
+ tr
12
+ th Key
13
+ th
14
+ .language-code.sm.mr-icon-spacing.text-language-source CD-SM
15
+ span Source
16
+ th.missing
17
+ .language-code.sm.mr-icon-spacing.text-language-target DE
18
+ span German
19
+ th.inprogress
20
+ .language-code.sm.mr-icon-spacing.text-language-target FR
21
+ span French
22
+ th.completed
23
+ .language-code.sm.mr-icon-spacing.text-language-target UK
24
+ span Ukrainian
25
+ th
26
+ .inline-block.icon.icon-cloud-upload.mr-icon-spacing
27
+ span Export to
28
+
29
+ tbody
30
+ tr
31
+ td Key
32
+ td Text to translate
33
+ td Text zur Übersetzung
34
+ td Texte à traduire
35
+ td.completed текст для перекладу
36
+ td my-file.yaml
37
+ tr
38
+ td Key
39
+ td.wrap
40
+ | Add
41
+ code.bg-gray-200 .wrap
42
+ | to allow line breaks within a cell.
43
+ | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
44
+ td.missing Missing
45
+ td.inprogress In progress
46
+ td.completed Completed
47
+ td my-file.yaml
48
+ tr
49
+ td Key
50
+ td Text to translate
51
+ td.missing Missing
52
+ td.inprogress In progress
53
+ td.completed Completed
54
+ td my-file.yaml
55
+
56
+
57
+ h2.pt-5 Table cellstyle with checkboxes
58
+
59
+ .overflow-x-auto
60
+ table.table-standard.table-cellstyle
61
+ thead
62
+ tr
63
+ th Key
64
+ th
65
+ .language-code.sm.mr-icon-spacing.text-language-source CD-SM
66
+ span Source
67
+ th.missing
68
+ .form-check.sm
69
+ input#checkde1(type='checkbox')
70
+ label(for='checkde1')
71
+ .language-code.sm.mr-icon-spacing.text-language-target DE
72
+ span German
73
+ th.inprogress
74
+ .form-check.sm
75
+ input#checkfr1(type='checkbox')
76
+ label(for='checkfr1')
77
+ .language-code.sm.mr-icon-spacing.text-language-target FR
78
+ span French
79
+ th.completed
80
+ .form-check.sm
81
+ input#checkuk1(type='checkbox')
82
+ label(for='checkuk1')
83
+ .language-code.sm.mr-icon-spacing.text-language-target UK
84
+ span Ukrainian
85
+ th
86
+ .inline-block.icon.icon-cloud-upload.mr-icon-spacing
87
+ span Export to
88
+
89
+ tbody
90
+ tr
91
+ td Key
92
+ td Text to translate
93
+ td
94
+ .form-check.sm
95
+ input#checkde2(type='checkbox')
96
+ label(for='checkde2') Text zur Übersetzung
97
+ td
98
+ .form-check.sm
99
+ input#checkfr2(type='checkbox')
100
+ label(for='checkfr2') Texte à traduire
101
+ td.completed
102
+ .form-check.sm
103
+ input#checkuk2(type='checkbox')
104
+ label(for='checkuk2') текст для перекладу
105
+ td my-file.yaml
106
+ tr
107
+ td Key
108
+ td Text to translate
109
+ td.missing
110
+ .form-check.sm
111
+ input#checkde3(type='checkbox')
112
+ label(for='checkde3') Missing
113
+ td.inprogress
114
+ .form-check.sm
115
+ input#checkfr3(type='checkbox')
116
+ label(for='checkfr3') In progress
117
+ td.completed
118
+ .form-check.sm
119
+ input#checkuk3(type='checkbox')
120
+ label(for='checkuk3') Completed
121
+ td my-file.yaml
122
+ tr
123
+ td Key
124
+ td Text to translate
125
+ td.missing
126
+ .form-check.sm
127
+ input#checkde4(type='checkbox')
128
+ label(for='checkde4') Missing
129
+ td.inprogress
130
+ .form-check.sm
131
+ input#checkfr4(type='checkbox')
132
+ label(for='checkfr4') In progress
133
+ td.completed
134
+ .form-check.sm
135
+ input#checkuk4(type='checkbox')
136
+ label(for='checkuk4') Completed
137
+ td my-file.yaml
138
+ tr
139
+ td Key
140
+ td Text to translate
141
+ td
142
+ .form-check.sm
143
+ input#checkde5(type='checkbox', checked='')
144
+ label(for='checkde5') Text zur Übersetzung
145
+ td
146
+ .form-check.sm
147
+ input#checkfr5(type='checkbox', checked='')
148
+ label(for='checkfr5') Texte à traduire
149
+ td.completed
150
+ .form-check.sm
151
+ input#checkuk5(type='checkbox', checked='')
152
+ label(for='checkuk5') текст для перекладу
153
+ td my-file.yaml
154
+ tr
155
+ td Key
156
+ td Text to translate
157
+ td.missing
158
+ .form-check.sm
159
+ input#checkde6(type='checkbox', checked='')
160
+ label(for='checkde6') Missing
161
+ td.inprogress
162
+ .form-check.sm
163
+ input#checkfr6(type='checkbox', checked='')
164
+ label(for='checkfr6') In progress
165
+ td.completed
166
+ .form-check.sm
167
+ input#checkuk6(type='checkbox', checked='')
168
+ label(for='checkuk6') Completed
169
+ td my-file.yaml
170
+
171
+ h2.pt-5 Table cellstyle with editable cells
172
+
173
+ .overflow-x-auto
174
+ table.table-standard.table-cellstyle
175
+ thead
176
+ tr
177
+ th Key
178
+ th
179
+ .language-code.sm.mr-icon-spacing.text-language-source CD-SM
180
+ span Source
181
+ th.missing
182
+ .language-code.sm.mr-icon-spacing.text-language-target DE
183
+ span German
184
+ th.inprogress
185
+ .language-code.sm.mr-icon-spacing.text-language-target FR
186
+ span French
187
+
188
+ tbody
189
+ tr
190
+ td Key
191
+ td.cell-editable
192
+ .cell-content-editable Text to translate
193
+ td.cell-editable
194
+ .cell-content-editable Text zur Übersetzung
195
+ td.cell-editable
196
+ .cell-edit-state
197
+ form.edit-form
198
+ textarea(rows="1")
199
+ | The height of this textarea grows with its content
200
+ .cell-actions
201
+ button.btn.btn-success.white(name='button', type='submit')
202
+ .icon.icon-sm.icon-check-circle-filled
203
+ a.btn.btn-danger(href='#')
204
+ .icon.icon-sm.icon-cross-circle-filled
205
+ tr
206
+ td Key
207
+ td.wrap.cell-editable
208
+ .cell-content-editable
209
+ p
210
+ | Add
211
+ code.bg-gray-200 .wrap
212
+ | to allow line breaks within a cell.
213
+ | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
214
+ td.missing.cell-editable.wrap
215
+ a.cell-content-editable ## En-tête ## **Bold** *italic* > quelques citations 1. Élément de la liste 2. Élément de la liste ![entrer la description de l'image ici][1] [1] : https://eu-images.contentstack.com/v3/assets/bltd7ba2d79b5449a0e/blt14d22b920d2f1fb2/63d1080ea8a9cb64655f0a65/cslogo.png?branch=test
216
+ td.inprogress.cell-editable
217
+ .cell-edit-state
218
+ form.edit-form
219
+ textarea(rows="1")
220
+ | The height of this textarea grows with its content
221
+ .cell-actions
222
+ button.btn.btn-success.white(name='button', type='submit')
223
+ .icon.icon-sm.icon-check-circle-filled
224
+ a.btn.btn-danger(href='#')
225
+ .icon.icon-sm.icon-cross-circle-filled
226
+ tr
227
+ td Key
228
+ td.cell-editable
229
+ .cell-content-editable Text to translate
230
+ td.missing.cell-editable
231
+ .cell-content-editable Missing
232
+ td.inprogress.cell-editable
233
+ .cell-content-editable In progress
234
+
235
+
236
+ h2.pt-5 With action column at the end
237
+ .overflow-x-auto
238
+ table.table-standard.table-cellstyle
239
+ thead
240
+ tr
241
+ th ID
242
+ th Name
243
+ th Roles
244
+ th Language
245
+ th Status
246
+ th
247
+
248
+ tbody
249
+ tr
250
+ td #123321
251
+ td.cell-full-width Master Translator
252
+ td.tags
253
+ span.tag Candidate
254
+ td Check
255
+ td Check
256
+ td.action-cell
257
+ .btn.btn-sm.btn-primary
258
+ .icon.icon-review.mr-icon-spacing
259
+ | Review
260
+ .btn.btn-sm.btn-primary
261
+ .icon.icon-pencil.mr-icon-spacing
262
+ | Edit
263
+ tr
264
+ td #123321
265
+ td.cell-full-width Master Translator
266
+ td.tags
267
+ span.tag Candidate
268
+ td Check
269
+ td Check
270
+ td.action-cell
271
+ .btn.btn-sm.btn-primary
272
+ .icon.icon-pencil.mr-icon-spacing
273
+ | Edit
274
+ tr
275
+ td #123321
276
+ td.cell-full-width Master Translator
277
+ td.tags
278
+ span.tag Candidate
279
+ span.tag Another tag
280
+ td Check
281
+ td Check
282
+ td.action-cell
283
+ .btn.btn-sm.btn-primary
284
+ .icon.icon-pencil.mr-icon-spacing
285
+ | Edit