testio-tailwind 3.12.0 → 3.13.0

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": "3.12.0",
3
+ "version": "3.13.0",
4
4
  "description": "Tailwind based design system for Test IO",
5
5
  "scripts": {
6
6
  "clean": "del dist --force",
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="100%" height="100%" viewBox="0 0 8 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
4
+ <rect id="info" x="0" y="0" width="8" height="20" style="fill:none;"/>
5
+ <clipPath id="_clip1">
6
+ <rect x="0" y="0" width="8" height="20"/>
7
+ </clipPath>
8
+ <g clip-path="url(#_clip1)">
9
+ <path d="M2,6L6.001,6L6.001,2L2,2L2,6ZM0,8L0,10L2,10L2,16L0,16L0,18L8,18L8,16L6,16L6,8L0,8Z" style="fill-rule:nonzero;"/>
10
+ </g>
11
+ </svg>
@@ -72,6 +72,7 @@
72
72
  @import './components/typography.css' layer(components);
73
73
  @import './components/uploads.css' layer(components);
74
74
  @import './components/user_item.css' layer(components);
75
+ @import './components/form_hint.css' layer(components);
75
76
 
76
77
  /*//// Customer components ////*/
77
78
  @import './components/customer/customer_header.css' layer(components);
@@ -1,5 +1,5 @@
1
1
  .form-grid {
2
- @apply grid gap-xs;
2
+ @apply grid gap-formgrid;
3
3
  grid-template-columns: 1fr;
4
4
  }
5
5
 
@@ -0,0 +1,71 @@
1
+
2
+ .hint-text {
3
+ @apply flex-1 mt-1 text-label whitespace-normal;
4
+ }
5
+
6
+ .hint-group {
7
+ @apply flex flex-wrap text-label;
8
+ }
9
+
10
+ .hint-group p {
11
+ @apply text-label;
12
+ }
13
+
14
+ .form-hint {
15
+ @apply relative flex items-start text-sm mt-xs mb-xs pl-md dark:text-label-color;
16
+
17
+ &::before {
18
+ @apply absolute left-0 inline-block h-icon w-icon mr-xs bg-gray;
19
+ content: "";
20
+ flex-shrink: 0;
21
+ mask-image: url("/assets/images/icons/info.svg");
22
+ mask-repeat: no-repeat;
23
+ }
24
+
25
+ &.error::before {
26
+ @apply bg-danger;
27
+ }
28
+
29
+ &.error {
30
+ @apply text-danger;
31
+ }
32
+ }
33
+
34
+ .dark .form-hint::before {
35
+ @apply absolute left-0 bg-label-color;
36
+ mask-image: url("/assets/images/icons/info.svg");
37
+ top: -2px;
38
+ }
39
+
40
+ .dark .form-hint.error::before {
41
+ @apply bg-danger;
42
+ }
43
+
44
+ .form-hint-collapsable {
45
+ @apply relative block mt-xs whitespace-normal;
46
+ }
47
+
48
+ .form-hint-collapsable .form-hint {
49
+ @apply relative;
50
+ }
51
+
52
+ .form-hint-trigger {
53
+ @apply inline ml-xs text-primary hover:text-link-hover text-sm font-semibold cursor-pointer;
54
+ }
55
+
56
+ .form-hint-expanded-text {
57
+ @apply hidden;
58
+ }
59
+
60
+ details.form-hint-collapsable[open] summary .form-hint-collapsed-text {
61
+ @apply hidden;
62
+ }
63
+
64
+ details.form-hint-collapsable[open] summary .form-hint-expanded-text {
65
+ @apply inline items-center;
66
+ }
67
+
68
+ .form-hint-collapsable-message {
69
+ @apply w-full z-1 mt-xs mb-sm rounded px-3 py-2.5 text-left text-sm text-appbody-textcolor bg-listitem;
70
+ }
71
+
@@ -49,27 +49,6 @@
49
49
  @apply inline-block;
50
50
  }
51
51
 
52
- .form-hint {
53
- @apply flex items-center text-sm mt-xs mb-xs;
54
-
55
- &::before {
56
- @apply inline-block h-icon w-icon mr-xs bg-gray;
57
- content: "";
58
- flex-shrink: 0;
59
- mask-image: url("/assets/images/icons/exclamation-circle.svg");
60
- mask-repeat: no-repeat;
61
- }
62
-
63
- &.error::before {
64
- @apply bg-danger;
65
- mask-image: url("/assets/images/icons/exclamation-circle.svg");
66
- }
67
-
68
- &.error {
69
- @apply text-danger;
70
- }
71
- }
72
-
73
52
  textarea.form-control {
74
53
  @apply h-auto min-h-btn pt-xs;
75
54
  }
@@ -41,7 +41,7 @@
41
41
  }
42
42
 
43
43
  .form-search .btn-submit {
44
- @apply right-0 bg-primary;
44
+ @apply right-0 bg-primary dark:text-black;
45
45
  &::before {
46
46
  @apply bg-white;
47
47
  }
@@ -54,6 +54,14 @@
54
54
  mask-image: url("/assets/images/icons/search.svg");
55
55
  }
56
56
 
57
+ .dark .form-search .btn-submit::before {
58
+ @apply bg-black;
59
+ }
60
+
61
+ .dark .form-search .btn-submit:hover::before {
62
+ @apply bg-white;
63
+ }
64
+
57
65
  .form-search.direct-input {
58
66
  &::before {
59
67
  @apply absolute inline-block w-icon h-icon top-xs left-xs bg-gray;
@@ -72,8 +72,7 @@
72
72
  .selectable-token input:disabled + label,
73
73
  .selectable-token input.disabled + label,
74
74
  .selectable-token input.disabled:checked + label {
75
- @apply text-disabled border-disabled bg-transparent cursor-not-allowed;
76
- background-image: url("/assets/images/pattern-striped-bright.png");
75
+ @apply text-disabled border-disabled bg-transparent cursor-not-allowed bg-pattern-disabled dark:bg-pattern-disabled-dark dark:border-bordercolor;
77
76
  background-repeat: repeat;
78
77
 
79
78
  &::after {
@@ -94,8 +93,7 @@
94
93
  .selectable-token.inverted input:disabled + label,
95
94
  .selectable-token.inverted input.disabled + label,
96
95
  .selectable-token.inverted input.disabled:checked + label {
97
- @apply text-disabled-dark border-disabled-dark;
98
- background-image: url("/assets/images/pattern-striped-dark.png");
96
+ @apply text-disabled-dark border-disabled-dark bg-pattern-disabled-dark dark:border-bordercolor;
99
97
 
100
98
  &::after {
101
99
  @apply bg-disabled-dark;
@@ -160,8 +158,7 @@
160
158
  background-image: none;
161
159
 
162
160
  & .icon {
163
- @apply text-disabled border-disabled bg-transparent;
164
- background-image: url("/assets/images/pattern-striped-bright.png");
161
+ @apply text-disabled border-disabled bg-transparent bg-pattern-disabled dark:bg-pattern-disabled-dark dark:border-bordercolor;
165
162
  background-repeat: repeat;
166
163
  }
167
164
 
@@ -180,8 +177,7 @@
180
177
  background-image: none;
181
178
 
182
179
  & .icon {
183
- @apply text-disabled-dark border-disabled-dark bg-transparent;
184
- background-image: url("/assets/images/pattern-striped-dark.png");
180
+ @apply text-disabled-dark border-disabled-dark bg-transparent bg-pattern-disabled dark:bg-pattern-disabled-dark dark:border-bordercolor;
185
181
  background-repeat: repeat;
186
182
  }
187
183
  }
@@ -202,3 +202,19 @@
202
202
  background-color: transparent;
203
203
  }
204
204
  }
205
+
206
+ /*//// Dark mode styles ////*/
207
+
208
+ .dark .markdown, .dark .trix-content {
209
+ code {
210
+ @apply text-label-color bg-tag;
211
+ }
212
+ pre {
213
+ @apply text-label-color bg-tag;
214
+ }
215
+ ol > li::before {
216
+ @apply bg-label-color;
217
+ }
218
+ }
219
+
220
+
@@ -59,6 +59,17 @@ trix-toolbar .trix-button {
59
59
  }
60
60
  }
61
61
 
62
+ trix-toolbar .trix-button:disabled {
63
+ @apply text-disabled hover:text-disabled cursor-not-allowed opacity-100 hover:opacity-100;
64
+ &::before {
65
+ @apply bg-disabled opacity-100;
66
+ }
67
+ }
68
+
69
+ trix-toolbar .trix-button:disabled:hover::before {
70
+ @apply bg-disabled;
71
+ }
72
+
62
73
  trix-toolbar .trix-button--icon::before {
63
74
  content: "";
64
75
  opacity: 1;
@@ -175,13 +186,6 @@ trix-editor .attachment__progress {
175
186
 
176
187
  /*///// Validation errors /////*/
177
188
 
178
- .field_with_errors {
179
- trix-toolbar {
180
- @apply mb-5;
181
- }
182
-
183
- .trix-content,
184
- select {
185
- @apply border-red-500 border-1;
186
- }
189
+ .field_with_errors .trix-content {
190
+ @apply mt-0 border-red-500 border-1;
187
191
  }
@@ -193,6 +193,7 @@
193
193
  --spacing-actionbar: 4.375rem;
194
194
  --spacing-aside: 12.5rem;
195
195
  --spacing-sidebar: 12.5rem;
196
+ --spacing-formgrid: 0.625rem;
196
197
  --spacing-grid-gutter: 1.25rem;
197
198
  --spacing-13: 3.25rem;
198
199
  --spacing-30: 7.25rem;
@@ -286,6 +286,7 @@
286
286
 
287
287
 
288
288
  /* Background image */
289
+ @utility bg-pattern-disabled { background-image: url('/assets/images/pattern-striped-bright.png'); }
289
290
  @utility bg-pattern-disabled-bright { background-image: url('/assets/images/pattern-striped-bright.png'); }
290
291
  @utility bg-pattern-disabled-dark { background-image: url('/assets/images/pattern-striped-dark.png'); }
291
292
 
@@ -13,7 +13,7 @@
13
13
  --color-bordercolor: #2E2E2E;
14
14
  --color-card: #262626;
15
15
  --color-disabled: #5f656d;
16
- --color-listitem: #343A40;
16
+ --color-listitem: #262626;
17
17
  --color-placeholder: #5f656d;
18
18
  --color-tag: #262626;
19
19
  --color-label-color: #888888;
@@ -25,7 +25,7 @@
25
25
  --color-info: #326dd1;
26
26
  --color-dark: #222222;
27
27
  --color-card: #1D1D1D;
28
- --color-listitem: #262626;
28
+
29
29
 
30
30
  /*//// Border radius ////*/
31
31
  --radius: 12px;
@@ -33,7 +33,7 @@
33
33
  /*//// Spacing ////*/
34
34
  --card-padding: 30px;
35
35
  --spacing-grid-gutter: 40px;
36
-
36
+ --spacing-formgrid: 1.25rem;
37
37
 
38
38
  /*//// Fontsize ////*/
39
39
  --fontsize-card-header: 1.125rem;
@@ -0,0 +1,41 @@
1
+ ---
2
+ tags: "forms"
3
+ title: Form hint
4
+ ---
5
+
6
+ .form-grid
7
+ .form-group
8
+ %label.form-label Input with form hint
9
+ %div
10
+ %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
11
+ .form-hint Form-hint with some helpful 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.
12
+ .form-group
13
+ .field_with_errors
14
+ %label.form-label Input with errors
15
+ .field_with_errors
16
+ %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
17
+ .form-hint.error You made a mistake, which is why you see this form validation error message with some helpful 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.
18
+ .form-group
19
+ %label.form-label Collapsable form hint
20
+ .col
21
+ %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
22
+ %details.form-hint-collapsable
23
+ %summary
24
+ .form-hint
25
+ %span
26
+ This is a help text.
27
+ %span.form-hint-trigger.form-hint-collapsed-text Learn more
28
+ %span.form-hint-trigger.form-hint-expanded-text Close
29
+ .form-hint-collapsable-message Good examples are &quot;Java wrapper lib for our 5-endpoint REST API&quot; or &quot;Help integration Intercom into our web interface&quot;
30
+ .form-group
31
+ %label.form-label Collapsable form hint with a long text
32
+ .col
33
+ %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
34
+ %details.form-hint-collapsable
35
+ %summary
36
+ .form-hint
37
+ %span
38
+ This is help text with lots of verbose 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.
39
+ %span.form-hint-trigger.form-hint-collapsed-text Learn more
40
+ %span.form-hint-trigger.form-hint-expanded-text Close
41
+ .form-hint-collapsable-message Good examples are &quot;Java wrapper lib for our 5-endpoint REST API&quot; or &quot;Help integration Intercom into our web interface&quot; plus lots of with lots of verbose 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.
@@ -18,32 +18,10 @@ title: Forms
18
18
  .form-group
19
19
  %label.form-label Input disabled
20
20
  %input.form-control{type:'text', value:"Some delicious readonly value text", disabled:"true"}
21
- .form-group
22
- %label.form-label Input with form hint
23
- %div
24
- %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
25
- .form-hint Form-hint with some helpful 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.
26
- .form-group
27
- .field_with_errors
28
- %label.form-label Input with errors
29
- .field_with_errors
30
- %input.form-control{type:'text', value:""}
31
- .form-hint.error You made a mistake, which is why you see this form validation error message with some helpful 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.
32
21
  .form-grid.bg-black.p-3.mt-md
33
22
  .form-group.inverted
34
- %label.form-label Input
23
+ %label.form-label Input inverted
35
24
  %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
36
25
  .form-group.inverted
37
- %label.form-label Input disabled
26
+ %label.form-label Input inverted disabled
38
27
  %input.form-control{type:'text', value:"Some delicious readonly value text", disabled:"true"}
39
- .form-group.inverted
40
- %label.form-label Input with form hint
41
- %div
42
- %input.form-control{type:'text', placeholder:"Some delicious placeholder text"}
43
- .form-hint Form-hint with some helpful 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
- .form-group.inverted
45
- .field_with_errors
46
- %label.form-label Input with errors
47
- .field_with_errors
48
- %input.form-control{type:'text', value:""}
49
- .form-hint.error You made a mistake, which is why you see this form validation error message with some helpful 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.
@@ -3,19 +3,16 @@ tags: "forms"
3
3
  title: Trix Editor
4
4
  ---
5
5
 
6
- .form-group.trix-editor
7
- label.form-label(for='space_branding_full_description') Full description
8
- input#space_branding_full_description_trix_input_space_branding_8(type='hidden', name='space_branding[full_description]', value='<h1><strong>Some text before image</strong></h1><div><br><i>some italic text after</i><br><br>LIst&nbsp;</div><ul><li>1<ul><li>2</li></ul></li><li>3<ul><li>4<br><br><br></li></ul></li></ul><div>Numbered list</div><div><br></div><ol><li>one<ol><li>two</li></ol></li><li>three<ol><li>four<br><br></li></ol></li></ol><div>Little bit of code<br><br></div><pre>def add(b, c)\b + c\end</pre>', autocomplete='off')
9
- trix-editor#space_branding_full_description.form-control.trix-content
10
-
11
-
12
- p.mt-3 If you have some errors on the field
13
-
14
- .form-group.trix-editor
15
- .field_with_errors
16
- label.form-label(for='space_branding_full_description') Full description
17
- .field_with_errors
6
+ .form-grid
7
+ .form-group.trix-editor
8
+ label.form-label(for='space_branding_full_description') Trix editor
18
9
  input#space_branding_full_description_trix_input_space_branding_8(type='hidden', name='space_branding[full_description]', value='<h1><strong>Some text before image</strong></h1><div><br><i>some italic text after</i><br><br>LIst&nbsp;</div><ul><li>1<ul><li>2</li></ul></li><li>3<ul><li>4<br><br><br></li></ul></li></ul><div>Numbered list</div><div><br></div><ol><li>one<ol><li>two</li></ol></li><li>three<ol><li>four<br><br></li></ol></li></ol><div>Little bit of code<br><br></div><pre>def add(b, c)\b + c\end</pre>', autocomplete='off')
19
10
  trix-editor#space_branding_full_description.form-control.trix-content
20
- .form-hint.error can't be blank
11
+ .form-group.trix-editor
12
+ .field_with_errors
13
+ label.form-label(for='space_branding_full_description') Error state
14
+ .field_with_errors
15
+ input#space_branding_full_description_trix_input_space_branding_8(type='hidden', name='space_branding[full_description]', value='<h1><strong>Some text before image</strong></h1><div><br><i>some italic text after</i><br><br>LIst&nbsp;</div><ul><li>1<ul><li>2</li></ul></li><li>3<ul><li>4<br><br><br></li></ul></li></ul><div>Numbered list</div><div><br></div><ol><li>one<ol><li>two</li></ol></li><li>three<ol><li>four<br><br></li></ol></li></ol><div>Little bit of code<br><br></div><pre>def add(b, c)\b + c\end</pre>', autocomplete='off')
16
+ trix-editor#space_branding_full_description.form-control.trix-content
17
+ .form-hint.error can't be blank
21
18