lutra 0.0.33 → 0.1.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.
Files changed (242) hide show
  1. package/README.md +4 -24
  2. package/dist/components/AspectRatio.svelte +26 -0
  3. package/dist/components/AspectRatio.svelte.d.ts +8 -0
  4. package/dist/components/Dialog.svelte +78 -0
  5. package/dist/components/Dialog.svelte.d.ts +14 -0
  6. package/dist/components/Layout.svelte +32 -0
  7. package/dist/components/Layout.svelte.d.ts +11 -0
  8. package/dist/components/PageContent.svelte +108 -0
  9. package/dist/components/PageContent.svelte.d.ts +38 -0
  10. package/dist/components/Theme.svelte +87 -0
  11. package/dist/components/Theme.svelte.d.ts +17 -0
  12. package/dist/{display → components}/Tooltip.svelte +33 -8
  13. package/dist/components/Tooltip.svelte.d.ts +12 -0
  14. package/dist/config.d.ts +30 -0
  15. package/dist/config.js +18 -0
  16. package/dist/css/0-layers.css +1 -0
  17. package/dist/css/1-props.css +775 -0
  18. package/dist/css/2-base.css +209 -0
  19. package/dist/css/3-typo.css +65 -0
  20. package/dist/css/4-layout.css +5 -0
  21. package/dist/css/5-media.css +21 -0
  22. package/dist/css/lutra.css +6 -0
  23. package/dist/index.d.ts +5 -1
  24. package/dist/index.js +5 -2
  25. package/dist/types.d.ts +39 -0
  26. package/dist/types.js +25 -0
  27. package/package.json +29 -82
  28. package/dist/color.css +0 -0
  29. package/dist/display/Avatar.svelte +0 -61
  30. package/dist/display/Avatar.svelte.d.ts +0 -19
  31. package/dist/display/Badge.svelte +0 -91
  32. package/dist/display/Badge.svelte.d.ts +0 -30
  33. package/dist/display/Callout.svelte +0 -109
  34. package/dist/display/Callout.svelte.d.ts +0 -28
  35. package/dist/display/Close.svelte +0 -58
  36. package/dist/display/Close.svelte.d.ts +0 -18
  37. package/dist/display/Code.svelte +0 -190
  38. package/dist/display/Code.svelte.d.ts +0 -32
  39. package/dist/display/ContextTip.svelte +0 -23
  40. package/dist/display/ContextTip.svelte.d.ts +0 -18
  41. package/dist/display/DataList.svelte +0 -16
  42. package/dist/display/DataList.svelte.d.ts +0 -21
  43. package/dist/display/Details.svelte +0 -49
  44. package/dist/display/Details.svelte.d.ts +0 -27
  45. package/dist/display/Hero.svelte +0 -50
  46. package/dist/display/Hero.svelte.d.ts +0 -26
  47. package/dist/display/Icon.svelte +0 -39
  48. package/dist/display/Icon.svelte.d.ts +0 -19
  49. package/dist/display/IconButton.svelte +0 -91
  50. package/dist/display/IconButton.svelte.d.ts +0 -27
  51. package/dist/display/Image.svelte +0 -91
  52. package/dist/display/Image.svelte.d.ts +0 -26
  53. package/dist/display/Indicator.svelte +0 -352
  54. package/dist/display/Indicator.svelte.d.ts +0 -23
  55. package/dist/display/Inset.svelte +0 -18
  56. package/dist/display/Inset.svelte.d.ts +0 -18
  57. package/dist/display/LineChart.svelte +0 -385
  58. package/dist/display/LineChart.svelte.d.ts +0 -24
  59. package/dist/display/LoadingIndicator.svelte +0 -33
  60. package/dist/display/LoadingIndicator.svelte.d.ts +0 -15
  61. package/dist/display/Modal.svelte +0 -116
  62. package/dist/display/Modal.svelte.d.ts +0 -27
  63. package/dist/display/Notification.svelte +0 -104
  64. package/dist/display/Notification.svelte.d.ts +0 -23
  65. package/dist/display/Panel.svelte +0 -23
  66. package/dist/display/Panel.svelte.d.ts +0 -19
  67. package/dist/display/Popup.svelte +0 -111
  68. package/dist/display/Popup.svelte.d.ts +0 -25
  69. package/dist/display/Stat.svelte +0 -81
  70. package/dist/display/Stat.svelte.d.ts +0 -30
  71. package/dist/display/Table.svelte +0 -28
  72. package/dist/display/Table.svelte.d.ts +0 -24
  73. package/dist/display/TablePaginator.svelte +0 -51
  74. package/dist/display/TablePaginator.svelte.d.ts +0 -21
  75. package/dist/display/Tag.svelte +0 -90
  76. package/dist/display/Tag.svelte.d.ts +0 -32
  77. package/dist/display/Tooltip.svelte.d.ts +0 -23
  78. package/dist/display/chart.d.ts +0 -78
  79. package/dist/display/chart.js +0 -212
  80. package/dist/display/index.d.ts +0 -24
  81. package/dist/display/index.js +0 -24
  82. package/dist/display/notifications.svelte.d.ts +0 -21
  83. package/dist/display/notifications.svelte.js +0 -31
  84. package/dist/form/Button.svelte +0 -39
  85. package/dist/form/Button.svelte.d.ts +0 -26
  86. package/dist/form/FieldActions.svelte +0 -68
  87. package/dist/form/FieldActions.svelte.d.ts +0 -20
  88. package/dist/form/FieldContainer.svelte +0 -37
  89. package/dist/form/FieldContainer.svelte.d.ts +0 -19
  90. package/dist/form/FieldContent.svelte +0 -153
  91. package/dist/form/FieldContent.svelte.d.ts +0 -31
  92. package/dist/form/FieldError.svelte +0 -14
  93. package/dist/form/FieldError.svelte.d.ts +0 -18
  94. package/dist/form/FieldSection.svelte +0 -86
  95. package/dist/form/FieldSection.svelte.d.ts +0 -20
  96. package/dist/form/Fieldset.svelte +0 -68
  97. package/dist/form/Fieldset.svelte.d.ts +0 -31
  98. package/dist/form/Form.svelte +0 -136
  99. package/dist/form/Form.svelte.d.ts +0 -38
  100. package/dist/form/ImageUpload.svelte +0 -259
  101. package/dist/form/ImageUpload.svelte.d.ts +0 -31
  102. package/dist/form/Input.svelte +0 -326
  103. package/dist/form/Input.svelte.d.ts +0 -117
  104. package/dist/form/InputLength.svelte +0 -32
  105. package/dist/form/InputLength.svelte.d.ts +0 -20
  106. package/dist/form/Label.svelte +0 -44
  107. package/dist/form/Label.svelte.d.ts +0 -25
  108. package/dist/form/LogoUpload.svelte +0 -100
  109. package/dist/form/LogoUpload.svelte.d.ts +0 -29
  110. package/dist/form/Select.svelte +0 -136
  111. package/dist/form/Select.svelte.d.ts +0 -70
  112. package/dist/form/Textarea.svelte +0 -163
  113. package/dist/form/Textarea.svelte.d.ts +0 -108
  114. package/dist/form/Toggle.svelte +0 -2
  115. package/dist/form/Toggle.svelte.d.ts +0 -15
  116. package/dist/form/client.svelte.d.ts +0 -44
  117. package/dist/form/client.svelte.js +0 -98
  118. package/dist/form/form.d.ts +0 -54
  119. package/dist/form/form.js +0 -340
  120. package/dist/form/index.d.ts +0 -18
  121. package/dist/form/index.js +0 -18
  122. package/dist/form/types.d.ts +0 -62
  123. package/dist/form/types.js +0 -1
  124. package/dist/icons/IconAlert.svelte +0 -3
  125. package/dist/icons/IconAlert.svelte.d.ts +0 -23
  126. package/dist/icons/IconCopy.svelte +0 -3
  127. package/dist/icons/IconCopy.svelte.d.ts +0 -23
  128. package/dist/icons/IconDone.svelte +0 -3
  129. package/dist/icons/IconDone.svelte.d.ts +0 -23
  130. package/dist/icons/IconError.svelte +0 -3
  131. package/dist/icons/IconError.svelte.d.ts +0 -23
  132. package/dist/icons/IconHelp.svelte +0 -3
  133. package/dist/icons/IconHelp.svelte.d.ts +0 -23
  134. package/dist/icons/IconHide.svelte +0 -3
  135. package/dist/icons/IconHide.svelte.d.ts +0 -23
  136. package/dist/icons/IconInfo.svelte +0 -3
  137. package/dist/icons/IconInfo.svelte.d.ts +0 -23
  138. package/dist/icons/IconLink.svelte +0 -3
  139. package/dist/icons/IconLink.svelte.d.ts +0 -23
  140. package/dist/icons/IconMenuBurger.svelte +0 -3
  141. package/dist/icons/IconMenuBurger.svelte.d.ts +0 -23
  142. package/dist/icons/IconMenuDots.svelte +0 -3
  143. package/dist/icons/IconMenuDots.svelte.d.ts +0 -23
  144. package/dist/icons/IconSearch.svelte +0 -3
  145. package/dist/icons/IconSearch.svelte.d.ts +0 -23
  146. package/dist/icons/IconShow.svelte +0 -3
  147. package/dist/icons/IconShow.svelte.d.ts +0 -23
  148. package/dist/icons/IconSuccess.svelte +0 -3
  149. package/dist/icons/IconSuccess.svelte.d.ts +0 -23
  150. package/dist/icons/IconWarning.svelte +0 -3
  151. package/dist/icons/IconWarning.svelte.d.ts +0 -23
  152. package/dist/icons/index.d.ts +0 -14
  153. package/dist/icons/index.js +0 -14
  154. package/dist/layout/Layout.svelte +0 -47
  155. package/dist/layout/Layout.svelte.d.ts +0 -22
  156. package/dist/layout/LayoutFooter.svelte +0 -21
  157. package/dist/layout/LayoutFooter.svelte.d.ts +0 -18
  158. package/dist/layout/LayoutGrid.svelte +0 -51
  159. package/dist/layout/LayoutGrid.svelte.d.ts +0 -27
  160. package/dist/layout/LayoutHeader.svelte +0 -97
  161. package/dist/layout/LayoutHeader.svelte.d.ts +0 -34
  162. package/dist/layout/LayoutSideMenu.svelte +0 -55
  163. package/dist/layout/LayoutSideMenu.svelte.d.ts +0 -21
  164. package/dist/layout/LayoutTypes.d.ts +0 -15
  165. package/dist/layout/LayoutTypes.js +0 -9
  166. package/dist/layout/Overlay.svelte +0 -20
  167. package/dist/layout/Overlay.svelte.d.ts +0 -25
  168. package/dist/layout/OverlayContainer.svelte +0 -28
  169. package/dist/layout/OverlayContainer.svelte.d.ts +0 -15
  170. package/dist/layout/OverlayLayer.svelte +0 -140
  171. package/dist/layout/OverlayLayer.svelte.d.ts +0 -19
  172. package/dist/layout/PageContent.svelte +0 -82
  173. package/dist/layout/PageContent.svelte.d.ts +0 -25
  174. package/dist/layout/Theme.svelte +0 -243
  175. package/dist/layout/Theme.svelte.d.ts +0 -19
  176. package/dist/layout/UIContent.svelte +0 -15
  177. package/dist/layout/UIContent.svelte.d.ts +0 -18
  178. package/dist/layout/index.d.ts +0 -11
  179. package/dist/layout/index.js +0 -11
  180. package/dist/layout/overlays.svelte.d.ts +0 -34
  181. package/dist/layout/overlays.svelte.js +0 -44
  182. package/dist/nav/Breadcrumb.svelte +0 -82
  183. package/dist/nav/Breadcrumb.svelte.d.ts +0 -28
  184. package/dist/nav/Menu.svelte +0 -170
  185. package/dist/nav/Menu.svelte.d.ts +0 -27
  186. package/dist/nav/MenuItem.svelte +0 -147
  187. package/dist/nav/MenuItem.svelte.d.ts +0 -22
  188. package/dist/nav/MenuTypes.d.ts +0 -58
  189. package/dist/nav/MenuTypes.js +0 -1
  190. package/dist/nav/NavMenu.svelte +0 -181
  191. package/dist/nav/NavMenu.svelte.d.ts +0 -19
  192. package/dist/nav/TabbedContent.svelte +0 -43
  193. package/dist/nav/TabbedContent.svelte.d.ts +0 -23
  194. package/dist/nav/Tabs.svelte +0 -158
  195. package/dist/nav/Tabs.svelte.d.ts +0 -25
  196. package/dist/nav/index.d.ts +0 -7
  197. package/dist/nav/index.js +0 -6
  198. package/dist/style.css +0 -950
  199. package/dist/typo/Clamp.svelte +0 -25
  200. package/dist/typo/Clamp.svelte.d.ts +0 -24
  201. package/dist/typo/H.svelte +0 -52
  202. package/dist/typo/H.svelte.d.ts +0 -28
  203. package/dist/typo/H1.svelte +0 -14
  204. package/dist/typo/H1.svelte.d.ts +0 -26
  205. package/dist/typo/H2.svelte +0 -14
  206. package/dist/typo/H2.svelte.d.ts +0 -26
  207. package/dist/typo/H3.svelte +0 -14
  208. package/dist/typo/H3.svelte.d.ts +0 -26
  209. package/dist/typo/H4.svelte +0 -14
  210. package/dist/typo/H4.svelte.d.ts +0 -26
  211. package/dist/typo/H5.svelte +0 -14
  212. package/dist/typo/H5.svelte.d.ts +0 -26
  213. package/dist/typo/H6.svelte +0 -14
  214. package/dist/typo/H6.svelte.d.ts +0 -26
  215. package/dist/typo/P.svelte +0 -34
  216. package/dist/typo/P.svelte.d.ts +0 -26
  217. package/dist/typo/index.d.ts +0 -9
  218. package/dist/typo/index.js +0 -9
  219. package/dist/utils/StringOrComponent.svelte +0 -14
  220. package/dist/utils/StringOrComponent.svelte.d.ts +0 -19
  221. package/dist/utils/StringOrSnippet.svelte +0 -11
  222. package/dist/utils/StringOrSnippet.svelte.d.ts +0 -19
  223. package/dist/utils/attr.d.ts +0 -5
  224. package/dist/utils/attr.js +0 -21
  225. package/dist/utils/color.d.ts +0 -51
  226. package/dist/utils/color.js +0 -97
  227. package/dist/utils/defaults.d.ts +0 -4
  228. package/dist/utils/defaults.js +0 -1
  229. package/dist/utils/dom.d.ts +0 -15
  230. package/dist/utils/dom.js +0 -74
  231. package/dist/utils/hooks.server.d.ts +0 -2
  232. package/dist/utils/hooks.server.js +0 -16
  233. package/dist/utils/id.d.ts +0 -1
  234. package/dist/utils/id.js +0 -3
  235. package/dist/utils/index.d.ts +0 -9
  236. package/dist/utils/index.js +0 -6
  237. package/dist/utils/isSnippet.d.ts +0 -3
  238. package/dist/utils/isSnippet.js +0 -11
  239. package/dist/utils/keyboard.svelte.d.ts +0 -22
  240. package/dist/utils/keyboard.svelte.js +0 -161
  241. /package/dist/{utils → util}/transitions.d.ts +0 -0
  242. /package/dist/{utils → util}/transitions.js +0 -0
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Base DOM setup
3
+ */
4
+ :root {
5
+ --space-xxxs: calc(var(--space-base) / var(--space-ratio) / var(--space-ratio) / var(--space-ratio) / var(--space-ratio));
6
+ --space-xxs: calc(var(--space-base) / var(--space-ratio) / var(--space-ratio) / var(--space-ratio));
7
+ --space-xs: calc(var(--space-base) / var(--space-ratio) / var(--space-ratio));
8
+ --space-s: calc(var(--space-base) / var(--space-ratio));
9
+ --space-m: var(--space-base);
10
+ --space-l: calc(var(--space-base) * var(--space-ratio));
11
+ --space-xl: calc(var(--space-base) * var(--space-ratio) * var(--space-ratio));
12
+ --space-xxl: calc(var(--space-base) * var(--space-ratio) * var(--space-ratio) * var(--space-ratio));
13
+ --space-xxxl: calc(var(--space-base) * var(--space-ratio) * var(--space-ratio) * var(--space-ratio) * var(--space-ratio));
14
+ }
15
+
16
+ body {
17
+ text-rendering: optimizeLegibility;
18
+ -webkit-font-smoothing: antialiased;
19
+ -moz-osx-font-smoothing: grayscale;
20
+ overscroll-behavior: none;
21
+ overscroll-behavior-x: none;
22
+ font-family: var(--font-family);
23
+ padding: 0;
24
+ margin: 0;
25
+ min-width: 280px;
26
+ width: 100%;
27
+ min-height: 0;
28
+ }
29
+
30
+ body * {
31
+ margin: 0;
32
+ padding: 0;
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ html {
37
+ color-scheme: light dark;
38
+ }
39
+
40
+ input, textarea, select, button {
41
+ touch-action: manipulation;
42
+ -webkit-appearance: none;
43
+ -moz-appearance: none;
44
+ appearance: none;
45
+ }
46
+
47
+ input, textarea, select {
48
+ border-radius: var(--field-radius);
49
+ border-style: var(--field-border-style);
50
+ border-width: var(--field-border-size);
51
+ border-color: var(--field-border-color);
52
+ color: var(--field-text-color);
53
+ background-color: var(--field-bg-color);
54
+ padding: var(--field-padding);
55
+ }
56
+
57
+ .button,
58
+ ::file-selector-button {
59
+ cursor: pointer;
60
+ border-radius: var(--button-radius);
61
+ padding: var(--button-padding);
62
+ color: var(--button-text-color);
63
+ background-color: var(--button-bg-color);
64
+ border-width: var(--button-border-size);
65
+ border-style: var(--button-border-style);
66
+ border-color: var(--button-border-color);
67
+ }
68
+
69
+ .button:hover,
70
+ ::file-selector-button:hover {
71
+ color: var(--button-hover-text-color);
72
+ background-color: var(--button-hover-bg-color);
73
+ border-color: var(--button-hover-border-color);
74
+ }
75
+
76
+ .button:active,
77
+ ::file-selector-button:active {
78
+ color: var(--button-active-text-color);
79
+ background-color: var(--button-active-bg-color);
80
+ border-color: var(--button-active-border-color);
81
+ }
82
+
83
+ .button.secondary {
84
+ color: var(--button-secondary-text-color);
85
+ background-color: var(--button-secondary-bg-color);
86
+ border-color: var(--button-secondary-border-color);
87
+ }
88
+
89
+ .button.secondary:hover {
90
+ color: var(--button-secondary-hover-text-color);
91
+ background-color: var(--button-secondary-hover-bg-color);
92
+ border-color: var(--button-secondary-hover-bg-color);
93
+ }
94
+
95
+ .button.secondary:active {
96
+ color: var(--button-secondary-active-text-color);
97
+ background-color: var(--button-secondary-active-bg-color);
98
+ border-color: var(--button-secondary-active-bg-color);
99
+ }
100
+
101
+ .button.warning {
102
+ color: var(--button-warning-text-color);
103
+ background-color: var(--button-warning-bg-color);
104
+ border-color: var(--button-warning-border-color);
105
+ }
106
+
107
+ .button.warning:hover {
108
+ color: var(--button-warning-hover-text-color);
109
+ background-color: var(--button-warning-hover-bg-color);
110
+ border-color: var(--button-warning-hover-border-color);
111
+ }
112
+
113
+ .button.warning:active {
114
+ color: var(--button-warning-active-text-color);
115
+ background-color: var(--button-warning-active-bg-color);
116
+ border-color: var(--button-warning-active-border-color);
117
+ }
118
+
119
+ .button.danger {
120
+ color: var(--button-danger-text-color);
121
+ background-color: var(--button-danger-bg-color);
122
+ border-color: var(--button-danger-border-color);
123
+ }
124
+
125
+ .button.danger:hover {
126
+ color: var(--button-danger-hover-text-color);
127
+ background-color: var(--button-danger-hover-bg-color);
128
+ border-color: var(--button-danger-hover-border-color);
129
+ }
130
+
131
+ .button.danger:active {
132
+ color: var(--button-danger-active-text-color);
133
+ background-color: var(--button-danger-active-bg-color);
134
+ border-color: var(--button-danger-active-border-color);
135
+ }
136
+
137
+ .button.tertiary {
138
+ color: var(--button-tertiary-text-color);
139
+ background-color: var(--button-tertiary-bg-color);
140
+ border-color: var(--button-tertiary-border-color);
141
+ }
142
+
143
+ .button.tertiary:hover {
144
+ color: var(--button-tertiary-hover-text-color);
145
+ background-color: var(--button-tertiary-hover-bg-color);
146
+ border-color: var(--button-tertiary-hover-border-color);
147
+ }
148
+
149
+ .button.tertiary:active {
150
+ color: var(--button-tertiary-active-text-color);
151
+ background-color: var(--button-tertiary-active-bg-color);
152
+ border-color: var(--button-tertiary-active-border-color);
153
+ }
154
+
155
+ input::placeholder, textarea::placeholder, select::placeholder {
156
+ color: var(--field-placeholder-color);
157
+ }
158
+
159
+ *:focus-visible {
160
+ transition: outline 0.1s;
161
+ outline: var(--focus-size) solid var(--focus-color);
162
+ outline-offset: 0;
163
+ -webkit-outline-offset: 0;
164
+ transform: translateZ(0);
165
+ }
166
+
167
+ a {
168
+ color: var(--text-color-link);
169
+ text-decoration: var(--text-link-decoration);
170
+ }
171
+
172
+ a:hover {
173
+ color: var(--text-color-link-hover);
174
+ text-decoration: var(--text-link-decoration-hover);
175
+ }
176
+
177
+ a:active {
178
+ color: var(--text-color-link-active);
179
+ }
180
+
181
+ a:visited {
182
+ color: var(--text-color-link-visited);
183
+ }
184
+
185
+ pre, code {
186
+ font-family: var(--font-family-mono);
187
+ }
188
+
189
+ pre {
190
+ background-color: var(--code-bg-color);
191
+ color: var(--code-text-color);
192
+ border: var(--code-border-size) solid var(--code-border-color);
193
+ padding: var(--space-m);
194
+ border-radius: var(--border-radius);
195
+ overflow-x: auto;
196
+ }
197
+
198
+ code {
199
+ background-color: var(--code-bg-color);
200
+ color: var(--code-text-color);
201
+ padding: var(--space-xxxs) var(--space-xxs);
202
+ border-radius: var(--border-radius);
203
+ }
204
+
205
+ pre code {
206
+ padding: 0;
207
+ background-color: transparent;
208
+ border: none;
209
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Base typography setup
3
+ */
4
+
5
+ small {
6
+ font-size: calc(var(--font-size-base) / var(--font-size-ratio));
7
+ }
8
+
9
+ p, li, input, textarea, select, button {
10
+ font-size: var(--font-size-base);
11
+ font-weight: var(--font-weight-regular);
12
+ }
13
+
14
+ p, li, h6, h5, h4, h3, h2, h1, li, input, textarea, select, button {
15
+ line-height: var(--line-height);
16
+ }
17
+
18
+ p, li {
19
+ color: var(--text-color);
20
+ }
21
+
22
+ input, textarea, select, button {
23
+ font-family: var(--font-family);
24
+ color: var(--field-text-color);
25
+ background-color: var(--field-bg-color);
26
+ border-color: var(--field-border-color);
27
+ }
28
+
29
+ small {
30
+ color: var(--text-color-subtle);
31
+ }
32
+
33
+ h6, h5, h4, h3, h2, h1 {
34
+ color: var(--text-color-heading);
35
+ }
36
+
37
+ h6 {
38
+ font-size: calc(var(--font-size-base) * var(--font-size-ratio));
39
+ font-weight: var(--font-weight-medium);
40
+ }
41
+
42
+ h5 {
43
+ font-size: calc(var(--font-size-base) * pow(var(--font-size-ratio), 2));
44
+ font-weight: var(--font-weight-semibold);
45
+ }
46
+
47
+ h4 {
48
+ font-size: calc(var(--font-size-base) * pow(var(--font-size-ratio), 3));
49
+ font-weight: var(--font-weight-semibold);
50
+ }
51
+
52
+ h3 {
53
+ font-size: calc(var(--font-size-base) * pow(var(--font-size-ratio), 4));
54
+ font-weight: var(--font-weight-bold);
55
+ }
56
+
57
+ h2 {
58
+ font-size: calc(var(--font-size-base) * pow(var(--font-size-ratio), 5));
59
+ font-weight: var(--font-weight-bold);
60
+ }
61
+
62
+ h1 {
63
+ font-size: calc(var(--font-size-base) * pow(var(--font-size-ratio), 6));
64
+ font-weight: var(--font-weight-bold);
65
+ }
@@ -0,0 +1,5 @@
1
+ @scope (.PageContent) to (.UIContent) {
2
+ p {
3
+ margin-bottom: calc(var(--margin-base) * var(--margin-multiplier));
4
+ }
5
+ }
@@ -0,0 +1,21 @@
1
+ @media(prefers-reduced-motion: reduce) {
2
+ * {
3
+ transition-duration: 0s !important;
4
+ }
5
+ }
6
+
7
+ /*
8
+ @media(max-width: 1280px) {
9
+ :root {
10
+ --font-size-base: 14px;
11
+ --space-ratio: 1.2;
12
+ }
13
+ }
14
+
15
+ @media(max-width: 640px) {
16
+ :root {
17
+ --font-size-base: 12px;
18
+ --space-ratio: 1.1;
19
+ }
20
+ }
21
+ */
@@ -0,0 +1,6 @@
1
+ @import "./0-layers.css";
2
+ @import "./1-props.css";
3
+ @import "./2-base.css" layer(l-base);
4
+ @import "./3-typo.css" layer(l-typo);
5
+ @import "./4-layout.css" layer(l-layout);
6
+ @import "./5-media.css" layer(l-media);
package/dist/index.d.ts CHANGED
@@ -1 +1,5 @@
1
- export {};
1
+ export { default as AspectRatio } from './components/AspectRatio.svelte';
2
+ export { default as Dialog } from './components/Dialog.svelte';
3
+ export { default as Layout } from './components/Layout.svelte';
4
+ export { default as Theme } from './components/Theme.svelte';
5
+ export { default as PageContent } from './components/PageContent.svelte';
package/dist/index.js CHANGED
@@ -1,2 +1,5 @@
1
- "use strict";
2
- // Reexport your entry components here
1
+ export { default as AspectRatio } from './components/AspectRatio.svelte';
2
+ export { default as Dialog } from './components/Dialog.svelte';
3
+ export { default as Layout } from './components/Layout.svelte';
4
+ export { default as Theme } from './components/Theme.svelte';
5
+ export { default as PageContent } from './components/PageContent.svelte';
@@ -0,0 +1,39 @@
1
+ export interface LutraConfig {
2
+ /**
3
+ * The default theme to use.
4
+ */
5
+ theme?: 'light' | 'dark' | 'auto' | 'inherit';
6
+ /**
7
+ * Theme color for the theme-color meta tag. Only used in the root theme.
8
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name/theme-color
9
+ */
10
+ themeColor: {
11
+ light?: string;
12
+ dark?: string;
13
+ };
14
+ /**
15
+ * Whether to show a background color or image on the components.
16
+ */
17
+ background?: boolean;
18
+ /**
19
+ * Whether to use a contained layout (with borders and rounded corners).
20
+ */
21
+ contained?: boolean;
22
+ }
23
+ /**
24
+ * Default Lutra config.
25
+ */
26
+ export declare const defaultConfig: LutraConfig;
27
+ export declare const setConfig: (config: Partial<LutraConfig>) => void;
28
+ export declare enum LutraContext {
29
+ Theme = "lutra.theme",
30
+ Config = "lutra.config",
31
+ SecChPrefersColorScheme = "sec-ch-prefers-color-scheme"
32
+ }
33
+ export type LutraTheme = 'light' | 'dark' | 'invert' | undefined;
34
+ export type LutraContextTypeMap = {
35
+ [LutraContext.Theme]: LutraTheme;
36
+ [LutraContext.Config]: LutraConfig;
37
+ [LutraContext.SecChPrefersColorScheme]: 'light' | 'dark' | undefined;
38
+ };
39
+ export declare function getContextItem<K extends keyof LutraContextTypeMap>(key: K): LutraContextTypeMap[K] | undefined;
package/dist/types.js ADDED
@@ -0,0 +1,25 @@
1
+ import { getContext } from "svelte";
2
+ /**
3
+ * Default Lutra config.
4
+ */
5
+ export const defaultConfig = {
6
+ theme: undefined,
7
+ themeColor: {
8
+ light: '#fff',
9
+ dark: '#000',
10
+ },
11
+ background: true,
12
+ contained: true,
13
+ };
14
+ export const setConfig = (config) => {
15
+ Object.assign(config, config);
16
+ };
17
+ export var LutraContext;
18
+ (function (LutraContext) {
19
+ LutraContext["Theme"] = "lutra.theme";
20
+ LutraContext["Config"] = "lutra.config";
21
+ LutraContext["SecChPrefersColorScheme"] = "sec-ch-prefers-color-scheme";
22
+ })(LutraContext || (LutraContext = {}));
23
+ export function getContextItem(key) {
24
+ return getContext(key);
25
+ }
package/package.json CHANGED
@@ -1,102 +1,49 @@
1
1
  {
2
2
  "name": "lutra",
3
- "version": "0.0.33",
3
+ "version": "0.1.0",
4
4
  "scripts": {
5
- "dev": "vite dev --host 0.0.0.0",
6
- "props": "node read_props.js",
7
- "local": "node local",
5
+ "dev": "vite dev",
8
6
  "build": "vite build && npm run package",
9
7
  "preview": "vite preview",
10
- "package": "svelte-kit sync && svelte-package && publint && npm run props",
8
+ "package": "svelte-kit sync && svelte-package && publint",
11
9
  "prepublishOnly": "npm run package",
12
- "test": "npm run test:integration && npm run test:unit",
13
10
  "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
14
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
15
- "format": "prettier --write .",
16
- "test:integration": "playwright test",
17
- "test:unit": "vitest"
18
- },
19
- "exports": {
20
- ".": {
21
- "types": "./dist/index.d.ts",
22
- "svelte": "./dist/index.js"
23
- },
24
- "./display": {
25
- "types": "./dist/display/index.d.ts",
26
- "svelte": "./dist/display/index.js"
27
- },
28
- "./form": {
29
- "types": "./dist/form/index.d.ts",
30
- "svelte": "./dist/form/index.js",
31
- "import": "./dist/form/index.js"
32
- },
33
- "./form/types": {
34
- "types": "./dist/form/types.d.ts",
35
- "import": "./dist/form/types.js"
36
- },
37
- "./icons": {
38
- "types": "./dist/icons/index.d.ts",
39
- "svelte": "./dist/icons/index.js"
40
- },
41
- "./layout": {
42
- "types": "./dist/layout/index.d.ts",
43
- "svelte": "./dist/layout/index.js"
44
- },
45
- "./nav": {
46
- "types": "./dist/nav/index.d.ts",
47
- "svelte": "./dist/nav/index.js"
48
- },
49
- "./typo": {
50
- "types": "./dist/typo/index.d.ts",
51
- "svelte": "./dist/typo/index.js"
52
- },
53
- "./utils": {
54
- "types": "./dist/utils/index.d.ts",
55
- "svelte": "./dist/utils/index.js"
56
- },
57
- "./utils/*": "./dist/utils/*"
11
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
58
12
  },
59
13
  "files": [
60
14
  "dist",
61
15
  "!dist/**/*.test.*",
62
16
  "!dist/**/*.spec.*"
63
17
  ],
18
+ "sideEffects": [
19
+ "**/*.css"
20
+ ],
21
+ "svelte": "./dist/index.js",
22
+ "types": "./dist/index.d.ts",
23
+ "type": "module",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "svelte": "./dist/index.js"
28
+ }
29
+ },
64
30
  "peerDependencies": {
65
- "@sveltejs/kit": "^2.5.0",
66
- "svelte": "^4.0.0"
31
+ "svelte": "^5.0.0"
67
32
  },
68
33
  "devDependencies": {
69
- "@playwright/test": "^1.46.1",
70
- "@rollup/browser": "^4.21.2",
71
- "@sveltejs/adapter-auto": "^3.2.4",
72
- "@sveltejs/package": "^2.3.4",
73
- "@sveltejs/vite-plugin-svelte": "^3.1.2",
74
- "@types/glob": "8.1.0",
75
- "@types/ws": "^8.5.12",
76
- "glob": "^11.0.0",
77
- "highlight.js": "^11.10.0",
78
- "mdsvex": "^0.12.3",
79
- "monaco-editor": "^0.51.0",
80
- "prettier": "^3.3.3",
81
- "prettier-plugin-svelte": "^3.2.6",
82
- "publint": "^0.2.10",
83
- "svelte": "5.0.0-next.243",
84
- "svelte-check": "^4.0.0",
85
- "tslib": "^2.7.0",
86
- "typescript": "^5.5.4",
87
- "vite": "5.4.3",
88
- "vitest": "2.0.5"
34
+ "@sveltejs/adapter-auto": "^6.0.1",
35
+ "@sveltejs/kit": "^2.21.1",
36
+ "@sveltejs/package": "^2.3.11",
37
+ "@sveltejs/vite-plugin-svelte": "^5.0.3",
38
+ "@types/node": "^22.15.24",
39
+ "publint": "^0.3.12",
40
+ "svelte": "^5.33.9",
41
+ "svelte-check": "^4.2.1",
42
+ "typescript": "^5.8.3",
43
+ "vite": "^6.3.5"
89
44
  },
90
- "svelte": "./dist/index.js",
91
- "types": "./dist/index.d.ts",
92
- "type": "module",
93
45
  "dependencies": {
94
- "@auth70/bodyguard": "^1.6.2",
95
- "@auth70/zodex-esm": "^0.7.3",
96
- "blurhash": "^2.0.5",
97
- "browser-image-compression": "^2.0.2",
98
- "esm-env": "^1.0.0",
99
- "ws": "^8.18.0",
100
- "zod": "^3.23.8"
46
+ "esm-env": "^1.2.2",
47
+ "marked": "^15.0.12"
101
48
  }
102
49
  }
package/dist/color.css DELETED
File without changes
@@ -1,61 +0,0 @@
1
- <script lang="ts">import { hexRelativeLuminance, stringToColor } from "../utils/color.js";
2
- let {
3
- src,
4
- name = "N/A",
5
- shape = "circle"
6
- } = $props();
7
- const color = stringToColor(name);
8
- const luminance = hexRelativeLuminance(color);
9
- const textColor = luminance < 0.5 ? "rgba(255,255,255,0.85)" : "rgba(0,0,0,0.85)";
10
- </script>
11
-
12
- <figure class="Avatar {shape}" style="--user-color: {color}; --text-color: {textColor};">
13
- {#if src}
14
- <img src={src} alt={name} />
15
- {:else}
16
- <div class="Placeholder">
17
- <span>{name[0]}</span>
18
- </div>
19
- {/if}
20
- </figure>
21
-
22
- <style>
23
- .Avatar {
24
- display: flex;
25
- align-items: center;
26
- justify-content: center;
27
- margin: 0;
28
- block-size: var(--size, 3rem);
29
- inline-size: var(--size, 3rem);
30
- overflow: hidden;
31
- background-color: var(--user-color);
32
- mask-image: var(--mask-image, none);
33
- mask-size: 100% 100%;
34
- mask-repeat: no-repeat;
35
- -webkit-mask-image: var(--mask-image, none);
36
- -webkit-mask-size: 100% 100%;
37
- -webkit-mask-repeat: no-repeat;
38
- }
39
- .Avatar.circle { border-radius: 50%; }
40
- .Avatar.square { border-radius: 0; }
41
- .Avatar.rounded { border-radius: var(--border-radius); }
42
- .Avatar img {
43
- block-size: 100%;
44
- inline-size: 100%;
45
- object-fit: cover;
46
- }
47
- .Avatar .Placeholder {
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
- block-size: 100%;
52
- inline-size: 100%;
53
- background-color: var(--user-color);
54
- }
55
- .Avatar .Placeholder span {
56
- font-size: 1rem;
57
- font-weight: 600;
58
- color: var(--text-color);
59
- user-select: none;
60
- }
61
- </style>
@@ -1,19 +0,0 @@
1
- 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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports;
9
- z_$$bindings?: Bindings;
10
- }
11
- declare const Avatar: $$__sveltets_2_IsomorphicComponent<{
12
- src?: string;
13
- name?: string;
14
- shape?: "circle" | "square" | "rounded";
15
- }, {
16
- [evt: string]: CustomEvent<any>;
17
- }, {}, {}, "">;
18
- type Avatar = InstanceType<typeof Avatar>;
19
- export default Avatar;