@functionalcms/svelte-components 3.0.6 → 3.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Banner.svelte +5 -3
- package/dist/components/Link.svelte +54 -44
- package/dist/components/Logo.svelte +15 -3
- package/dist/components/Spacer.svelte +10 -7
- package/dist/components/Well.svelte +15 -12
- package/dist/components/agnostic/Alert/Alert.svelte +64 -57
- package/dist/components/agnostic/Avatar/Avatar.svelte +19 -15
- package/dist/components/agnostic/Breadcrumb/Breadcrumb.svelte +19 -10
- package/dist/components/agnostic/Button/Button.svelte +60 -35
- package/dist/components/agnostic/Button/ButtonGroup.svelte +4 -3
- package/dist/components/agnostic/Card/Card.svelte +22 -18
- package/dist/components/agnostic/ChoiceInput/ChoiceInput.svelte +87 -59
- package/dist/components/agnostic/Close/Close.svelte +11 -7
- package/dist/components/agnostic/Dialog/Dialog.svelte +64 -42
- package/dist/components/agnostic/Dialog/SvelteA11yDialog.svelte +76 -51
- package/dist/components/agnostic/Disclose/Disclose.svelte +15 -9
- package/dist/components/agnostic/Divider/Divider.svelte +21 -11
- package/dist/components/agnostic/Drawer/Drawer.svelte +20 -16
- package/dist/components/agnostic/EmptyState/EmptyState.svelte +10 -7
- package/dist/components/agnostic/Header/Header.svelte +22 -15
- package/dist/components/agnostic/Header/HeaderNav.svelte +4 -3
- package/dist/components/agnostic/Header/HeaderNavItem.svelte +3 -2
- package/dist/components/agnostic/Icon/Icon.svelte +28 -20
- package/dist/components/agnostic/Loader/Loader.svelte +6 -3
- package/dist/components/agnostic/Progress/Progress.svelte +5 -4
- package/dist/components/agnostic/Spinner/Spinner.svelte +6 -3
- package/dist/components/agnostic/Table/Table.svelte +191 -134
- package/dist/components/agnostic/Tabs/TabButtonCustom.svelte +24 -12
- package/dist/components/agnostic/Tabs/Tabs.svelte +173 -104
- package/dist/components/agnostic/Tag/Tag.svelte +14 -10
- package/dist/components/agnostic/Tag/TagSlots.svelte +2 -1
- package/dist/components/agnostic/Toasts/Toasts.svelte +29 -19
- package/dist/components/agnostic/Tooltip/Tooltip.svelte +85 -68
- package/dist/components/agnostic/Tooltip/TooltipSlots.svelte +2 -1
- package/dist/components/blog/BlogDescription.svelte +6 -4
- package/dist/components/blog/BlogTitle.svelte +8 -6
- package/dist/components/form/Input.svelte +81 -52
- package/dist/components/form/Input.svelte.d.ts +2 -2
- package/dist/components/form/Select.svelte +40 -24
- package/dist/components/layouts/DefaultLayout.svelte +8 -5
- package/dist/components/layouts/Meta.svelte +7 -6
- package/dist/components/layouts/SimpleFooter.svelte +13 -3
- package/dist/components/layouts/Tracker.svelte +2 -1
- package/dist/components/layouts/TwoColumnsLayout.svelte +3 -2
- package/dist/components/menu/CollapsibleMenu.svelte +18 -13
- package/dist/components/menu/DynamicMenu.svelte +16 -10
- package/dist/components/menu/HamburgerMenu.svelte +24 -18
- package/dist/components/menu/Menu.svelte +279 -219
- package/dist/components/menu/MenuItem.svelte +14 -10
- package/dist/components/menu/NavigationItems.svelte +18 -12
- package/dist/components/presentation/Carusel.svelte +77 -72
- package/dist/components/presentation/Gallery.svelte +14 -8
- package/package.json +9 -10
|
@@ -309,58 +309,87 @@ borders that visually conflict. */
|
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
</style>
|
|
312
|
-
<script
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
export let
|
|
319
|
-
export let
|
|
320
|
-
export let
|
|
321
|
-
export let
|
|
322
|
-
export let
|
|
323
|
-
export let
|
|
324
|
-
export let
|
|
325
|
-
export let
|
|
326
|
-
export let
|
|
327
|
-
export let
|
|
328
|
-
export let
|
|
329
|
-
export let
|
|
330
|
-
export let
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
"
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
$:
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
312
|
+
<script lang="ts">
|
|
313
|
+
// Looks like the way to propogate boilerplate events is to
|
|
314
|
+
// just declare in template like on:blur on:focus and so on
|
|
315
|
+
// https://github.com/sveltejs/svelte/issues/585
|
|
316
|
+
// Looks like this is what smelte is doing:
|
|
317
|
+
// https://github.com/matyunya/smelte/blob/master/src/components/TextField/TextField.svelte
|
|
318
|
+
export let label = "";
|
|
319
|
+
export let id = "";
|
|
320
|
+
export let labelCss = "";
|
|
321
|
+
export let isLabelHidden = false;
|
|
322
|
+
export let helpText = "";
|
|
323
|
+
export let invalidText = "";
|
|
324
|
+
export let hasLeftAddon = false;
|
|
325
|
+
export let hasRightAddon = false;
|
|
326
|
+
export let isInvalid = false;
|
|
327
|
+
export let isInline = false;
|
|
328
|
+
export let isRounded = false;
|
|
329
|
+
export let isDisabled = undefined;
|
|
330
|
+
export let css = "";
|
|
331
|
+
export let isSkinned = true;
|
|
332
|
+
export let isUnderlinedWithBackground = false;
|
|
333
|
+
export let isUnderlined = false;
|
|
334
|
+
export let size: "small" | "large" | "" = "";
|
|
335
|
+
export let type:
|
|
336
|
+
| "text"
|
|
337
|
+
| "textarea"
|
|
338
|
+
| "email"
|
|
339
|
+
| "search"
|
|
340
|
+
| "password"
|
|
341
|
+
| "tel"
|
|
342
|
+
| "number"
|
|
343
|
+
| "url"
|
|
344
|
+
| "month"
|
|
345
|
+
| "time"
|
|
346
|
+
| "week"
|
|
347
|
+
| "date"
|
|
348
|
+
| "datetime-local"
|
|
349
|
+
| "color" = "text";
|
|
350
|
+
|
|
351
|
+
export let value = "";
|
|
352
|
+
|
|
353
|
+
$: if (!value) value = "";
|
|
354
|
+
$: inputType = type;
|
|
355
|
+
|
|
356
|
+
$: labelClasses = [
|
|
357
|
+
"label",
|
|
358
|
+
isInvalid ? "label-error" : "",
|
|
359
|
+
isInline ? "label-inline" : "",
|
|
360
|
+
size ? `label-${size}` : "",
|
|
361
|
+
isLabelHidden ? "screenreader-only" : "",
|
|
362
|
+
labelCss ? labelCss : "",
|
|
363
|
+
].filter(c => c).join(" ");
|
|
364
|
+
|
|
365
|
+
$: inputClasses = [
|
|
366
|
+
isSkinned ? "input" : "input-base",
|
|
367
|
+
isRounded ? "input-rounded" : "",
|
|
368
|
+
isUnderlined ? "input-underlined" : "",
|
|
369
|
+
hasLeftAddon ? "input-has-left-addon" : "",
|
|
370
|
+
hasRightAddon ? "input-has-right-addon" : "",
|
|
371
|
+
isDisabled ? "disabled" : "",
|
|
372
|
+
isInvalid ? "input-error" : "",
|
|
373
|
+
isInline ? "input-inline" : "",
|
|
374
|
+
isUnderlinedWithBackground ? "input-underlined-bg" : "",
|
|
375
|
+
css ? css : "",
|
|
376
|
+
size ? `input-${size}` : "",
|
|
377
|
+
].filter(c => c).join(" ");
|
|
378
|
+
|
|
379
|
+
$: invalidClasses = () => {
|
|
380
|
+
return size ? `field-error-${size}` : "field-error";
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
$: helpClasses = () => {
|
|
384
|
+
return size ? `field-help-${size}` : "field-help";
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
$: addonContainerClasses = () => "input-addon-container";
|
|
388
|
+
|
|
389
|
+
const handleInput = (e: Event) => {
|
|
390
|
+
value = (e.target as HTMLInputElement).value;
|
|
391
|
+
}
|
|
392
|
+
|
|
364
393
|
</script>
|
|
365
394
|
<div class="w-100">
|
|
366
395
|
<label class={labelClasses} for={id}>{label}</label>
|
|
@@ -18,8 +18,8 @@ declare const __propDef: {
|
|
|
18
18
|
isSkinned?: boolean | undefined;
|
|
19
19
|
isUnderlinedWithBackground?: boolean | undefined;
|
|
20
20
|
isUnderlined?: boolean | undefined;
|
|
21
|
-
size?:
|
|
22
|
-
type?:
|
|
21
|
+
size?: "small" | "large" | "" | undefined;
|
|
22
|
+
type?: "text" | "textarea" | "email" | "search" | "password" | "tel" | "number" | "url" | "month" | "time" | "week" | "date" | "datetime-local" | "color" | undefined;
|
|
23
23
|
value?: string | undefined;
|
|
24
24
|
};
|
|
25
25
|
events: {
|
|
@@ -80,30 +80,46 @@
|
|
|
80
80
|
|
|
81
81
|
</style>
|
|
82
82
|
|
|
83
|
-
<script
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
export let
|
|
87
|
-
export let
|
|
88
|
-
export let
|
|
89
|
-
export let
|
|
90
|
-
export let
|
|
91
|
-
export let
|
|
92
|
-
export let
|
|
93
|
-
export let
|
|
94
|
-
export let
|
|
95
|
-
export let
|
|
96
|
-
export let
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
83
|
+
<script lang="ts">
|
|
84
|
+
import { createEventDispatcher } from "svelte";
|
|
85
|
+
|
|
86
|
+
export let uniqueId = "";
|
|
87
|
+
export let name = "";
|
|
88
|
+
export let labelCopy = "";
|
|
89
|
+
export let options = [];
|
|
90
|
+
export let size: "small" | "large" | "" = "";
|
|
91
|
+
export let multipleSize = 1;
|
|
92
|
+
export let isMultiple = false;
|
|
93
|
+
export let defaultOptionLabel = "Please select an option";
|
|
94
|
+
export let isDisabled = false;
|
|
95
|
+
export let isSkinned = true;
|
|
96
|
+
export let css = "";
|
|
97
|
+
|
|
98
|
+
// singleSelected can be used for two-way bindings
|
|
99
|
+
export let singleSelected = "";
|
|
100
|
+
|
|
101
|
+
// If we don't make it seems Svelte gets confused:
|
|
102
|
+
// https://github.com/sveltejs/svelte/issues/5644
|
|
103
|
+
// And so we cannot share singleSelected above :(
|
|
104
|
+
export let multiSelected = [];
|
|
105
|
+
|
|
106
|
+
const dispatch = createEventDispatcher();
|
|
107
|
+
// This will emit an event object that has a event.detail prop
|
|
108
|
+
// This will contain the value of the selected option value. See
|
|
109
|
+
// https://svelte.dev/docs#createEventDispatcher
|
|
110
|
+
const changeHandler = () => {
|
|
111
|
+
dispatch("selected", isMultiple ? multiSelected : singleSelected);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
$: disable = isDisabled;
|
|
115
|
+
$: classes = [
|
|
116
|
+
isSkinned ? "select" : "select-base",
|
|
117
|
+
size ? `select-${size}` : "",
|
|
118
|
+
css ? `${css}` : "",
|
|
119
|
+
]
|
|
120
|
+
.filter((cl) => cl)
|
|
121
|
+
.join(" ");
|
|
122
|
+
|
|
107
123
|
</script>
|
|
108
124
|
|
|
109
125
|
<label class="screenreader-only" for={uniqueId}> {labelCopy} </label>
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export let
|
|
5
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { page } from '$app/stores';
|
|
3
|
+
|
|
4
|
+
export let headerIsSticky: boolean = false;
|
|
5
|
+
export let tracker: string = '';
|
|
6
|
+
export let canonicalUrl: string = '';
|
|
7
|
+
|
|
8
|
+
$: headerCss = headerIsSticky ? 'sticky' : '';
|
|
6
9
|
</script>
|
|
7
10
|
|
|
8
11
|
<svelte:head>
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
<script
|
|
2
|
-
export let
|
|
3
|
-
export let
|
|
4
|
-
export let
|
|
5
|
-
export let
|
|
6
|
-
export let
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export let title = "";
|
|
3
|
+
export let description = "";
|
|
4
|
+
export let keywords = "";
|
|
5
|
+
export let robots = "index, follow";
|
|
6
|
+
export let charset = "UTF-8";
|
|
7
|
+
export let viewport = "width=device-width, initial-scale=1.0";
|
|
7
8
|
</script>
|
|
8
9
|
|
|
9
10
|
<svelte:head>
|
|
@@ -5,9 +5,19 @@
|
|
|
5
5
|
}
|
|
6
6
|
</style>
|
|
7
7
|
|
|
8
|
-
<script
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
<script lang='ts'>
|
|
9
|
+
/**
|
|
10
|
+
* @type {string}
|
|
11
|
+
*/
|
|
12
|
+
export let companyName = ""
|
|
13
|
+
/**
|
|
14
|
+
* @type {string}
|
|
15
|
+
*/
|
|
16
|
+
export let motto = ""
|
|
17
|
+
/**
|
|
18
|
+
* @type {string}
|
|
19
|
+
*/
|
|
20
|
+
export let logoUrl: string
|
|
11
21
|
</script>
|
|
12
22
|
|
|
13
23
|
<aside class="items-center grid-flow-col">
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export let
|
|
9
|
-
export let
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Orientation, Placement } from '../Styling.js';
|
|
3
|
+
import ColumnMenu from './NavigationItems.svelte';
|
|
4
|
+
import { HeaderNavigationItem, defaultCss } from './Menu.js';
|
|
5
|
+
import { mergedClasses } from '../CssHelper.js';
|
|
6
|
+
import Button from '../agnostic/Button/Button.svelte';
|
|
7
|
+
|
|
8
|
+
export let css: { buttonCss: string[]; container: string[]; link: string[] } = defaultCss;
|
|
9
|
+
export let contentPosition: Placement = Placement.End;
|
|
10
|
+
export let orientation: Orientation = Orientation.Column;
|
|
11
|
+
|
|
12
|
+
export let localPages: Array<HeaderNavigationItem> = [];
|
|
13
|
+
|
|
14
|
+
const cssClasses = { ...defaultCss, ...css };
|
|
15
|
+
|
|
16
|
+
$: expanded = false;
|
|
17
|
+
$: showContentBeforeButton = contentPosition == Placement.Start;
|
|
18
|
+
$: buttonCss = mergedClasses(cssClasses.buttonCss);
|
|
14
19
|
</script>
|
|
15
20
|
|
|
16
21
|
{#if expanded && showContentBeforeButton}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export let
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { HeaderNavigationItem, selectVisible, defaultCss } from './Menu.js';
|
|
3
|
+
import { isAuthenticated } from './authentication.js';
|
|
4
|
+
import { page } from '$app/stores';
|
|
5
|
+
import { mergedClasses } from '../CssHelper.js';
|
|
6
|
+
|
|
7
|
+
export let css: { container: string[] } = { container: [] };
|
|
8
|
+
|
|
9
|
+
const cssClasses = {...defaultCss, ...css}
|
|
10
|
+
|
|
11
|
+
export let localPages: Array<HeaderNavigationItem> = [];
|
|
12
|
+
|
|
13
|
+
$: pagesVisiblity = isAuthenticated($page);
|
|
14
|
+
$: visibleNavItems = selectVisible(localPages, pagesVisiblity);
|
|
15
|
+
|
|
16
|
+
const klasses = mergedClasses('flex', 'flex-dynamic-row', cssClasses.container);
|
|
11
17
|
</script>
|
|
12
18
|
|
|
13
19
|
<nav class={klasses}>
|
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export let
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { HeaderNavigationItem, defaultCss } from './Menu.js';
|
|
3
|
+
import { afterNavigate } from '$app/navigation';
|
|
4
|
+
import { Orientation, Placement } from '../Styling.js';
|
|
5
|
+
import ColumnMenu from './NavigationItems.svelte';
|
|
6
|
+
import { mergedClasses } from '../CssHelper.js';
|
|
7
|
+
import Drawer from '../agnostic/Drawer/Drawer.svelte';
|
|
8
|
+
import Button from '../agnostic/Button/Button.svelte';
|
|
9
|
+
|
|
10
|
+
export let css: { buttonCss: string[]; container: string[]; link: string[] } = defaultCss;
|
|
11
|
+
|
|
12
|
+
export let noBorder: boolean = false;
|
|
13
|
+
export let placement: Placement = Placement.Start;
|
|
14
|
+
export let localPages: Array<HeaderNavigationItem> = [];
|
|
15
|
+
|
|
16
|
+
const cssClasses = { ...defaultCss, ...css };
|
|
17
|
+
|
|
18
|
+
let drawer: any = null;
|
|
19
|
+
const assignDrawerRef = (ev: any) => {
|
|
20
|
+
drawer = ev.detail.instance;
|
|
21
|
+
};
|
|
22
|
+
afterNavigate(() => drawer?.hide());
|
|
23
|
+
|
|
24
|
+
const buttonCss = mergedClasses('hamburger-handle', noBorder, cssClasses.buttonCss);
|
|
19
25
|
</script>
|
|
20
26
|
|
|
21
27
|
<Button
|