@onsvisual/svelte-components 0.1.88-component.toolbar → 0.1.88

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 (29) hide show
  1. package/dist/@types/index.d.ts +1 -8
  2. package/dist/@types/inputs/AccessibleSelect/AccessibleSelect.svelte.d.ts +49 -0
  3. package/dist/@types/inputs/AccessibleSelect/options.d.ts +6 -0
  4. package/dist/@types/inputs/Button/Button.svelte.d.ts +4 -2
  5. package/dist/@types/inputs/Dropdown/Dropdown.svelte.d.ts +2 -2
  6. package/dist/@types/inputs/Select/Select.svelte.d.ts +12 -12
  7. package/dist/css/main.css +221 -1
  8. package/dist/index.js +1 -8
  9. package/dist/inputs/AccessibleSelect/AccessibleSelect.svelte +170 -0
  10. package/dist/inputs/AccessibleSelect/options.js +263 -0
  11. package/dist/inputs/Button/Button.svelte +6 -0
  12. package/package.json +6 -14
  13. package/dist/@types/inputs/Toolbar/HelpModal.svelte.d.ts +0 -19
  14. package/dist/@types/inputs/Toolbar/Icon.svelte.d.ts +0 -31
  15. package/dist/@types/inputs/Toolbar/ToolControl.svelte.d.ts +0 -27
  16. package/dist/@types/inputs/Toolbar/ToolControls.svelte.d.ts +0 -27
  17. package/dist/@types/inputs/Toolbar/Toolbar.svelte.d.ts +0 -33
  18. package/dist/@types/inputs/Toolbar/ToolbarButton.svelte.d.ts +0 -29
  19. package/dist/@types/inputs/Toolbar/ToolbarDivider.svelte.d.ts +0 -16
  20. package/dist/@types/inputs/Toolbar/ToolbarsContainer.svelte.d.ts +0 -16
  21. package/dist/inputs/Toolbar/HelpModal.svelte +0 -220
  22. package/dist/inputs/Toolbar/Icon.svelte +0 -136
  23. package/dist/inputs/Toolbar/ToolControl.svelte +0 -19
  24. package/dist/inputs/Toolbar/ToolControls.svelte +0 -8
  25. package/dist/inputs/Toolbar/Toolbar.svelte +0 -66
  26. package/dist/inputs/Toolbar/ToolbarButton.svelte +0 -104
  27. package/dist/inputs/Toolbar/ToolbarDivider.svelte +0 -28
  28. package/dist/inputs/Toolbar/ToolbarsContainer.svelte +0 -46
  29. /package/dist/layout/{BackLink → Backlink}/Backlink.svelte +0 -0
@@ -1,104 +0,0 @@
1
- <script>import { onMount, onDestroy, createEventDispatcher, getContext } from "svelte";
2
- import Icon from "./Icon.svelte";
3
- import HelpModal from "./HelpModal.svelte";
4
- import { nanoid } from "nanoid";
5
- // Props for the ToolbarButton
6
- export let id = nanoid(6);
7
- export let icon = "";
8
- export let label = "";
9
- export let disabled = false;
10
- export let classes = "";
11
- export let helpText = null;
12
- export let selected = false;
13
- export let custom = false;
14
- export let hasAriaControls = false;
15
- const dispatch = createEventDispatcher();
16
- let buttonElement;
17
- // Get activeModalId store from context
18
- const activeModalId = getContext("activeModalId");
19
- // Retrieve button registry from context
20
- const { register, unregister } = getContext("buttonIds");
21
- // Register button on mount
22
- onMount(() => {
23
- register(id);
24
- });
25
- // Unregister button on destroy
26
- onDestroy(() => {
27
- unregister(id);
28
- });
29
- // Reactive store subscription
30
- $: isActive = $activeModalId === id;
31
- // Subscribe to the store to determine if this modal is active
32
- function handleClick() {
33
- if (!disabled) {
34
- dispatch("click");
35
- activeModalId.set(isActive ? null : id); // Toggle the modal
36
- // maybe something here to check if selected
37
- }
38
- }
39
- </script>
40
-
41
- <div class="toolbar-button-wrapper">
42
- {#if custom}
43
- <div on:click="{handleClick}" bind:this="{buttonElement}">
44
- <slot name="custom" />
45
- </div>
46
- {:else}
47
- <button
48
- type="button"
49
- aria-label="{label}"
50
- class="{`toolbar-button ${disabled ? 'disabled' : ''} ${
51
- isActive ? 'selected' : ''
52
- } ${classes}`}"
53
- on:click="{handleClick}"
54
- disabled="{disabled}"
55
- bind:this="{buttonElement}"
56
- id="button-{id}"
57
- aria-controls="{hasAriaControls ? `panel-${id}` : undefined}"
58
- >
59
- {#if icon}
60
- <Icon type="{icon}" selected="{isActive ? true : false}" disabled="{disabled}" />
61
- {:else}
62
- {label}
63
- {/if}
64
- </button>
65
- {/if}
66
-
67
- {#if isActive}
68
- {#if helpText}
69
- <HelpModal triggerElement="{buttonElement}" onClose="{() => activeModalId.set(null)}">
70
- <p>{helpText}</p>
71
- </HelpModal>
72
- {:else if !helpText}
73
- <HelpModal triggerElement="{buttonElement}" onClose="{() => activeModalId.set(null)}">
74
- <slot />
75
- </HelpModal>
76
- {/if}
77
- {/if}
78
- </div>
79
-
80
- <style>
81
- .toolbar-button-wrapper {
82
- position: relative;
83
- }
84
- .toolbar-button {
85
- display: flex;
86
- align-items: center;
87
- justify-content: center;
88
- padding: 0.5rem;
89
- background: none;
90
- border: none;
91
- cursor: pointer;
92
- flex-shrink: 0;
93
- flex-grow: 0;
94
- }
95
-
96
- .toolbar-button.disabled {
97
- /* opacity: 0.5; */
98
- cursor: not-allowed;
99
- }
100
-
101
- .selected {
102
- background: #e9eff4;
103
- border-radius: 8px;
104
- }</style>
@@ -1,28 +0,0 @@
1
- <script>import { getContext } from "svelte";
2
- export let classes = "";
3
- // Get the orientation store from context
4
- const orientationStore = getContext("orientation");
5
- // Subscribe to the store to get its value
6
- let orientation;
7
- orientationStore.subscribe((value) => {
8
- orientation = value;
9
- });
10
- </script>
11
-
12
- <div class="{`toolbar-divider ${orientation} ${classes}`}" aria-hidden="true"></div>
13
-
14
- <style>
15
- .toolbar-divider {
16
- background-color: #ccc;
17
- }
18
-
19
- .toolbar-divider.horizontal {
20
- width: 1px;
21
- margin: 0 0.5rem;
22
- }
23
-
24
- .toolbar-divider.vertical {
25
- width: 100%;
26
- height: 1px;
27
- margin: 0.5rem 0;
28
- }</style>
@@ -1,46 +0,0 @@
1
- <script>import { setContext, onMount } from "svelte";
2
- import { writable } from "svelte/store";
3
- // Initialize a store for button IDs
4
- const buttonIds = writable([]);
5
- setContext("buttonIds", {
6
- register: (id) => {
7
- buttonIds.update((ids) => [...ids, id]);
8
- },
9
- unregister: (id) => {
10
- buttonIds.update((ids) => ids.filter((btnId) => btnId !== id));
11
- },
12
- buttonIds,
13
- });
14
- // Initial state: true unless explicitly set to 'false' in either localStorage or sessionStorage
15
- const initialState = sessionStorage.getItem("showHelpModals") === "false"
16
- ? false
17
- : localStorage.getItem("showHelpModals") === "false"
18
- ? false
19
- : true;
20
- const showHelpModals = writable(initialState ?? true);
21
- // Subscribe to store changes to persist in localStorage
22
- // showHelpModals.subscribe((value) => {
23
- // localStorage.setItem("showHelpModals", value);
24
- // });
25
- // Set context for showHelpModals
26
- setContext("showHelpModals", showHelpModals);
27
- const activeModalStore = writable(null); // Tracks the ID of the active modal
28
- setContext("activeModalId", activeModalStore);
29
- onMount(() => {
30
- window.addEventListener("beforeunload", () => {
31
- sessionStorage.removeItem("showHelpModals");
32
- });
33
- });
34
- </script>
35
-
36
- <div class="multi-toolbar-container">
37
- <slot />
38
- </div>
39
-
40
- <style>
41
- .multi-toolbar-container {
42
- display: flex;
43
- flex-direction: row;
44
- gap: 1rem;
45
- justify-content: space-between;
46
- }</style>