@lavalogic/scoria 0.38.12 → 0.38.13
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/AccordionGroup.svelte +46 -46
- package/dist/Components/AccordionGroupButton.svelte +76 -76
- package/dist/Components/Action.svelte +136 -136
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +712 -702
- package/dist/Components/Base/BaseModal.svelte +125 -125
- package/dist/Components/Base/ContextWrapper.svelte +72 -72
- package/dist/Components/Base/Pagination.svelte +198 -198
- package/dist/Components/Base/Snippets.svelte +36 -36
- package/dist/Components/BigRadioSet.svelte +38 -38
- package/dist/Components/Bubble.svelte +101 -101
- package/dist/Components/Button.svelte +209 -209
- package/dist/Components/Checkbox.svelte +86 -86
- package/dist/Components/Contexts/ContextMenu.svelte +164 -164
- package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
- package/dist/Components/Contexts/ContextMenuOption.svelte +60 -60
- package/dist/Components/Contexts/ToastContainer.svelte +65 -65
- package/dist/Components/Contexts/Tooltip.svelte +37 -37
- package/dist/Components/DataMatrixIcon.svelte +112 -112
- package/dist/Components/DateInput.svelte +148 -148
- package/dist/Components/DatePicker.svelte +300 -300
- package/dist/Components/DesktopModal.svelte +90 -90
- package/dist/Components/Dial.svelte +204 -204
- package/dist/Components/DimensionInput.svelte +170 -170
- package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -119
- package/dist/Components/DragMenu/DraggableCard.svelte +77 -77
- package/dist/Components/FileCard.svelte +24 -24
- package/dist/Components/FileUpload.svelte +236 -236
- package/dist/Components/GridInputSet.svelte +29 -29
- package/dist/Components/HorizontalTabGroup.svelte +82 -82
- package/dist/Components/HorizontalTabGroupButton.svelte +44 -44
- package/dist/Components/Icon.svelte +128 -128
- package/dist/Components/Icons.js +357 -357
- package/dist/Components/LoadingAnimation.svelte +29 -29
- package/dist/Components/LoadingModal.svelte +45 -45
- package/dist/Components/LoadingOverlay.svelte +25 -25
- package/dist/Components/Modal.svelte +258 -258
- package/dist/Components/MultiSelect.svelte +220 -220
- package/dist/Components/Nav/NavServiceMenuList.svelte +43 -43
- package/dist/Components/Nav/NavTab.svelte +62 -62
- package/dist/Components/Nav/ServicesNav.svelte +80 -80
- package/dist/Components/NumberInput.svelte +157 -157
- package/dist/Components/PageHeading.svelte +25 -25
- package/dist/Components/PasswordInput.svelte +88 -88
- package/dist/Components/Portal.svelte +36 -36
- package/dist/Components/QuerySelect.svelte +366 -366
- package/dist/Components/SingleSelect.svelte +250 -250
- package/dist/Components/StepButton.svelte +70 -70
- package/dist/Components/StepForm.svelte +140 -140
- package/dist/Components/Switch.svelte +69 -69
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +51 -51
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +59 -59
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -79
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +120 -120
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +105 -105
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -87
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +126 -126
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -159
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +246 -246
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +216 -216
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +179 -179
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +197 -197
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +190 -190
- package/dist/Components/Table/Body/Rows/TableRow.svelte +290 -290
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -41
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -30
- package/dist/Components/Table/Misc/SidePanel.svelte +35 -35
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +100 -100
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -107
- package/dist/Components/TextArea.svelte +130 -130
- package/dist/Components/TextInput.svelte +176 -176
- package/dist/Components/ThreeStateRadio.svelte +131 -131
- package/dist/Components/Touch/BoolCard.svelte +45 -45
- package/dist/Components/Touch/DateModal.svelte +209 -209
- package/dist/Components/Touch/EditCard.svelte +59 -59
- package/dist/Components/Touch/InfoCard.svelte +31 -31
- package/dist/Components/Touch/InfoTextCard.svelte +28 -28
- package/dist/Components/Touch/ModalExplanation.svelte +17 -17
- package/dist/Components/Touch/NumberKeyboard.svelte +225 -225
- package/dist/Components/Touch/NumberModal.svelte +79 -79
- package/dist/Components/Touch/PlusMinusCard.svelte +46 -46
- package/dist/Components/Touch/SummaryCard.svelte +93 -93
- package/dist/Components/Touch/TextAreaModal.svelte +95 -95
- package/dist/Components/Touch/TextModal.svelte +106 -106
- package/dist/Components/Touch/TouchCard.svelte +33 -33
- package/dist/Components/Touch/TouchModal.svelte +274 -274
- package/dist/Components/Touch/UtilityButton.svelte +109 -109
- package/dist/Components/VerticalTabGroup.svelte +79 -79
- package/dist/Components/VerticalTabGroupButton.svelte +58 -58
- package/dist/Helpers/Datamatrix.d.ts +19 -19
- package/dist/Helpers/Datamatrix.js +291 -291
- package/dist/Types/Examples/ExampleModal.svelte +35 -35
- package/dist/scss/_motion.scss +57 -57
- package/dist/scss/_sizing.scss +85 -85
- package/package.json +30 -30
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script lang="ts">
|
|
4
|
-
import { cssLength } from '../Helpers/Helpers.svelte.js';
|
|
5
|
-
import { ColourSet } from '../scss/colours.js';
|
|
6
|
-
import { Size } from '../Types/Internal/Size.js';
|
|
7
|
-
import Action from './Action.svelte';
|
|
8
|
-
import Icon from './Icon.svelte';
|
|
9
|
-
import type { PasswordInputProps } from './PasswordInputProps.js';
|
|
10
|
-
let {
|
|
11
|
-
value = $bindable(''),
|
|
12
|
-
label = undefined,
|
|
13
|
-
placeholder = undefined,
|
|
14
|
-
required = false,
|
|
15
|
-
disabled = undefined,
|
|
16
|
-
showInput = $bindable(false),
|
|
17
|
-
leftIcon = undefined,
|
|
18
|
-
inputRef = $bindable(),
|
|
19
|
-
autocomplete = 'current-password',
|
|
20
|
-
onblur,
|
|
21
|
-
onfocus,
|
|
22
|
-
// No default `onkeydown` - see TextInput.svelte for the rationale.
|
|
23
|
-
// The legacy default (`passthrough`) blurred the input on every
|
|
24
|
-
// alphanumeric keystroke and made the field unusable.
|
|
25
|
-
onkeydown,
|
|
26
|
-
}: PasswordInputProps = $props();
|
|
27
|
-
|
|
28
|
-
function toggleVisibility(): void {
|
|
29
|
-
showInput = !showInput;
|
|
30
|
-
inputRef?.focus();
|
|
31
|
-
}
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<div class="error-wrapper">
|
|
35
|
-
<label>
|
|
36
|
-
{#if label}
|
|
37
|
-
<span class="for-default">{label}</span>
|
|
38
|
-
<span
|
|
39
|
-
aria-hidden="true"
|
|
40
|
-
class="border">{label}</span
|
|
41
|
-
>
|
|
42
|
-
{/if}
|
|
43
|
-
<div class="icon-container">
|
|
44
|
-
{#if leftIcon}
|
|
45
|
-
<Icon
|
|
46
|
-
name={leftIcon.name}
|
|
47
|
-
size={leftIcon.size ?? Size.Medium}
|
|
48
|
-
float
|
|
49
|
-
left={cssLength('0.75rem')}
|
|
50
|
-
top={cssLength('50%')}
|
|
51
|
-
anchorX={cssLength('0')}
|
|
52
|
-
anchorY={cssLength('-50%')}
|
|
53
|
-
/>
|
|
54
|
-
{/if}
|
|
55
|
-
<input
|
|
56
|
-
class="for-default"
|
|
57
|
-
class:left-pad={leftIcon != undefined}
|
|
58
|
-
class:right-pad={true}
|
|
59
|
-
type={showInput ? 'text' : 'password'}
|
|
60
|
-
{autocomplete}
|
|
61
|
-
autocapitalize="none"
|
|
62
|
-
autocorrect="off"
|
|
63
|
-
spellcheck="false"
|
|
64
|
-
data-form-type="password"
|
|
65
|
-
bind:value
|
|
66
|
-
bind:this={inputRef}
|
|
67
|
-
{onblur}
|
|
68
|
-
{onfocus}
|
|
69
|
-
{onkeydown}
|
|
70
|
-
{placeholder}
|
|
71
|
-
{required}
|
|
72
|
-
{disabled}
|
|
73
|
-
/>
|
|
74
|
-
|
|
75
|
-
<div class="right-icon">
|
|
76
|
-
<Action
|
|
77
|
-
label={showInput ? 'Hide password' : 'Show password'}
|
|
78
|
-
colourSet={showInput ? ColourSet.Secondary : ColourSet.Auxiliary}
|
|
79
|
-
icon={{ name: showInput ? 'visibility-off' : 'visibility' }}
|
|
80
|
-
size={Size.MediumSmall}
|
|
81
|
-
onclick={toggleVisibility}
|
|
82
|
-
/>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
</label>
|
|
86
|
-
</div>
|
|
87
|
-
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script lang="ts">
|
|
4
|
+
import { cssLength } from '../Helpers/Helpers.svelte.js';
|
|
5
|
+
import { ColourSet } from '../scss/colours.js';
|
|
6
|
+
import { Size } from '../Types/Internal/Size.js';
|
|
7
|
+
import Action from './Action.svelte';
|
|
8
|
+
import Icon from './Icon.svelte';
|
|
9
|
+
import type { PasswordInputProps } from './PasswordInputProps.js';
|
|
10
|
+
let {
|
|
11
|
+
value = $bindable(''),
|
|
12
|
+
label = undefined,
|
|
13
|
+
placeholder = undefined,
|
|
14
|
+
required = false,
|
|
15
|
+
disabled = undefined,
|
|
16
|
+
showInput = $bindable(false),
|
|
17
|
+
leftIcon = undefined,
|
|
18
|
+
inputRef = $bindable(),
|
|
19
|
+
autocomplete = 'current-password',
|
|
20
|
+
onblur,
|
|
21
|
+
onfocus,
|
|
22
|
+
// No default `onkeydown` - see TextInput.svelte for the rationale.
|
|
23
|
+
// The legacy default (`passthrough`) blurred the input on every
|
|
24
|
+
// alphanumeric keystroke and made the field unusable.
|
|
25
|
+
onkeydown,
|
|
26
|
+
}: PasswordInputProps = $props();
|
|
27
|
+
|
|
28
|
+
function toggleVisibility(): void {
|
|
29
|
+
showInput = !showInput;
|
|
30
|
+
inputRef?.focus();
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<div class="error-wrapper">
|
|
35
|
+
<label>
|
|
36
|
+
{#if label}
|
|
37
|
+
<span class="for-default">{label}</span>
|
|
38
|
+
<span
|
|
39
|
+
aria-hidden="true"
|
|
40
|
+
class="border">{label}</span
|
|
41
|
+
>
|
|
42
|
+
{/if}
|
|
43
|
+
<div class="icon-container">
|
|
44
|
+
{#if leftIcon}
|
|
45
|
+
<Icon
|
|
46
|
+
name={leftIcon.name}
|
|
47
|
+
size={leftIcon.size ?? Size.Medium}
|
|
48
|
+
float
|
|
49
|
+
left={cssLength('0.75rem')}
|
|
50
|
+
top={cssLength('50%')}
|
|
51
|
+
anchorX={cssLength('0')}
|
|
52
|
+
anchorY={cssLength('-50%')}
|
|
53
|
+
/>
|
|
54
|
+
{/if}
|
|
55
|
+
<input
|
|
56
|
+
class="for-default"
|
|
57
|
+
class:left-pad={leftIcon != undefined}
|
|
58
|
+
class:right-pad={true}
|
|
59
|
+
type={showInput ? 'text' : 'password'}
|
|
60
|
+
{autocomplete}
|
|
61
|
+
autocapitalize="none"
|
|
62
|
+
autocorrect="off"
|
|
63
|
+
spellcheck="false"
|
|
64
|
+
data-form-type="password"
|
|
65
|
+
bind:value
|
|
66
|
+
bind:this={inputRef}
|
|
67
|
+
{onblur}
|
|
68
|
+
{onfocus}
|
|
69
|
+
{onkeydown}
|
|
70
|
+
{placeholder}
|
|
71
|
+
{required}
|
|
72
|
+
{disabled}
|
|
73
|
+
/>
|
|
74
|
+
|
|
75
|
+
<div class="right-icon">
|
|
76
|
+
<Action
|
|
77
|
+
label={showInput ? 'Hide password' : 'Show password'}
|
|
78
|
+
colourSet={showInput ? ColourSet.Secondary : ColourSet.Auxiliary}
|
|
79
|
+
icon={{ name: showInput ? 'visibility-off' : 'visibility' }}
|
|
80
|
+
size={Size.MediumSmall}
|
|
81
|
+
onclick={toggleVisibility}
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</label>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
88
|
<style>input {
|
|
89
89
|
box-sizing: border-box;
|
|
90
90
|
height: 100%;
|
|
@@ -318,4 +318,4 @@ label.for-table input {
|
|
|
318
318
|
|
|
319
319
|
td {
|
|
320
320
|
--input-border: none;
|
|
321
|
-
}</style>
|
|
321
|
+
}</style>
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
<svelte:options runes />
|
|
2
|
-
|
|
3
|
-
<script lang="ts">
|
|
4
|
-
import { browser } from '$app/environment';
|
|
5
|
-
import type { PortalProps } from './PortalProps.js';
|
|
6
|
-
|
|
7
|
-
let { target = browser ? globalThis.document.body : undefined, children }: PortalProps = $props();
|
|
8
|
-
|
|
9
|
-
let ref: HTMLElement | undefined = $state();
|
|
10
|
-
let lastTarget: HTMLElement | undefined;
|
|
11
|
-
|
|
12
|
-
$effect(() => {
|
|
13
|
-
// Identity guard: only re-parent when `target` actually changes.
|
|
14
|
-
// `appendChild` already moves the node when called, so this avoids
|
|
15
|
-
// unnecessary detach/attach when an upstream `$state` target
|
|
16
|
-
// re-fires the effect without changing identity.
|
|
17
|
-
if (target && ref && target !== lastTarget) {
|
|
18
|
-
if (target.ownerDocument === globalThis.document) {
|
|
19
|
-
target.appendChild(ref);
|
|
20
|
-
lastTarget = target;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Cleanup is necessary, not redundant: without it, the appended
|
|
25
|
-
// node would remain inside `target` after the Portal unmounts,
|
|
26
|
-
// because `target` outlives the component.
|
|
27
|
-
return () => {
|
|
28
|
-
ref?.parentNode?.removeChild(ref);
|
|
29
|
-
lastTarget = undefined;
|
|
30
|
-
};
|
|
31
|
-
});
|
|
32
|
-
</script>
|
|
33
|
-
|
|
34
|
-
<div bind:this={ref}>
|
|
35
|
-
{@render children()}
|
|
36
|
-
</div>
|
|
1
|
+
<svelte:options runes />
|
|
2
|
+
|
|
3
|
+
<script lang="ts">
|
|
4
|
+
import { browser } from '$app/environment';
|
|
5
|
+
import type { PortalProps } from './PortalProps.js';
|
|
6
|
+
|
|
7
|
+
let { target = browser ? globalThis.document.body : undefined, children }: PortalProps = $props();
|
|
8
|
+
|
|
9
|
+
let ref: HTMLElement | undefined = $state();
|
|
10
|
+
let lastTarget: HTMLElement | undefined;
|
|
11
|
+
|
|
12
|
+
$effect(() => {
|
|
13
|
+
// Identity guard: only re-parent when `target` actually changes.
|
|
14
|
+
// `appendChild` already moves the node when called, so this avoids
|
|
15
|
+
// unnecessary detach/attach when an upstream `$state` target
|
|
16
|
+
// re-fires the effect without changing identity.
|
|
17
|
+
if (target && ref && target !== lastTarget) {
|
|
18
|
+
if (target.ownerDocument === globalThis.document) {
|
|
19
|
+
target.appendChild(ref);
|
|
20
|
+
lastTarget = target;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Cleanup is necessary, not redundant: without it, the appended
|
|
25
|
+
// node would remain inside `target` after the Portal unmounts,
|
|
26
|
+
// because `target` outlives the component.
|
|
27
|
+
return () => {
|
|
28
|
+
ref?.parentNode?.removeChild(ref);
|
|
29
|
+
lastTarget = undefined;
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<div bind:this={ref}>
|
|
35
|
+
{@render children()}
|
|
36
|
+
</div>
|