@atmo-dev/kit 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -429
- package/dist/components/AccountMenu.svelte +7 -7
- package/dist/components/Avatar.svelte +1 -1
- package/dist/components/Badge.svelte +3 -3
- package/dist/components/Button.svelte +4 -3
- package/dist/components/Checkbox.svelte +31 -1
- package/dist/{events → components}/DatePicker.svelte +3 -3
- package/dist/components/ExternalEmbed.svelte +9 -6
- package/dist/components/GrainAlbumPicker.svelte +18 -9
- package/dist/components/GrainAlbumView.svelte +15 -6
- package/dist/components/Heading.svelte +1 -1
- package/dist/components/IconRail.svelte +11 -9
- package/dist/components/InlineEditor.svelte +3 -3
- package/dist/components/InsetImage.svelte +1 -1
- package/dist/components/Label.svelte +1 -1
- package/dist/components/LinkCard.svelte +6 -4
- package/dist/components/Modal.svelte +3 -3
- package/dist/components/NestedComments.svelte +9 -6
- package/dist/components/PhotoGrid.svelte +1 -1
- package/dist/components/Popover.svelte +1 -1
- package/dist/components/PostComposer.svelte +2 -2
- package/dist/components/PostContent.svelte +11 -9
- package/dist/components/PostVideo.svelte +1 -1
- package/dist/components/RichText.svelte +19 -7
- package/dist/components/Select.svelte +5 -2
- package/dist/components/Select.svelte.d.ts +2 -0
- package/dist/components/SocialClientPicker.svelte +1 -1
- package/dist/components/StreamplacePicker.svelte +1 -1
- package/dist/components/Subheading.svelte +4 -2
- package/dist/components/Surface.svelte +3 -2
- package/dist/components/Tabs.svelte +2 -2
- package/dist/{events → components}/TimePicker.svelte +10 -7
- package/dist/{events → components}/TimezonePicker.svelte +15 -7
- package/dist/components/ToggleGroup.svelte +1 -1
- package/dist/components/ToggleGroupItem.svelte +1 -1
- package/dist/components/UserProfile.svelte +16 -9
- package/dist/components/WorkspaceSidebar.svelte +1 -1
- package/dist/components/legal/LegalDocument.svelte +9 -3
- package/dist/components/legal/LegalFooter.svelte +2 -2
- package/dist/components/login/ActorSearchField.svelte +10 -6
- package/dist/components/login/AtmosphereApps.svelte +1 -1
- package/dist/components/login/LoginForm.svelte +15 -9
- package/dist/components/login/PermissionFields.svelte +9 -2
- package/dist/components/login/RecentAccounts.svelte +5 -3
- package/dist/events/EventAttendees.svelte +9 -3
- package/dist/events/EventCard.svelte +7 -5
- package/dist/events/EventComments.svelte +3 -3
- package/dist/events/EventEditor.svelte +20 -9
- package/dist/events/EventRsvp.svelte +10 -6
- package/dist/events/EventView.svelte +21 -7
- package/dist/events/StarterPackButton.svelte +3 -3
- package/dist/events/ThemePicker.svelte +7 -7
- package/dist/events/ThumbnailPresets.svelte +1 -1
- package/dist/events/VodPlayer.svelte +1 -1
- package/dist/events/editor/LinksSection.svelte +7 -3
- package/dist/events/editor/LocationSection.svelte +1 -1
- package/dist/events/editor/RecurringModal.svelte +6 -4
- package/dist/events/editor/ThemeSection.svelte +3 -1
- package/dist/events/event-view/EventDateBlock.svelte +3 -3
- package/dist/events/event-view/EventHostedBy.svelte +6 -2
- package/dist/events/event-view/EventLinksList.svelte +2 -2
- package/dist/events/event-view/EventLocationBlock.svelte +9 -5
- package/dist/events/event-view/EventLocationMap.svelte +4 -2
- package/dist/events/schedule/ConferenceTimetable.svelte +7 -7
- package/dist/events/schedule/DaySchedule.svelte +2 -2
- package/dist/events/schedule/ScheduleEventCell.svelte +2 -2
- package/dist/events/themes/Matrix.svelte +12 -6
- package/dist/events.d.ts +5 -5
- package/dist/events.js +6 -5
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/social/mention-suggestions.js +4 -4
- package/dist/styles.d.ts +2 -2
- package/dist/styles.js +2 -2
- package/dist/theme.css +23 -44
- package/dist/theme.js +4 -12
- package/package.json +1 -1
- /package/dist/{events → components}/DatePicker.svelte.d.ts +0 -0
- /package/dist/{events → components}/DateTimePicker.svelte +0 -0
- /package/dist/{events → components}/DateTimePicker.svelte.d.ts +0 -0
- /package/dist/{events → components}/ImageDropper.svelte +0 -0
- /package/dist/{events → components}/ImageDropper.svelte.d.ts +0 -0
- /package/dist/{events → components}/TimePicker.svelte.d.ts +0 -0
- /package/dist/{events → components}/TimezonePicker.svelte.d.ts +0 -0
package/dist/events.js
CHANGED
|
@@ -10,8 +10,9 @@ export { default as StarterPackButton } from './events/StarterPackButton.svelte'
|
|
|
10
10
|
export { default as VodPlayer } from './events/VodPlayer.svelte';
|
|
11
11
|
export { default as VodTranscript } from './events/VodTranscript.svelte';
|
|
12
12
|
export { default as ConferenceTimetable } from './events/schedule/ConferenceTimetable.svelte';
|
|
13
|
-
|
|
14
|
-
export { default as
|
|
15
|
-
export { default as
|
|
16
|
-
export { default as
|
|
17
|
-
export { default as
|
|
13
|
+
// Compatibility aliases; general-purpose controls are owned by the main Kit entry.
|
|
14
|
+
export { default as DatePicker } from './components/DatePicker.svelte';
|
|
15
|
+
export { default as TimePicker } from './components/TimePicker.svelte';
|
|
16
|
+
export { default as DateTimePicker } from './components/DateTimePicker.svelte';
|
|
17
|
+
export { default as TimezonePicker } from './components/TimezonePicker.svelte';
|
|
18
|
+
export { default as ImageDropper } from './components/ImageDropper.svelte';
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ export { default as Input } from './components/Input.svelte';
|
|
|
5
5
|
export type { InputProps } from './components/Input.svelte';
|
|
6
6
|
export { default as Textarea } from './components/Textarea.svelte';
|
|
7
7
|
export { default as Select } from './components/Select.svelte';
|
|
8
|
+
export { default as DatePicker } from './components/DatePicker.svelte';
|
|
9
|
+
export { default as TimePicker } from './components/TimePicker.svelte';
|
|
10
|
+
export { default as DateTimePicker } from './components/DateTimePicker.svelte';
|
|
11
|
+
export { default as TimezonePicker } from './components/TimezonePicker.svelte';
|
|
12
|
+
export { default as ImageDropper } from './components/ImageDropper.svelte';
|
|
8
13
|
export { default as SocialClientPicker } from './components/SocialClientPicker.svelte';
|
|
9
14
|
export type { SocialClientPickerProps } from './components/SocialClientPicker.svelte';
|
|
10
15
|
export * from './social.js';
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,11 @@ export { default as IconButton } from './components/IconButton.svelte';
|
|
|
3
3
|
export { default as Input } from './components/Input.svelte';
|
|
4
4
|
export { default as Textarea } from './components/Textarea.svelte';
|
|
5
5
|
export { default as Select } from './components/Select.svelte';
|
|
6
|
+
export { default as DatePicker } from './components/DatePicker.svelte';
|
|
7
|
+
export { default as TimePicker } from './components/TimePicker.svelte';
|
|
8
|
+
export { default as DateTimePicker } from './components/DateTimePicker.svelte';
|
|
9
|
+
export { default as TimezonePicker } from './components/TimezonePicker.svelte';
|
|
10
|
+
export { default as ImageDropper } from './components/ImageDropper.svelte';
|
|
6
11
|
export { default as SocialClientPicker } from './components/SocialClientPicker.svelte';
|
|
7
12
|
export * from './social.js';
|
|
8
13
|
export { default as Checkbox } from './components/Checkbox.svelte';
|
|
@@ -31,7 +31,7 @@ export function mentionSuggestions(search, host) {
|
|
|
31
31
|
empty.role = 'option';
|
|
32
32
|
empty.setAttribute('aria-disabled', 'true');
|
|
33
33
|
empty.setAttribute('aria-selected', 'false');
|
|
34
|
-
empty.className = 'p-3 text-xs text-
|
|
34
|
+
empty.className = 'p-3 text-xs text-base-600 dark:text-base-400';
|
|
35
35
|
empty.textContent = 'No accounts found';
|
|
36
36
|
menu.append(empty);
|
|
37
37
|
}
|
|
@@ -42,12 +42,12 @@ export function mentionSuggestions(search, host) {
|
|
|
42
42
|
option.id = `${menu.id}-${index}`;
|
|
43
43
|
option.setAttribute('aria-selected', String(index === selected));
|
|
44
44
|
option.className =
|
|
45
|
-
'block w-full rounded-ui px-3 py-2 text-left text-xs text-
|
|
45
|
+
'block w-full rounded-ui px-3 py-2 text-left text-xs text-base-950 dark:text-base-50 hover:bg-[color-mix(in_srgb,var(--base-100)_75%,var(--base-200))] dark:hover:bg-base-950 aria-selected:bg-[color-mix(in_srgb,var(--base-100)_75%,var(--base-200))] dark:aria-selected:bg-base-950';
|
|
46
46
|
const name = document.createElement('strong');
|
|
47
47
|
name.className = 'block truncate font-medium';
|
|
48
48
|
name.textContent = actor.displayName || actor.handle;
|
|
49
49
|
const handle = document.createElement('span');
|
|
50
|
-
handle.className = 'block truncate text-
|
|
50
|
+
handle.className = 'block truncate text-base-600 dark:text-base-400';
|
|
51
51
|
handle.textContent = `@${actor.handle}`;
|
|
52
52
|
option.append(name, handle);
|
|
53
53
|
option.onmousedown = (event) => event.preventDefault();
|
|
@@ -84,7 +84,7 @@ export function mentionSuggestions(search, host) {
|
|
|
84
84
|
menu.role = 'listbox';
|
|
85
85
|
menu.setAttribute('aria-label', 'Mention suggestions');
|
|
86
86
|
menu.className =
|
|
87
|
-
'absolute z-60 w-70 max-w-full overflow-hidden rounded-ui border border-
|
|
87
|
+
'absolute z-60 w-70 max-w-full overflow-hidden rounded-ui border border-base-300 dark:border-[color-mix(in_srgb,var(--base-800)_80%,var(--base-950))] bg-base-50 dark:bg-base-925 p-1 font-sans text-base-950 dark:text-base-50';
|
|
88
88
|
host().append(menu);
|
|
89
89
|
draw();
|
|
90
90
|
},
|
package/dist/styles.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const focus = "focus-visible:outline-2 focus-visible:outline-offset-3 focus-visible:outline-focus";
|
|
2
|
-
export declare const control = "block min-h-11 w-full min-w-0 rounded-ui border border-
|
|
1
|
+
export declare const focus = "focus-visible:outline-2 focus-visible:outline-offset-3 focus-visible:outline-accent-700 dark:focus-visible:outline-accent-300";
|
|
2
|
+
export declare const control = "block min-h-11 w-full min-w-0 rounded-ui border border-base-300 dark:border-base-800 bg-[color-mix(in_srgb,var(--base-100)_75%,var(--base-200))] dark:bg-base-975 px-3 py-2.5 text-base leading-normal text-base-950 dark:text-base-50 shadow-[inset_0_2px_4px_color-mix(in_srgb,var(--base-950)_8%,transparent),inset_0_5px_12px_color-mix(in_srgb,var(--base-950)_2%,transparent)] dark:shadow-[inset_0_2px_4px_#0006,inset_0_5px_12px_#0002] placeholder:text-base-600 dark:placeholder:text-base-400 transition-colors duration-(--atmo-duration) motion-reduce:transition-none hover:border-base-400 dark:hover:border-base-700 focus:ring-0 focus:ring-offset-0 focus-visible:border-accent-700 dark:focus-visible:border-accent-300 focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-accent-700 dark:focus-visible:outline-accent-300 disabled:cursor-not-allowed disabled:opacity-45 disabled:hover:border-base-300 dark:disabled:hover:border-base-800 aria-invalid:border-accent-700 dark:aria-invalid:border-accent-300 aria-invalid:hover:border-accent-700 dark:aria-invalid:hover:border-accent-300 sm:text-sm";
|
package/dist/styles.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Shared Tailwind recipes, not an additional component stylesheet.
|
|
2
|
-
export const focus = 'focus-visible:outline-2 focus-visible:outline-offset-3 focus-visible:outline-focus';
|
|
3
|
-
export const control = 'block min-h-11 w-full min-w-0 rounded-ui border border-
|
|
2
|
+
export const focus = 'focus-visible:outline-2 focus-visible:outline-offset-3 focus-visible:outline-accent-700 dark:focus-visible:outline-accent-300';
|
|
3
|
+
export const control = 'block min-h-11 w-full min-w-0 rounded-ui border border-base-300 dark:border-base-800 bg-[color-mix(in_srgb,var(--base-100)_75%,var(--base-200))] dark:bg-base-975 px-3 py-2.5 text-base leading-normal text-base-950 dark:text-base-50 shadow-[inset_0_2px_4px_color-mix(in_srgb,var(--base-950)_8%,transparent),inset_0_5px_12px_color-mix(in_srgb,var(--base-950)_2%,transparent)] dark:shadow-[inset_0_2px_4px_#0006,inset_0_5px_12px_#0002] placeholder:text-base-600 dark:placeholder:text-base-400 transition-colors duration-(--atmo-duration) motion-reduce:transition-none hover:border-base-400 dark:hover:border-base-700 focus:ring-0 focus:ring-offset-0 focus-visible:border-accent-700 dark:focus-visible:border-accent-300 focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-accent-700 dark:focus-visible:outline-accent-300 disabled:cursor-not-allowed disabled:opacity-45 disabled:hover:border-base-300 dark:disabled:hover:border-base-800 aria-invalid:border-accent-700 dark:aria-invalid:border-accent-300 aria-invalid:hover:border-accent-700 dark:aria-invalid:hover:border-accent-300 sm:text-sm';
|
package/dist/theme.css
CHANGED
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
/* Resolve relative to this stylesheet in src/lib or the packaged dist directory. */
|
|
5
5
|
@source './';
|
|
6
6
|
|
|
7
|
+
/* Explicit document modes win; without one, follow the browser preference. */
|
|
8
|
+
@custom-variant dark {
|
|
9
|
+
&:where(.dark, .dark *, [data-theme='dark'], [data-theme='dark'] *) {
|
|
10
|
+
@slot;
|
|
11
|
+
}
|
|
12
|
+
@media (prefers-color-scheme: dark) {
|
|
13
|
+
&:not(:where(.light, .light *, [data-theme='light'], [data-theme='light'] *)) {
|
|
14
|
+
@slot;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
7
19
|
@theme inline {
|
|
8
20
|
--color-base-50: var(--base-50);
|
|
9
21
|
--color-base-100: var(--base-100);
|
|
@@ -15,7 +27,9 @@
|
|
|
15
27
|
--color-base-700: var(--base-700);
|
|
16
28
|
--color-base-800: var(--base-800);
|
|
17
29
|
--color-base-900: var(--base-900);
|
|
30
|
+
--color-base-925: var(--base-925);
|
|
18
31
|
--color-base-950: var(--base-950);
|
|
32
|
+
--color-base-975: var(--base-975);
|
|
19
33
|
--color-accent-50: var(--accent-50);
|
|
20
34
|
--color-accent-100: var(--accent-100);
|
|
21
35
|
--color-accent-200: var(--accent-200);
|
|
@@ -26,19 +40,9 @@
|
|
|
26
40
|
--color-accent-700: var(--accent-700);
|
|
27
41
|
--color-accent-800: var(--accent-800);
|
|
28
42
|
--color-accent-900: var(--accent-900);
|
|
43
|
+
--color-accent-925: var(--accent-925);
|
|
29
44
|
--color-accent-950: var(--accent-950);
|
|
30
|
-
--color-
|
|
31
|
-
--color-recess: var(--ui-recess);
|
|
32
|
-
--color-surface: var(--ui-surface);
|
|
33
|
-
--color-ink: var(--ui-ink);
|
|
34
|
-
--color-muted: var(--ui-muted);
|
|
35
|
-
--color-line: var(--ui-line);
|
|
36
|
-
--color-control-line: var(--ui-control-line);
|
|
37
|
-
--color-control-hover: var(--ui-control-hover);
|
|
38
|
-
--color-field: var(--ui-field);
|
|
39
|
-
--color-action: var(--ui-action);
|
|
40
|
-
--color-accent-soft: var(--ui-accent-soft);
|
|
41
|
-
--color-focus: var(--ui-focus);
|
|
45
|
+
--color-accent-975: var(--accent-975);
|
|
42
46
|
--font-sans: var(--atmo-font-sans);
|
|
43
47
|
--radius-ui: var(--atmo-radius-control);
|
|
44
48
|
--radius-panel: var(--atmo-radius-panel);
|
|
@@ -82,9 +86,8 @@
|
|
|
82
86
|
color-scheme: light;
|
|
83
87
|
}
|
|
84
88
|
|
|
85
|
-
/*
|
|
86
|
-
|
|
87
|
-
Add atmo-theme to a custom-ramp boundary to get the same behavior. */
|
|
89
|
+
/* Derive the extra shades at palette boundaries, including custom ramps
|
|
90
|
+
marked with atmo-theme. Ratios preserve the existing page/field colors. */
|
|
88
91
|
:where(
|
|
89
92
|
:root,
|
|
90
93
|
.atmo,
|
|
@@ -118,38 +121,14 @@
|
|
|
118
121
|
.pink,
|
|
119
122
|
.rose
|
|
120
123
|
) {
|
|
121
|
-
--
|
|
122
|
-
--
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
);
|
|
126
|
-
--ui-surface: light-dark(var(--base-50), var(--base-900));
|
|
127
|
-
--ui-ink: light-dark(var(--base-950), var(--base-50));
|
|
128
|
-
--ui-muted: light-dark(var(--base-600), var(--base-400));
|
|
129
|
-
--ui-line: light-dark(
|
|
130
|
-
var(--base-300),
|
|
131
|
-
color-mix(in srgb, var(--base-800) 80%, var(--base-950))
|
|
132
|
-
);
|
|
133
|
-
--ui-field: light-dark(
|
|
134
|
-
color-mix(in srgb, var(--base-100) 75%, var(--base-200)),
|
|
135
|
-
color-mix(in srgb, var(--base-950) 80%, black)
|
|
136
|
-
);
|
|
137
|
-
--ui-control-line: light-dark(var(--base-300), var(--base-800));
|
|
138
|
-
--ui-control-hover: light-dark(var(--base-400), var(--base-700));
|
|
139
|
-
--ui-action: light-dark(var(--accent-700), var(--accent-300));
|
|
140
|
-
--ui-accent-soft: light-dark(
|
|
141
|
-
var(--accent-50),
|
|
142
|
-
color-mix(in srgb, var(--accent-950) 65%, var(--base-950))
|
|
143
|
-
);
|
|
144
|
-
--ui-focus: light-dark(var(--accent-700), var(--accent-300));
|
|
145
|
-
--ui-shadow: light-dark(color-mix(in srgb, var(--base-950) 8%, transparent), #0006);
|
|
146
|
-
--ui-shadow-soft: light-dark(color-mix(in srgb, var(--base-950) 2%, transparent), #0002);
|
|
147
|
-
--ui-recess-shadow: inset 0 2px 4px var(--ui-shadow), inset 0 5px 12px var(--ui-shadow-soft);
|
|
124
|
+
--base-925: color-mix(in srgb, var(--base-900) 50%, var(--base-950));
|
|
125
|
+
--base-975: color-mix(in srgb, var(--base-950) 80%, black);
|
|
126
|
+
--accent-925: color-mix(in srgb, var(--accent-900) 50%, var(--accent-950));
|
|
127
|
+
--accent-975: color-mix(in srgb, var(--accent-950) 80%, black);
|
|
148
128
|
}
|
|
149
129
|
.atmo {
|
|
150
130
|
font-family: var(--atmo-font-sans);
|
|
151
|
-
|
|
152
|
-
background: var(--ui-page);
|
|
131
|
+
@apply bg-base-50 text-base-950 dark:bg-base-925 dark:text-base-50;
|
|
153
132
|
-webkit-font-smoothing: antialiased;
|
|
154
133
|
}
|
|
155
134
|
.gray {
|
package/dist/theme.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
// Portals
|
|
2
|
-
//
|
|
1
|
+
// Portals inherit the document's light/dark mode normally. Only carry scoped
|
|
2
|
+
// palettes and typography, which would otherwise be lost outside their ancestry.
|
|
3
3
|
export function readTheme(element) {
|
|
4
4
|
const style = getComputedStyle(element);
|
|
5
|
-
const variables = Array.from(style).filter((name) => ['--base-', '--accent-', '--
|
|
5
|
+
const variables = Array.from(style).filter((name) => ['--base-', '--accent-', '--atmo-'].some((prefix) => name.startsWith(prefix)));
|
|
6
6
|
return [
|
|
7
|
-
`color-scheme:${style.colorScheme}`,
|
|
8
7
|
`font-family:${style.fontFamily}`,
|
|
9
8
|
...variables.map((name) => `${name}:${style.getPropertyValue(name)}`)
|
|
10
9
|
].join(';');
|
|
@@ -19,12 +18,5 @@ export function observeTheme(element, update) {
|
|
|
19
18
|
});
|
|
20
19
|
parent = parent.parentElement;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
|
-
// change with the system scheme even when no ancestor attribute changes.
|
|
24
|
-
const scheme = window.matchMedia('(prefers-color-scheme: dark)');
|
|
25
|
-
scheme.addEventListener('change', update);
|
|
26
|
-
return () => {
|
|
27
|
-
observer.disconnect();
|
|
28
|
-
scheme.removeEventListener('change', update);
|
|
29
|
-
};
|
|
21
|
+
return () => observer.disconnect();
|
|
30
22
|
}
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|