@nqmcreative/ui 0.3.0 → 0.4.1
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/README.md +220 -28
- package/cli/index.mjs +247 -70
- package/dist/core/calendar.d.ts +1 -1
- package/dist/core/calendar.js +1 -1
- package/dist/core/color.d.ts +24 -0
- package/dist/core/color.js +39 -0
- package/dist/core/date.d.ts +3 -3
- package/dist/core/date.js +1 -1
- package/dist/core/files.d.ts +2 -3
- package/dist/core/files.js +2 -3
- package/dist/core/index.d.ts +9 -4
- package/dist/core/index.js +6 -4
- package/dist/core/number.d.ts +22 -0
- package/dist/core/number.js +33 -0
- package/dist/core/password.d.ts +1 -1
- package/dist/core/password.js +1 -1
- package/dist/core/pin.d.ts +23 -0
- package/dist/core/pin.js +38 -0
- package/dist/core/tags.d.ts +37 -0
- package/dist/core/tags.js +51 -0
- package/dist/core/time.d.ts +30 -0
- package/dist/core/time.js +78 -0
- package/dist/styles/matte/Alert.svelte +1 -3
- package/dist/styles/matte/Breadcrumb.svelte +1 -4
- package/dist/styles/matte/Calendar.svelte +6 -9
- package/dist/styles/matte/ColorInput.svelte +107 -0
- package/dist/styles/matte/ColorInput.svelte.d.ts +16 -0
- package/dist/styles/matte/Combobox.svelte +3 -6
- package/dist/styles/matte/CommandPalette.svelte +3 -6
- package/dist/styles/matte/ConfirmDialog.svelte +2 -5
- package/dist/styles/matte/ContextMenu.svelte +1 -4
- package/dist/styles/matte/CurrencyInput.svelte +108 -0
- package/dist/styles/matte/CurrencyInput.svelte.d.ts +26 -0
- package/dist/styles/matte/DatePicker.svelte +9 -9
- package/dist/styles/matte/DatePicker.svelte.d.ts +3 -0
- package/dist/styles/matte/Drawer.svelte +1 -3
- package/dist/styles/matte/Dropdown.svelte +2 -5
- package/dist/styles/matte/Dropdown.svelte.d.ts +1 -1
- package/dist/styles/matte/Dropzone.svelte +9 -12
- package/dist/styles/matte/Dropzone.svelte.d.ts +1 -1
- package/dist/styles/matte/FileInput.svelte +191 -0
- package/dist/styles/matte/FileInput.svelte.d.ts +32 -0
- package/dist/styles/matte/Footer.svelte +1 -1
- package/dist/styles/matte/Footer.svelte.d.ts +1 -1
- package/dist/styles/matte/InputAddon.svelte +36 -0
- package/dist/styles/matte/InputAddon.svelte.d.ts +13 -0
- package/dist/styles/matte/Modal.svelte +1 -3
- package/dist/styles/matte/MultiSelect.svelte +5 -8
- package/dist/styles/matte/Navbar.svelte +3 -9
- package/dist/styles/matte/Pagination.svelte +3 -6
- package/dist/styles/matte/PinInput.svelte +134 -0
- package/dist/styles/matte/PinInput.svelte.d.ts +25 -0
- package/dist/styles/matte/SearchInput.svelte +84 -0
- package/dist/styles/matte/SearchInput.svelte.d.ts +24 -0
- package/dist/styles/matte/Sidebar.svelte +3 -6
- package/dist/styles/matte/Spinner.svelte +2 -5
- package/dist/styles/matte/Spinner.svelte.d.ts +1 -1
- package/dist/styles/matte/Table.svelte +5 -8
- package/dist/styles/matte/TagsInput.svelte +170 -0
- package/dist/styles/matte/TagsInput.svelte.d.ts +29 -0
- package/dist/styles/matte/ThemeToggle.svelte +5 -8
- package/dist/styles/matte/TimeInput.svelte +126 -0
- package/dist/styles/matte/TimeInput.svelte.d.ts +21 -0
- package/dist/styles/matte/Toaster.svelte +2 -5
- package/dist/styles/matte/index.d.ts +10 -3
- package/dist/styles/matte/index.js +9 -3
- package/dist/styles/paper/Alert.svelte +1 -3
- package/dist/styles/paper/Breadcrumb.svelte +1 -4
- package/dist/styles/paper/Calendar.svelte +6 -9
- package/dist/styles/paper/ColorInput.svelte +109 -0
- package/dist/styles/paper/ColorInput.svelte.d.ts +16 -0
- package/dist/styles/paper/Combobox.svelte +3 -6
- package/dist/styles/paper/CommandPalette.svelte +3 -6
- package/dist/styles/paper/ConfirmDialog.svelte +2 -5
- package/dist/styles/paper/ContextMenu.svelte +1 -4
- package/dist/styles/paper/CurrencyInput.svelte +108 -0
- package/dist/styles/paper/CurrencyInput.svelte.d.ts +26 -0
- package/dist/styles/paper/DatePicker.svelte +9 -9
- package/dist/styles/paper/DatePicker.svelte.d.ts +3 -0
- package/dist/styles/paper/Drawer.svelte +1 -3
- package/dist/styles/paper/Dropdown.svelte +2 -5
- package/dist/styles/paper/Dropdown.svelte.d.ts +1 -1
- package/dist/styles/paper/Dropzone.svelte +9 -12
- package/dist/styles/paper/Dropzone.svelte.d.ts +1 -1
- package/dist/styles/paper/FileInput.svelte +201 -0
- package/dist/styles/paper/FileInput.svelte.d.ts +32 -0
- package/dist/styles/paper/Footer.svelte +1 -1
- package/dist/styles/paper/Footer.svelte.d.ts +1 -1
- package/dist/styles/paper/InputAddon.svelte +36 -0
- package/dist/styles/paper/InputAddon.svelte.d.ts +13 -0
- package/dist/styles/paper/Modal.svelte +1 -3
- package/dist/styles/paper/MultiSelect.svelte +5 -8
- package/dist/styles/paper/Navbar.svelte +3 -9
- package/dist/styles/paper/Pagination.svelte +3 -6
- package/dist/styles/paper/PinInput.svelte +134 -0
- package/dist/styles/paper/PinInput.svelte.d.ts +25 -0
- package/dist/styles/paper/SearchInput.svelte +89 -0
- package/dist/styles/paper/SearchInput.svelte.d.ts +24 -0
- package/dist/styles/paper/Sidebar.svelte +3 -6
- package/dist/styles/paper/Spinner.svelte +2 -5
- package/dist/styles/paper/Spinner.svelte.d.ts +1 -1
- package/dist/styles/paper/Table.svelte +5 -8
- package/dist/styles/paper/TagsInput.svelte +175 -0
- package/dist/styles/paper/TagsInput.svelte.d.ts +29 -0
- package/dist/styles/paper/ThemeToggle.svelte +5 -8
- package/dist/styles/paper/TimeInput.svelte +152 -0
- package/dist/styles/paper/TimeInput.svelte.d.ts +21 -0
- package/dist/styles/paper/Toaster.svelte +3 -6
- package/dist/styles/paper/index.d.ts +10 -3
- package/dist/styles/paper/index.js +9 -3
- package/dist/styles/sprout/Alert.svelte +1 -3
- package/dist/styles/sprout/Breadcrumb.svelte +1 -4
- package/dist/styles/sprout/Calendar.svelte +6 -9
- package/dist/styles/sprout/ColorInput.svelte +109 -0
- package/dist/styles/sprout/ColorInput.svelte.d.ts +16 -0
- package/dist/styles/sprout/Combobox.svelte +3 -6
- package/dist/styles/sprout/CommandPalette.svelte +3 -6
- package/dist/styles/sprout/ConfirmDialog.svelte +2 -5
- package/dist/styles/sprout/ContextMenu.svelte +1 -4
- package/dist/styles/sprout/CurrencyInput.svelte +108 -0
- package/dist/styles/sprout/CurrencyInput.svelte.d.ts +26 -0
- package/dist/styles/sprout/DatePicker.svelte +9 -9
- package/dist/styles/sprout/DatePicker.svelte.d.ts +3 -0
- package/dist/styles/sprout/Drawer.svelte +1 -3
- package/dist/styles/sprout/Dropdown.svelte +2 -5
- package/dist/styles/sprout/Dropdown.svelte.d.ts +1 -1
- package/dist/styles/sprout/Dropzone.svelte +9 -12
- package/dist/styles/sprout/Dropzone.svelte.d.ts +1 -1
- package/dist/styles/sprout/FileInput.svelte +202 -0
- package/dist/styles/sprout/FileInput.svelte.d.ts +32 -0
- package/dist/styles/sprout/Footer.svelte +1 -1
- package/dist/styles/sprout/Footer.svelte.d.ts +1 -1
- package/dist/styles/sprout/InputAddon.svelte +37 -0
- package/dist/styles/sprout/InputAddon.svelte.d.ts +13 -0
- package/dist/styles/sprout/Modal.svelte +1 -3
- package/dist/styles/sprout/MultiSelect.svelte +5 -8
- package/dist/styles/sprout/Navbar.svelte +3 -9
- package/dist/styles/sprout/Pagination.svelte +3 -6
- package/dist/styles/sprout/PinInput.svelte +135 -0
- package/dist/styles/sprout/PinInput.svelte.d.ts +25 -0
- package/dist/styles/sprout/SearchInput.svelte +89 -0
- package/dist/styles/sprout/SearchInput.svelte.d.ts +24 -0
- package/dist/styles/sprout/Sidebar.svelte +3 -6
- package/dist/styles/sprout/Spinner.svelte +2 -5
- package/dist/styles/sprout/Spinner.svelte.d.ts +1 -1
- package/dist/styles/sprout/Table.svelte +5 -8
- package/dist/styles/sprout/TagsInput.svelte +176 -0
- package/dist/styles/sprout/TagsInput.svelte.d.ts +29 -0
- package/dist/styles/sprout/ThemeToggle.svelte +5 -8
- package/dist/styles/sprout/TimeInput.svelte +152 -0
- package/dist/styles/sprout/TimeInput.svelte.d.ts +21 -0
- package/dist/styles/sprout/Toaster.svelte +3 -6
- package/dist/styles/sprout/index.d.ts +10 -3
- package/dist/styles/sprout/index.js +9 -3
- package/package.json +98 -19
- package/registry.json +139 -38
- package/dist/core/locale.svelte.d.ts +0 -93
- package/dist/core/locale.svelte.js +0 -153
- package/dist/styles/matte/LocaleProvider.svelte +0 -24
- package/dist/styles/matte/LocaleProvider.svelte.d.ts +0 -10
- package/dist/styles/paper/LocaleProvider.svelte +0 -24
- package/dist/styles/paper/LocaleProvider.svelte.d.ts +0 -10
- package/dist/styles/sprout/LocaleProvider.svelte +0 -24
- package/dist/styles/sprout/LocaleProvider.svelte.d.ts +0 -10
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
storedTheme,
|
|
11
11
|
type Theme
|
|
12
12
|
} from '../../core/theme.svelte.js';
|
|
13
|
-
import { useLocale } from '../../core/locale.svelte.js';
|
|
14
13
|
import { edge } from './lift.js';
|
|
15
14
|
|
|
16
15
|
interface Props {
|
|
@@ -34,8 +33,6 @@
|
|
|
34
33
|
class: className = ''
|
|
35
34
|
}: Props = $props();
|
|
36
35
|
|
|
37
|
-
const t = useLocale();
|
|
38
|
-
|
|
39
36
|
$effect(() => {
|
|
40
37
|
applyTheme(theme);
|
|
41
38
|
if (persist) persistTheme(theme);
|
|
@@ -51,8 +48,8 @@
|
|
|
51
48
|
}
|
|
52
49
|
|
|
53
50
|
const options = $derived([
|
|
54
|
-
{ value: 'light' as Theme, label:
|
|
55
|
-
{ value: 'dark' as Theme, label:
|
|
51
|
+
{ value: 'light' as Theme, label: 'Light' },
|
|
52
|
+
{ value: 'dark' as Theme, label: 'Dark' },
|
|
56
53
|
{ value: 'system' as Theme, label: 'Auto' }
|
|
57
54
|
]);
|
|
58
55
|
</script>
|
|
@@ -96,7 +93,7 @@
|
|
|
96
93
|
{#if variant === 'segmented'}
|
|
97
94
|
<div
|
|
98
95
|
role="radiogroup"
|
|
99
|
-
aria-label=
|
|
96
|
+
aria-label="Toggle theme"
|
|
100
97
|
class="inline-flex items-center gap-1 rounded-2xl border border-hairline bg-bg-inset p-1 {className}"
|
|
101
98
|
>
|
|
102
99
|
{#each options as option (option.value)}
|
|
@@ -120,8 +117,8 @@
|
|
|
120
117
|
<button
|
|
121
118
|
type="button"
|
|
122
119
|
onclick={cycle}
|
|
123
|
-
aria-label="
|
|
124
|
-
title=
|
|
120
|
+
aria-label="Toggle theme ({theme})"
|
|
121
|
+
title="Toggle theme"
|
|
125
122
|
class="inline-flex size-9 items-center justify-center rounded-xl border border-hairline bg-bg text-text-secondary {edge} transition-colors duration-150 ease-brand-out hover:bg-bg-alt hover:text-text {focusRing} {toneRing[
|
|
126
123
|
tone
|
|
127
124
|
]} {className}"
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
3
|
+
import { clampTime, formatTime, parseTime, stepTime } from '../../core/time.js';
|
|
4
|
+
import type { Tone } from '../../core/tones.js';
|
|
5
|
+
import Input, { type InputSize } from './Input.svelte';
|
|
6
|
+
|
|
7
|
+
interface Props extends Omit<
|
|
8
|
+
HTMLInputAttributes,
|
|
9
|
+
'size' | 'prefix' | 'suffix' | 'min' | 'max' | 'step'
|
|
10
|
+
> {
|
|
11
|
+
/** Bindable `HH:MM`, or `''` for empty. */
|
|
12
|
+
value?: string;
|
|
13
|
+
/** Inclusive bounds, `HH:MM`. */
|
|
14
|
+
min?: string;
|
|
15
|
+
max?: string;
|
|
16
|
+
/** Minutes one press of a stepper moves, and what typing snaps to. */
|
|
17
|
+
step?: number;
|
|
18
|
+
size?: InputSize;
|
|
19
|
+
tone?: Tone;
|
|
20
|
+
invalid?: boolean;
|
|
21
|
+
/** Hide the steppers and let the field be typed into only. */
|
|
22
|
+
steppers?: boolean;
|
|
23
|
+
class?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let {
|
|
27
|
+
value = $bindable(''),
|
|
28
|
+
min,
|
|
29
|
+
max,
|
|
30
|
+
step = 15,
|
|
31
|
+
size = 'md',
|
|
32
|
+
tone = 'brand',
|
|
33
|
+
invalid = false,
|
|
34
|
+
disabled = false,
|
|
35
|
+
steppers = true,
|
|
36
|
+
class: className = '',
|
|
37
|
+
...rest
|
|
38
|
+
}: Props = $props();
|
|
39
|
+
|
|
40
|
+
// Typed text and the bound value are separate until the field settles:
|
|
41
|
+
// `9` is a valid thing to be halfway through typing and an invalid time.
|
|
42
|
+
let text = $state('');
|
|
43
|
+
let editing = $state(false);
|
|
44
|
+
|
|
45
|
+
$effect(() => {
|
|
46
|
+
if (!editing) text = value;
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
function settle() {
|
|
50
|
+
editing = false;
|
|
51
|
+
const minutes = parseTime(text);
|
|
52
|
+
value = minutes === null ? '' : formatTime(clampTime(minutes, min, max, step));
|
|
53
|
+
text = value;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function nudge(direction: 1 | -1) {
|
|
57
|
+
value = stepTime(value, direction, step, min, max);
|
|
58
|
+
text = value;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function onKeydown(event: KeyboardEvent) {
|
|
62
|
+
if (event.key === 'ArrowUp') {
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
nudge(1);
|
|
65
|
+
} else if (event.key === 'ArrowDown') {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
nudge(-1);
|
|
68
|
+
} else if (event.key === 'Enter') {
|
|
69
|
+
settle();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const stepper =
|
|
74
|
+
'grid size-6 place-items-center rounded text-text-secondary transition-colors duration-150 hover:bg-bg-inset hover:text-text focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-current';
|
|
75
|
+
</script>
|
|
76
|
+
|
|
77
|
+
<Input
|
|
78
|
+
bind:value={text}
|
|
79
|
+
{size}
|
|
80
|
+
{tone}
|
|
81
|
+
{invalid}
|
|
82
|
+
{disabled}
|
|
83
|
+
inputmode="numeric"
|
|
84
|
+
placeholder="--:--"
|
|
85
|
+
onfocus={() => (editing = true)}
|
|
86
|
+
onblur={settle}
|
|
87
|
+
onkeydown={onKeydown}
|
|
88
|
+
class="[&_input]:tabular-nums {className}"
|
|
89
|
+
{...rest}
|
|
90
|
+
>
|
|
91
|
+
{#snippet prefix()}
|
|
92
|
+
<svg class="size-4" viewBox="0 0 20 20" fill="none" aria-hidden="true">
|
|
93
|
+
<circle
|
|
94
|
+
cx="10"
|
|
95
|
+
cy="10"
|
|
96
|
+
r="6.5"
|
|
97
|
+
stroke="currentColor"
|
|
98
|
+
stroke-width="1.6"
|
|
99
|
+
stroke-linecap="round"
|
|
100
|
+
stroke-linejoin="round"
|
|
101
|
+
/>
|
|
102
|
+
<path
|
|
103
|
+
d="M10 6.5V10l2.5 1.5"
|
|
104
|
+
stroke="currentColor"
|
|
105
|
+
stroke-width="1.6"
|
|
106
|
+
stroke-linecap="round"
|
|
107
|
+
stroke-linejoin="round"
|
|
108
|
+
/>
|
|
109
|
+
</svg>
|
|
110
|
+
{/snippet}
|
|
111
|
+
|
|
112
|
+
{#snippet suffix()}
|
|
113
|
+
{#if steppers}
|
|
114
|
+
<span class="-mr-2 flex flex-col">
|
|
115
|
+
<button
|
|
116
|
+
type="button"
|
|
117
|
+
class={stepper}
|
|
118
|
+
{disabled}
|
|
119
|
+
onclick={() => nudge(1)}
|
|
120
|
+
aria-label="Increase"
|
|
121
|
+
>
|
|
122
|
+
<svg class="size-3" viewBox="0 0 12 12" fill="none" aria-hidden="true">
|
|
123
|
+
<path
|
|
124
|
+
d="m3 7.5 3-3 3 3"
|
|
125
|
+
stroke="currentColor"
|
|
126
|
+
stroke-width="1.6"
|
|
127
|
+
stroke-linecap="round"
|
|
128
|
+
stroke-linejoin="round"
|
|
129
|
+
/>
|
|
130
|
+
</svg>
|
|
131
|
+
</button>
|
|
132
|
+
<button
|
|
133
|
+
type="button"
|
|
134
|
+
class={stepper}
|
|
135
|
+
{disabled}
|
|
136
|
+
onclick={() => nudge(-1)}
|
|
137
|
+
aria-label="Decrease"
|
|
138
|
+
>
|
|
139
|
+
<svg class="size-3" viewBox="0 0 12 12" fill="none" aria-hidden="true">
|
|
140
|
+
<path
|
|
141
|
+
d="m3 4.5 3 3 3-3"
|
|
142
|
+
stroke="currentColor"
|
|
143
|
+
stroke-width="1.6"
|
|
144
|
+
stroke-linecap="round"
|
|
145
|
+
stroke-linejoin="round"
|
|
146
|
+
/>
|
|
147
|
+
</svg>
|
|
148
|
+
</button>
|
|
149
|
+
</span>
|
|
150
|
+
{/if}
|
|
151
|
+
{/snippet}
|
|
152
|
+
</Input>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
2
|
+
import type { Tone } from '../../core/tones.js';
|
|
3
|
+
import { type InputSize } from './Input.svelte';
|
|
4
|
+
interface Props extends Omit<HTMLInputAttributes, 'size' | 'prefix' | 'suffix' | 'min' | 'max' | 'step'> {
|
|
5
|
+
/** Bindable `HH:MM`, or `''` for empty. */
|
|
6
|
+
value?: string;
|
|
7
|
+
/** Inclusive bounds, `HH:MM`. */
|
|
8
|
+
min?: string;
|
|
9
|
+
max?: string;
|
|
10
|
+
/** Minutes one press of a stepper moves, and what typing snaps to. */
|
|
11
|
+
step?: number;
|
|
12
|
+
size?: InputSize;
|
|
13
|
+
tone?: Tone;
|
|
14
|
+
invalid?: boolean;
|
|
15
|
+
/** Hide the steppers and let the field be typed into only. */
|
|
16
|
+
steppers?: boolean;
|
|
17
|
+
class?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const TimeInput: import("svelte").Component<Props, {}, "value">;
|
|
20
|
+
type TimeInput = ReturnType<typeof TimeInput>;
|
|
21
|
+
export default TimeInput;
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
import { toneText } from '../../core/tones.js';
|
|
7
7
|
import { iconMd } from './icon.js';
|
|
8
8
|
import Spinner from './Spinner.svelte';
|
|
9
|
-
import { useLocale } from '../../core/locale.svelte.js';
|
|
10
9
|
import { soft } from './lift.js';
|
|
11
10
|
|
|
12
11
|
export type ToasterPosition =
|
|
@@ -19,8 +18,6 @@
|
|
|
19
18
|
|
|
20
19
|
let { position = 'bottom-right', class: className = '' }: Props = $props();
|
|
21
20
|
|
|
22
|
-
const t = useLocale();
|
|
23
|
-
|
|
24
21
|
const positions: Record<ToasterPosition, string> = {
|
|
25
22
|
'top-left': 'top-4 left-4 items-start',
|
|
26
23
|
'top-center': 'top-4 left-1/2 -translate-x-1/2 items-center',
|
|
@@ -42,8 +39,8 @@
|
|
|
42
39
|
<div
|
|
43
40
|
use:portal
|
|
44
41
|
aria-live="polite"
|
|
45
|
-
aria-label=
|
|
46
|
-
class="pointer-events-none fixed z-
|
|
42
|
+
aria-label="Notifications"
|
|
43
|
+
class="pointer-events-none fixed z-100 flex w-[min(24rem,calc(100vw-2rem))] flex-col gap-2.5 {positions[
|
|
47
44
|
position
|
|
48
45
|
]} {fromTop ? '' : 'flex-col-reverse'} {className}"
|
|
49
46
|
>
|
|
@@ -119,7 +116,7 @@
|
|
|
119
116
|
<button
|
|
120
117
|
type="button"
|
|
121
118
|
onclick={() => toast.dismiss(item.id)}
|
|
122
|
-
aria-label=
|
|
119
|
+
aria-label="Dismiss"
|
|
123
120
|
class="-m-1 shrink-0 rounded p-1 text-text-muted transition-colors duration-150 hover:bg-bg-inset hover:text-text focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-current"
|
|
124
121
|
>
|
|
125
122
|
<svg class="size-3.5" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
* `@nqmcreative/ui/core`, re-exported below so this one import covers
|
|
6
6
|
* the whole style.
|
|
7
7
|
*/
|
|
8
|
-
export { TONES, focusRing, peerFocusRing, toneBorder, toneBorderLeft, toneBorderSoft, toneFill, toneFocusBorder, toneFocusWithinBorder, toneHoverBorder, toneHoverText, tonePeerChecked, tonePeerFocus, toneRing, toneSoft, toneSoftHover, toneSolid, toneSolidHover, toneSurface, toneText, anchored, clickOutside, focusTrap, focusable, navigateList, portal, toast,
|
|
9
|
-
export type { Tone, Placement, AnchorOptions, ClickOutsideOptions, FocusTrapOptions, Toast, ToastOptions, ToastAction,
|
|
10
|
-
export { default as LocaleProvider } from './LocaleProvider.svelte';
|
|
8
|
+
export { TONES, focusRing, peerFocusRing, toneBorder, toneBorderLeft, toneBorderSoft, toneFill, toneFocusBorder, toneFocusWithinBorder, toneHoverBorder, toneHoverText, tonePeerChecked, tonePeerFocus, toneRing, toneSoft, toneSoftHover, toneSolid, toneSolidHover, toneSurface, toneText, anchored, clickOutside, focusTrap, focusable, navigateList, portal, toast, applyTheme, storedTheme, toISO, fromISO, today, isSameDay, addDays, addMonths, monthGrid, weekdayNames, monthLabel, isOutOfRange, formatISO, parseFormatted } from '../../core/index.js';
|
|
9
|
+
export type { Tone, Placement, AnchorOptions, ClickOutsideOptions, FocusTrapOptions, Toast, ToastOptions, ToastAction, Theme, DateFormat, TableSort, SortDirection, RejectedFile } from '../../core/index.js';
|
|
11
10
|
export { default as Button } from './Button.svelte';
|
|
12
11
|
export type { ButtonVariant, ButtonSize } from './Button.svelte';
|
|
13
12
|
export { default as Link } from './Link.svelte';
|
|
@@ -30,6 +29,14 @@ export type { CheckboxOption } from './CheckboxGroup.svelte';
|
|
|
30
29
|
export { default as SegmentedControl } from './SegmentedControl.svelte';
|
|
31
30
|
export type { SegmentOption, SegmentedSize } from './SegmentedControl.svelte';
|
|
32
31
|
export { default as InputGroup } from './InputGroup.svelte';
|
|
32
|
+
export { default as InputAddon } from './InputAddon.svelte';
|
|
33
|
+
export { default as SearchInput } from './SearchInput.svelte';
|
|
34
|
+
export { default as PinInput } from './PinInput.svelte';
|
|
35
|
+
export { default as TagsInput } from './TagsInput.svelte';
|
|
36
|
+
export { default as CurrencyInput } from './CurrencyInput.svelte';
|
|
37
|
+
export { default as TimeInput } from './TimeInput.svelte';
|
|
38
|
+
export { default as ColorInput } from './ColorInput.svelte';
|
|
39
|
+
export { default as FileInput } from './FileInput.svelte';
|
|
33
40
|
export { default as Combobox } from './Combobox.svelte';
|
|
34
41
|
export type { ComboboxOption } from './Combobox.svelte';
|
|
35
42
|
export { default as MultiSelect } from './MultiSelect.svelte';
|
|
@@ -6,9 +6,7 @@
|
|
|
6
6
|
* the whole style.
|
|
7
7
|
*/
|
|
8
8
|
/* --- shared behaviour --- */
|
|
9
|
-
export { TONES, focusRing, peerFocusRing, toneBorder, toneBorderLeft, toneBorderSoft, toneFill, toneFocusBorder, toneFocusWithinBorder, toneHoverBorder, toneHoverText, tonePeerChecked, tonePeerFocus, toneRing, toneSoft, toneSoftHover, toneSolid, toneSolidHover, toneSurface, toneText, anchored, clickOutside, focusTrap, focusable, navigateList, portal, toast,
|
|
10
|
-
/* --- locale --- */
|
|
11
|
-
export { default as LocaleProvider } from './LocaleProvider.svelte';
|
|
9
|
+
export { TONES, focusRing, peerFocusRing, toneBorder, toneBorderLeft, toneBorderSoft, toneFill, toneFocusBorder, toneFocusWithinBorder, toneHoverBorder, toneHoverText, tonePeerChecked, tonePeerFocus, toneRing, toneSoft, toneSoftHover, toneSolid, toneSolidHover, toneSurface, toneText, anchored, clickOutside, focusTrap, focusable, navigateList, portal, toast, applyTheme, storedTheme, toISO, fromISO, today, isSameDay, addDays, addMonths, monthGrid, weekdayNames, monthLabel, isOutOfRange, formatISO, parseFormatted } from '../../core/index.js';
|
|
12
10
|
/* --- actions --- */
|
|
13
11
|
export { default as Button } from './Button.svelte';
|
|
14
12
|
export { default as Link } from './Link.svelte';
|
|
@@ -26,6 +24,14 @@ export { default as RadioGroup } from './RadioGroup.svelte';
|
|
|
26
24
|
export { default as CheckboxGroup } from './CheckboxGroup.svelte';
|
|
27
25
|
export { default as SegmentedControl } from './SegmentedControl.svelte';
|
|
28
26
|
export { default as InputGroup } from './InputGroup.svelte';
|
|
27
|
+
export { default as InputAddon } from './InputAddon.svelte';
|
|
28
|
+
export { default as SearchInput } from './SearchInput.svelte';
|
|
29
|
+
export { default as PinInput } from './PinInput.svelte';
|
|
30
|
+
export { default as TagsInput } from './TagsInput.svelte';
|
|
31
|
+
export { default as CurrencyInput } from './CurrencyInput.svelte';
|
|
32
|
+
export { default as TimeInput } from './TimeInput.svelte';
|
|
33
|
+
export { default as ColorInput } from './ColorInput.svelte';
|
|
34
|
+
export { default as FileInput } from './FileInput.svelte';
|
|
29
35
|
export { default as Combobox } from './Combobox.svelte';
|
|
30
36
|
export { default as MultiSelect } from './MultiSelect.svelte';
|
|
31
37
|
export { default as DatePicker } from './DatePicker.svelte';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nqmcreative/ui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Svelte 5 + Tailwind CSS v4 component library — three styles (matte, paper, sprout),
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"description": "Svelte 5 + Tailwind CSS v4 component library — three styles (matte, paper, sprout), 70 components each, one shared behaviour core. No runtime dependencies.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite dev",
|
|
7
7
|
"build": "vite build && svelte-kit sync && svelte-package && node scripts/strip-dist-tests.mjs && node scripts/generate-index.mjs && node scripts/generate-exports.mjs && node scripts/generate-registry.mjs && node scripts/generate-scoped-css.mjs && node scripts/generate-demos.mjs && publint",
|
|
@@ -42,11 +42,6 @@
|
|
|
42
42
|
"svelte": "./dist/core/tones.js",
|
|
43
43
|
"default": "./dist/core/tones.js"
|
|
44
44
|
},
|
|
45
|
-
"./core/locale": {
|
|
46
|
-
"types": "./dist/core/locale.svelte.d.ts",
|
|
47
|
-
"svelte": "./dist/core/locale.svelte.js",
|
|
48
|
-
"default": "./dist/core/locale.svelte.js"
|
|
49
|
-
},
|
|
50
45
|
"./core/date": {
|
|
51
46
|
"types": "./dist/core/date.d.ts",
|
|
52
47
|
"svelte": "./dist/core/date.js",
|
|
@@ -91,10 +86,6 @@
|
|
|
91
86
|
"types": "./dist/styles/matte/index.d.ts",
|
|
92
87
|
"svelte": "./dist/styles/matte/index.js"
|
|
93
88
|
},
|
|
94
|
-
"./matte/locale-provider": {
|
|
95
|
-
"types": "./dist/styles/matte/LocaleProvider.svelte.d.ts",
|
|
96
|
-
"svelte": "./dist/styles/matte/LocaleProvider.svelte"
|
|
97
|
-
},
|
|
98
89
|
"./matte/button": {
|
|
99
90
|
"types": "./dist/styles/matte/Button.svelte.d.ts",
|
|
100
91
|
"svelte": "./dist/styles/matte/Button.svelte"
|
|
@@ -155,6 +146,38 @@
|
|
|
155
146
|
"types": "./dist/styles/matte/InputGroup.svelte.d.ts",
|
|
156
147
|
"svelte": "./dist/styles/matte/InputGroup.svelte"
|
|
157
148
|
},
|
|
149
|
+
"./matte/input-addon": {
|
|
150
|
+
"types": "./dist/styles/matte/InputAddon.svelte.d.ts",
|
|
151
|
+
"svelte": "./dist/styles/matte/InputAddon.svelte"
|
|
152
|
+
},
|
|
153
|
+
"./matte/search-input": {
|
|
154
|
+
"types": "./dist/styles/matte/SearchInput.svelte.d.ts",
|
|
155
|
+
"svelte": "./dist/styles/matte/SearchInput.svelte"
|
|
156
|
+
},
|
|
157
|
+
"./matte/pin-input": {
|
|
158
|
+
"types": "./dist/styles/matte/PinInput.svelte.d.ts",
|
|
159
|
+
"svelte": "./dist/styles/matte/PinInput.svelte"
|
|
160
|
+
},
|
|
161
|
+
"./matte/tags-input": {
|
|
162
|
+
"types": "./dist/styles/matte/TagsInput.svelte.d.ts",
|
|
163
|
+
"svelte": "./dist/styles/matte/TagsInput.svelte"
|
|
164
|
+
},
|
|
165
|
+
"./matte/currency-input": {
|
|
166
|
+
"types": "./dist/styles/matte/CurrencyInput.svelte.d.ts",
|
|
167
|
+
"svelte": "./dist/styles/matte/CurrencyInput.svelte"
|
|
168
|
+
},
|
|
169
|
+
"./matte/time-input": {
|
|
170
|
+
"types": "./dist/styles/matte/TimeInput.svelte.d.ts",
|
|
171
|
+
"svelte": "./dist/styles/matte/TimeInput.svelte"
|
|
172
|
+
},
|
|
173
|
+
"./matte/color-input": {
|
|
174
|
+
"types": "./dist/styles/matte/ColorInput.svelte.d.ts",
|
|
175
|
+
"svelte": "./dist/styles/matte/ColorInput.svelte"
|
|
176
|
+
},
|
|
177
|
+
"./matte/file-input": {
|
|
178
|
+
"types": "./dist/styles/matte/FileInput.svelte.d.ts",
|
|
179
|
+
"svelte": "./dist/styles/matte/FileInput.svelte"
|
|
180
|
+
},
|
|
158
181
|
"./matte/combobox": {
|
|
159
182
|
"types": "./dist/styles/matte/Combobox.svelte.d.ts",
|
|
160
183
|
"svelte": "./dist/styles/matte/Combobox.svelte"
|
|
@@ -349,10 +372,6 @@
|
|
|
349
372
|
"types": "./dist/styles/paper/index.d.ts",
|
|
350
373
|
"svelte": "./dist/styles/paper/index.js"
|
|
351
374
|
},
|
|
352
|
-
"./paper/locale-provider": {
|
|
353
|
-
"types": "./dist/styles/paper/LocaleProvider.svelte.d.ts",
|
|
354
|
-
"svelte": "./dist/styles/paper/LocaleProvider.svelte"
|
|
355
|
-
},
|
|
356
375
|
"./paper/button": {
|
|
357
376
|
"types": "./dist/styles/paper/Button.svelte.d.ts",
|
|
358
377
|
"svelte": "./dist/styles/paper/Button.svelte"
|
|
@@ -413,6 +432,38 @@
|
|
|
413
432
|
"types": "./dist/styles/paper/InputGroup.svelte.d.ts",
|
|
414
433
|
"svelte": "./dist/styles/paper/InputGroup.svelte"
|
|
415
434
|
},
|
|
435
|
+
"./paper/input-addon": {
|
|
436
|
+
"types": "./dist/styles/paper/InputAddon.svelte.d.ts",
|
|
437
|
+
"svelte": "./dist/styles/paper/InputAddon.svelte"
|
|
438
|
+
},
|
|
439
|
+
"./paper/search-input": {
|
|
440
|
+
"types": "./dist/styles/paper/SearchInput.svelte.d.ts",
|
|
441
|
+
"svelte": "./dist/styles/paper/SearchInput.svelte"
|
|
442
|
+
},
|
|
443
|
+
"./paper/pin-input": {
|
|
444
|
+
"types": "./dist/styles/paper/PinInput.svelte.d.ts",
|
|
445
|
+
"svelte": "./dist/styles/paper/PinInput.svelte"
|
|
446
|
+
},
|
|
447
|
+
"./paper/tags-input": {
|
|
448
|
+
"types": "./dist/styles/paper/TagsInput.svelte.d.ts",
|
|
449
|
+
"svelte": "./dist/styles/paper/TagsInput.svelte"
|
|
450
|
+
},
|
|
451
|
+
"./paper/currency-input": {
|
|
452
|
+
"types": "./dist/styles/paper/CurrencyInput.svelte.d.ts",
|
|
453
|
+
"svelte": "./dist/styles/paper/CurrencyInput.svelte"
|
|
454
|
+
},
|
|
455
|
+
"./paper/time-input": {
|
|
456
|
+
"types": "./dist/styles/paper/TimeInput.svelte.d.ts",
|
|
457
|
+
"svelte": "./dist/styles/paper/TimeInput.svelte"
|
|
458
|
+
},
|
|
459
|
+
"./paper/color-input": {
|
|
460
|
+
"types": "./dist/styles/paper/ColorInput.svelte.d.ts",
|
|
461
|
+
"svelte": "./dist/styles/paper/ColorInput.svelte"
|
|
462
|
+
},
|
|
463
|
+
"./paper/file-input": {
|
|
464
|
+
"types": "./dist/styles/paper/FileInput.svelte.d.ts",
|
|
465
|
+
"svelte": "./dist/styles/paper/FileInput.svelte"
|
|
466
|
+
},
|
|
416
467
|
"./paper/combobox": {
|
|
417
468
|
"types": "./dist/styles/paper/Combobox.svelte.d.ts",
|
|
418
469
|
"svelte": "./dist/styles/paper/Combobox.svelte"
|
|
@@ -607,10 +658,6 @@
|
|
|
607
658
|
"types": "./dist/styles/sprout/index.d.ts",
|
|
608
659
|
"svelte": "./dist/styles/sprout/index.js"
|
|
609
660
|
},
|
|
610
|
-
"./sprout/locale-provider": {
|
|
611
|
-
"types": "./dist/styles/sprout/LocaleProvider.svelte.d.ts",
|
|
612
|
-
"svelte": "./dist/styles/sprout/LocaleProvider.svelte"
|
|
613
|
-
},
|
|
614
661
|
"./sprout/button": {
|
|
615
662
|
"types": "./dist/styles/sprout/Button.svelte.d.ts",
|
|
616
663
|
"svelte": "./dist/styles/sprout/Button.svelte"
|
|
@@ -671,6 +718,38 @@
|
|
|
671
718
|
"types": "./dist/styles/sprout/InputGroup.svelte.d.ts",
|
|
672
719
|
"svelte": "./dist/styles/sprout/InputGroup.svelte"
|
|
673
720
|
},
|
|
721
|
+
"./sprout/input-addon": {
|
|
722
|
+
"types": "./dist/styles/sprout/InputAddon.svelte.d.ts",
|
|
723
|
+
"svelte": "./dist/styles/sprout/InputAddon.svelte"
|
|
724
|
+
},
|
|
725
|
+
"./sprout/search-input": {
|
|
726
|
+
"types": "./dist/styles/sprout/SearchInput.svelte.d.ts",
|
|
727
|
+
"svelte": "./dist/styles/sprout/SearchInput.svelte"
|
|
728
|
+
},
|
|
729
|
+
"./sprout/pin-input": {
|
|
730
|
+
"types": "./dist/styles/sprout/PinInput.svelte.d.ts",
|
|
731
|
+
"svelte": "./dist/styles/sprout/PinInput.svelte"
|
|
732
|
+
},
|
|
733
|
+
"./sprout/tags-input": {
|
|
734
|
+
"types": "./dist/styles/sprout/TagsInput.svelte.d.ts",
|
|
735
|
+
"svelte": "./dist/styles/sprout/TagsInput.svelte"
|
|
736
|
+
},
|
|
737
|
+
"./sprout/currency-input": {
|
|
738
|
+
"types": "./dist/styles/sprout/CurrencyInput.svelte.d.ts",
|
|
739
|
+
"svelte": "./dist/styles/sprout/CurrencyInput.svelte"
|
|
740
|
+
},
|
|
741
|
+
"./sprout/time-input": {
|
|
742
|
+
"types": "./dist/styles/sprout/TimeInput.svelte.d.ts",
|
|
743
|
+
"svelte": "./dist/styles/sprout/TimeInput.svelte"
|
|
744
|
+
},
|
|
745
|
+
"./sprout/color-input": {
|
|
746
|
+
"types": "./dist/styles/sprout/ColorInput.svelte.d.ts",
|
|
747
|
+
"svelte": "./dist/styles/sprout/ColorInput.svelte"
|
|
748
|
+
},
|
|
749
|
+
"./sprout/file-input": {
|
|
750
|
+
"types": "./dist/styles/sprout/FileInput.svelte.d.ts",
|
|
751
|
+
"svelte": "./dist/styles/sprout/FileInput.svelte"
|
|
752
|
+
},
|
|
674
753
|
"./sprout/combobox": {
|
|
675
754
|
"types": "./dist/styles/sprout/Combobox.svelte.d.ts",
|
|
676
755
|
"svelte": "./dist/styles/sprout/Combobox.svelte"
|