lutra 0.0.33 → 0.1.4

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 (274) 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/Avatar.svelte +105 -0
  5. package/dist/components/Avatar.svelte.d.ts +14 -0
  6. package/dist/{display → components}/Close.svelte +25 -7
  7. package/dist/components/Close.svelte.d.ts +7 -0
  8. package/dist/components/ContextTip.svelte +41 -0
  9. package/dist/components/ContextTip.svelte.d.ts +7 -0
  10. package/dist/components/Dialog.svelte +78 -0
  11. package/dist/components/Dialog.svelte.d.ts +14 -0
  12. package/dist/components/Icon.svelte +62 -0
  13. package/dist/components/Icon.svelte.d.ts +8 -0
  14. package/dist/{display → components}/IconButton.svelte +43 -14
  15. package/dist/components/IconButton.svelte.d.ts +16 -0
  16. package/dist/components/Image.svelte +172 -0
  17. package/dist/components/Image.svelte.d.ts +56 -0
  18. package/dist/{display → components}/Indicator.svelte +44 -9
  19. package/dist/components/Indicator.svelte.d.ts +12 -0
  20. package/dist/{display → components}/Inset.svelte +8 -3
  21. package/dist/components/Inset.svelte.d.ts +7 -0
  22. package/dist/components/Layout.svelte +33 -0
  23. package/dist/components/Layout.svelte.d.ts +11 -0
  24. package/dist/components/MenuDropdown.svelte +195 -0
  25. package/dist/components/MenuDropdown.svelte.d.ts +16 -0
  26. package/dist/{nav → components}/MenuItem.svelte +46 -38
  27. package/dist/components/MenuItem.svelte.d.ts +11 -0
  28. package/dist/components/MenuItemContent.svelte +25 -0
  29. package/dist/components/MenuItemContent.svelte.d.ts +10 -0
  30. package/dist/{nav → components}/MenuTypes.d.ts +19 -5
  31. package/dist/components/Modal.svelte +149 -0
  32. package/dist/components/Modal.svelte.d.ts +16 -0
  33. package/dist/{display → components}/Notification.svelte +33 -22
  34. package/dist/components/Notification.svelte.d.ts +12 -0
  35. package/dist/components/Overlay.svelte +31 -0
  36. package/dist/components/Overlay.svelte.d.ts +14 -0
  37. package/dist/{layout → components}/OverlayContainer.svelte +6 -3
  38. package/dist/{layout → components}/OverlayContainer.svelte.d.ts +4 -1
  39. package/dist/components/OverlayLayer.svelte +168 -0
  40. package/dist/components/OverlayLayer.svelte.d.ts +8 -0
  41. package/dist/components/PageContent.svelte +108 -0
  42. package/dist/components/PageContent.svelte.d.ts +38 -0
  43. package/dist/components/TabbedContent.svelte +74 -0
  44. package/dist/components/TabbedContent.svelte.d.ts +11 -0
  45. package/dist/components/TabbedContentItem.svelte +33 -0
  46. package/dist/components/TabbedContentItem.svelte.d.ts +10 -0
  47. package/dist/components/Table.svelte +41 -0
  48. package/dist/components/Table.svelte.d.ts +13 -0
  49. package/dist/{nav → components}/Tabs.svelte +99 -41
  50. package/dist/components/Tabs.svelte.d.ts +20 -0
  51. package/dist/components/Tag.svelte +120 -0
  52. package/dist/components/Tag.svelte.d.ts +21 -0
  53. package/dist/components/Theme.svelte +105 -0
  54. package/dist/components/Theme.svelte.d.ts +17 -0
  55. package/dist/{display → components}/Tooltip.svelte +41 -16
  56. package/dist/components/Tooltip.svelte.d.ts +12 -0
  57. package/dist/components/UIContent.svelte +19 -0
  58. package/dist/components/UIContent.svelte.d.ts +7 -0
  59. package/dist/components/index.d.ts +28 -0
  60. package/dist/components/index.js +29 -0
  61. package/dist/{display → components}/notifications.svelte.d.ts +1 -1
  62. package/dist/{display → components}/notifications.svelte.js +3 -4
  63. package/dist/{layout → components}/overlays.svelte.d.ts +4 -2
  64. package/dist/config.d.ts +30 -0
  65. package/dist/config.js +18 -0
  66. package/dist/css/1-props.css +440 -0
  67. package/dist/css/2-base.css +343 -0
  68. package/dist/css/3-typo.css +106 -0
  69. package/dist/css/4-layout.css +368 -0
  70. package/dist/css/5-media.css +116 -0
  71. package/dist/css/lutra.css +7 -0
  72. package/dist/css/themes/DefaultTheme.css +209 -0
  73. package/dist/form/Button.svelte +35 -16
  74. package/dist/form/Button.svelte.d.ts +8 -19
  75. package/dist/form/Datepicker.svelte +311 -0
  76. package/dist/form/Datepicker.svelte.d.ts +9 -0
  77. package/dist/form/FieldContent.svelte +69 -44
  78. package/dist/form/FieldContent.svelte.d.ts +7 -17
  79. package/dist/form/FieldError.svelte +16 -6
  80. package/dist/form/FieldError.svelte.d.ts +4 -15
  81. package/dist/form/Fieldset.svelte +48 -13
  82. package/dist/form/Fieldset.svelte.d.ts +5 -16
  83. package/dist/form/Form.svelte +158 -74
  84. package/dist/form/Form.svelte.d.ts +17 -17
  85. package/dist/form/{FieldActions.svelte → FormActions.svelte} +29 -17
  86. package/dist/form/FormActions.svelte.d.ts +9 -0
  87. package/dist/form/FormSection.svelte +96 -0
  88. package/dist/form/FormSection.svelte.d.ts +9 -0
  89. package/dist/form/ImageUpload.svelte +134 -94
  90. package/dist/form/ImageUpload.svelte.d.ts +5 -16
  91. package/dist/form/Input.svelte +254 -136
  92. package/dist/form/Input.svelte.d.ts +12 -21
  93. package/dist/form/InputLength.svelte +15 -5
  94. package/dist/form/InputLength.svelte.d.ts +4 -15
  95. package/dist/form/Label.svelte +55 -11
  96. package/dist/form/Label.svelte.d.ts +6 -15
  97. package/dist/form/LogoUpload.svelte +36 -21
  98. package/dist/form/LogoUpload.svelte.d.ts +4 -15
  99. package/dist/form/Select.svelte +100 -50
  100. package/dist/form/Select.svelte.d.ts +5 -16
  101. package/dist/form/Textarea.svelte +200 -98
  102. package/dist/form/Textarea.svelte.d.ts +11 -24
  103. package/dist/form/Toggle.svelte +3 -1
  104. package/dist/form/Toggle.svelte.d.ts +4 -1
  105. package/dist/form/client.svelte.d.ts +1 -0
  106. package/dist/form/client.svelte.js +6 -2
  107. package/dist/form/form.d.ts +10 -9
  108. package/dist/form/form.js +37 -32
  109. package/dist/form/index.d.ts +3 -4
  110. package/dist/form/index.js +3 -4
  111. package/dist/form/types.d.ts +9 -16
  112. package/dist/icons/IconAlert.svelte.d.ts +4 -1
  113. package/dist/icons/IconCopy.svelte.d.ts +4 -1
  114. package/dist/icons/IconDone.svelte.d.ts +4 -1
  115. package/dist/icons/IconError.svelte.d.ts +4 -1
  116. package/dist/icons/IconHelp.svelte.d.ts +4 -1
  117. package/dist/icons/IconHide.svelte.d.ts +4 -1
  118. package/dist/icons/IconInfo.svelte.d.ts +4 -1
  119. package/dist/icons/IconLink.svelte.d.ts +4 -1
  120. package/dist/icons/IconMenuBurger.svelte.d.ts +4 -1
  121. package/dist/icons/IconMenuDots.svelte.d.ts +4 -1
  122. package/dist/icons/IconSearch.svelte.d.ts +4 -1
  123. package/dist/icons/IconShow.svelte.d.ts +4 -1
  124. package/dist/icons/IconSuccess.svelte.d.ts +4 -1
  125. package/dist/icons/IconWarning.svelte.d.ts +4 -1
  126. package/dist/index.d.ts +3 -1
  127. package/dist/index.js +3 -2
  128. package/dist/types.d.ts +39 -0
  129. package/dist/types.js +25 -0
  130. package/dist/util/StringOrComponent.svelte +20 -0
  131. package/dist/util/StringOrComponent.svelte.d.ts +8 -0
  132. package/dist/util/StringOrSnippet.svelte +16 -0
  133. package/dist/util/StringOrSnippet.svelte.d.ts +8 -0
  134. package/dist/{utils → util}/dom.js +1 -2
  135. package/dist/util/locale.d.ts +1 -0
  136. package/dist/util/locale.js +47 -0
  137. package/dist/util/settings.d.ts +4 -0
  138. package/package.json +35 -79
  139. package/dist/color.css +0 -0
  140. package/dist/display/Avatar.svelte +0 -61
  141. package/dist/display/Avatar.svelte.d.ts +0 -19
  142. package/dist/display/Badge.svelte +0 -91
  143. package/dist/display/Badge.svelte.d.ts +0 -30
  144. package/dist/display/Callout.svelte +0 -109
  145. package/dist/display/Callout.svelte.d.ts +0 -28
  146. package/dist/display/Close.svelte.d.ts +0 -18
  147. package/dist/display/Code.svelte +0 -190
  148. package/dist/display/Code.svelte.d.ts +0 -32
  149. package/dist/display/ContextTip.svelte +0 -23
  150. package/dist/display/ContextTip.svelte.d.ts +0 -18
  151. package/dist/display/DataList.svelte +0 -16
  152. package/dist/display/DataList.svelte.d.ts +0 -21
  153. package/dist/display/Details.svelte +0 -49
  154. package/dist/display/Details.svelte.d.ts +0 -27
  155. package/dist/display/Hero.svelte +0 -50
  156. package/dist/display/Hero.svelte.d.ts +0 -26
  157. package/dist/display/Icon.svelte +0 -39
  158. package/dist/display/Icon.svelte.d.ts +0 -19
  159. package/dist/display/IconButton.svelte.d.ts +0 -27
  160. package/dist/display/Image.svelte +0 -91
  161. package/dist/display/Image.svelte.d.ts +0 -26
  162. package/dist/display/Indicator.svelte.d.ts +0 -23
  163. package/dist/display/Inset.svelte.d.ts +0 -18
  164. package/dist/display/LineChart.svelte +0 -385
  165. package/dist/display/LineChart.svelte.d.ts +0 -24
  166. package/dist/display/LoadingIndicator.svelte +0 -33
  167. package/dist/display/LoadingIndicator.svelte.d.ts +0 -15
  168. package/dist/display/Modal.svelte +0 -116
  169. package/dist/display/Modal.svelte.d.ts +0 -27
  170. package/dist/display/Notification.svelte.d.ts +0 -23
  171. package/dist/display/Panel.svelte +0 -23
  172. package/dist/display/Panel.svelte.d.ts +0 -19
  173. package/dist/display/Popup.svelte +0 -111
  174. package/dist/display/Popup.svelte.d.ts +0 -25
  175. package/dist/display/Stat.svelte +0 -81
  176. package/dist/display/Stat.svelte.d.ts +0 -30
  177. package/dist/display/Table.svelte +0 -28
  178. package/dist/display/Table.svelte.d.ts +0 -24
  179. package/dist/display/TablePaginator.svelte +0 -51
  180. package/dist/display/TablePaginator.svelte.d.ts +0 -21
  181. package/dist/display/Tag.svelte +0 -90
  182. package/dist/display/Tag.svelte.d.ts +0 -32
  183. package/dist/display/Tooltip.svelte.d.ts +0 -23
  184. package/dist/display/chart.d.ts +0 -78
  185. package/dist/display/chart.js +0 -212
  186. package/dist/display/index.d.ts +0 -24
  187. package/dist/display/index.js +0 -24
  188. package/dist/form/FieldActions.svelte.d.ts +0 -20
  189. package/dist/form/FieldContainer.svelte +0 -37
  190. package/dist/form/FieldContainer.svelte.d.ts +0 -19
  191. package/dist/form/FieldSection.svelte +0 -86
  192. package/dist/form/FieldSection.svelte.d.ts +0 -20
  193. package/dist/layout/Layout.svelte +0 -47
  194. package/dist/layout/Layout.svelte.d.ts +0 -22
  195. package/dist/layout/LayoutFooter.svelte +0 -21
  196. package/dist/layout/LayoutFooter.svelte.d.ts +0 -18
  197. package/dist/layout/LayoutGrid.svelte +0 -51
  198. package/dist/layout/LayoutGrid.svelte.d.ts +0 -27
  199. package/dist/layout/LayoutHeader.svelte +0 -97
  200. package/dist/layout/LayoutHeader.svelte.d.ts +0 -34
  201. package/dist/layout/LayoutSideMenu.svelte +0 -55
  202. package/dist/layout/LayoutSideMenu.svelte.d.ts +0 -21
  203. package/dist/layout/LayoutTypes.d.ts +0 -15
  204. package/dist/layout/LayoutTypes.js +0 -9
  205. package/dist/layout/Overlay.svelte +0 -20
  206. package/dist/layout/Overlay.svelte.d.ts +0 -25
  207. package/dist/layout/OverlayLayer.svelte +0 -140
  208. package/dist/layout/OverlayLayer.svelte.d.ts +0 -19
  209. package/dist/layout/PageContent.svelte +0 -82
  210. package/dist/layout/PageContent.svelte.d.ts +0 -25
  211. package/dist/layout/Theme.svelte +0 -243
  212. package/dist/layout/Theme.svelte.d.ts +0 -19
  213. package/dist/layout/UIContent.svelte +0 -15
  214. package/dist/layout/UIContent.svelte.d.ts +0 -18
  215. package/dist/layout/index.d.ts +0 -11
  216. package/dist/layout/index.js +0 -11
  217. package/dist/nav/Breadcrumb.svelte +0 -82
  218. package/dist/nav/Breadcrumb.svelte.d.ts +0 -28
  219. package/dist/nav/Menu.svelte +0 -170
  220. package/dist/nav/Menu.svelte.d.ts +0 -27
  221. package/dist/nav/MenuItem.svelte.d.ts +0 -22
  222. package/dist/nav/NavMenu.svelte +0 -181
  223. package/dist/nav/NavMenu.svelte.d.ts +0 -19
  224. package/dist/nav/TabbedContent.svelte +0 -43
  225. package/dist/nav/TabbedContent.svelte.d.ts +0 -23
  226. package/dist/nav/Tabs.svelte.d.ts +0 -25
  227. package/dist/nav/index.d.ts +0 -7
  228. package/dist/nav/index.js +0 -6
  229. package/dist/style.css +0 -950
  230. package/dist/typo/Clamp.svelte +0 -25
  231. package/dist/typo/Clamp.svelte.d.ts +0 -24
  232. package/dist/typo/H.svelte +0 -52
  233. package/dist/typo/H.svelte.d.ts +0 -28
  234. package/dist/typo/H1.svelte +0 -14
  235. package/dist/typo/H1.svelte.d.ts +0 -26
  236. package/dist/typo/H2.svelte +0 -14
  237. package/dist/typo/H2.svelte.d.ts +0 -26
  238. package/dist/typo/H3.svelte +0 -14
  239. package/dist/typo/H3.svelte.d.ts +0 -26
  240. package/dist/typo/H4.svelte +0 -14
  241. package/dist/typo/H4.svelte.d.ts +0 -26
  242. package/dist/typo/H5.svelte +0 -14
  243. package/dist/typo/H5.svelte.d.ts +0 -26
  244. package/dist/typo/H6.svelte +0 -14
  245. package/dist/typo/H6.svelte.d.ts +0 -26
  246. package/dist/typo/P.svelte +0 -34
  247. package/dist/typo/P.svelte.d.ts +0 -26
  248. package/dist/typo/index.d.ts +0 -9
  249. package/dist/typo/index.js +0 -9
  250. package/dist/utils/StringOrComponent.svelte +0 -14
  251. package/dist/utils/StringOrComponent.svelte.d.ts +0 -19
  252. package/dist/utils/StringOrSnippet.svelte +0 -11
  253. package/dist/utils/StringOrSnippet.svelte.d.ts +0 -19
  254. package/dist/utils/defaults.d.ts +0 -4
  255. package/dist/utils/hooks.server.d.ts +0 -2
  256. package/dist/utils/hooks.server.js +0 -16
  257. package/dist/utils/id.d.ts +0 -1
  258. package/dist/utils/id.js +0 -3
  259. package/dist/utils/index.d.ts +0 -9
  260. package/dist/utils/index.js +0 -6
  261. package/dist/utils/isSnippet.d.ts +0 -3
  262. package/dist/utils/isSnippet.js +0 -11
  263. /package/dist/{nav → components}/MenuTypes.js +0 -0
  264. /package/dist/{layout → components}/overlays.svelte.js +0 -0
  265. /package/dist/{utils → util}/attr.d.ts +0 -0
  266. /package/dist/{utils → util}/attr.js +0 -0
  267. /package/dist/{utils → util}/color.d.ts +0 -0
  268. /package/dist/{utils → util}/color.js +0 -0
  269. /package/dist/{utils → util}/dom.d.ts +0 -0
  270. /package/dist/{utils → util}/keyboard.svelte.d.ts +0 -0
  271. /package/dist/{utils → util}/keyboard.svelte.js +0 -0
  272. /package/dist/{utils/defaults.js → util/settings.js} +0 -0
  273. /package/dist/{utils → util}/transitions.d.ts +0 -0
  274. /package/dist/{utils → util}/transitions.js +0 -0
@@ -1,243 +0,0 @@
1
- <script lang="ts">import { browser } from "$app/environment";
2
- import { getContext, setContext } from "svelte";
3
- let {
4
- theme,
5
- children
6
- } = $props();
7
- const root = getContext("theme") === void 0;
8
- if (theme === "invert") {
9
- const previousTheme = getContext("theme") || "light";
10
- theme = previousTheme === "light" ? "dark" : "light";
11
- } else {
12
- theme = theme || (browser ? localStorage.getItem("theme") || window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
13
- }
14
- const isNotRoot = getContext("theme");
15
- setContext("theme", theme);
16
- </script>
17
-
18
- <!--
19
- <svelte:body class="{!isNotRoot ? 'theme-'+theme : ''}" />
20
- -->
21
-
22
- <svelte:head>
23
- {#if !isNotRoot}
24
- <meta name="theme-color" content="{theme === 'dark' ? '#000' : '#fff'}" />
25
- {/if}
26
- </svelte:head>
27
-
28
- <span class="Theme {theme ? theme : ''}" class:root>
29
- {@render children()}
30
- </span>
31
-
32
- <style>
33
- .Theme {
34
- display: contents;
35
- }
36
- .Theme.light :global(:root) {
37
- --scrollbar-color: var(--l-scrollbar-color);
38
- }
39
- .Theme.dark :global(:root) {
40
- --scrollbar-color: var(--d-scrollbar-color);
41
- }
42
- .Theme.light {
43
- color-scheme: light;
44
- --mix-target: var(--l-mix-target);
45
- /* bg */
46
- --bg-app: var(--l-bg-app);
47
- --bg-panel: var(--l-bg-panel);
48
- --bg-scrim: var(--l-bg-scrim);
49
- --bg-subtler: var(--l-bg-subtler);
50
- --bg-hover: var(--l-bg-hover);
51
- --bg-subtle: var(--l-bg-subtle);
52
- --bg-overlay: var(--l-bg-overlay);
53
- --shadow: var(--l-shadow);
54
- /* border */
55
- --border-color: var(--l-border-color);
56
- --border-subtle-color: var(--l-border-subtle-color);
57
- --focus-color: var(--l-focus-color);
58
- --focus-color-error: var(--l-focus-color-error);
59
- --border: var(--l-border);
60
- --border-subtle: var(--l-border-subtle);
61
- --focus-outline: var(--l-focus-outline);
62
- /* text */
63
- --text: var(--l-text);
64
- --text-subtle: var(--l-text-subtle);
65
- --text-subtler: var(--l-text-subtler);
66
- --text-highlight: var(--l-text-highlight);
67
- --text-heading: var(--l-text-heading);
68
- --text-link: var(--l-text-link);
69
- --text-warn: var(--l-text-warn);
70
- --text-icon: var(--l-text-icon);
71
- --text-subtle-icon: var(--l-text-subtle-icon);
72
- --text-warn-icon: var(--l-text-warn-icon);
73
- /* fields */
74
- --form-bg: var(--l-form-bg);
75
- --field-bg: var(--l-field-bg);
76
- --field-border-color: var(--l-field-border-color);
77
- --field-border-color-error: var(--l-field-border-color-error);
78
- --field-border: var(--l-field-border);
79
- --field-text: var(--l-field-text);
80
- --field-placeholder: var(--l-field-placeholder);
81
- --field-label: var(--l-field-label);
82
- /* toggle */
83
- --toggle-on: var(--l-toggle-on);
84
- --toggle-off: var(--l-toggle-off);
85
- /* buttons */
86
- --button-bg: var(--l-button-bg);
87
- --button-text: var(--l-button-text);
88
- --button-border-color: var(--l-button-border-color);
89
- --button-border: var(--l-button-border);
90
- /* buttons: secondary */
91
- --button-secondary-bg: var(--l-button-secondary-bg);
92
- --button-secondary-text: var(--l-button-secondary-text);
93
- --button-secondary-border-color: var(--l-button-secondary-border-color);
94
- --button-secondary-border: var(--l-button-secondary-border);
95
- /* buttons: disabled */
96
- --button-disabled-bg: var(--l-button-disabled-bg);
97
- --button-disabled-text: var(--l-button-disabled-text);
98
- --button-disabled-border-color: var(--l-button-disabled-border-color);
99
- --button-disabled-border: var(--l-button-disabled-border);
100
- /* buttons: outlined */
101
- --button-outlined-text: var(--l-button-outlined-text);
102
- --button-outlined-border-color: var(--l-button-outlined-border-color);
103
- --button-outlined-border: var(--l-button-outlined-border);
104
- /* buttons: warn */
105
- --button-warn-bg: var(--l-button-warn-bg);
106
- --button-warn-text: var(--l-button-warn-text);
107
- --button-warn-border-color: var(--l-button-warn-border-color);
108
- --button-warn-border: var(--l-button-warn-border);
109
- /* warn */
110
- --warn-bg: var(--l-warn-bg);
111
- --warn-border: var(--l-warn-border);
112
- --warn-text: var(--l-warn-text);
113
- /* success */
114
- --success-bg: var(--l-success-bg);
115
- --success-border: var(--l-success-border);
116
- --success-text: var(--l-success-text);
117
- /* error */
118
- --error-bg: var(--l-error-bg);
119
- --error-border: var(--l-error-border);
120
- --error-text: var(--l-error-text);
121
- /* info */
122
- --info-bg: var(--l-info-bg);
123
- --info-border: var(--l-info-border);
124
- --info-text: var(--l-info-text);
125
- /* menu */
126
- --menu-bg: var(--l-menu-bg);
127
- --menu-bg-active: var(--l-menu-bg-active);
128
- --menu-bg-hover: var(--l-menu-bg-hover);
129
- --menu-border: var(--l-menu-border);
130
- --menu-text-subtle: var(--l-menu-text-subtle);
131
- --menu-text-active: var(--l-menu-text-active);
132
- /* status */
133
- --status-default: var(--l-status-default);
134
- --status-ok: var(--l-status-ok);
135
- --status-alert: var(--l-status-alert);
136
- --status-warn: var(--l-status-warn);
137
- --status-info: var(--l-status-info);
138
- --status-task: var(--l-status-task);
139
- --scrollbar-color: var(--l-scrollbar-color);
140
- }
141
- .Theme.dark {
142
- color-scheme: dark;
143
- --mix-target: var(--d-mix-target);
144
- /* bg */
145
- --bg-app: var(--d-bg-app);
146
- --bg-panel: var(--d-bg-panel);
147
- --bg-scrim: var(--d-bg-scrim);
148
- --bg-subtler: var(--d-bg-subtler);
149
- --bg-subtle: var(--d-bg-subtle);
150
- --bg-hover: var(--d-bg-hover);
151
- --bg-overlay: var(--d-bg-overlay);
152
- --shadow: var(--d-shadow);
153
- /* border */
154
- --border-color: var(--d-border-color);
155
- --border-subtle-color: var(--d-border-subtle-color);
156
- --focus-color: var(--d-focus-color);
157
- --focus-color-error: var(--d-focus-color-error);
158
- --border: var(--d-border);
159
- --border-subtle: var(--d-border-subtle);
160
- --focus-outline: var(--d-focus-outline);
161
- /* text */
162
- --text: var(--d-text);
163
- --text-subtle: var(--d-text-subtle);
164
- --text-subtler: var(--d-text-subtler);
165
- --text-highlight: var(--d-text-highlight);
166
- --text-heading: var(--d-text-heading);
167
- --text-link: var(--d-text-link);
168
- --text-link-hover: var(--d-text-link-hover);
169
- --text-warn: var(--d-text-warn);
170
- --text-icon: var(--d-text-icon);
171
- --text-subtle-icon: var(--d-text-subtle-icon);
172
- --text-warn-icon: var(--d-text-warn-icon);
173
- /* fields */
174
- --form-bg: var(--d-form-bg);
175
- --field-bg: var(--d-field-bg);
176
- --field-border-color: var(--d-field-border-color);
177
- --field-border-color-error: var(--d-field-border-color-error);
178
- --field-border: var(--d-field-border);
179
- --field-text: var(--d-field-text);
180
- --field-placeholder: var(--d-field-placeholder);
181
- --field-label: var(--d-field-label);
182
- /* toggle */
183
- --toggle-on: var(--d-toggle-on);
184
- --toggle-on-hover: var(--d-toggle-on-hover);
185
- --toggle-off: var(--d-toggle-off);
186
- --toggle-off-hover: var(--d-toggle-off-hover);
187
- /* buttons */
188
- --button-bg: var(--d-button-bg);
189
- --button-text: var(--d-button-text);
190
- --button-border-color: var(--d-button-border-color);
191
- --button-border: var(--d-button-border);
192
- /* buttons: secondary */
193
- --button-secondary-bg: var(--d-button-secondary-bg);
194
- --button-secondary-text: var(--d-button-secondary-text);
195
- --button-secondary-border-color: var(--d-button-secondary-border-color);
196
- --button-secondary-border: var(--d-button-secondary-border);
197
- /* buttons: disabled */
198
- --button-disabled-bg: var(--d-button-disabled-bg);
199
- --button-disabled-text: var(--d-button-disabled-text);
200
- --button-disabled-border-color: var(--d-button-disabled-border-color);
201
- --button-disabled-border: var(--d-button-disabled-border);
202
- /* buttons: outlined */
203
- --button-outlined-text: var(--d-button-outlined-text);
204
- --button-outlined-border-color: var(--d-button-outlined-border-color);
205
- --button-outlined-border: var(--d-button-outlined-border);
206
- /* buttons: warn */
207
- --button-warn-bg: var(--d-button-warn-bg);
208
- --button-warn-text: var(--d-button-warn-text);
209
- --button-warn-border-color: var(--d-button-warn-border-color);
210
- --button-warn-border: var(--d-button-warn-border);
211
- /* warn */
212
- --warn-bg: var(--d-warn-bg);
213
- --warn-border: var(--d-warn-border);
214
- --warn-text: var(--d-warn-text);
215
- /* success */
216
- --success-bg: var(--d-success-bg);
217
- --success-border: var(--d-success-border);
218
- --success-text: var(--d-success-text);
219
- /* error */
220
- --error-bg: var(--d-error-bg);
221
- --error-border: var(--d-error-border);
222
- --error-text: var(--d-error-text);
223
- /* info */
224
- --info-bg: var(--d-info-bg);
225
- --info-border: var(--d-info-border);
226
- --info-text: var(--d-info-text);
227
- /* menu */
228
- --menu-bg: var(--d-menu-bg);
229
- --menu-bg-active: var(--d-menu-bg-active);
230
- --menu-border: var(--d-menu-border);
231
- --menu-text: var(--d-menu-text);
232
- --menu-text-subtle: var(--d-menu-text-subtle);
233
- --menu-text-active: var(--d-menu-text-active);
234
- /* status */
235
- --status-default: var(--d-status-default);
236
- --status-ok: var(--d-status-ok);
237
- --status-alert: var(--d-status-alert);
238
- --status-warn: var(--d-status-warn);
239
- --status-info: var(--d-status-info);
240
- --status-task: var(--d-status-task);
241
- --scrollbar-color: var(--d-scrollbar-color);
242
- }
243
- </style>
@@ -1,19 +0,0 @@
1
- import { type Snippet } from "svelte";
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;
11
- }
12
- declare const Theme: $$__sveltets_2_IsomorphicComponent<{
13
- theme?: "light" | "dark" | "invert";
14
- children: Snippet;
15
- }, {
16
- [evt: string]: CustomEvent<any>;
17
- }, {}, {}, "">;
18
- type Theme = InstanceType<typeof Theme>;
19
- export default Theme;
@@ -1,15 +0,0 @@
1
- <script lang="ts">let {
2
- children
3
- } = $props();
4
- </script>
5
-
6
- <div class="UIContent">
7
- {@render children()}
8
- </div>
9
-
10
- <style>
11
- .UIContent {
12
- display: contents;
13
- --isPage: 0;
14
- }
15
- </style>
@@ -1,18 +0,0 @@
1
- import type { Snippet } from "svelte";
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;
11
- }
12
- declare const UiContent: $$__sveltets_2_IsomorphicComponent<{
13
- children: Snippet;
14
- }, {
15
- [evt: string]: CustomEvent<any>;
16
- }, {}, {}, "">;
17
- type UiContent = InstanceType<typeof UiContent>;
18
- export default UiContent;
@@ -1,11 +0,0 @@
1
- export { default as Layout } from './Layout.svelte';
2
- export { default as LayoutFooter } from './LayoutFooter.svelte';
3
- export { default as LayoutGrid } from './LayoutGrid.svelte';
4
- export { default as LayoutHeader } from './LayoutHeader.svelte';
5
- export { default as LayoutSideMenu } from './LayoutSideMenu.svelte';
6
- export { default as Overlay } from './Overlay.svelte';
7
- export { default as OverlayContainer } from './OverlayContainer.svelte';
8
- export { default as OverlayLayer } from './OverlayLayer.svelte';
9
- export { default as PageContent } from './PageContent.svelte';
10
- export { default as UIContent } from './UIContent.svelte';
11
- export { default as Theme } from './Theme.svelte';
@@ -1,11 +0,0 @@
1
- export { default as Layout } from './Layout.svelte';
2
- export { default as LayoutFooter } from './LayoutFooter.svelte';
3
- export { default as LayoutGrid } from './LayoutGrid.svelte';
4
- export { default as LayoutHeader } from './LayoutHeader.svelte';
5
- export { default as LayoutSideMenu } from './LayoutSideMenu.svelte';
6
- export { default as Overlay } from './Overlay.svelte';
7
- export { default as OverlayContainer } from './OverlayContainer.svelte';
8
- export { default as OverlayLayer } from './OverlayLayer.svelte';
9
- export { default as PageContent } from './PageContent.svelte';
10
- export { default as UIContent } from './UIContent.svelte';
11
- export { default as Theme } from './Theme.svelte';
@@ -1,82 +0,0 @@
1
- <script lang="ts">let {
2
- items,
3
- separator = "/",
4
- contained,
5
- fullWidth,
6
- center
7
- } = $props();
8
- </script>
9
-
10
- <nav class:center class:contained class:fullWidth aria-label="Breadcrumb">
11
- <ol>
12
- {#each items as item, index}
13
- <li aria-current={index === items.length - 1 ? "page" : undefined}>
14
- {#if item.href && index < items.length - 1}
15
- <a href={item.href}>{item.label}</a>
16
- {:else}
17
- <span>{item.label}</span>
18
- {/if}
19
- </li>
20
- {#if index !== items.length - 1}
21
- <li aria-hidden="true" class="separator">
22
- {#if typeof separator === "string"}
23
- <span>{separator}</span>
24
- {/if}
25
- </li>
26
- {/if}
27
- {/each}
28
- </ol>
29
- </nav>
30
-
31
- <style>
32
- nav {
33
- padding: 0;
34
- block-size: auto;
35
- display: flex;
36
- justify-content: start;
37
- align-items: center;
38
- font-size: var(--font-size, 1em);
39
- }
40
-
41
- nav ol {
42
- display: flex;
43
- align-items: center;
44
- list-style: none;
45
- margin: 0;
46
- padding: 0;
47
- gap: 0.5rem;
48
- border-radius: var(--border-radius);
49
- }
50
-
51
- nav ol li {
52
- display: flex;
53
- align-items: center;
54
- justify-content: center;
55
- margin: 0;
56
- padding: 0;
57
- }
58
-
59
- .separator span {
60
- font-size: 1rem;
61
- line-height: 1rem;
62
- color: var(--text-subtle);
63
- }
64
-
65
- nav.contained ol {
66
- padding: 0 1rem;
67
- border: var(--border);
68
- }
69
-
70
- nav.contained ol li a {
71
- padding: var(--padding, 0.5rem 0);
72
- }
73
-
74
- nav.center {
75
- justify-content: center;
76
- }
77
-
78
- nav.fullWidth ol {
79
- block-size: 100%;
80
- }
81
-
82
- </style>
@@ -1,28 +0,0 @@
1
- import type { Component, Snippet } from "svelte";
2
- import type { BreadcrumbItem } from "./MenuTypes.js";
3
- 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> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports;
11
- z_$$bindings?: Bindings;
12
- }
13
- declare const Breadcrumb: $$__sveltets_2_IsomorphicComponent<{
14
- /** The items to display in the breadcrumb. */
15
- items: BreadcrumbItem[];
16
- /** The separator to use between breadcrumb items. */
17
- separator?: string | Snippet | Component;
18
- /** Contain the element in a box. */
19
- contained?: boolean;
20
- /** Make the element full width. */
21
- fullWidth?: boolean;
22
- /** Center the items in the element. */
23
- center?: boolean;
24
- }, {
25
- [evt: string]: CustomEvent<any>;
26
- }, {}, {}, "">;
27
- type Breadcrumb = InstanceType<typeof Breadcrumb>;
28
- export default Breadcrumb;
@@ -1,170 +0,0 @@
1
- <script lang="ts">import MenuItem from "./MenuItem.svelte";
2
- import { createId } from "../utils/id.js";
3
- import UiContent from "../layout/UIContent.svelte";
4
- import { arrowNavigation, getNextFocusableElement, matchOnType } from "../utils/keyboard.svelte.js";
5
- import { findContainingBlock, getPossiblyContainedPosition } from "../utils/dom.js";
6
- import Overlay from "../layout/Overlay.svelte";
7
- let {
8
- open = $bindable(false),
9
- items,
10
- trigger
11
- } = $props();
12
- let _open = $state(open);
13
- let triggerEl = $state(null);
14
- let contentEl = $state(null);
15
- let menuEl = $state(null);
16
- let currentIndex = $state(-1);
17
- let keyboardHasFocus = $state(false);
18
- const id = createId();
19
- $effect(() => {
20
- if (_open) {
21
- window.addEventListener("click", clickoutside);
22
- window.addEventListener("keydown", onkeydown);
23
- } else {
24
- window.removeEventListener("click", clickoutside);
25
- window.removeEventListener("keydown", onkeydown);
26
- }
27
- });
28
- function toggle() {
29
- _open = !_open;
30
- }
31
- let scrollable = $derived.by(() => {
32
- if (!contentEl) return false;
33
- return contentEl.scrollHeight > contentEl.clientHeight;
34
- });
35
- function onclick(e) {
36
- e.preventDefault();
37
- _open = !_open;
38
- }
39
- function clickoutside(e) {
40
- if (!_open) return;
41
- if (contentEl && !contentEl.contains(e.target) && !triggerEl?.contains(e.target)) {
42
- _open = false;
43
- }
44
- }
45
- function onkeydown(e) {
46
- if (!_open) return;
47
- const active = document.activeElement;
48
- switch (e.key) {
49
- case "Escape":
50
- e.preventDefault();
51
- _open = false;
52
- break;
53
- case "Tab":
54
- e.preventDefault();
55
- e.stopPropagation();
56
- _open = false;
57
- setTimeout(() => {
58
- const nextEl = getNextFocusableElement(menuEl, triggerEl, e.shiftKey ? "previous" : "next");
59
- console.log("nextEl", nextEl);
60
- if (nextEl) {
61
- nextEl.focus();
62
- if (nextEl.tagName === "BUTTON" || nextEl.tagName === "A" && nextEl.parentElement?.classList.contains("Trigger")) {
63
- nextEl.click();
64
- }
65
- }
66
- }, 0);
67
- break;
68
- case "ArrowDown":
69
- e.preventDefault();
70
- arrowNavigation(contentEl, "down");
71
- matchOnType(contentEl, e);
72
- keyboardHasFocus = true;
73
- break;
74
- case "ArrowUp":
75
- e.preventDefault();
76
- arrowNavigation(contentEl, "up");
77
- matchOnType(contentEl, e);
78
- keyboardHasFocus = true;
79
- break;
80
- case "Enter":
81
- case "Space":
82
- e.preventDefault();
83
- active.click();
84
- break;
85
- default:
86
- matchOnType(contentEl, e);
87
- }
88
- }
89
- function mouseover(e, item, index) {
90
- if (item.type === "item") {
91
- currentIndex = index;
92
- }
93
- }
94
- </script>
95
-
96
-
97
- <UiContent>
98
- <div class="Menu" bind:this={menuEl}>
99
- <div
100
- class="Trigger"
101
- bind:this={triggerEl}
102
- >
103
- {#if typeof trigger === "string"}
104
- <button type="button" class="button" {onclick} aria-haspopup="true" aria-controls={id} aria-expanded="{_open}">
105
- {trigger}
106
- </button>
107
- {:else}
108
- {@render trigger({ toggle: toggle, isOpen: _open })}
109
- {/if}
110
- </div>
111
- {#if _open && triggerEl}
112
- <Overlay position="anchor" id="o-{id}" anchor={triggerEl} layer="menu">
113
- <div {id}
114
- class="MenuContent"
115
- class:scrollable={scrollable}
116
- role="menu"
117
- bind:this={contentEl}
118
- >
119
- <ul>
120
- {#each items as item, index}
121
- <MenuItem {keyboardHasFocus} onmouseover={mouseover} item={item} {index} />
122
- {/each}
123
- </ul>
124
- </div>
125
- </Overlay>
126
- {/if}
127
- </div>
128
- </UiContent>
129
-
130
- <style>
131
- .Menu {
132
- position: relative;
133
- }
134
-
135
- .Trigger {
136
- position: relative;
137
- display: inline-flex;
138
- }
139
-
140
- .MenuContent {
141
- max-height: calc(50vh - 2rem);
142
- margin: 0;
143
- z-index: 1000;
144
- margin: 0;
145
- border: var(--menu-border);
146
- border-radius: var(--border-radius);
147
- box-shadow: 0 0.5rem 1rem var(--shadow);
148
- background-color: var(--menu-bg);
149
- width: var(--width, 25ch);
150
- overflow-x: clip;
151
- overflow-y: auto;
152
- scrollbar-width: thin;
153
- scrollbar-color: var(--scrollbar-color);
154
- }
155
-
156
- .MenuContent.scrollable {
157
- border-top-right-radius: 0;
158
- border-bottom-right-radius: 0;
159
- }
160
-
161
- .MenuContent:has(li:last-of-type[data-type="item"]) {
162
- padding-block-end: 0.5rem;
163
- }
164
-
165
- ul {
166
- margin: 0;
167
- list-style: none;
168
- padding: 0;
169
- }
170
- </style>
@@ -1,27 +0,0 @@
1
- import type { Snippet } from "svelte";
2
- import type { MenuItem as Item } from "./MenuTypes.js";
3
- 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> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports;
11
- z_$$bindings?: Bindings;
12
- }
13
- declare const Menu: $$__sveltets_2_IsomorphicComponent<{
14
- /** Whether the menu is open */
15
- open?: boolean;
16
- /** The items to display in the menu */
17
- items: Item[];
18
- /** The trigger for the menu */
19
- trigger: string | Snippet<[{
20
- toggle: () => void;
21
- isOpen: boolean;
22
- }]>;
23
- }, {
24
- [evt: string]: CustomEvent<any>;
25
- }, {}, {}, "open">;
26
- type Menu = InstanceType<typeof Menu>;
27
- export default Menu;
@@ -1,22 +0,0 @@
1
- import type { MenuItem as Item } from "./MenuTypes.js";
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;
11
- }
12
- declare const MenuItem: $$__sveltets_2_IsomorphicComponent<{
13
- item: Item;
14
- index: number;
15
- onmouseover?: (e: MouseEvent, item: Item, index: number) => void;
16
- keyboardHasFocus?: boolean;
17
- shape?: "rounded" | "square" | "pill";
18
- }, {
19
- [evt: string]: CustomEvent<any>;
20
- }, {}, {}, "">;
21
- type MenuItem = InstanceType<typeof MenuItem>;
22
- export default MenuItem;