@placeholderco/placeholder-ui 2.1.1 → 2.2.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/dist/app.css +0 -10
- package/dist/editors/CodeMirror.svelte +295 -297
- package/dist/editors/tiptap/LinkActionMenu.svelte +6 -1
- package/dist/editors/tiptap/TipTap.svelte +1 -1
- package/dist/editors/tiptap/extensions/Alert.js +17 -17
- package/dist/editors/tiptap/extensions/Div.js +19 -19
- package/dist/editors/tiptap/extensions/Span.js +14 -14
- package/dist/editors/tiptap/toolbar/AlertButton.svelte +254 -253
- package/dist/editors/tiptap/toolbar/AlignCenterButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/AlignJustifyButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/AlignLeftButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/AlignRightButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/BoldButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/BulletListButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/CodeButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/ColorButton.svelte +265 -265
- package/dist/editors/tiptap/toolbar/DocumentButton.svelte +51 -51
- package/dist/editors/tiptap/toolbar/HeadingButton.svelte +21 -21
- package/dist/editors/tiptap/toolbar/HtmlButton.svelte +48 -52
- package/dist/editors/tiptap/toolbar/ImageButton.svelte +35 -39
- package/dist/editors/tiptap/toolbar/ItalicButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/LinkButton.svelte +249 -249
- package/dist/editors/tiptap/toolbar/OrderedListButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/RedoButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/StrikethroughButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/SubscriptButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/SuperscriptButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/TableButton.svelte +231 -224
- package/dist/editors/tiptap/toolbar/ToolbarButton.svelte +59 -65
- package/dist/editors/tiptap/toolbar/UnderlineButton.svelte +11 -11
- package/dist/editors/tiptap/toolbar/UndoButton.svelte +11 -11
- package/dist/form/Autocomplete.svelte +24 -22
- package/dist/form/AutocompleteMulti.svelte +24 -22
- package/dist/form/Checkbox.svelte +4 -4
- package/dist/form/Chips.svelte +15 -7
- package/dist/form/ColorPicker.svelte +5 -20
- package/dist/form/ComboBox.svelte +4 -4
- package/dist/form/ComboBoxItemBuilder.svelte +14 -32
- package/dist/form/ComboBoxMulti.svelte +7 -3
- package/dist/form/CronBuilder.svelte +32 -110
- package/dist/form/DatePicker.svelte +9 -28
- package/dist/form/DateRangePicker.svelte +46 -36
- package/dist/form/DateTimePicker.svelte +11 -30
- package/dist/form/Number.svelte +1 -3
- package/dist/form/RadioGroup.svelte +1 -3
- package/dist/form/Select.svelte +25 -28
- package/dist/form/SelectMulti.svelte +36 -54
- package/dist/form/StringArrayBuilder.svelte +1 -3
- package/dist/form/TextArea.svelte +5 -6
- package/dist/form/Textbox.svelte +10 -4
- package/dist/form/TimePicker.svelte +10 -4
- package/dist/icon/Icon.svelte +8 -4
- package/dist/index.d.ts +147 -146
- package/dist/index.js +78 -77
- package/dist/layout/CustomNavbar.svelte +1 -1
- package/dist/layout/Navbar.svelte +3 -4
- package/dist/layout/Navbar.svelte.d.ts +1 -2
- package/dist/layout/NavbarItemDisplay.svelte +1 -1
- package/dist/layout/NavbarItemView.svelte +3 -1
- package/dist/layout/Sidenav.svelte +1 -1
- package/dist/models/ComboBoxItem.d.ts +4 -4
- package/dist/models/NotifyModel.js +0 -1
- package/dist/theme.svelte.d.ts +1 -1
- package/dist/theme.svelte.js +46 -22
- package/dist/ui/Accordion.svelte +1 -3
- package/dist/ui/AccordionItem.svelte +8 -16
- package/dist/ui/Badge.svelte +11 -19
- package/dist/ui/Button.svelte +15 -17
- package/dist/ui/ButtonVariant.d.ts +1 -7
- package/dist/ui/ContextMenu.svelte +5 -11
- package/dist/ui/Dialog.svelte +74 -30
- package/dist/ui/Dialog.svelte.d.ts +8 -2
- package/dist/ui/Dropdown.svelte +21 -10
- package/dist/ui/MultiSortable.svelte +1 -3
- package/dist/ui/Pagination.svelte +2 -2
- package/dist/ui/Popover.svelte +16 -37
- package/dist/ui/ProgressBar.svelte +4 -10
- package/dist/ui/ProgressBarVariant.d.ts +2 -7
- package/dist/ui/ThemeSwitcher.svelte +2 -1
- package/dist/ui/Tooltip.svelte +1 -37
- package/dist/util/DateFunctions.js +1 -1
- package/dist/util/Floating.d.ts +70 -0
- package/dist/util/Floating.js +321 -0
- package/dist/util/NavigateTo.js +2 -2
- package/dist/util/Transitions.d.ts +1 -1
- package/dist/util/Transitions.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,77 +1,78 @@
|
|
|
1
|
-
export { default as Accordion } from
|
|
2
|
-
export { default as AccordionItem } from
|
|
3
|
-
export { default as Button } from
|
|
4
|
-
export { default as ActionIcon } from
|
|
5
|
-
export { default as Badge } from
|
|
6
|
-
export { default as Dialog } from
|
|
7
|
-
export { default as Drawer } from
|
|
8
|
-
export { default as Dropdown } from
|
|
9
|
-
export { default as Dropzone } from
|
|
10
|
-
export { default as Link } from
|
|
11
|
-
export { default as Loader } from
|
|
12
|
-
export { default as Logo } from
|
|
13
|
-
export { default as Pagination } from
|
|
14
|
-
export { default as Popover } from
|
|
15
|
-
export { default as ContextMenu } from
|
|
16
|
-
export { default as ProgressBar } from
|
|
17
|
-
export { default as Tabs } from
|
|
18
|
-
export { default as Table } from
|
|
19
|
-
export { default as ThemeSwitcher } from
|
|
20
|
-
export { default as Sortable } from
|
|
21
|
-
export { default as MultiSortable } from
|
|
22
|
-
export { default as Toaster } from
|
|
23
|
-
export { default as Tooltip } from
|
|
24
|
-
export { default as Alert } from
|
|
25
|
-
export { default as LinkCollection } from
|
|
26
|
-
export { default as Navbar } from
|
|
27
|
-
export { default as NavbarItemView } from
|
|
28
|
-
export { default as CustomNavbar } from
|
|
29
|
-
export { default as AppShell } from
|
|
30
|
-
export { default as Sidenav } from
|
|
31
|
-
export { default as Paper } from
|
|
32
|
-
export { default as Avatar } from
|
|
33
|
-
export { default as Autocomplete } from
|
|
34
|
-
export { default as AutocompleteMulti } from
|
|
35
|
-
export { default as Checkbox } from
|
|
36
|
-
export { default as ComboBoxItemBuilder } from
|
|
37
|
-
export { default as StringArrayBuilder } from
|
|
38
|
-
export { default as CronBuilder } from
|
|
39
|
-
export { default as DatePicker } from
|
|
40
|
-
export { default as DateRangePicker } from
|
|
41
|
-
export { default as TimePicker } from
|
|
42
|
-
export { default as DateTimePicker } from
|
|
43
|
-
export { default as FormGroup } from
|
|
44
|
-
export { default as Number } from
|
|
45
|
-
export { default as Radio } from
|
|
46
|
-
export { default as RadioGroup } from
|
|
47
|
-
export { default as Select } from
|
|
48
|
-
export { default as SelectMulti } from
|
|
49
|
-
export { default as SegmentedControl } from
|
|
50
|
-
export { default as TextArea } from
|
|
51
|
-
export { default as Textbox } from
|
|
52
|
-
export { default as Slider } from
|
|
53
|
-
export { default as Switch } from
|
|
54
|
-
export { default as Chips } from
|
|
55
|
-
export { default as ColorPicker } from
|
|
56
|
-
export { parseColor, parseHex, toHex, formatColor, rgbToHsv, hsvToRgb, rgbToHsl
|
|
57
|
-
export { default as TipTap } from
|
|
58
|
-
export { default as TipTapBubble } from
|
|
59
|
-
export { CodeBlockEditor, codeBlockLanguages, resolveCodeBlockLanguage
|
|
60
|
-
export { default as CodeMirror } from
|
|
61
|
-
export { default as GitCard } from
|
|
62
|
-
export * from
|
|
63
|
-
export * from
|
|
64
|
-
export * from
|
|
65
|
-
export * from
|
|
66
|
-
export * from
|
|
67
|
-
export * from
|
|
68
|
-
export
|
|
69
|
-
export
|
|
70
|
-
export * from
|
|
71
|
-
export * from
|
|
72
|
-
export * from
|
|
73
|
-
export * from
|
|
74
|
-
export * from
|
|
75
|
-
export * from
|
|
76
|
-
export * from
|
|
77
|
-
export * from
|
|
1
|
+
export { default as Accordion } from './ui/Accordion.svelte';
|
|
2
|
+
export { default as AccordionItem } from './ui/AccordionItem.svelte';
|
|
3
|
+
export { default as Button } from './ui/Button.svelte';
|
|
4
|
+
export { default as ActionIcon } from './ui/ActionIcon.svelte';
|
|
5
|
+
export { default as Badge } from './ui/Badge.svelte';
|
|
6
|
+
export { default as Dialog } from './ui/Dialog.svelte';
|
|
7
|
+
export { default as Drawer } from './ui/Drawer.svelte';
|
|
8
|
+
export { default as Dropdown } from './ui/Dropdown.svelte';
|
|
9
|
+
export { default as Dropzone } from './ui/Dropzone.svelte';
|
|
10
|
+
export { default as Link } from './ui/Link.svelte';
|
|
11
|
+
export { default as Loader } from './ui/Loader.svelte';
|
|
12
|
+
export { default as Logo } from './ui/Logo.svelte';
|
|
13
|
+
export { default as Pagination } from './ui/Pagination.svelte';
|
|
14
|
+
export { default as Popover } from './ui/Popover.svelte';
|
|
15
|
+
export { default as ContextMenu } from './ui/ContextMenu.svelte';
|
|
16
|
+
export { default as ProgressBar } from './ui/ProgressBar.svelte';
|
|
17
|
+
export { default as Tabs } from './ui/Tabs.svelte';
|
|
18
|
+
export { default as Table } from './ui/Table.svelte';
|
|
19
|
+
export { default as ThemeSwitcher } from './ui/ThemeSwitcher.svelte';
|
|
20
|
+
export { default as Sortable } from './ui/Sortable.svelte';
|
|
21
|
+
export { default as MultiSortable } from './ui/MultiSortable.svelte';
|
|
22
|
+
export { default as Toaster } from './ui/Toaster.svelte';
|
|
23
|
+
export { default as Tooltip } from './ui/Tooltip.svelte';
|
|
24
|
+
export { default as Alert } from './display/alert/Alert.svelte';
|
|
25
|
+
export { default as LinkCollection } from './display/LinkCollection.svelte';
|
|
26
|
+
export { default as Navbar } from './layout/Navbar.svelte';
|
|
27
|
+
export { default as NavbarItemView } from './layout/NavbarItemView.svelte';
|
|
28
|
+
export { default as CustomNavbar } from './layout/CustomNavbar.svelte';
|
|
29
|
+
export { default as AppShell } from './layout/AppShell.svelte';
|
|
30
|
+
export { default as Sidenav } from './layout/Sidenav.svelte';
|
|
31
|
+
export { default as Paper } from './display/Paper.svelte';
|
|
32
|
+
export { default as Avatar } from './display/Avatar.svelte';
|
|
33
|
+
export { default as Autocomplete } from './form/Autocomplete.svelte';
|
|
34
|
+
export { default as AutocompleteMulti } from './form/AutocompleteMulti.svelte';
|
|
35
|
+
export { default as Checkbox } from './form/Checkbox.svelte';
|
|
36
|
+
export { default as ComboBoxItemBuilder } from './form/ComboBoxItemBuilder.svelte';
|
|
37
|
+
export { default as StringArrayBuilder } from './form/StringArrayBuilder.svelte';
|
|
38
|
+
export { default as CronBuilder } from './form/CronBuilder.svelte';
|
|
39
|
+
export { default as DatePicker } from './form/DatePicker.svelte';
|
|
40
|
+
export { default as DateRangePicker } from './form/DateRangePicker.svelte';
|
|
41
|
+
export { default as TimePicker } from './form/TimePicker.svelte';
|
|
42
|
+
export { default as DateTimePicker } from './form/DateTimePicker.svelte';
|
|
43
|
+
export { default as FormGroup } from './form/FormGroup.svelte';
|
|
44
|
+
export { default as Number } from './form/Number.svelte';
|
|
45
|
+
export { default as Radio } from './form/Radio.svelte';
|
|
46
|
+
export { default as RadioGroup } from './form/RadioGroup.svelte';
|
|
47
|
+
export { default as Select } from './form/Select.svelte';
|
|
48
|
+
export { default as SelectMulti } from './form/SelectMulti.svelte';
|
|
49
|
+
export { default as SegmentedControl } from './form/SegmentedControl.svelte';
|
|
50
|
+
export { default as TextArea } from './form/TextArea.svelte';
|
|
51
|
+
export { default as Textbox } from './form/Textbox.svelte';
|
|
52
|
+
export { default as Slider } from './form/Slider.svelte';
|
|
53
|
+
export { default as Switch } from './form/Switch.svelte';
|
|
54
|
+
export { default as Chips } from './form/Chips.svelte';
|
|
55
|
+
export { default as ColorPicker } from './form/ColorPicker.svelte';
|
|
56
|
+
export { parseColor, parseHex, toHex, formatColor, rgbToHsv, hsvToRgb, rgbToHsl } from './form/ColorPicker.svelte';
|
|
57
|
+
export { default as TipTap } from './editors/tiptap/TipTap.svelte';
|
|
58
|
+
export { default as TipTapBubble } from './editors/tiptap/TipTapBubble.svelte';
|
|
59
|
+
export { CodeBlockEditor, codeBlockLanguages, resolveCodeBlockLanguage } from './editors/tiptap/extensions/index.js';
|
|
60
|
+
export { default as CodeMirror } from './editors/CodeMirror.svelte';
|
|
61
|
+
export { default as GitCard } from './cards/GitCard.svelte';
|
|
62
|
+
export * from './icon/index.js';
|
|
63
|
+
export * from './models/ComboBoxItem.js';
|
|
64
|
+
export * from './models/NavbarItem.js';
|
|
65
|
+
export * from './models/NotifyModel.js';
|
|
66
|
+
export * from './util/ClickOutside.js';
|
|
67
|
+
export * from './util/Floating.js';
|
|
68
|
+
export * from './util/CronParser.js';
|
|
69
|
+
export { dayjs } from './util/dayjs.js';
|
|
70
|
+
export * from './util/DateFunctions.js';
|
|
71
|
+
export * from './util/DragDrop.js';
|
|
72
|
+
export * from './util/Transitions.js';
|
|
73
|
+
export * from './util/interceptLinkClick.js';
|
|
74
|
+
export * from './util/NavigateTo.js';
|
|
75
|
+
export * from './display/filetree/index.js';
|
|
76
|
+
export * from './theme.svelte.js';
|
|
77
|
+
export * from './uiTheme.svelte.js';
|
|
78
|
+
export * from './ui/Toast.svelte.js';
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
import Logo from '../ui/Logo.svelte';
|
|
13
13
|
import type { Snippet } from 'svelte';
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
export type NavbarVariant = 'default' | 'primary' | 'midnight';
|
|
15
|
+
export type NavbarVariant = 'default' | 'primary';
|
|
17
16
|
|
|
18
17
|
export interface NavbarProps {
|
|
19
18
|
/** Visual variant. `primary` uses the primary brand colour as the background across all themes */
|
|
@@ -67,7 +66,7 @@
|
|
|
67
66
|
onDrawerButtonClick = undefined
|
|
68
67
|
}: NavbarProps = $props();
|
|
69
68
|
|
|
70
|
-
const isPrimary = $derived(variant === 'primary'
|
|
69
|
+
const isPrimary = $derived(variant === 'primary');
|
|
71
70
|
</script>
|
|
72
71
|
|
|
73
72
|
<header class={isPrimary ? 'primary' : ''}>
|
|
@@ -254,7 +253,7 @@
|
|
|
254
253
|
height: 1.5rem;
|
|
255
254
|
}
|
|
256
255
|
|
|
257
|
-
.inner-navbar :global(.
|
|
256
|
+
.inner-navbar :global(.pui-icon) {
|
|
258
257
|
display: flex;
|
|
259
258
|
}
|
|
260
259
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { NavbarItem } from '../models/NavbarItem.js';
|
|
2
2
|
import { type Hyperlink } from '../index.js';
|
|
3
3
|
import type { Snippet } from 'svelte';
|
|
4
|
-
|
|
5
|
-
export type NavbarVariant = 'default' | 'primary' | 'midnight';
|
|
4
|
+
export type NavbarVariant = 'default' | 'primary';
|
|
6
5
|
export interface NavbarProps {
|
|
7
6
|
/** Visual variant. `primary` uses the primary brand colour as the background across all themes */
|
|
8
7
|
variant?: NavbarVariant;
|
|
@@ -61,7 +61,9 @@
|
|
|
61
61
|
<div
|
|
62
62
|
class="navbar-submenu"
|
|
63
63
|
class:flyout={depth > 0}
|
|
64
|
-
style={item.submenuWidth
|
|
64
|
+
style={item.submenuWidth
|
|
65
|
+
? `width: ${item.submenuWidth}; min-width: ${item.submenuWidth};`
|
|
66
|
+
: ''}
|
|
65
67
|
onclick={(e) => {
|
|
66
68
|
// Close the fold-out once an actual link is chosen (but not when toggling a nested parent)
|
|
67
69
|
if ((e.target as HTMLElement).closest('a')) close();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NotifyModel } from
|
|
1
|
+
import type { NotifyModel } from './NotifyModel.js';
|
|
2
2
|
export interface ComboBoxGroup {
|
|
3
3
|
label: string;
|
|
4
4
|
items: ComboBoxItem[];
|
|
@@ -20,6 +20,6 @@ export interface ComboBoxItem {
|
|
|
20
20
|
/** Marks a synthetic "add new value" suggestion (see Autocomplete) */
|
|
21
21
|
isAddNew?: boolean;
|
|
22
22
|
}
|
|
23
|
-
export type FetchFunctionType = (
|
|
24
|
-
export type SearchFunctionType = (
|
|
25
|
-
export type RetrieveLabelFunctionType = (
|
|
23
|
+
export type FetchFunctionType = () => Promise<NotifyModel<ComboBoxItem[]>>;
|
|
24
|
+
export type SearchFunctionType = (query: string) => Promise<NotifyModel<ComboBoxItem[]>>;
|
|
25
|
+
export type RetrieveLabelFunctionType = (value: any) => Promise<NotifyModel<string | undefined>>;
|
package/dist/theme.svelte.d.ts
CHANGED
package/dist/theme.svelte.js
CHANGED
|
@@ -4,12 +4,12 @@ const browser = typeof window !== 'undefined' && typeof document !== 'undefined'
|
|
|
4
4
|
// Theme State
|
|
5
5
|
// ============================================
|
|
6
6
|
// Svelte 5 runes for reactive state
|
|
7
|
-
let theme = $state(
|
|
7
|
+
let theme = $state('system');
|
|
8
8
|
let systemDarkMode = $state(browser && isSystemDarkMode());
|
|
9
9
|
let isDarkMode = $derived.by(() => {
|
|
10
|
-
if (theme ===
|
|
10
|
+
if (theme === 'system')
|
|
11
11
|
return systemDarkMode;
|
|
12
|
-
return theme ===
|
|
12
|
+
return theme === 'dark';
|
|
13
13
|
});
|
|
14
14
|
// Initialize theme on module load (browser only - SSR has no localStorage/document)
|
|
15
15
|
if (browser)
|
|
@@ -18,8 +18,8 @@ if (browser)
|
|
|
18
18
|
if (browser && window.matchMedia) {
|
|
19
19
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
|
|
20
20
|
systemDarkMode = e.matches;
|
|
21
|
-
if (theme ===
|
|
22
|
-
applyThemeClass(e.matches ?
|
|
21
|
+
if (theme === 'system')
|
|
22
|
+
applyThemeClass(e.matches ? 'dark' : 'light');
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
// ============================================
|
|
@@ -55,20 +55,44 @@ if (typeof window !== 'undefined') {
|
|
|
55
55
|
}
|
|
56
56
|
// Export reactive viewport state object
|
|
57
57
|
export const viewportState = {
|
|
58
|
-
get width() {
|
|
59
|
-
|
|
58
|
+
get width() {
|
|
59
|
+
return windowWidth;
|
|
60
|
+
},
|
|
61
|
+
get height() {
|
|
62
|
+
return windowHeight;
|
|
63
|
+
},
|
|
60
64
|
// Boolean helpers
|
|
61
|
-
get isMobile() {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
get
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
get
|
|
68
|
-
|
|
65
|
+
get isMobile() {
|
|
66
|
+
return isMobile;
|
|
67
|
+
},
|
|
68
|
+
get isTablet() {
|
|
69
|
+
return isTablet;
|
|
70
|
+
},
|
|
71
|
+
get isDesktop() {
|
|
72
|
+
return isDesktop;
|
|
73
|
+
},
|
|
74
|
+
get isSmall() {
|
|
75
|
+
return isSmall;
|
|
76
|
+
},
|
|
77
|
+
get isMedium() {
|
|
78
|
+
return isMedium;
|
|
79
|
+
},
|
|
80
|
+
get isLarge() {
|
|
81
|
+
return isLarge;
|
|
82
|
+
},
|
|
83
|
+
get isExtraLarge() {
|
|
84
|
+
return isExtraLarge;
|
|
85
|
+
},
|
|
86
|
+
get isUltrawide() {
|
|
87
|
+
return isUltrawide;
|
|
88
|
+
},
|
|
69
89
|
// Utility function for custom breakpoints
|
|
70
|
-
isBelow(breakpoint) {
|
|
71
|
-
|
|
90
|
+
isBelow(breakpoint) {
|
|
91
|
+
return windowWidth < breakpoint;
|
|
92
|
+
},
|
|
93
|
+
isAbove(breakpoint) {
|
|
94
|
+
return windowWidth >= breakpoint;
|
|
95
|
+
}
|
|
72
96
|
};
|
|
73
97
|
// Export getter for the theme state
|
|
74
98
|
export function getTheme() {
|
|
@@ -86,7 +110,7 @@ export const themeState = {
|
|
|
86
110
|
export function loadTheme() {
|
|
87
111
|
if (!browser)
|
|
88
112
|
return;
|
|
89
|
-
const themeString = localStorage.getItem(
|
|
113
|
+
const themeString = localStorage.getItem('theme') || 'system';
|
|
90
114
|
if (themeString == 'light')
|
|
91
115
|
setTheme('light');
|
|
92
116
|
else if (themeString == 'dark')
|
|
@@ -96,9 +120,9 @@ export function loadTheme() {
|
|
|
96
120
|
}
|
|
97
121
|
export function setTheme(newTheme) {
|
|
98
122
|
let appliedTheme;
|
|
99
|
-
if (newTheme ===
|
|
123
|
+
if (newTheme === 'system') {
|
|
100
124
|
systemDarkMode = isSystemDarkMode();
|
|
101
|
-
appliedTheme = systemDarkMode ?
|
|
125
|
+
appliedTheme = systemDarkMode ? 'dark' : 'light';
|
|
102
126
|
}
|
|
103
127
|
else {
|
|
104
128
|
appliedTheme = newTheme;
|
|
@@ -108,13 +132,13 @@ export function setTheme(newTheme) {
|
|
|
108
132
|
if (!browser)
|
|
109
133
|
return;
|
|
110
134
|
applyThemeClass(appliedTheme);
|
|
111
|
-
localStorage.setItem(
|
|
135
|
+
localStorage.setItem('theme', newTheme);
|
|
112
136
|
}
|
|
113
137
|
function applyThemeClass(appliedTheme) {
|
|
114
138
|
if (!browser)
|
|
115
139
|
return;
|
|
116
140
|
const classList = document.documentElement.classList;
|
|
117
|
-
classList.remove(
|
|
141
|
+
classList.remove('light', 'dark');
|
|
118
142
|
classList.add(appliedTheme);
|
|
119
143
|
}
|
|
120
144
|
function isSystemDarkMode() {
|
package/dist/ui/Accordion.svelte
CHANGED
|
@@ -59,9 +59,7 @@
|
|
|
59
59
|
children
|
|
60
60
|
}: AccordionProps = $props();
|
|
61
61
|
|
|
62
|
-
const openValues = $derived(
|
|
63
|
-
Array.isArray(value) ? value : value ? [value] : []
|
|
64
|
-
);
|
|
62
|
+
const openValues = $derived(Array.isArray(value) ? value : value ? [value] : []);
|
|
65
63
|
|
|
66
64
|
function isOpen(itemValue: string): boolean {
|
|
67
65
|
return openValues.includes(itemValue);
|
|
@@ -219,52 +219,44 @@
|
|
|
219
219
|
--accordion-open-color: var(--danger-text);
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
.variant-accent
|
|
223
|
-
.variant-pistachio {
|
|
222
|
+
.variant-accent {
|
|
224
223
|
--accordion-open-bg: var(--ui-accent);
|
|
225
224
|
--accordion-open-color: var(--ui-primary);
|
|
226
225
|
}
|
|
227
226
|
|
|
228
|
-
.variant-accent-subtle
|
|
229
|
-
.variant-pistachio-subtle {
|
|
227
|
+
.variant-accent-subtle {
|
|
230
228
|
--accordion-open-bg: rgba(var(--ui-accent-rgbc), 0.15);
|
|
231
229
|
--accordion-open-color: var(--text-color);
|
|
232
230
|
}
|
|
233
231
|
|
|
234
|
-
.variant-accent-outline
|
|
235
|
-
.variant-pistachio-outline {
|
|
232
|
+
.variant-accent-outline {
|
|
236
233
|
--accordion-open-bg: transparent;
|
|
237
234
|
--accordion-open-color: var(--ui-accent);
|
|
238
235
|
--accordion-open-border-color: var(--ui-accent);
|
|
239
236
|
}
|
|
240
237
|
|
|
241
|
-
.variant-primary
|
|
242
|
-
.variant-midnight {
|
|
238
|
+
.variant-primary {
|
|
243
239
|
--accordion-open-bg: var(--ui-primary);
|
|
244
240
|
--accordion-open-color: white;
|
|
245
241
|
}
|
|
246
242
|
|
|
247
|
-
.variant-primary-subtle
|
|
248
|
-
.variant-midnight-subtle {
|
|
243
|
+
.variant-primary-subtle {
|
|
249
244
|
--accordion-open-bg: rgba(var(--ui-primary-rgbc), 0.1);
|
|
250
245
|
--accordion-open-color: var(--text-color);
|
|
251
246
|
}
|
|
252
247
|
|
|
253
|
-
.variant-primary-outline
|
|
254
|
-
.variant-midnight-outline {
|
|
248
|
+
.variant-primary-outline {
|
|
255
249
|
--accordion-open-bg: transparent;
|
|
256
250
|
--accordion-open-color: var(--ui-primary);
|
|
257
251
|
--accordion-open-border-color: var(--ui-primary);
|
|
258
252
|
}
|
|
259
253
|
|
|
260
|
-
.variant-tertiary
|
|
261
|
-
.variant-turquoise {
|
|
254
|
+
.variant-tertiary {
|
|
262
255
|
--accordion-open-bg: var(--ui-tertiary);
|
|
263
256
|
--accordion-open-color: var(--ui-primary);
|
|
264
257
|
}
|
|
265
258
|
|
|
266
|
-
.variant-tertiary-subtle
|
|
267
|
-
.variant-turquoise-subtle {
|
|
259
|
+
.variant-tertiary-subtle {
|
|
268
260
|
--accordion-open-bg: rgba(var(--ui-tertiary-dark-rgbc), 0.25);
|
|
269
261
|
--accordion-open-color: var(--ui-tertiary-dark);
|
|
270
262
|
}
|
package/dist/ui/Badge.svelte
CHANGED
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
let isDisabled: boolean = $derived(loading || disabled);
|
|
44
44
|
let type: 'a' | 'button' | 'div' = $derived(onClick ? 'button' : href ? 'a' : 'div');
|
|
45
45
|
|
|
46
|
-
const elClass = $derived(
|
|
47
|
-
`badge ${isDisabled ? 'disabled' : ''}`
|
|
48
|
-
);
|
|
46
|
+
const elClass = $derived(`badge ${isDisabled ? 'disabled' : ''}`);
|
|
49
47
|
</script>
|
|
50
48
|
|
|
51
|
-
<div
|
|
49
|
+
<div
|
|
50
|
+
class="badge-container {variant} shape-{shape} size-{size} {onDelete ? 'badge-with-button' : ''} "
|
|
51
|
+
>
|
|
52
52
|
{#if type == 'a' && !disabled}
|
|
53
53
|
<a class={elClass} {href} {target}> {@render children?.()}</a>
|
|
54
54
|
{:else if type == 'button'}
|
|
@@ -122,8 +122,7 @@
|
|
|
122
122
|
color: var(--badge-text-color) !important;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
.accent
|
|
126
|
-
.pistachio {
|
|
125
|
+
.accent {
|
|
127
126
|
--badge-bg-color: var(--ui-accent);
|
|
128
127
|
--badge-text-color: var(--ui-primary);
|
|
129
128
|
--badge-hover-bg-color: var(--ui-tertiary);
|
|
@@ -131,13 +130,11 @@
|
|
|
131
130
|
--badge-outline-color: var(--ui-tertiary);
|
|
132
131
|
}
|
|
133
132
|
|
|
134
|
-
.accent :global(.loader)
|
|
135
|
-
.pistachio :global(.loader) {
|
|
133
|
+
.accent :global(.loader) {
|
|
136
134
|
color: var(--ui-primary);
|
|
137
135
|
}
|
|
138
136
|
|
|
139
|
-
.primary
|
|
140
|
-
.midnight {
|
|
137
|
+
.primary {
|
|
141
138
|
--badge-bg-color: var(--ui-primary);
|
|
142
139
|
--badge-text-color: #fff;
|
|
143
140
|
--badge-hover-bg-color: var(--ui-accent-dark);
|
|
@@ -145,8 +142,7 @@
|
|
|
145
142
|
--badge-outline-color: var(--ui-accent-dark);
|
|
146
143
|
}
|
|
147
144
|
|
|
148
|
-
.primary :global(.loader)
|
|
149
|
-
.midnight :global(.loader) {
|
|
145
|
+
.primary :global(.loader) {
|
|
150
146
|
color: var(--ui-accent);
|
|
151
147
|
}
|
|
152
148
|
|
|
@@ -213,8 +209,7 @@
|
|
|
213
209
|
--badge-outline-color: var(--ui-tertiary);
|
|
214
210
|
}
|
|
215
211
|
|
|
216
|
-
.accent-outline
|
|
217
|
-
.pistachio-outline {
|
|
212
|
+
.accent-outline {
|
|
218
213
|
--badge-text-color: var(--ui-accent);
|
|
219
214
|
--badge-bg-color: initial;
|
|
220
215
|
--badge-border: 1px solid var(--ui-accent);
|
|
@@ -224,8 +219,7 @@
|
|
|
224
219
|
--badge-outline-color: var(--ui-tertiary);
|
|
225
220
|
}
|
|
226
221
|
|
|
227
|
-
.primary-outline
|
|
228
|
-
.midnight-outline {
|
|
222
|
+
.primary-outline {
|
|
229
223
|
--badge-text-color: var(--ui-primary);
|
|
230
224
|
--badge-bg-color: initial;
|
|
231
225
|
--badge-border: 1px solid var(--ui-primary);
|
|
@@ -235,8 +229,7 @@
|
|
|
235
229
|
--badge-outline-color: var(--ui-accent-dark);
|
|
236
230
|
}
|
|
237
231
|
|
|
238
|
-
.tertiary
|
|
239
|
-
.turquoise {
|
|
232
|
+
.tertiary {
|
|
240
233
|
--badge-text-color: black;
|
|
241
234
|
--badge-bg-color: var(--ui-tertiary);
|
|
242
235
|
--badge-hover-bg-color: var(--ui-tertiary-dark);
|
|
@@ -334,5 +327,4 @@
|
|
|
334
327
|
.size-lg .badge-button {
|
|
335
328
|
padding: 6px;
|
|
336
329
|
}
|
|
337
|
-
|
|
338
330
|
</style>
|
package/dist/ui/Button.svelte
CHANGED
|
@@ -87,7 +87,13 @@
|
|
|
87
87
|
{/snippet}
|
|
88
88
|
|
|
89
89
|
{#if isLink && href && !disabled}
|
|
90
|
-
<a
|
|
90
|
+
<a
|
|
91
|
+
{target}
|
|
92
|
+
class={elClass}
|
|
93
|
+
aria-label={ariaLabel}
|
|
94
|
+
href={href?.startsWith('/') ? resolve(href as any) : href}
|
|
95
|
+
onclick={(e) => interceptLinkClick(e, { href, target, onclick })}
|
|
96
|
+
>
|
|
91
97
|
{@render buttonContent?.()}
|
|
92
98
|
</a>
|
|
93
99
|
{:else}
|
|
@@ -211,8 +217,7 @@
|
|
|
211
217
|
}
|
|
212
218
|
}
|
|
213
219
|
|
|
214
|
-
.accent
|
|
215
|
-
.pistachio {
|
|
220
|
+
.accent {
|
|
216
221
|
--button-text-color: var(--ui-primary);
|
|
217
222
|
--button-bg-color: var(--ui-accent);
|
|
218
223
|
--button-hover-bg-color: var(--ui-tertiary);
|
|
@@ -220,8 +225,7 @@
|
|
|
220
225
|
--button-outline-color: var(--ui-tertiary);
|
|
221
226
|
}
|
|
222
227
|
|
|
223
|
-
.accent-outline
|
|
224
|
-
.pistachio-outline {
|
|
228
|
+
.accent-outline {
|
|
225
229
|
--button-text-color: var(--ui-accent);
|
|
226
230
|
--button-bg-color: initial;
|
|
227
231
|
--button-border: 1px solid var(--ui-accent);
|
|
@@ -232,8 +236,7 @@
|
|
|
232
236
|
--button-outline-color: var(--ui-tertiary);
|
|
233
237
|
}
|
|
234
238
|
|
|
235
|
-
.accent-subtle
|
|
236
|
-
.pistachio-subtle {
|
|
239
|
+
.accent-subtle {
|
|
237
240
|
--button-text-color: var(--ui-accent);
|
|
238
241
|
--button-bg-color: initial;
|
|
239
242
|
--button-hover-text-color: var(--ui-primary);
|
|
@@ -243,16 +246,14 @@
|
|
|
243
246
|
--button-outline-color: var(--ui-tertiary);
|
|
244
247
|
}
|
|
245
248
|
|
|
246
|
-
.primary
|
|
247
|
-
.midnight {
|
|
249
|
+
.primary {
|
|
248
250
|
--button-bg-color: var(--ui-primary);
|
|
249
251
|
--button-text-color: white;
|
|
250
252
|
--button-hover-bg-color: var(--ui-accent-dark);
|
|
251
253
|
--button-active-bg-color: var(--ui-primary-dark);
|
|
252
254
|
}
|
|
253
255
|
|
|
254
|
-
.primary-outline
|
|
255
|
-
.midnight-outline {
|
|
256
|
+
.primary-outline {
|
|
256
257
|
--button-text-color: var(--ui-primary);
|
|
257
258
|
--button-bg-color: initial;
|
|
258
259
|
--button-border: 1px solid var(--ui-primary);
|
|
@@ -262,8 +263,7 @@
|
|
|
262
263
|
--button-active-border: 1px solid var(--ui-primary-dark);
|
|
263
264
|
}
|
|
264
265
|
|
|
265
|
-
.primary-subtle
|
|
266
|
-
.midnight-subtle {
|
|
266
|
+
.primary-subtle {
|
|
267
267
|
--button-text-color: var(--ui-primary);
|
|
268
268
|
--button-bg-color: initial;
|
|
269
269
|
--button-hover-text-color: white;
|
|
@@ -272,8 +272,7 @@
|
|
|
272
272
|
--button-active-bg-color: var(--ui-primary-dark);
|
|
273
273
|
}
|
|
274
274
|
|
|
275
|
-
.tertiary
|
|
276
|
-
.turquoise {
|
|
275
|
+
.tertiary {
|
|
277
276
|
--button-text-color: var(--ui-primary);
|
|
278
277
|
--button-bg-color: var(--ui-tertiary);
|
|
279
278
|
--button-hover-bg-color: var(--ui-accent);
|
|
@@ -281,8 +280,7 @@
|
|
|
281
280
|
--button-outline-color: var(--ui-accent);
|
|
282
281
|
}
|
|
283
282
|
|
|
284
|
-
.tertiary-subtle
|
|
285
|
-
.turquoise-subtle {
|
|
283
|
+
.tertiary-subtle {
|
|
286
284
|
background-color: initial;
|
|
287
285
|
color: var(--ui-tertiary-dark);
|
|
288
286
|
|