lutra 0.0.20 → 0.0.33

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 (192) hide show
  1. package/dist/color.css +0 -0
  2. package/dist/display/Avatar.svelte +1 -1
  3. package/dist/display/Avatar.svelte.d.ts +18 -22
  4. package/dist/display/Badge.svelte +2 -4
  5. package/dist/display/Badge.svelte.d.ts +28 -32
  6. package/dist/display/Callout.svelte +8 -8
  7. package/dist/display/Callout.svelte.d.ts +27 -35
  8. package/dist/display/Close.svelte.d.ts +17 -20
  9. package/dist/display/Code.svelte +26 -31
  10. package/dist/display/Code.svelte.d.ts +31 -30
  11. package/dist/display/ContextTip.svelte +2 -5
  12. package/dist/display/ContextTip.svelte.d.ts +16 -20
  13. package/dist/display/DataList.svelte +16 -0
  14. package/dist/display/DataList.svelte.d.ts +21 -0
  15. package/dist/display/Details.svelte.d.ts +25 -30
  16. package/dist/display/Hero.svelte.d.ts +24 -28
  17. package/dist/display/Icon.svelte +3 -4
  18. package/dist/display/Icon.svelte.d.ts +18 -23
  19. package/dist/display/IconButton.svelte +12 -5
  20. package/dist/display/IconButton.svelte.d.ts +26 -29
  21. package/dist/display/Image.svelte.d.ts +25 -36
  22. package/dist/display/Indicator.svelte.d.ts +21 -22
  23. package/dist/display/Inset.svelte.d.ts +16 -20
  24. package/dist/display/LineChart.svelte +385 -0
  25. package/dist/display/LineChart.svelte.d.ts +24 -0
  26. package/dist/display/LoadingIndicator.svelte +33 -0
  27. package/dist/display/LoadingIndicator.svelte.d.ts +15 -0
  28. package/dist/display/Modal.svelte +116 -0
  29. package/dist/display/Modal.svelte.d.ts +27 -0
  30. package/dist/display/Notification.svelte.d.ts +22 -41
  31. package/dist/display/Panel.svelte +23 -0
  32. package/dist/display/Panel.svelte.d.ts +19 -0
  33. package/dist/display/Popup.svelte.d.ts +23 -28
  34. package/dist/{data → display}/Stat.svelte +9 -17
  35. package/dist/display/Stat.svelte.d.ts +30 -0
  36. package/dist/display/Table.svelte +14 -10
  37. package/dist/display/Table.svelte.d.ts +22 -32
  38. package/dist/display/TablePaginator.svelte +51 -0
  39. package/dist/display/TablePaginator.svelte.d.ts +21 -0
  40. package/dist/display/Tag.svelte.d.ts +29 -32
  41. package/dist/display/Tooltip.svelte +5 -4
  42. package/dist/display/Tooltip.svelte.d.ts +21 -26
  43. package/dist/display/chart.d.ts +78 -0
  44. package/dist/display/chart.js +212 -0
  45. package/dist/display/index.d.ts +11 -1
  46. package/dist/display/index.js +11 -1
  47. package/dist/display/notifications.svelte.d.ts +3 -3
  48. package/dist/display/notifications.svelte.js +2 -2
  49. package/dist/form/Button.svelte +7 -2
  50. package/dist/form/Button.svelte.d.ts +25 -35
  51. package/dist/form/FieldActions.svelte +25 -3
  52. package/dist/form/FieldActions.svelte.d.ts +18 -22
  53. package/dist/form/FieldContainer.svelte +1 -1
  54. package/dist/form/FieldContainer.svelte.d.ts +17 -22
  55. package/dist/form/FieldContent.svelte +52 -33
  56. package/dist/form/FieldContent.svelte.d.ts +28 -56
  57. package/dist/form/FieldError.svelte.d.ts +17 -20
  58. package/dist/form/FieldSection.svelte.d.ts +18 -32
  59. package/dist/form/Fieldset.svelte.d.ts +29 -40
  60. package/dist/form/Form.svelte +55 -17
  61. package/dist/form/Form.svelte.d.ts +36 -31
  62. package/dist/form/ImageUpload.svelte +259 -0
  63. package/dist/form/ImageUpload.svelte.d.ts +31 -0
  64. package/dist/form/Input.svelte +192 -153
  65. package/dist/form/Input.svelte.d.ts +115 -140
  66. package/dist/form/InputLength.svelte.d.ts +19 -20
  67. package/dist/form/Label.svelte +21 -4
  68. package/dist/form/Label.svelte.d.ts +24 -30
  69. package/dist/form/LogoUpload.svelte +100 -0
  70. package/dist/form/LogoUpload.svelte.d.ts +29 -0
  71. package/dist/form/Select.svelte +84 -36
  72. package/dist/form/Select.svelte.d.ts +69 -96
  73. package/dist/form/Textarea.svelte +163 -0
  74. package/dist/form/Textarea.svelte.d.ts +108 -0
  75. package/dist/form/Toggle.svelte +2 -0
  76. package/dist/form/Toggle.svelte.d.ts +15 -0
  77. package/dist/form/client.svelte.d.ts +8 -9
  78. package/dist/form/client.svelte.js +18 -10
  79. package/dist/form/form.d.ts +6 -4
  80. package/dist/form/form.js +23 -9
  81. package/dist/form/index.d.ts +6 -3
  82. package/dist/form/index.js +6 -3
  83. package/dist/form/types.d.ts +11 -1
  84. package/dist/icons/IconAlert.svelte.d.ts +23 -0
  85. package/dist/icons/{Copy.svelte → IconCopy.svelte} +1 -1
  86. package/dist/icons/IconCopy.svelte.d.ts +23 -0
  87. package/dist/icons/IconDone.svelte.d.ts +23 -0
  88. package/dist/icons/IconError.svelte.d.ts +23 -0
  89. package/dist/icons/IconHelp.svelte.d.ts +23 -0
  90. package/dist/icons/IconHide.svelte.d.ts +23 -0
  91. package/dist/icons/IconInfo.svelte.d.ts +23 -0
  92. package/dist/icons/IconLink.svelte.d.ts +23 -0
  93. package/dist/icons/IconMenuBurger.svelte.d.ts +23 -0
  94. package/dist/icons/IconMenuDots.svelte.d.ts +23 -0
  95. package/dist/icons/IconSearch.svelte +3 -0
  96. package/dist/icons/IconSearch.svelte.d.ts +23 -0
  97. package/dist/icons/IconShow.svelte.d.ts +23 -0
  98. package/dist/icons/IconSuccess.svelte.d.ts +23 -0
  99. package/dist/icons/IconWarning.svelte.d.ts +23 -0
  100. package/dist/icons/index.d.ts +14 -11
  101. package/dist/icons/index.js +14 -11
  102. package/dist/layout/Layout.svelte +7 -5
  103. package/dist/layout/Layout.svelte.d.ts +19 -22
  104. package/dist/layout/LayoutFooter.svelte.d.ts +17 -18
  105. package/dist/layout/LayoutGrid.svelte.d.ts +25 -36
  106. package/dist/layout/LayoutHeader.svelte +3 -0
  107. package/dist/layout/LayoutHeader.svelte.d.ts +33 -38
  108. package/dist/layout/LayoutSideMenu.svelte +18 -17
  109. package/dist/layout/LayoutSideMenu.svelte.d.ts +18 -22
  110. package/dist/layout/Overlay.svelte.d.ts +22 -32
  111. package/dist/layout/OverlayContainer.svelte.d.ts +14 -15
  112. package/dist/layout/OverlayLayer.svelte +6 -11
  113. package/dist/layout/OverlayLayer.svelte.d.ts +17 -20
  114. package/dist/layout/PageContent.svelte +9 -24
  115. package/dist/layout/PageContent.svelte.d.ts +23 -26
  116. package/dist/layout/Theme.svelte +19 -4
  117. package/dist/layout/Theme.svelte.d.ts +17 -22
  118. package/dist/layout/UIContent.svelte.d.ts +16 -20
  119. package/dist/layout/index.d.ts +5 -1
  120. package/dist/layout/index.js +5 -1
  121. package/dist/layout/overlays.svelte.d.ts +2 -2
  122. package/dist/nav/Breadcrumb.svelte +1 -1
  123. package/dist/nav/Breadcrumb.svelte.d.ts +26 -31
  124. package/dist/nav/Menu.svelte +6 -13
  125. package/dist/nav/Menu.svelte.d.ts +25 -31
  126. package/dist/nav/MenuItem.svelte +15 -8
  127. package/dist/nav/MenuItem.svelte.d.ts +20 -24
  128. package/dist/nav/MenuTypes.d.ts +7 -7
  129. package/dist/nav/NavMenu.svelte +7 -9
  130. package/dist/nav/NavMenu.svelte.d.ts +17 -18
  131. package/dist/nav/TabbedContent.svelte +1 -1
  132. package/dist/nav/TabbedContent.svelte.d.ts +21 -22
  133. package/dist/nav/Tabs.svelte +53 -13
  134. package/dist/nav/Tabs.svelte.d.ts +24 -25
  135. package/dist/nav/index.d.ts +2 -1
  136. package/dist/nav/index.js +2 -1
  137. package/dist/style.css +176 -79
  138. package/dist/typo/Clamp.svelte.d.ts +22 -26
  139. package/dist/typo/H.svelte.d.ts +26 -30
  140. package/dist/typo/H1.svelte.d.ts +24 -28
  141. package/dist/typo/H2.svelte.d.ts +24 -28
  142. package/dist/typo/H3.svelte.d.ts +24 -28
  143. package/dist/typo/H4.svelte.d.ts +24 -28
  144. package/dist/typo/H5.svelte.d.ts +24 -28
  145. package/dist/typo/H6.svelte.d.ts +24 -28
  146. package/dist/typo/P.svelte.d.ts +24 -28
  147. package/dist/utils/StringOrComponent.svelte +14 -0
  148. package/dist/utils/StringOrComponent.svelte.d.ts +19 -0
  149. package/dist/utils/StringOrSnippet.svelte +11 -0
  150. package/dist/utils/StringOrSnippet.svelte.d.ts +19 -0
  151. package/dist/utils/color.d.ts +1 -1
  152. package/dist/utils/index.d.ts +2 -1
  153. package/dist/utils/index.js +2 -1
  154. package/dist/utils/isSnippet.d.ts +3 -5
  155. package/dist/utils/isSnippet.js +9 -4
  156. package/package.json +32 -25
  157. package/dist/data/Stat.svelte.d.ts +0 -39
  158. package/dist/data/index.d.ts +0 -1
  159. package/dist/data/index.js +0 -1
  160. package/dist/grid/Column.svelte +0 -11
  161. package/dist/grid/Column.svelte.d.ts +0 -22
  162. package/dist/grid/Grid.svelte +0 -19
  163. package/dist/grid/Grid.svelte.d.ts +0 -24
  164. package/dist/grid/Row.svelte +0 -44
  165. package/dist/grid/Row.svelte.d.ts +0 -24
  166. package/dist/icons/Alert.svelte.d.ts +0 -23
  167. package/dist/icons/Copy.svelte.d.ts +0 -23
  168. package/dist/icons/Done.svelte.d.ts +0 -23
  169. package/dist/icons/Error.svelte.d.ts +0 -23
  170. package/dist/icons/Help.svelte.d.ts +0 -23
  171. package/dist/icons/Hide.svelte.d.ts +0 -23
  172. package/dist/icons/Info.svelte.d.ts +0 -23
  173. package/dist/icons/Link.svelte.d.ts +0 -23
  174. package/dist/icons/MenuBurger.svelte.d.ts +0 -23
  175. package/dist/icons/MenuDots.svelte.d.ts +0 -23
  176. package/dist/icons/Show.svelte.d.ts +0 -23
  177. package/dist/icons/Success.svelte.d.ts +0 -23
  178. package/dist/icons/Warning.svelte.d.ts +0 -23
  179. package/dist/utils/StringOrComponentOrSnippet.svelte +0 -14
  180. package/dist/utils/StringOrComponentOrSnippet.svelte.d.ts +0 -24
  181. /package/dist/icons/{Alert.svelte → IconAlert.svelte} +0 -0
  182. /package/dist/icons/{Done.svelte → IconDone.svelte} +0 -0
  183. /package/dist/icons/{Error.svelte → IconError.svelte} +0 -0
  184. /package/dist/icons/{Help.svelte → IconHelp.svelte} +0 -0
  185. /package/dist/icons/{Hide.svelte → IconHide.svelte} +0 -0
  186. /package/dist/icons/{Info.svelte → IconInfo.svelte} +0 -0
  187. /package/dist/icons/{Link.svelte → IconLink.svelte} +0 -0
  188. /package/dist/icons/{MenuBurger.svelte → IconMenuBurger.svelte} +0 -0
  189. /package/dist/icons/{MenuDots.svelte → IconMenuDots.svelte} +0 -0
  190. /package/dist/icons/{Show.svelte → IconShow.svelte} +0 -0
  191. /package/dist/icons/{Success.svelte → IconSuccess.svelte} +0 -0
  192. /package/dist/icons/{Warning.svelte → IconWarning.svelte} +0 -0
package/dist/style.css CHANGED
@@ -18,6 +18,7 @@
18
18
  }
19
19
 
20
20
  :root {
21
+ font-synthesis-weight: none;
21
22
  /* The base grid size is used to calculate sizes */
22
23
  --grid-size: 16px;
23
24
  /* Default font family */
@@ -33,15 +34,28 @@
33
34
  --field-border-style: solid;
34
35
  --focus-size: 2px;
35
36
  --mix-amount: 80%;
37
+ --margin-xxxs: 0.35rem;
38
+ --margin-xxs: 0.5rem;
39
+ --margin-xs: 0.75rem;
40
+ --margin-sm: 1rem;
41
+ --margin-md: 1.5rem;
42
+ --margin-lg: 2rem;
43
+ --margin-xl: 3rem;
44
+ --margin-xxl: 4rem;
36
45
  /* Transitions */
37
46
  --menu-trans: 0.1s ease-in-out;
47
+ --overlay-filter: blur(10px);
38
48
  /**
39
49
  * Light theme
40
50
  */
41
51
  --l-mix-target: hsl(215, 0%, 5%);
42
52
  /* bg */
43
- --l-bg-app: hsl(215, 3%, 99.5%);
44
- --l-bg-subtle: hsl(240, 7%, 97%);
53
+ --l-bg-app: hsl(215, 3%, 98%);
54
+ --l-bg-panel: white;
55
+ --l-bg-scrim: rgba(0, 0, 0, 0.5);
56
+ --l-bg-subtle: hsl(210, 10%, 96%);
57
+ --l-bg-subtler: hsl(215, 3%, 94%);
58
+ --l-bg-hover: hsl(215, 50%, 93%);
45
59
  --l-bg-overlay: rgba(255,255,255,0.85);
46
60
  --l-shadow: rgba(0, 0, 0, 0.15);
47
61
  /* border */
@@ -55,6 +69,7 @@
55
69
  /* text */
56
70
  --l-text: hsl(240, 2%, 20%);
57
71
  --l-text-subtle: hsl(240, 2%, 40%);
72
+ --l-text-subtler: hsl(240, 2%, 55%);
58
73
  --l-text-highlight: hsl(206, 99%, 47%);
59
74
  --l-text-heading: hsl(240, 3%, 12%);
60
75
  --l-text-link: hsl(215, 70%, 55%);
@@ -63,6 +78,7 @@
63
78
  --l-text-subtle-icon: #999;
64
79
  --l-text-warn-icon: #e74c3c;
65
80
  /* fields */
81
+ --l-form-bg: hsl(215, 3%, 99%);
66
82
  --l-field-bg: transparent;
67
83
  --l-field-border-color: var(--l-border-color);
68
84
  --l-field-border-color-error: var(--l-focus-color-error);
@@ -116,10 +132,8 @@
116
132
  /* menu */
117
133
  --l-menu-bg: #fff;
118
134
  --l-menu-bg-active: hsl(215, 25%, 90%);
119
- --l-menu-bg-hover: hsl(215, 20%, 95%);
120
135
  --l-menu-border: var(--l-border-subtle);
121
- --l-menu-text: var(--text);
122
- --l-menu-text-subtle: var(--text-subtle);
136
+ --l-menu-text: hsl(215, 10%, 50%);
123
137
  --l-menu-text-active: hsl(240, 2%, 15%);
124
138
  /* status colors */
125
139
  --l-status-default: hsl(215, 20%, 85%);
@@ -134,14 +148,18 @@
134
148
  /**
135
149
  * Dark theme
136
150
  */
137
- --d-mix-target: hsl(215, 3%, 3%);
151
+ --d-mix-target: hsl(215, 3%, 10%);
138
152
  /* bg */
139
- --d-bg-app: #121212;
140
- --d-bg-subtle: hsl(215, 3%, 15%);
141
- --d-bg-overlay: rgba(0, 0, 0, 0.85);
142
- --d-shadow: rgba(0, 0, 0, 0.3);
153
+ --d-bg-app: hsl(215, 12%, 8%);
154
+ --d-bg-panel: hsl(215, 12%, 14%);
155
+ --d-bg-scrim: rgba(0, 0, 0, 0.5);
156
+ --d-bg-subtle: hsl(215, 12%, 12%);
157
+ --d-bg-subtler: hsl(215, 12%, 10%);
158
+ --d-bg-hover: hsl(215, 15%, 20%);
159
+ --d-bg-overlay: hsla(215, 10%, 10%, 0.85);
160
+ --d-shadow: hsla(215, 5%, 5%, 0.3);
143
161
  /* border */
144
- --d-border-color: hsl(215, 8%, 30%);
162
+ --d-border-color: hsl(215, 10%, 33%);
145
163
  --d-border-subtle-color: hsl(215, 5%, 25%);
146
164
  --d-focus-color: rgb(77, 144, 254);
147
165
  --d-focus-color-error: red;
@@ -149,32 +167,34 @@
149
167
  --d-border-subtle: var(--border-size) var(--border-style) var(--d-border-subtle-color);
150
168
  --d-focus-outline: var(--focus-size) solid var(--d-focus-color);
151
169
  /* text */
152
- --d-text: #ccc;
153
- --d-text-subtle: #a1a1a6;
170
+ --d-text: hsl(220, 6%, 80%);
171
+ --d-text-subtle: hsl(215, 5%, 65%);
172
+ --d-text-subtler: hsl(215, 5%, 50%);
154
173
  --d-text-highlight: #4C9AFF;
155
174
  --d-text-heading: #e1e1e3;
156
175
  --d-text-link: rgb(77, 144, 254);
157
176
  --d-text-link-hover: rgb(58, 109, 193);
158
- --d-text-warn: #ff6b6b;
159
- --d-text-icon: #bbb;
160
- --d-text-subtle-icon: #888;
177
+ --d-text-warn: #e23434;
178
+ --d-text-icon: hsl(215, 5%, 70%);
179
+ --d-text-subtle-icon: hsl(215, 5%, 50%);
161
180
  --d-text-warn-icon: #ff6b6b;
162
181
  /* fields */
163
- --d-field-bg: transparent;
182
+ --d-form-bg: hsl(215, 12%, 14%);
183
+ --d-field-bg: hsl(215, 10%, 10%);
164
184
  --d-field-border-color: var(--d-border-color);
165
185
  --d-field-border-color-error: red;
166
186
  --d-field-border: var(--field-border-size) var(--field-border-style) var(--d-field-border-color);
167
187
  --d-field-text: var(--d-text);
168
- --d-field-placeholder: #666;
169
- --d-field-label: #ccc;
188
+ --d-field-placeholder: hsl(215, 5%, 40%);
189
+ --d-field-label: hsl(215, 5%, 75%);
170
190
  /* toggle */
171
- --d-toggle-on: #4C9AFF;
172
- --d-toggle-on-hover: #3771c1;
173
- --d-toggle-off: #666;
174
- --d-toggle-off-hover: #888;
191
+ --d-toggle-on: hsl(215, 80%, 40%);
192
+ --d-toggle-on-hover: hsl(215, 90%, 60%);
193
+ --d-toggle-off: hsl(215, 5%, 45%);
194
+ --d-toggle-off-hover: hsl(215, 8%, 50%);
175
195
  /* buttons */
176
- --d-button-bg: #4C9AFF;
177
- --d-button-text: white;
196
+ --d-button-bg: hsl(215, 80%, 40%);
197
+ --d-button-text: hsl(215, 5%, 98%);
178
198
  --d-button-border-color: var(--d-button-bg);
179
199
  --d-button-border: var(--border-size) var(--border-style) var(--d-button-border-color);
180
200
  /* buttons: disabled */
@@ -183,16 +203,16 @@
183
203
  --d-button-disabled-border-color: var(--d-button-disabled-bg);
184
204
  --d-button-disabled-border: var(--border-size) var(--border-style) var(--d-button-disabled-border-color);
185
205
  /* buttons: outlined */
186
- --d-button-outlined-text: #ccc;
206
+ --d-button-outlined-text: hsl(215, 8%, 85%);
187
207
  --d-button-outlined-border-color: var(--d-button-outlined-text);
188
208
  --d-button-outlined-border: var(--border-size) var(--border-style) var(--d-button-outlined-border-color);
189
209
  /* buttons: secondary (for highlighted actions) */
190
210
  --d-button-secondary-bg: hsl(146, 67%, 38%);
191
- --d-button-secondary-text: white;
211
+ --d-button-secondary-text: hsl(146, 5%, 98%);
192
212
  --d-button-secondary-border-color: var(--d-button-secondary-bg);
193
213
  --d-button-secondary-border: var(--border-size) var(--border-style) var(--d-button-secondary-border-color);
194
214
  /* buttons: warn */
195
- --d-button-warn-bg: #ff6b6b;
215
+ --d-button-warn-bg: hsl(0, 53%, 42%);
196
216
  --d-button-warn-text: white;
197
217
  --d-button-warn-border-color: var(--d-button-warn-bg);
198
218
  --d-button-warn-border: var(--border-size) var(--border-style) var(--d-button-warn-border-color);
@@ -215,9 +235,8 @@
215
235
  /* menu */
216
236
  --d-menu-bg: #2c2c2c;
217
237
  --d-menu-bg-active: #444;
218
- --d-menu-bg-hover: #444;
219
238
  --d-menu-border: var(--d-border-subtle);
220
- --d-menu-text: #ccc;
239
+ --d-menu-text: hsl(215, 10%, 75%);
221
240
  --d-menu-text-active: #fff;
222
241
  /* status colors */
223
242
  --d-status-default: hsl(215, 10%, 25%);
@@ -232,24 +251,53 @@
232
251
  @media(min-width: 1280px) {
233
252
  :root {
234
253
  --grid-size: 16px;
254
+ --pad-xs: 0.5rem;
255
+ --pad-sm: 1rem;
256
+ --pad-md: 1.5rem;
257
+ --pad-lg: 2rem;
258
+ --pad-xl: 3rem;
259
+ --pad-xxl: 4rem;
235
260
  }
236
261
  }
237
262
 
238
263
  @media(max-width: 1280px) {
239
264
  :root {
240
265
  --grid-size: 14px;
266
+ --pad-xs: 0.5rem;
267
+ --pad-sm: 1rem;
268
+ --pad-md: 1.5rem;
269
+ --pad-lg: 2rem;
270
+ --pad-xl: 3rem;
271
+ --pad-xxl: 4rem;
272
+ }
273
+ }
274
+
275
+ @media(max-width: 960px) {
276
+ :root {
277
+ --pad-xs: 0.35rem;
278
+ --pad-sm: 0.75rem;
279
+ --pad-md: 1rem;
280
+ --pad-lg: 1.5rem;
281
+ --pad-xl: 2rem;
282
+ --pad-xxl: 3rem;
241
283
  }
242
284
  }
243
285
 
244
286
  @media(max-width: 640px) {
245
287
  :root {
246
288
  --grid-size: 13px;
289
+ --pad-xs: 0.25rem;
290
+ --pad-sm: 0.5rem;
291
+ --pad-md: 0.75rem;
292
+ --pad-lg: 1rem;
293
+ --pad-xl: 1.5rem;
294
+ --pad-xxl: 2rem;
247
295
  }
248
296
  }
249
297
 
250
298
  body {
251
299
  font-family: var(--font-family);
252
- font-size: 100%;
300
+ font-size: var(--grid-size);
253
301
  text-rendering: optimizeLegibility;
254
302
  -webkit-font-smoothing: antialiased;
255
303
  -moz-osx-font-smoothing: grayscale;
@@ -286,6 +334,7 @@ html, body, .app {
286
334
 
287
335
  html {
288
336
  font-size: 1rem;
337
+ color-scheme: light dark;
289
338
  }
290
339
 
291
340
  html, body {
@@ -331,6 +380,7 @@ input, textarea, select, button {
331
380
 
332
381
  h1, h2, h3, h4, h5, h6 {
333
382
  font-family: var(--font-family);
383
+ line-height: 1.5;
334
384
  margin: 0;
335
385
  color: var(--text-heading);
336
386
  }
@@ -340,14 +390,8 @@ h1, h2, h3, h4, h5, h6 {
340
390
  * Use system font on iOS devices
341
391
  */
342
392
  @supports (font: -apple-system-body) {
343
- body {
344
- font: -apple-system-body;
345
- }
346
- h1, h2, h3, h4, h5, h6 {
347
- font: -apple-system-headline;
348
- }
349
- input, p, li, textarea, select, button {
350
- font: -apple-system-body;
393
+ :root {
394
+ --font-family: -apple-system-body;
351
395
  }
352
396
  }
353
397
 
@@ -380,12 +424,12 @@ h5 {
380
424
  }
381
425
 
382
426
  h6 {
383
- font-size: 1em;
427
+ font-size: 0.85em;
384
428
  line-height: 1.5;
385
429
  font-weight: 500;
386
430
  }
387
431
 
388
- p, th, td, li:not(:has(p)) {
432
+ p, th, td, dt, dd, li:not(:has(p)) {
389
433
  font-size: 1em;
390
434
  line-height: 1.5;
391
435
  font-weight: 400;
@@ -400,6 +444,10 @@ small {
400
444
  display: block;
401
445
  }
402
446
 
447
+ dt {
448
+ color: var(--text-subtle);
449
+ }
450
+
403
451
  strong {
404
452
  color: var(--text-heading);
405
453
  font-weight: 500;
@@ -456,7 +504,8 @@ fieldset legend {
456
504
  }
457
505
 
458
506
  input, textarea, select {
459
- font-size: 1em;
507
+ font-family: var(--font-family);
508
+ font-size: var(--font-size, max(0.9em, 9px));
460
509
  line-height: 1.5;
461
510
  font-weight: 400;
462
511
  color: var(--field-text);
@@ -465,6 +514,7 @@ input, textarea, select {
465
514
  border-radius: var(--field-radius);
466
515
  padding: 0.5em 0.75em;
467
516
  transition: border-color 0.1s;
517
+ touch-action: manipulation;
468
518
  }
469
519
 
470
520
  input:user-invalid {
@@ -475,13 +525,6 @@ input:user-invalid:focus-visible {
475
525
  outline-color: var(--focus-color-error);
476
526
  }
477
527
 
478
- select {
479
- padding-right: 2.25em;
480
- appearance: none;
481
- background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEyIDgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjc1LDAsMCwxLDAsMCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xNiwwTDAsMEw4LDhMMTYsMFoiLz4KICAgIDwvZz4KPC9zdmc+Cg==') calc(100% - 0.75em) 50% no-repeat;
482
- background-size: 12px;
483
- }
484
-
485
528
  input[type="submit"],
486
529
  input[type="button"] {
487
530
  cursor: pointer;
@@ -516,6 +559,10 @@ input[type="radio"]:focus-visible {
516
559
  border: var(--field-border);
517
560
  }
518
561
 
562
+ input[type="range"] {
563
+ padding: 0;
564
+ }
565
+
519
566
  label {
520
567
  color: var(--field-label);
521
568
  font-size: max(0.85em, 12px);
@@ -527,7 +574,7 @@ label {
527
574
  label:has(+input[type="checkbox"]),
528
575
  label:has(+input[type="radio"]) {
529
576
  cursor: pointer;
530
- font-size: 1em;
577
+ font-size: var(--font-size, max(0.9em, 9px));
531
578
  font-weight: 400;
532
579
  }
533
580
 
@@ -543,12 +590,13 @@ button {
543
590
 
544
591
  .button,
545
592
  ::file-selector-button {
546
- font-size: var(--font-size, 1em);
593
+ font-size: var(--font-size, max(0.9em, 9px));
594
+ touch-action: manipulation;
547
595
  line-height: 1.5;
548
596
  font-weight: 500;
549
597
  background-color: var(--button-bg);
550
598
  color: var(--button-text);
551
- padding: var(--padding, 0.5em 1.3em);
599
+ padding: var(--padding, 0.5em 1em);
552
600
  border-radius: var(--field-radius);
553
601
  border: var(--button-border);
554
602
  cursor: pointer;
@@ -566,7 +614,6 @@ button {
566
614
  border-color: color-mix(in srgb, var(--button-border-color) var(--mix-amount), var(--mix-target));
567
615
  }
568
616
 
569
- button:active,
570
617
  .button:active {
571
618
  scale: 0.95;
572
619
  }
@@ -616,14 +663,30 @@ button:active,
616
663
  border-color: color-mix(in srgb, var(--button-warn-border-color) var(--mix-amount), var(--mix-target));
617
664
  }
618
665
 
666
+ .button:disabled {
667
+ background-color: var(--button-disabled-bg);
668
+ color: var(--button-disabled-text);
669
+ border: var(--button-disabled-border);
670
+ cursor: not-allowed;
671
+ }
672
+
673
+ .button:disabled:hover {
674
+ background-color: var(--button-disabled-bg);
675
+ color: var(--button-disabled-text);
676
+ border: var(--button-disabled-border);
677
+ }
678
+
619
679
  @scope (.PageContent) to (.UIContent) {
620
-
621
- .button { margin-block-start: calc(0.5rem * var(--margin-scale, 1)); }
622
- .button.lg { margin-block-start: calc(0.75rem * var(--margin-scale, 1)); }
623
- .button.xl { margin-block-start: calc(1rem * var(--margin-scale, 1)); }
624
- .button:has(+.button) { margin-inline-end: calc(0.5rem * var(--margin-scale, 1)); }
625
- .button.lg:has(+.button) { margin-inline-end: calc(1rem * var(--margin-scale, 1)); }
626
- .button.xl:has(+.button) { margin-inline-end: calc(1.5rem * var(--margin-scale, 1)); }
680
+
681
+ .spacer {
682
+ display: block;
683
+ margin-block-end: calc(1.5rem * var(--margin-scale, 1));
684
+ }
685
+ .spacer.xs { margin-block-end: calc(0.5rem * var(--margin-scale, 1)); }
686
+ .spacer.sm { margin-block-end: calc(1rem * var(--margin-scale, 1)); }
687
+ .spacer.lg { margin-block-end: calc(2rem * var(--margin-scale, 1)); }
688
+ .spacer.xl { margin-block-end: calc(3rem * var(--margin-scale, 1)); }
689
+ .spacer.xxl { margin-block-end: calc(4rem * var(--margin-scale, 1)); }
627
690
 
628
691
  p { margin-block: calc(0.75rem * var(--margin-scale, 1)); }
629
692
  h1 { margin-block: calc(3rem * var(--margin-scale, 1)) calc(1.5rem * var(--margin-scale, 1)); }
@@ -757,19 +820,35 @@ button:active,
757
820
  }
758
821
 
759
822
  /** Tables */
823
+ .table-container {
824
+ width: 100cqw;
825
+ display: block;
826
+ overflow-x: auto;
827
+ scrollbar-width: thin;
828
+ }
829
+ .table-container.hang {
830
+ margin-inline: calc(var(--inset-inline, 1rem) * -1);
831
+ inline-size: calc(100% + 2rem);
832
+ }
833
+ .table-container.contained {
834
+ border: var(--border);
835
+ }
836
+ .table-container.rounded {
837
+ border-radius: var(--border-radius);
838
+ }
760
839
  table {
761
840
  margin-block: calc(1.5em * var(--margin-scale, 1));
762
841
  border-collapse: collapse;
763
842
  font-size: var(--font-size, 1em);
764
843
  }
765
844
  table.fullWidth {
766
- width: 100%;
845
+ inline-size: 100%;
767
846
  }
768
847
  table.contained {
769
848
  border: var(--border);
770
849
  }
771
850
  table.hang {
772
- margin-inline: -1rem;
851
+ margin-inline: calc(var(--inset-inline, 1rem) * -1);
773
852
  inline-size: calc(100% + 2rem);
774
853
  }
775
854
  table.sm {
@@ -778,30 +857,28 @@ button:active,
778
857
  }
779
858
  table.rounded {
780
859
  border-radius: var(--border-radius);
781
- overflow: clip;
782
- border-spacing: 0;
860
+ border-style: hidden;
783
861
  }
784
862
  tr {
785
863
  border-block-end: var(--border-subtle);
786
864
  }
787
865
  th,
788
866
  td {
789
- font-size: 1em;
867
+ height: 3rem;
868
+ font-size: max(0.9em, 9px);
790
869
  line-height: 1.5;
791
870
  padding: var(--padding, 0.5em 0.75em);
871
+ white-space: nowrap;
792
872
  text-align: start;
793
873
  }
794
- td.actions {
795
- min-width: 0px;
796
- width: 0px;
874
+ td.end {
875
+ text-align: end;
797
876
  }
798
- table.hang th:first-of-type,
799
- table.hang td:first-of-type {
800
- padding-inline: 1rem;
877
+ table tr > :not([style*="display: none"]):first-child {
878
+ padding-inline-start: 1rem;
801
879
  }
802
- table.hang th:last-of-type,
803
- table.hang td:last-of-type {
804
- padding-inline: 1rem;
880
+ table tr > :not([style*="display: none"]):last-child {
881
+ padding-inline-end: 1rem;
805
882
  }
806
883
  th:last-child,
807
884
  td:last-child {
@@ -813,15 +890,22 @@ button:active,
813
890
  table.colored tbody tr:nth-child(2n) {
814
891
  background-color: var(--bg-subtle);
815
892
  }
816
- table.contained th,
817
- table.contained td {
818
- border-inline-end: var(--border-subtle);
893
+ table.colored thead tr {
894
+ background-color: var(--bg-subtle);
819
895
  }
820
896
  table tbody tr:last-of-type {
821
897
  border-block-end: none;
822
898
  }
823
- table thead tr {
824
- background-color: var(--bg-subtle);
899
+ table.hoverable tbody tr:hover {
900
+ background-color: var(--bg-hover);
901
+ }
902
+
903
+ .table-container.hang table {
904
+ inline-size: 100%;
905
+ margin-inline: 0;
906
+ }
907
+ .table-container.contained table {
908
+ border: none;
825
909
  }
826
910
 
827
911
  /** Forms */
@@ -839,6 +923,19 @@ button:active,
839
923
  border-inline-start: 4px solid var(--border-subtle-color);
840
924
  background-color: var(--bg-subtle);
841
925
  }
926
+
927
+ @container(max-width: 960px) {
928
+ table td.hide-md,
929
+ table th.hide-md {
930
+ display: none;
931
+ }
932
+ }
933
+ @container(max-width: 640px) {
934
+ table td.hide-sm,
935
+ table th.hide-sm {
936
+ display: none;
937
+ }
938
+ }
842
939
  }
843
940
 
844
941
  @media(prefers-reduced-motion: reduce) {
@@ -1,28 +1,24 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import { type Snippet } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- children: Snippet;
6
- inline?: string | undefined;
7
- block?: string | undefined;
8
- clip?: boolean | undefined;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {};
14
- };
15
- export type ClampProps = typeof __propDef.props;
16
- export type ClampEvents = typeof __propDef.events;
17
- export type ClampSlots = typeof __propDef.slots;
18
- export default class Clamp extends SvelteComponent<ClampProps, ClampEvents, ClampSlots> {
19
- constructor(options?: import("svelte").ComponentConstructorOptions<{
20
- children: (this: void) => typeof import("svelte").SnippetReturn & {
21
- _: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
22
- };
23
- inline?: string | undefined;
24
- block?: string | undefined;
25
- clip?: boolean | undefined;
26
- }>);
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports;
10
+ z_$$bindings?: Bindings;
27
11
  }
28
- export {};
12
+ declare const Clamp: $$__sveltets_2_IsomorphicComponent<{
13
+ children: Snippet;
14
+ /** Clamp in the logical inline direction */
15
+ inline?: string;
16
+ /** Clamp in the logical block direction */
17
+ block?: string;
18
+ /** Clip the text */
19
+ clip?: boolean;
20
+ }, {
21
+ [evt: string]: CustomEvent<any>;
22
+ }, {}, {}, "">;
23
+ type Clamp = InstanceType<typeof Clamp>;
24
+ export default Clamp;
@@ -1,32 +1,28 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import { type Snippet } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- children: Snippet;
6
- lang?: string | undefined;
7
- level?: 5 | 3 | 2 | 1 | 4 | 6 | undefined;
8
- center?: boolean | undefined;
9
- subtle?: boolean | undefined;
10
- hr?: boolean | undefined;
11
- };
12
- events: {
13
- [evt: string]: CustomEvent<any>;
14
- };
15
- slots: {};
16
- };
17
- export type HProps = typeof __propDef.props;
18
- export type HEvents = typeof __propDef.events;
19
- export type HSlots = typeof __propDef.slots;
20
- export default class H extends SvelteComponent<HProps, HEvents, HSlots> {
21
- constructor(options?: import("svelte").ComponentConstructorOptions<{
22
- children: (this: void) => typeof import("svelte").SnippetReturn & {
23
- _: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
24
- };
25
- lang?: string | undefined;
26
- level?: 5 | 3 | 2 | 1 | 4 | 6 | undefined;
27
- center?: boolean | undefined;
28
- subtle?: boolean | undefined;
29
- hr?: boolean | undefined;
30
- }>);
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports;
10
+ z_$$bindings?: Bindings;
31
11
  }
32
- export {};
12
+ declare const H: $$__sveltets_2_IsomorphicComponent<{
13
+ children: Snippet;
14
+ /** Language of the element */
15
+ lang?: string;
16
+ /** The level of the heading. */
17
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
18
+ /** Center the text. */
19
+ center?: boolean;
20
+ /** Make the text subtle. */
21
+ subtle?: boolean;
22
+ /** Add a horizontal rule below the text. */
23
+ hr?: boolean;
24
+ }, {
25
+ [evt: string]: CustomEvent<any>;
26
+ }, {}, {}, "">;
27
+ type H = InstanceType<typeof H>;
28
+ export default H;
@@ -1,30 +1,26 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import { type Snippet } from "svelte";
3
- declare const __propDef: {
4
- props: {
5
- center?: boolean | undefined;
6
- lang?: string | undefined;
7
- hr?: boolean | undefined;
8
- subtle?: boolean | undefined;
9
- children: Snippet;
10
- };
11
- events: {
12
- [evt: string]: CustomEvent<any>;
13
- };
14
- slots: {};
15
- };
16
- export type H1Props = typeof __propDef.props;
17
- export type H1Events = typeof __propDef.events;
18
- export type H1Slots = typeof __propDef.slots;
19
- export default class H1 extends SvelteComponent<H1Props, H1Events, H1Slots> {
20
- constructor(options?: import("svelte").ComponentConstructorOptions<{
21
- center?: boolean | undefined;
22
- lang?: string | undefined;
23
- hr?: boolean | undefined;
24
- subtle?: boolean | undefined;
25
- children: (this: void) => typeof import("svelte").SnippetReturn & {
26
- _: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
27
- };
28
- }>);
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports;
10
+ z_$$bindings?: Bindings;
29
11
  }
30
- export {};
12
+ declare const H1: $$__sveltets_2_IsomorphicComponent<{
13
+ /** Center the text. */
14
+ center?: boolean;
15
+ /** Language of the element */
16
+ lang?: string;
17
+ /** Add a horizontal rule below the text. */
18
+ hr?: boolean;
19
+ /** Make the text subtle. */
20
+ subtle?: boolean;
21
+ children: Snippet;
22
+ }, {
23
+ [evt: string]: CustomEvent<any>;
24
+ }, {}, {}, "">;
25
+ type H1 = InstanceType<typeof H1>;
26
+ export default H1;