@nanoporetech-digital/components 8.0.0-alpha.2 → 8.0.0-alpha.3

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 (161) hide show
  1. package/dist/cjs/{fade-C3xL9ihU.js → fade-CqKYrZYq.js} +1 -1
  2. package/dist/cjs/{fullscreen-pHBD1-3e.js → fullscreen-D-fHJ_IJ.js} +1 -1
  3. package/dist/cjs/index-IR1lkhwT.js +4 -4
  4. package/dist/cjs/{lazyload-D2pj9J7r.js → lazyload-DK1ITMfR.js} +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/nano-avatar_5.cjs.entry.js +7 -7
  7. package/dist/cjs/nano-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/nano-collapsible-comparison.cjs.entry.js +1 -1
  9. package/dist/cjs/nano-components.cjs.js +1 -1
  10. package/dist/cjs/nano-cta.cjs.entry.js +2 -1
  11. package/dist/cjs/{nano-data-table-BkyqQiTG.js → nano-data-table-C_KLyFMO.js} +6 -3
  12. package/dist/cjs/nano-data-table.cjs.entry.js +1 -1
  13. package/dist/cjs/nano-datalist_3.cjs.entry.js +8 -8
  14. package/dist/cjs/nano-file-upload.cjs.entry.js +48 -29
  15. package/dist/cjs/nano-footer.cjs.entry.js +3 -3
  16. package/dist/cjs/nano-global-nav.cjs.entry.js +1 -1
  17. package/dist/cjs/nano-icon_3.cjs.entry.js +2 -2
  18. package/dist/cjs/nano-progress-bar.cjs.entry.js +3 -17
  19. package/dist/cjs/nano-rating.cjs.entry.js +4 -4
  20. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +3 -3
  21. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  22. package/dist/cjs/{nano-slides-B3-XISfn.js → nano-slides-BhpvytBB.js} +7 -7
  23. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  24. package/dist/cjs/nano-sortable.cjs.entry.js +1 -1
  25. package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
  26. package/dist/cjs/nano-sticker.cjs.entry.js +2 -2
  27. package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
  28. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  29. package/dist/cjs/nano-table.cjs.entry.js +2 -2
  30. package/dist/cjs/{page-dots-DHz-mQDL.js → page-dots-DeSuT5bE.js} +1 -1
  31. package/dist/cjs/{style-BccHkuhC.js → style-Bf3iH5GX.js} +16 -2
  32. package/dist/cjs/{table.worker-NnDnfSFs.js → table.worker-C5ofbi7M.js} +1 -1
  33. package/dist/collection/components/cta/cta.js +2 -1
  34. package/dist/collection/components/data-table/table.js +5 -2
  35. package/dist/collection/components/datalist/datalist.js +6 -6
  36. package/dist/collection/components/file-upload/file-upload.css +140 -215
  37. package/dist/collection/components/file-upload/file-upload.js +66 -44
  38. package/dist/collection/components/footer/footer.css +2 -3
  39. package/dist/collection/components/footer/footer.js +4 -3
  40. package/dist/collection/components/progress-bar/progress-bar.css +78 -33
  41. package/dist/collection/components/progress-bar/progress-bar.js +18 -61
  42. package/dist/collection/components/rating/rating.js +4 -4
  43. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  44. package/dist/collection/components/select/select.js +7 -7
  45. package/dist/collection/components/skeleton/skeleton.js +2 -2
  46. package/dist/collection/components/slides/slide.js +1 -1
  47. package/dist/collection/components/slides/slides.js +3 -3
  48. package/dist/collection/components/sortable/sortable.js +1 -1
  49. package/dist/collection/components/spinner/spinner.js +1 -1
  50. package/dist/collection/components/sticker/sticker.js +2 -2
  51. package/dist/collection/components/table/table.js +2 -2
  52. package/dist/collection/components/tabs/tab-content.js +2 -2
  53. package/dist/collection/components/tabs/tab.js +2 -2
  54. package/dist/collection/components/tag/tag.js +2 -2
  55. package/dist/collection/components/tooltip/tooltip.js +2 -2
  56. package/dist/collection/utils/style.js +16 -2
  57. package/dist/components/cta.js +2 -1
  58. package/dist/components/datalist.js +6 -6
  59. package/dist/components/nano-data-table.js +5 -2
  60. package/dist/components/nano-file-upload.js +58 -33
  61. package/dist/components/nano-footer.js +5 -4
  62. package/dist/components/nano-rating.js +4 -4
  63. package/dist/components/nano-slide.js +1 -1
  64. package/dist/components/nano-sortable.js +1 -1
  65. package/dist/components/nano-tab-content.js +2 -2
  66. package/dist/components/nano-tab.js +2 -2
  67. package/dist/components/nano-table.js +2 -2
  68. package/dist/components/progress-bar.js +7 -23
  69. package/dist/components/resize-observe.js +1 -1
  70. package/dist/components/select.js +7 -7
  71. package/dist/components/skeleton.js +2 -2
  72. package/dist/components/slides.js +3 -3
  73. package/dist/components/spinner.js +1 -1
  74. package/dist/components/sticker.js +2 -2
  75. package/dist/components/style.js +16 -2
  76. package/dist/components/tag.js +2 -2
  77. package/dist/components/tooltip.js +2 -2
  78. package/dist/esm/{fade-BTgTGh6q.js → fade-CnaZvOTY.js} +1 -1
  79. package/dist/esm/{fullscreen-BTpZyXkc.js → fullscreen-BIFliVxG.js} +1 -1
  80. package/dist/esm/index-DXvE-U_j.js +4 -4
  81. package/dist/esm/{lazyload-BYoZ43fz.js → lazyload-D_Ju_KaC.js} +1 -1
  82. package/dist/esm/loader.js +1 -1
  83. package/dist/esm/nano-avatar_5.entry.js +7 -7
  84. package/dist/esm/nano-breadcrumb.entry.js +1 -1
  85. package/dist/esm/nano-collapsible-comparison.entry.js +1 -1
  86. package/dist/esm/nano-components.js +1 -1
  87. package/dist/esm/nano-cta.entry.js +2 -1
  88. package/dist/esm/{nano-data-table-DDBCyBmN.js → nano-data-table-CJbVKIuu.js} +6 -3
  89. package/dist/esm/nano-data-table.entry.js +1 -1
  90. package/dist/esm/nano-datalist_3.entry.js +8 -8
  91. package/dist/esm/nano-file-upload.entry.js +48 -29
  92. package/dist/esm/nano-footer.entry.js +4 -4
  93. package/dist/esm/nano-global-nav.entry.js +1 -1
  94. package/dist/esm/nano-icon_3.entry.js +2 -2
  95. package/dist/esm/nano-progress-bar.entry.js +4 -18
  96. package/dist/esm/nano-rating.entry.js +4 -4
  97. package/dist/esm/nano-resize-observe_2.entry.js +3 -3
  98. package/dist/esm/nano-slide.entry.js +1 -1
  99. package/dist/esm/{nano-slides-CvZxKg4X.js → nano-slides-B9KjZVqC.js} +7 -7
  100. package/dist/esm/nano-slides.entry.js +1 -1
  101. package/dist/esm/nano-sortable.entry.js +1 -1
  102. package/dist/esm/nano-spinner.entry.js +1 -1
  103. package/dist/esm/nano-sticker.entry.js +2 -2
  104. package/dist/esm/nano-tab-content.entry.js +2 -2
  105. package/dist/esm/nano-tab.entry.js +2 -2
  106. package/dist/esm/nano-table.entry.js +2 -2
  107. package/dist/esm/{page-dots-_tkpExQM.js → page-dots-BmS6HUrx.js} +1 -1
  108. package/dist/esm/{style-BrRDhFfF.js → style-xLaX004n.js} +16 -2
  109. package/dist/esm/{table.worker-webIEBZt.js → table.worker-CsTdjWrS.js} +1 -1
  110. package/dist/nano-components/{fade-BTgTGh6q.js → fade-CnaZvOTY.js} +1 -1
  111. package/dist/nano-components/{fullscreen-BTpZyXkc.js → fullscreen-BIFliVxG.js} +1 -1
  112. package/dist/nano-components/{lazyload-BYoZ43fz.js → lazyload-D_Ju_KaC.js} +1 -1
  113. package/dist/nano-components/nano-avatar_5.entry.js +1 -1
  114. package/dist/nano-components/nano-breadcrumb.entry.js +1 -1
  115. package/dist/nano-components/nano-collapsible-comparison.entry.js +1 -1
  116. package/dist/nano-components/nano-components.css +23 -19
  117. package/dist/nano-components/nano-components.esm.js +1 -1
  118. package/dist/nano-components/nano-cta.entry.js +1 -1
  119. package/dist/nano-components/{nano-data-table-DDBCyBmN.js → nano-data-table-CJbVKIuu.js} +1 -1
  120. package/dist/nano-components/nano-data-table.entry.js +1 -1
  121. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  122. package/dist/nano-components/nano-file-upload.entry.js +1 -1
  123. package/dist/nano-components/nano-footer.entry.js +1 -1
  124. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  125. package/dist/nano-components/nano-icon_3.entry.js +1 -1
  126. package/dist/nano-components/nano-progress-bar.entry.js +1 -1
  127. package/dist/nano-components/nano-rating.entry.js +1 -1
  128. package/dist/nano-components/nano-resize-observe_2.entry.js +1 -1
  129. package/dist/nano-components/nano-slide.entry.js +1 -1
  130. package/dist/nano-components/{nano-slides-CvZxKg4X.js → nano-slides-B9KjZVqC.js} +3 -3
  131. package/dist/nano-components/nano-slides.entry.js +1 -1
  132. package/dist/nano-components/nano-sortable.entry.js +1 -1
  133. package/dist/nano-components/nano-spinner.entry.js +1 -1
  134. package/dist/nano-components/nano-sticker.entry.js +1 -1
  135. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  136. package/dist/nano-components/nano-tab.entry.js +1 -1
  137. package/dist/nano-components/nano-table.entry.js +1 -1
  138. package/dist/nano-components/{page-dots-_tkpExQM.js → page-dots-BmS6HUrx.js} +1 -1
  139. package/dist/nano-components/style-xLaX004n.js +4 -0
  140. package/dist/nano-components/{table.worker-webIEBZt.js → table.worker-CsTdjWrS.js} +1 -1
  141. package/dist/style/components.css +1 -1
  142. package/dist/style/components.css.map +1 -1
  143. package/dist/style/core.css +1 -1
  144. package/dist/style/core.css.map +1 -1
  145. package/dist/style/dark.css +1 -1
  146. package/dist/style/dark.css.map +1 -1
  147. package/dist/style/light.css +1 -1
  148. package/dist/style/light.css.map +1 -1
  149. package/dist/style/nano.css +1 -1
  150. package/dist/style/nano.css.map +1 -1
  151. package/dist/types/components/file-upload/file-upload.d.ts +14 -9
  152. package/dist/types/components/progress-bar/progress-bar.d.ts +6 -13
  153. package/dist/types/components.d.ts +43 -53
  154. package/docs-json.json +111 -172
  155. package/docs-vscode.json +16 -9
  156. package/hydrate/index.js +132 -110
  157. package/hydrate/index.mjs +132 -110
  158. package/package.json +3 -3
  159. package/dist/collection/components/file-upload/file-upload-list.js +0 -3
  160. package/dist/nano-components/style-BrRDhFfF.js +0 -4
  161. package/dist/types/components/file-upload/file-upload-list.d.ts +0 -0
@@ -36,82 +36,61 @@
36
36
  transition-duration: 0.01ms !important;
37
37
  scroll-behavior: auto !important;
38
38
  }
39
- }:host {
39
+ }/** Typography */
40
+ :host {
40
41
  /**
41
- * @prop --invalid-msg-color: Default value var(--nano-color-danger, #ef4135);
42
- * @prop --invalid-msg-font-size: Default value var(--nano-input-help-font-size, 0.75em);
43
-
44
- * @prop --help-msg-color: Default value var(--nano-input-help-color, #616d6e);
45
-
46
- * @prop --label-color: Default value var(--nano-input-label-color, "currentcolor");
47
- * @prop --label-color--invalid: Default value var(--nano-input-label-color-invalid, "currentcolor");
48
- * @prop --label-font-size: Default value var(--nano-input-label-color, 1em);
49
- * @prop --label-padding: Default value var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));
50
- * @prop --label-color--invalid: Default value var(--nano-input-label-color-invalid, "currentcolor");
51
-
52
- * @prop --drop-bg: Default value #f2f7f9;
53
- * @prop --drop-text: Default value #918b86;
54
- * @prop --drop-height: Default value 3.5em;
55
- * @prop --drop-border-tint: Default value var(--nano-color-primary-rgb, 0 116 149);
56
- * @prop --drop-border-width: Default value 2px;
57
- * @prop --drop-border-radius: Default value 5px;
58
- * @prop --drop-bg--invalid: Default value var(--nano-input-background-color, white);
59
- * @prop --drop-border--invalid: Default value var(--nano-color-danger-rgb, 239 65 53);
60
-
61
- * @prop --btn-bg: Default value var(--nano-color-primary, #007495);
62
- * @prop --btn-text: Default value var(--nano-color-primary-contrast, #fff);
63
- * @prop --btn-icon-size: Default value var(--nano-btn-icon-size, 1.4em);
64
- * @prop --btn-padding-top: Default value var(--nano-btn-padding-top, .5em);
65
- * @prop --btn-padding-bottom: Default value var(--nano-btn-padding-bottom, .5em);
66
- * @prop --btn-padding-start: Default value var(--nano-btn-padding-start, 1em);
67
- * @prop --btn-padding-end: Default value var(--nano-btn-padding-end, 1em);
68
- */
42
+ * @prop --color-error - The color used for error messages and invalid states.
43
+ * @prop --color-error-light - The light variant of the error color. Used for the drop area background when invalid.
44
+ * @prop --color-text - The default text color for labels and messages.
45
+ * @prop --color-drop-browse - The color for the "Browse" text in the drop area.
46
+ * @prop --color-drop-border - The border color for the drop area.
47
+ * @prop --color-drop-bg - The background color for the drop area.
48
+ * @prop --drop-height - The minimum height of the drop area.
49
+ * @prop --color-btn-bg - The background color for the button.
50
+ * @prop --color-btn-border - The border color for the button.
51
+ * @prop --color-btn-text - The text color for the button.
52
+ */
69
53
  min-block-size: 1rem;
70
54
  display: block;
71
- --invalid-msg-color: var(--nano-color-danger, #ef4135);
72
- --invalid-msg-font-size: var(--nano-input-help-font-size, 0.75em);
73
- --help-msg-color: var(--nano-input-help-color, #616d6e);
74
- --label-color: var(--nano-input-label-color, "currentcolor");
75
- --label-font-size: var(--nano-input-label-color, 1em);
76
- --label-padding: var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));
77
- --label-color--invalid: var(--nano-input-label-color-invalid, "currentcolor");
78
- --drop-bg: #f2f7f9;
79
- --drop-text: #756f6a;
55
+ --color-error: var(--nano-color-danger-1100);
56
+ --color-error-light: var(--nano-color-danger-100);
57
+ --color-text: var(--nano-color-neutral-1400);
58
+ --color-drop-browse: var(--nano-color-primary-1200);
59
+ --color-drop-border: var(--nano-color-primary-1200);
60
+ --color-drop-bg: var(--nano-color-primary-75);
80
61
  --drop-height: 3.5em;
81
- --drop-border-tint: var(--nano-color-primary-rgb, 0 116 149);
82
- --drop-border-width: 2px;
83
- --drop-border-radius: 5px;
84
- --drop-bg--invalid: var(--nano-input-background-color, white);
85
- --drop-border--invalid: var(--nano-color-danger-rgb, 239 65 53);
86
- --btn-bg: var(--nano-color-primary, #007495);
87
- --btn-text: var(--nano-color-primary-contrast, #fff);
88
- --btn-icon-size: var(--nano-btn-icon-size, 1.4em);
89
- --btn-padding-top: var(--nano-btn-padding-top, 0.5em);
90
- --btn-padding-bottom: var(--nano-btn-padding-bottom, 0.5em);
91
- --btn-padding-start: var(--nano-btn-padding-start, 1rem);
92
- --btn-padding-end: var(--nano-btn-padding-end, 1rem);
62
+ --color-btn-bg: var(--nano-color-base-0);
63
+ --color-btn-border: var(--nano-color-primary-1000);
64
+ --color-btn-text: var(--nano-color-primary-1000);
93
65
  }
94
66
 
95
67
  :host([disabled]:not([disabled=false])) {
96
- opacity: 0.7;
68
+ cursor: not-allowed;
97
69
  }
98
70
  :host([disabled]:not([disabled=false])) * {
99
71
  pointer-events: none !important;
100
72
  }
101
73
 
74
+ .file-upload--invalid {
75
+ --color-drop-bg: var(--color-error-light);
76
+ }
77
+
78
+ .file-upload--dragging {
79
+ --color-drop-bg: var(--nano-color-success-50);
80
+ }
81
+
102
82
  .file-upload {
103
- /* Common */
104
83
  /* Drop area / Multi file upload */
105
84
  /* Button display / Single file upload */
106
85
  }
107
86
  .file-upload__label {
108
- font-size: var(--label-font-size);
109
- padding: 0 0 var(--label-padding);
87
+ font-size: var(--nano-font-size-xs);
110
88
  margin: 0;
111
- line-height: 1;
89
+ line-height: var(--nano-line-height-normal);
90
+ letter-spacing: var(--nano-letter-spacing-loose);
112
91
  }
113
- :host([invalid]:not([invalid=false])) .file-upload__label {
114
- color: var(--label-color--invalid);
92
+ :host([disabled]:not([disabled=false])) .file-upload__label {
93
+ color: var(--nano-color-neutral-1200);
115
94
  }
116
95
  .file-upload__input {
117
96
  clip-path: inset(50%);
@@ -124,41 +103,50 @@
124
103
  .file-upload__error, .file-upload__help, .file-upload__more, .file-upload__label {
125
104
  display: block;
126
105
  inline-size: 100%;
127
- overflow: hidden;
128
106
  white-space: nowrap;
129
107
  text-overflow: ellipsis;
130
108
  }
131
109
  .file-upload__more {
132
- block-size: 1em;
133
- margin-block: calc(var(--label-padding) / 2) var(--label-padding);
134
- margin-inline: 3px 0;
110
+ margin-block: var(--nano-spacing-sm) 0;
135
111
  position: relative;
136
112
  }
113
+ .file-upload__more:has(.file-upload__error) .file-upload__help {
114
+ display: none !important;
115
+ }
137
116
  .file-upload__error, .file-upload__help {
138
117
  inset-block-start: 0;
139
118
  inset-inline-start: 0;
140
- position: absolute;
141
- font-size: var(--invalid-msg-font-size);
142
- line-height: 1.2;
143
- transition: 0.3s ease-out opacity;
119
+ font-style: italic;
120
+ font-size: var(--nano-font-size-2xs);
121
+ line-height: var(--nano-line-height-normal);
122
+ letter-spacing: var(--nano-letter-spacing-loose);
144
123
  }
145
124
  .file-upload--invalid .file-upload__error, .file-upload--invalid .file-upload__help {
146
125
  opacity: 1;
147
126
  }
148
127
  .file-upload__error {
149
- color: var(--invalid-msg-color);
128
+ color: var(--color-error);
150
129
  opacity: 0;
130
+ display: none;
131
+ transition: all var(--nano-transition-fast) ease;
132
+ transition-behavior: allow-discrete;
151
133
  }
152
134
  .file-upload--invalid .file-upload__error {
153
135
  opacity: 1;
136
+ display: block;
154
137
  }
155
138
  .file-upload__help {
156
- font-style: italic;
157
139
  opacity: 1;
158
- color: var(--help-msg-color);
140
+ color: var(--color-text);
141
+ display: block;
159
142
  }
160
143
  .file-upload--invalid .file-upload__help {
161
144
  opacity: 0;
145
+ display: none;
146
+ }
147
+ :host([disabled]:not([disabled=false])) .file-upload__help {
148
+ color: var(--nano-color-neutral-1200);
149
+ opacity: 0.8;
162
150
  }
163
151
  .file-upload__drop {
164
152
  position: relative;
@@ -167,56 +155,63 @@
167
155
  }
168
156
  .file-upload__drop-area {
169
157
  flex-direction: column;
170
- background-color: var(--drop-bg);
171
- color: var(--drop-text);
158
+ background-color: var(--color-drop-bg);
159
+ color: var(--color-text);
172
160
  min-block-size: var(--drop-height);
161
+ padding: var(--nano-spacing-md);
173
162
  display: flex;
174
163
  align-items: center;
175
164
  justify-content: center;
176
- font-size: 0.9em;
177
165
  position: relative;
178
- transition: background-color 0.15s ease-in-out;
179
- padding: 0.5rem;
166
+ transition: background-color var(--nano-transition-x-fast) ease-in-out;
167
+ font-size: var(--nano-font-size-sm);
168
+ line-height: var(--nano-line-height-normal);
169
+ letter-spacing: var(--nano-letter-spacing-loose);
180
170
  }
181
171
  :host([disabled]:not([disabled=false])) .file-upload__drop-area {
182
- opacity: 0.7;
183
- }
184
- .file-upload--invalid .file-upload__drop-area {
185
- background-color: var(--drop-bg--invalid);
186
- }
187
- .file-upload--dragging .file-upload__drop-area {
188
- background-color: #fff;
172
+ color: var(--nano-color-neutral-1200);
173
+ background-color: var(--nano-color-neutral-300);
174
+ border-color: var(--nano-color-neutral-1200);
189
175
  }
190
176
  .file-upload__drop-area::after {
191
177
  content: "";
192
178
  position: absolute;
193
- border-radius: var(--drop-border-radius);
194
- border-width: var(--drop-border-width);
195
- border-color: rgb(var(--drop-border-tint)/50%);
196
- border-style: dashed;
179
+ border-width: 1px;
180
+ background-color: var(--color-drop-border);
181
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' stroke='white' stroke-width='2' stroke-dasharray='6%2c 8' stroke-dashoffset='0'/%3e%3c/svg%3e");
182
+ mask-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' stroke='white' stroke-width='2' stroke-dasharray='6%2c 8' stroke-dashoffset='0'/%3e%3c/svg%3e");
183
+ -webkit-mask-repeat: no-repeat;
184
+ mask-repeat: no-repeat;
185
+ -webkit-mask-position: center;
186
+ mask-position: center;
197
187
  inset: 0;
198
- transition: top 0.1s ease-in-out, bottom 0.1s ease-in-out, left 0.1s ease-in-out, right 0.1s ease-in-out;
188
+ transition: top var(--nano-transition-x-fast) ease-in-out, bottom var(--nano-transition-x-fast) ease-in-out, left var(--nano-transition-x-fast) ease-in-out, right var(--nano-transition-x-fast) ease-in-out;
199
189
  }
200
190
  .file-upload--invalid .file-upload__drop-area::after {
201
- border-color: rgb(var(--drop-border--invalid)/100%);
191
+ background-color: var(--color-error);
202
192
  }
203
193
  .file-upload--dragging .file-upload__drop-area::after {
194
+ background-color: var(--nano-color-success-1100);
204
195
  inset: 5px;
205
196
  }
206
197
  .file-upload__drop-area span {
207
- color: rgb(var(--drop-border-tint)/100%);
198
+ color: var(--color-drop-browse);
208
199
  text-decoration: underline;
209
- border-radius: 2px;
210
200
  z-index: 1;
211
201
  cursor: pointer;
212
202
  position: relative;
213
203
  }
204
+ :host([disabled]:not([disabled=false])) .file-upload__drop-area span {
205
+ color: var(--nano-color-neutral-1200);
206
+ opacity: 0.8;
207
+ }
214
208
  .file-upload--focus .file-upload__drop-area span {
215
- box-shadow: var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));
209
+ outline: var(--nano-focus-ring);
210
+ outline-offset: var(--nano-focus-ring-offset);
216
211
  }
217
212
  .file-upload__list {
218
213
  list-style: none;
219
- margin: 0;
214
+ margin: var(--nano-spacing-xs) 0 0;
220
215
  padding: 0;
221
216
  }
222
217
  .file-upload__list-wrap {
@@ -228,183 +223,113 @@
228
223
  margin: 0 0 2px;
229
224
  display: flex;
230
225
  align-items: center;
231
- transform: translateZ(0);
232
- animation: hideListItem 0.3s ease-in-out forwards;
226
+ animation: hideListItem var(--nano-transition-fast) ease-in-out forwards;
233
227
  }
234
228
  @keyframes hideListItem {
235
229
  0% {
236
230
  opacity: 1;
237
- transform: translateY(0);
238
- transform: translateZ(0);
239
231
  }
240
232
  100% {
241
233
  opacity: 0;
242
- transform: translateY(10px);
243
- transform: translateZ(0);
244
234
  }
245
235
  }
246
236
  .file-upload__list-item--active {
247
- animation: showListItem 0.3s ease-in-out forwards;
237
+ animation: showListItem var(--nano-transition-fast) ease-in-out forwards;
248
238
  }
249
239
  @keyframes showListItem {
250
240
  0% {
251
241
  opacity: 0;
252
- transform: translateY(10px);
253
- transform: translateZ(0);
254
242
  }
255
243
  100% {
256
244
  opacity: 1;
257
- transform: translateY(0);
258
- transform: translateZ(0);
259
245
  }
260
246
  }
261
247
  .file-upload__list .list-title {
262
- background: var(--nano-color-blue--faded);
263
- border-radius: 5px;
264
- padding: 5px;
248
+ background: var(--color-drop-bg);
249
+ padding: var(--nano-spacing-xs);
265
250
  margin-inline-end: 2px;
266
251
  display: block;
267
252
  inline-size: 100%;
268
253
  overflow: hidden;
269
254
  white-space: nowrap;
270
255
  text-overflow: ellipsis;
271
- font-size: 0.9em;
272
- color: var(--help-msg-color);
256
+ font-size: var(--nano-font-size-2xs);
257
+ color: var(--color-text);
273
258
  }
274
259
  .file-upload__list .list-button {
275
- background: var(--nano-color-blue--faded);
276
- border-radius: 5px;
260
+ --padding: 0.406rem;
261
+ background: var(--color-drop-bg);
277
262
  margin: 2px;
278
263
  }
279
264
  .file-upload__list .list-error {
280
- --color: rgb(var(--drop-border--invalid) / 100%);
265
+ --color: var(--color-error);
266
+ }
267
+ .file-upload__drop-area, .file-upload__button {
268
+ margin-block: var(--nano-spacing-sm) 0;
281
269
  }
282
270
  .file-upload__button {
283
- padding: 0;
284
- border: none;
285
- background-color: transparent;
286
- font: inherit;
287
- -webkit-box-align: center;
288
- text-decoration: none;
289
- color: inherit;
290
- transition: background-color 100ms ease-in-out, box-shadow 100ms ease-in-out, border-color 100ms ease-in-out, color 100ms ease-in-out;
291
- padding-inline: var(--nano-btn-padding-start, 1rem) var(--nano-btn-padding-end, 1rem);
292
- padding-block: var(--nano-btn-padding-top, 0.5rem) var(--nano-btn-padding-bottom, 0.5rem);
293
- box-shadow: var(--nano-layer-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.2));
294
- display: inline-block;
295
- border-radius: var(--nano-btn-border-radius, 5px);
296
- line-height: var(--nano-btn-line-height, 1.5em);
297
- font-weight: 400;
298
- cursor: pointer;
299
- background: rgba(0, 0, 0, 0.02);
300
- background-color: var(--btn-bg);
301
- color: var(--btn-text);
302
- --nano-btn-icon-size: var(--btn-icon-size);
303
- --nano-btn-line-height: var(--btn-icon-size);
304
- --nano-btn-padding-top: var(--btn-padding-top);
305
- --nano-btn-padding-bottom: var(--btn-padding-bottom);
306
- --nano-btn-padding-start: var(--btn-padding-start);
307
- --nano-btn-padding-end: var(--btn-padding-end);
308
271
  max-inline-size: 100%;
309
- font-size: 0.9em;
310
- }
311
- .file-upload__button::-moz-focus-inner {
312
- border: 0;
313
- padding: 0;
314
- }
315
- .file-upload__button:hover, .file-upload__button:focus {
316
- text-decoration: none;
317
- color: inherit;
318
- }
319
- @media print {
320
- .file-upload__button {
321
- display: none;
322
- }
323
- }
324
- .file-upload__button:focus, .file-upload__button.button--focus {
325
- outline: none;
326
- box-shadow: var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));
327
- }
328
- .file-upload__button nano-icon,
329
- .file-upload__button nano-spinner {
330
- --base-color-rgb: 255 255 255;
331
- margin-inline: 0.5em 0;
332
- font-size: var(--nano-btn-icon-size, 1em);
333
- vertical-align: middle;
334
- margin-block-start: -0.188em;
335
- display: inline-block;
336
- }
337
- .file-upload__button.button--icon-start nano-icon,
338
- .file-upload__button.button--icon-start nano-spinner {
339
- margin-inline: 0 0.5em;
340
- }
341
- .file-upload__button:hover:not(.button--disabled) {
342
- box-shadow: var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));
343
- }
344
- .file-upload__button:active:not(.button--disabled, :disabled) {
345
- box-shadow: none;
346
- }
347
- .file-upload__button--disabled, .file-upload__button:disabled {
348
- opacity: 0.6;
349
- }
350
- .file-upload__button--disabled:hover, .file-upload__button:disabled:hover {
351
- cursor: default;
352
- }
353
- .file-upload__button:hover:not(.button--disabled, :disabled), .file-upload__button.button--active {
354
- background-color: var(--nano-color-primary-shade, #00637f);
355
- color: var(--btn-text);
356
- }
357
- .file-upload__button:hover:not(.button--disabled, :disabled).button--keyline, .file-upload__button.button--active.button--keyline {
358
- background-color: var(--btn-bg);
359
- color: var(--btn-text);
360
- }
361
- .file-upload__button:focus {
362
- color: var(--btn-text);
363
- }
364
- .file-upload__button.button--keyline {
365
- background: transparent;
366
- border-style: var(--nano-btn-border-style, solid);
367
- border-width: var(--nano-btn-border-width, 2px);
368
- border-radius: var(--nano-btn-border-radius, 5px);
369
- padding-block: calc(var(--nano-btn-padding-top, 0.5rem) - var(--nano-btn-border-width, 2px)) calc(var(--nano-btn-padding-bottom, 0.5rem) - var(--nano-btn-border-width, 2px));
370
- color: var(--btn-bg);
371
- border-color: var(--btn-bg);
372
- }
373
- .file-upload__button.button--keyline:hover:not(.button--disabled, :disabled), .file-upload__button.button--keyline:not(:focus, .button--focus), .file-upload__button.button--keyline.button--active {
374
- box-shadow: none;
272
+ display: flex;
375
273
  }
376
- :host([disabled]:not([disabled=false])) .file-upload__button {
377
- opacity: 0.4;
274
+ :host(.is-invalid) .file-upload__button {
275
+ color: var(--color-error);
378
276
  }
379
277
  .file-upload--dragging .file-upload__button {
380
278
  --nano-btn-border-style: dashed;
381
279
  }
382
- .file-upload__button .file-upload__clear-btn {
280
+ .file-upload__clear-btn {
383
281
  margin: 0;
384
282
  font-size: inherit;
385
283
  padding: 0;
386
284
  border: 0;
387
285
  outline: none;
388
- background-color: transparent;
389
286
  display: flex;
390
- align-items: stretch;
287
+ align-items: center;
391
288
  inline-size: auto;
392
- color: var(--clear-btn-color);
289
+ color: var(--color-btn-text);
290
+ background: var(--color-btn-bg);
393
291
  }
394
- :host(.is-invalid) .file-upload__button .file-upload__clear-btn {
395
- color: var(--clear-btn-color--invalid);
292
+ :host(.is-invalid) .file-upload__clear-btn {
293
+ color: var(--color-error);
396
294
  }
397
- .file-upload__button .file-upload__clear-btn .nano-icon {
398
- margin-inline: 0.4rem 0;
399
- margin-block: 0;
295
+ .file-upload__clear-btn:focus-visible > nano-icon {
296
+ outline: var(--nano-focus-ring);
297
+ outline-offset: var(--nano-focus-ring-offset);
400
298
  }
401
- .file-upload__button .file-upload__btn-content {
402
- display: flex;
403
- align-items: center;
299
+ .file-upload__clear-btn .nano-icon {
300
+ margin: 0.1rem 0 0 var(--nano-spacing-sm);
301
+ }
302
+ .file-upload--focus .file-upload__btn-content {
303
+ outline: var(--nano-focus-ring);
304
+ outline-offset: var(--nano-focus-ring-offset);
404
305
  }
405
- .file-upload__button .file-upload__btn-content span {
306
+ .file-upload__btn-content div {
406
307
  white-space: nowrap;
407
308
  overflow: hidden;
408
309
  text-overflow: ellipsis;
409
310
  min-inline-size: 0;
311
+ display: block;
312
+ }
313
+ .file-upload--focus .file-upload__btn-content div {
314
+ outline: var(--nano-focus-ring);
315
+ outline-offset: var(--nano-focus-ring-offset);
316
+ }
317
+ .file-upload__icon {
318
+ align-self: center;
319
+ margin-inline-start: var(--nano-spacing-sm);
320
+ size: var(--nano-icon-size-small);
321
+ }
322
+ .file-upload__icon-error {
323
+ color: var(--color-error);
324
+ opacity: 0;
325
+ }
326
+ .file-upload--invalid .file-upload__icon-error {
327
+ opacity: 1;
328
+ }
329
+ .file-upload__icon-success {
330
+ color: var(--nano-color-success-1100);
331
+ opacity: 0;
332
+ }
333
+ .file-upload--valid .file-upload__icon-success {
334
+ opacity: 1;
410
335
  }