@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.
Files changed (87) hide show
  1. package/dist/app.css +0 -10
  2. package/dist/editors/CodeMirror.svelte +295 -297
  3. package/dist/editors/tiptap/LinkActionMenu.svelte +6 -1
  4. package/dist/editors/tiptap/TipTap.svelte +1 -1
  5. package/dist/editors/tiptap/extensions/Alert.js +17 -17
  6. package/dist/editors/tiptap/extensions/Div.js +19 -19
  7. package/dist/editors/tiptap/extensions/Span.js +14 -14
  8. package/dist/editors/tiptap/toolbar/AlertButton.svelte +254 -253
  9. package/dist/editors/tiptap/toolbar/AlignCenterButton.svelte +11 -11
  10. package/dist/editors/tiptap/toolbar/AlignJustifyButton.svelte +11 -11
  11. package/dist/editors/tiptap/toolbar/AlignLeftButton.svelte +11 -11
  12. package/dist/editors/tiptap/toolbar/AlignRightButton.svelte +11 -11
  13. package/dist/editors/tiptap/toolbar/BoldButton.svelte +11 -11
  14. package/dist/editors/tiptap/toolbar/BulletListButton.svelte +11 -11
  15. package/dist/editors/tiptap/toolbar/CodeButton.svelte +11 -11
  16. package/dist/editors/tiptap/toolbar/ColorButton.svelte +265 -265
  17. package/dist/editors/tiptap/toolbar/DocumentButton.svelte +51 -51
  18. package/dist/editors/tiptap/toolbar/HeadingButton.svelte +21 -21
  19. package/dist/editors/tiptap/toolbar/HtmlButton.svelte +48 -52
  20. package/dist/editors/tiptap/toolbar/ImageButton.svelte +35 -39
  21. package/dist/editors/tiptap/toolbar/ItalicButton.svelte +11 -11
  22. package/dist/editors/tiptap/toolbar/LinkButton.svelte +249 -249
  23. package/dist/editors/tiptap/toolbar/OrderedListButton.svelte +11 -11
  24. package/dist/editors/tiptap/toolbar/RedoButton.svelte +11 -11
  25. package/dist/editors/tiptap/toolbar/StrikethroughButton.svelte +11 -11
  26. package/dist/editors/tiptap/toolbar/SubscriptButton.svelte +11 -11
  27. package/dist/editors/tiptap/toolbar/SuperscriptButton.svelte +11 -11
  28. package/dist/editors/tiptap/toolbar/TableButton.svelte +231 -224
  29. package/dist/editors/tiptap/toolbar/ToolbarButton.svelte +59 -65
  30. package/dist/editors/tiptap/toolbar/UnderlineButton.svelte +11 -11
  31. package/dist/editors/tiptap/toolbar/UndoButton.svelte +11 -11
  32. package/dist/form/Autocomplete.svelte +24 -22
  33. package/dist/form/AutocompleteMulti.svelte +24 -22
  34. package/dist/form/Checkbox.svelte +4 -4
  35. package/dist/form/Chips.svelte +15 -7
  36. package/dist/form/ColorPicker.svelte +5 -20
  37. package/dist/form/ComboBox.svelte +4 -4
  38. package/dist/form/ComboBoxItemBuilder.svelte +14 -32
  39. package/dist/form/ComboBoxMulti.svelte +7 -3
  40. package/dist/form/CronBuilder.svelte +32 -110
  41. package/dist/form/DatePicker.svelte +9 -28
  42. package/dist/form/DateRangePicker.svelte +46 -36
  43. package/dist/form/DateTimePicker.svelte +11 -30
  44. package/dist/form/Number.svelte +1 -3
  45. package/dist/form/RadioGroup.svelte +1 -3
  46. package/dist/form/Select.svelte +25 -28
  47. package/dist/form/SelectMulti.svelte +36 -54
  48. package/dist/form/StringArrayBuilder.svelte +1 -3
  49. package/dist/form/TextArea.svelte +5 -6
  50. package/dist/form/Textbox.svelte +10 -4
  51. package/dist/form/TimePicker.svelte +10 -4
  52. package/dist/icon/Icon.svelte +8 -4
  53. package/dist/index.d.ts +147 -146
  54. package/dist/index.js +78 -77
  55. package/dist/layout/CustomNavbar.svelte +1 -1
  56. package/dist/layout/Navbar.svelte +3 -4
  57. package/dist/layout/Navbar.svelte.d.ts +1 -2
  58. package/dist/layout/NavbarItemDisplay.svelte +1 -1
  59. package/dist/layout/NavbarItemView.svelte +3 -1
  60. package/dist/layout/Sidenav.svelte +1 -1
  61. package/dist/models/ComboBoxItem.d.ts +4 -4
  62. package/dist/models/NotifyModel.js +0 -1
  63. package/dist/theme.svelte.d.ts +1 -1
  64. package/dist/theme.svelte.js +46 -22
  65. package/dist/ui/Accordion.svelte +1 -3
  66. package/dist/ui/AccordionItem.svelte +8 -16
  67. package/dist/ui/Badge.svelte +11 -19
  68. package/dist/ui/Button.svelte +15 -17
  69. package/dist/ui/ButtonVariant.d.ts +1 -7
  70. package/dist/ui/ContextMenu.svelte +5 -11
  71. package/dist/ui/Dialog.svelte +74 -30
  72. package/dist/ui/Dialog.svelte.d.ts +8 -2
  73. package/dist/ui/Dropdown.svelte +21 -10
  74. package/dist/ui/MultiSortable.svelte +1 -3
  75. package/dist/ui/Pagination.svelte +2 -2
  76. package/dist/ui/Popover.svelte +16 -37
  77. package/dist/ui/ProgressBar.svelte +4 -10
  78. package/dist/ui/ProgressBarVariant.d.ts +2 -7
  79. package/dist/ui/ThemeSwitcher.svelte +2 -1
  80. package/dist/ui/Tooltip.svelte +1 -37
  81. package/dist/util/DateFunctions.js +1 -1
  82. package/dist/util/Floating.d.ts +70 -0
  83. package/dist/util/Floating.js +321 -0
  84. package/dist/util/NavigateTo.js +2 -2
  85. package/dist/util/Transitions.d.ts +1 -1
  86. package/dist/util/Transitions.js +1 -1
  87. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,77 +1,78 @@
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/CronParser.js";
68
- export { dayjs } from "./util/dayjs.js";
69
- export * from "./util/DateFunctions.js";
70
- export * from "./util/DragDrop.js";
71
- export * from "./util/Transitions.js";
72
- export * from "./util/interceptLinkClick.js";
73
- export * from "./util/NavigateTo.js";
74
- export * from "./display/filetree/index.js";
75
- export * from "./theme.svelte.js";
76
- export * from "./uiTheme.svelte.js";
77
- export * from "./ui/Toast.svelte.js";
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';
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import type { Snippet } from 'svelte';
3
-
3
+
4
4
  export interface CustomNavbarProps {
5
5
  /** Header text for the mobile drawer */
6
6
  drawerHeader?: string | undefined;
@@ -12,8 +12,7 @@
12
12
  import Logo from '../ui/Logo.svelte';
13
13
  import type { Snippet } from 'svelte';
14
14
 
15
- /** `midnight` is a legacy alias for `primary`. */
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' || variant === 'midnight');
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(.cu-icon) {
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
- /** `midnight` is a legacy alias for `primary`. */
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;
@@ -27,4 +27,4 @@
27
27
  {/if}
28
28
  </div>
29
29
  {/if}
30
- </div> -->
30
+ </div> -->
@@ -61,7 +61,9 @@
61
61
  <div
62
62
  class="navbar-submenu"
63
63
  class:flyout={depth > 0}
64
- style={item.submenuWidth ? `width: ${item.submenuWidth}; min-width: ${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();
@@ -471,7 +471,7 @@
471
471
  border-top: 1px solid var(--border-color);
472
472
  border-bottom: 1px solid var(--border-color);
473
473
  }
474
-
474
+
475
475
  .section-title:first-child {
476
476
  border-top: none;
477
477
  }
@@ -1,4 +1,4 @@
1
- import type { NotifyModel } from "./NotifyModel.js";
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 = (() => Promise<NotifyModel<ComboBoxItem[]>>);
24
- export type SearchFunctionType = ((query: string) => Promise<NotifyModel<ComboBoxItem[]>>);
25
- export type RetrieveLabelFunctionType = ((value: any) => Promise<NotifyModel<string | undefined>>);
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>>;
@@ -6,4 +6,3 @@ export var MessageTypes;
6
6
  MessageTypes["notFound"] = "NotFound";
7
7
  MessageTypes["accessDenied"] = "AccessDenied";
8
8
  })(MessageTypes || (MessageTypes = {}));
9
- ;
@@ -1,4 +1,4 @@
1
- type Theme = "system" | "light" | "dark";
1
+ type Theme = 'system' | 'light' | 'dark';
2
2
  export declare const breakpoints: {
3
3
  readonly sm: 640;
4
4
  readonly md: 768;
@@ -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("system");
7
+ let theme = $state('system');
8
8
  let systemDarkMode = $state(browser && isSystemDarkMode());
9
9
  let isDarkMode = $derived.by(() => {
10
- if (theme === "system")
10
+ if (theme === 'system')
11
11
  return systemDarkMode;
12
- return theme === "dark";
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 === "system")
22
- applyThemeClass(e.matches ? "dark" : "light");
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() { return windowWidth; },
59
- get height() { return windowHeight; },
58
+ get width() {
59
+ return windowWidth;
60
+ },
61
+ get height() {
62
+ return windowHeight;
63
+ },
60
64
  // Boolean helpers
61
- get isMobile() { return isMobile; },
62
- get isTablet() { return isTablet; },
63
- get isDesktop() { return isDesktop; },
64
- get isSmall() { return isSmall; },
65
- get isMedium() { return isMedium; },
66
- get isLarge() { return isLarge; },
67
- get isExtraLarge() { return isExtraLarge; },
68
- get isUltrawide() { return isUltrawide; },
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) { return windowWidth < breakpoint; },
71
- isAbove(breakpoint) { return windowWidth >= breakpoint; }
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("theme") || "system";
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 === "system") {
123
+ if (newTheme === 'system') {
100
124
  systemDarkMode = isSystemDarkMode();
101
- appliedTheme = systemDarkMode ? "dark" : "light";
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("theme", newTheme);
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("light", "dark");
141
+ classList.remove('light', 'dark');
118
142
  classList.add(appliedTheme);
119
143
  }
120
144
  function isSystemDarkMode() {
@@ -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
  }
@@ -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 class="badge-container {variant} shape-{shape} size-{size} {onDelete ? 'badge-with-button' : ''} ">
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>
@@ -87,7 +87,13 @@
87
87
  {/snippet}
88
88
 
89
89
  {#if isLink && href && !disabled}
90
- <a {target} class={elClass} aria-label={ariaLabel} href={href?.startsWith('/') ? resolve(href as any) : href} onclick={(e) => interceptLinkClick(e, { href, target, onclick })}>
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