tera-system-ui 0.0.20 → 0.0.22

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 (91) hide show
  1. package/dist/components/avatar/Avatar.d.ts +82 -0
  2. package/dist/components/avatar/Avatar.js +35 -0
  3. package/dist/components/avatar/Avatar.svelte +43 -0
  4. package/dist/components/avatar/Avatar.svelte.d.ts +3 -0
  5. package/dist/components/avatar/index.d.ts +1 -0
  6. package/dist/components/avatar/index.js +1 -0
  7. package/dist/components/brand-logo/BrandLogo.svelte +31 -31
  8. package/dist/components/button/Button.svelte +49 -49
  9. package/dist/components/combobox/Combobox.svelte +8 -8
  10. package/dist/components/command/command.scss +72 -72
  11. package/dist/components/command/components/Command.svelte +120 -120
  12. package/dist/components/command/components/CommandEmpty.svelte +30 -30
  13. package/dist/components/command/components/CommandGroup.svelte +110 -110
  14. package/dist/components/command/components/CommandInput.svelte +92 -92
  15. package/dist/components/command/components/CommandItem.svelte +110 -110
  16. package/dist/components/command/components/CommandList.svelte +56 -56
  17. package/dist/components/command/components/CommandLoading.svelte +28 -28
  18. package/dist/components/command/components/CommandSeparator.svelte +21 -21
  19. package/dist/components/dialog/Dialog.astro +63 -63
  20. package/dist/components/dialog/Dialog.svelte +109 -109
  21. package/dist/components/dialog/dialog.scss +115 -115
  22. package/dist/components/dropdown-menu/DropdownMenu.d.ts +22 -0
  23. package/dist/components/dropdown-menu/DropdownMenu.js +15 -0
  24. package/dist/components/dropdown-menu/components/DropdownMenu.svelte +34 -0
  25. package/dist/components/dropdown-menu/components/DropdownMenu.svelte.d.ts +3 -0
  26. package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte +12 -0
  27. package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte.d.ts +5 -0
  28. package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte +12 -0
  29. package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte.d.ts +5 -0
  30. package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte +30 -0
  31. package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte.d.ts +3 -0
  32. package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte +11 -0
  33. package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte.d.ts +5 -0
  34. package/dist/components/dropdown-menu/index.d.ts +5 -0
  35. package/dist/components/dropdown-menu/index.js +5 -0
  36. package/dist/components/header/Header.svelte +36 -36
  37. package/dist/components/header/header.scss +19 -19
  38. package/dist/components/icons/IconArrowBigRightFilled.svelte +10 -10
  39. package/dist/components/icons/IconBook.svelte +10 -10
  40. package/dist/components/icons/IconBookmarkPlus.svelte +10 -10
  41. package/dist/components/icons/IconCalculator.svelte +10 -10
  42. package/dist/components/icons/IconCheck.svelte +10 -10
  43. package/dist/components/icons/IconChevronDown.svelte +10 -10
  44. package/dist/components/icons/IconCopy.svelte +10 -10
  45. package/dist/components/icons/IconCopyCheckFilled.svelte +10 -10
  46. package/dist/components/icons/IconHamburger.svelte +10 -10
  47. package/dist/components/icons/IconLanguage.svelte +10 -10
  48. package/dist/components/icons/IconLoader2.svelte +10 -10
  49. package/dist/components/icons/IconLogout.svelte +10 -0
  50. package/dist/components/icons/IconLogout.svelte.d.ts +4 -0
  51. package/dist/components/icons/IconMoon.svelte +10 -10
  52. package/dist/components/icons/IconPointFilled.svelte +10 -10
  53. package/dist/components/icons/IconSearch.svelte +10 -10
  54. package/dist/components/icons/IconSettings.svelte +10 -0
  55. package/dist/components/icons/IconSettings.svelte.d.ts +4 -0
  56. package/dist/components/icons/IconSun.svelte +10 -10
  57. package/dist/components/icons/IconSwitchHorizontal.svelte +10 -10
  58. package/dist/components/icons/IconSwitchVertical.svelte +10 -10
  59. package/dist/components/icons/IconTransform.svelte +10 -10
  60. package/dist/components/icons/IconX.svelte +10 -10
  61. package/dist/components/icons/index.d.ts +2 -0
  62. package/dist/components/icons/index.js +2 -0
  63. package/dist/components/input/Input.svelte +24 -24
  64. package/dist/components/language-picker-button/LanguagePickerButton.svelte +109 -109
  65. package/dist/components/light-dark-toggle/LightDarkToggle.svelte +36 -36
  66. package/dist/components/popover/Popover.svelte +159 -137
  67. package/dist/components/popover-responsive/PopoverResponsive.svelte +87 -87
  68. package/dist/components/side-navigation/SideNavigation.svelte +114 -114
  69. package/dist/components/side-navigation/SideNavigationItem.svelte +17 -17
  70. package/dist/components/side-navigation/SideNavigationLayout.svelte +19 -19
  71. package/dist/components/side-navigation/sidenav.scss +149 -149
  72. package/dist/components/tera-ui-context/TeraUiContext.d.ts +1 -0
  73. package/dist/components/tera-ui-context/TeraUiContext.svelte +28 -28
  74. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.d.ts +11 -0
  75. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.js +7 -0
  76. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte +68 -0
  77. package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte.d.ts +3 -0
  78. package/dist/components/user-avatar-with-menu/index.d.ts +1 -0
  79. package/dist/components/user-avatar-with-menu/index.js +1 -0
  80. package/dist/index.d.ts +4 -1
  81. package/dist/index.js +4 -1
  82. package/dist/internal/service/user.service.d.ts +2 -0
  83. package/dist/internal/service/user.service.js +20 -0
  84. package/dist/themes/scrollbar.scss +37 -37
  85. package/dist/themes/tera-ui-base.css +210 -210
  86. package/dist/themes/tw-preset.cjs +153 -153
  87. package/dist/types/user-data.d.ts +31 -0
  88. package/dist/types/user-data.js +1 -0
  89. package/package.json +98 -96
  90. package/scripts/add-component-template.js +120 -120
  91. package/scripts/generate-ts-index.js +138 -136
@@ -1,137 +1,159 @@
1
- <script lang="ts">
2
- import {type PopoverProps} from "./Popover";
3
- import {arrow, autoUpdate, computePosition, flip, offset, shift, size} from "@floating-ui/dom";
4
- import {cn} from "../../utils/utils";
5
-
6
- import {clickOutside} from "../../actions/clickOutside"
7
- import {onDestroy, onMount} from "svelte";
8
-
9
- let {
10
- children,
11
- triggerRef,
12
- class: className,
13
- open = $bindable(),
14
- offset: offsetAmount = 3,
15
- padding: paddingAmount = 12,
16
- focusTriggerAfterClose = true,
17
- flip: enableFlip = false,
18
- autoTrigger = true,
19
- ...props
20
- }: PopoverProps = $props();
21
-
22
- let hasOpenedYet = $state(false)
23
-
24
- function togglePopover() {
25
- open = !open;
26
- }
27
-
28
-
29
- function handleClickOutside(e) {
30
- open = false
31
- }
32
-
33
- let popover = $state();
34
- let arrowElement = $state();
35
-
36
-
37
- function updatePosition() {
38
- computePosition(triggerRef, popover, {
39
- placement: 'bottom',
40
- middleware: [
41
- offset(offsetAmount),
42
- size({
43
- apply({rects, elements}) {
44
- Object.assign(elements.floating.style, {
45
- minWidth: `${rects.reference.width}px`,
46
- });
47
- },
48
- }),
49
- enableFlip ? flip() : undefined,
50
- shift({padding: paddingAmount}),
51
- arrow({element: arrowElement}),
52
- ],
53
- }).then(({x, y, placement, middlewareData}) => {
54
- Object.assign(popover.style, {
55
- left: `${x}px`,
56
- top: `${y}px`,
57
- });
58
- //
59
- // // Accessing the data
60
- // const {x: arrowX, y: arrowY} = middlewareData.arrow;
61
- //
62
- // const staticSide = {
63
- // top: 'bottom',
64
- // right: 'left',
65
- // bottom: 'top',
66
- // left: 'right',
67
- // }[placement.split('-')[0]];
68
- //
69
- // Object.assign(arrowElement.style, {
70
- // left: arrowX != null ? `${arrowX}px` : '',
71
- // top: arrowY != null ? `${arrowY}px` : '',
72
- // right: '',
73
- // bottom: '',
74
- // [staticSide]: '-4px',
75
- // });
76
- });
77
- }
78
-
79
- onMount(() => {
80
- if (autoTrigger)
81
- triggerRef?.addEventListener("click", togglePopover);
82
-
83
- })
84
-
85
- onDestroy(() => {
86
- if (autoTrigger)
87
- triggerRef?.removeEventListener("click", togglePopover);
88
-
89
- })
90
-
91
- $effect(() => {
92
- let cleanup: any
93
-
94
- if (open) {
95
- hasOpenedYet = true
96
- updatePosition()
97
-
98
- // Start auto updates.
99
- cleanup = autoUpdate(
100
- triggerRef,
101
- popover,
102
- updatePosition,
103
- );
104
- } else {
105
- cleanup?.()
106
- if (focusTriggerAfterClose && hasOpenedYet) {
107
- try {
108
- triggerRef.focus()
109
- } catch (e) {
110
- console.warn('Trigger element focus after close Popover error', e)
111
- }
112
- }
113
- }
114
-
115
- return () => {
116
- cleanup?.()
117
- }
118
- })
119
- </script>
120
-
121
- <!-- Popover Content -->
122
- {#if open}
123
- <div bind:this={popover}
124
- class={cn("overflow-hidden absolute z-10 bg-neutral-token-1 shadow-2xl rounded-container border border-neutral-token-5", className)}
125
- use:clickOutside={{exceptElement: triggerRef}}
126
- onclick_outside={handleClickOutside}
127
- {...props}
128
- >
129
- <!-- <div bind:this={arrowElement} class="size-2 absolute rotate-45 bg-inherit"></div>-->
130
- {@render children?.()}
131
- </div>
132
- {/if}
133
-
134
-
135
- <style>
136
-
137
- </style>
1
+ <script lang="ts">
2
+ import {type PopoverProps} from "./Popover";
3
+ import {arrow, autoUpdate, computePosition, flip, offset, shift, size} from "@floating-ui/dom";
4
+ import {cn} from "../../utils/utils";
5
+
6
+ import {clickOutside} from "../../actions/clickOutside"
7
+ import {onDestroy, onMount} from "svelte";
8
+ import {circInOut} from "svelte/easing";
9
+
10
+ let {
11
+ children,
12
+ triggerRef,
13
+ class: className,
14
+ open = $bindable(),
15
+ offset: offsetAmount = 3,
16
+ padding: paddingAmount = 12,
17
+ focusTriggerAfterClose = true,
18
+ flip: enableFlip = false,
19
+ autoTrigger = true,
20
+ ...props
21
+ }: PopoverProps = $props();
22
+
23
+ let hasOpenedYet = $state(false)
24
+
25
+ function togglePopover() {
26
+ open = !open;
27
+ }
28
+
29
+
30
+ function handleClickOutside(e) {
31
+ open = false
32
+ }
33
+
34
+ let popover = $state();
35
+ let arrowElement = $state();
36
+
37
+
38
+ function updatePosition() {
39
+ computePosition(triggerRef, popover, {
40
+ placement: 'bottom',
41
+ middleware: [
42
+ offset(offsetAmount),
43
+ size({
44
+ apply({rects, elements}) {
45
+ console.log(elements.reference)
46
+ Object.assign(elements.floating.style, {
47
+ minWidth: `${rects.reference.width}px`,
48
+ maxWidth: `${window.innerWidth - 16}px`,
49
+ });
50
+ },
51
+ }),
52
+ enableFlip ? flip() : undefined,
53
+ shift({padding: paddingAmount}),
54
+ arrow({element: arrowElement}),
55
+ ],
56
+ }).then(({x, y, placement, middlewareData}) => {
57
+ Object.assign(popover.style, {
58
+ left: `${x}px`,
59
+ top: `${y}px`,
60
+ });
61
+ //
62
+ // // Accessing the data
63
+ // const {x: arrowX, y: arrowY} = middlewareData.arrow;
64
+ //
65
+ // const staticSide = {
66
+ // top: 'bottom',
67
+ // right: 'left',
68
+ // bottom: 'top',
69
+ // left: 'right',
70
+ // }[placement.split('-')[0]];
71
+ //
72
+ // Object.assign(arrowElement.style, {
73
+ // left: arrowX != null ? `${arrowX}px` : '',
74
+ // top: arrowY != null ? `${arrowY}px` : '',
75
+ // right: '',
76
+ // bottom: '',
77
+ // [staticSide]: '-4px',
78
+ // });
79
+ });
80
+ }
81
+
82
+ onMount(() => {
83
+ if (autoTrigger)
84
+ triggerRef?.addEventListener("click", togglePopover);
85
+
86
+ })
87
+
88
+ onDestroy(() => {
89
+ if (autoTrigger)
90
+ triggerRef?.removeEventListener("click", togglePopover);
91
+
92
+ })
93
+
94
+ $effect(() => {
95
+ let cleanup: any
96
+
97
+ if (open) {
98
+ hasOpenedYet = true
99
+ updatePosition()
100
+
101
+ // Start auto updates.
102
+ cleanup = autoUpdate(
103
+ triggerRef,
104
+ popover,
105
+ updatePosition,
106
+ );
107
+ } else {
108
+ cleanup?.()
109
+ if (focusTriggerAfterClose && hasOpenedYet) {
110
+ try {
111
+ triggerRef.focus()
112
+ } catch (e) {
113
+ console.warn('Trigger element focus after close Popover error', e)
114
+ }
115
+ }
116
+ }
117
+
118
+ return () => {
119
+ cleanup?.()
120
+ }
121
+ })
122
+
123
+
124
+ function spin(node, {duration}) {
125
+ return {
126
+ duration,
127
+ css: (t) => {
128
+ const eased = circInOut(t);
129
+ return `
130
+ transform-origin: 0% 0%;
131
+ transform: translateY(${eased * 10 - 10}px) scaleY(${eased * 0.05 + 0.95});
132
+ opacity: ${eased};
133
+ `
134
+
135
+ }
136
+ };
137
+ }
138
+
139
+
140
+ </script>
141
+
142
+ <!-- Popover Content -->
143
+ {#if open}
144
+ <div bind:this={popover}
145
+ data-open={open}
146
+ class={cn("overflow-hidden absolute z-10 bg-neutral-token-1 shadow-2xl rounded-container border border-neutral-token-5", className)}
147
+ use:clickOutside={{exceptElement: triggerRef}}
148
+ onclick_outside={handleClickOutside}
149
+
150
+ in:spin={{ duration: 200 }}
151
+ out:spin={{ duration: 200 }}
152
+ {...props}
153
+ >
154
+ <!-- <div bind:this={arrowElement} class="size-2 absolute rotate-45 bg-inherit"></div>-->
155
+ {@render children?.()}
156
+ </div>
157
+ {/if}
158
+
159
+
@@ -1,88 +1,88 @@
1
- <script lang="ts">
2
- import {type PopoverResponsiveProps} from "./PopoverResponsive";
3
- import {Dialog, Popover} from "../..";
4
- import {onMount} from "svelte";
5
- import {getScreenWidth, SCREEN_BREAK_POINTS} from "../side-navigation/SideNavigation";
6
-
7
- let {
8
- children,
9
- triggerRef,
10
- class: className,
11
- open = $bindable(),
12
- offset = 3,
13
- popoverPadding = 12,
14
- focusTriggerAfterClose = true,
15
- flip = false,
16
- ...props
17
- }: PopoverResponsiveProps & {
18
- dialogPadding?: string,
19
- popoverPadding?: number,
20
- offset?: number,
21
- open?: boolean,
22
- focusTriggerAfterClose?: boolean,
23
- flip?: boolean,
24
- triggerRef?: HTMLElement,
25
- } = $props();
26
-
27
- let openPopover = $state(false)
28
- let openDialog = $state(false)
29
-
30
- $effect(() => {
31
- open = openPopover || openDialog
32
- })
33
-
34
- $effect(() => {
35
- toggleOpen(open)
36
- })
37
-
38
- function toggleOpen(open?: boolean) {
39
- if (getScreenWidth() >= SCREEN_BREAK_POINTS.sm) {
40
- if (open === undefined) {
41
- openPopover = !(openDialog || openPopover)
42
- } else {
43
- openPopover = open
44
- }
45
- openDialog = false
46
- } else {
47
- if (open === undefined) {
48
- openDialog = !(openDialog || openPopover)
49
- } else {
50
- openDialog = open
51
- }
52
- openPopover = false
53
- }
54
-
55
- console.log('toggleOpen Responsive Popover', open)
56
- }
57
-
58
- onMount(() => {
59
- triggerRef?.addEventListener('click', (e) => {
60
- e.stopPropagation()
61
- toggleOpen()
62
- })
63
- })
64
- </script>
65
-
66
-
67
- <Popover bind:open={openPopover}
68
- triggerRef={triggerRef}
69
- autoTrigger={false}
70
- padding={popoverPadding}
71
- focusTriggerAfterClose={focusTriggerAfterClose}
72
- offset={offset}
73
- flip={flip}
74
- class={className}
75
- {...props}
76
- >
77
- {@render children?.()}
78
- </Popover>
79
-
80
- <Dialog bind:open={openDialog}
81
- position="top"
82
- padding="none"
83
- class={className}
84
- triggerRef={triggerRef}
85
- focusTriggerAfterClose={focusTriggerAfterClose}
86
- >
87
- {@render children?.()}
1
+ <script lang="ts">
2
+ import {type PopoverResponsiveProps} from "./PopoverResponsive";
3
+ import {Dialog, Popover} from "../..";
4
+ import {onMount} from "svelte";
5
+ import {getScreenWidth, SCREEN_BREAK_POINTS} from "../side-navigation/SideNavigation";
6
+
7
+ let {
8
+ children,
9
+ triggerRef,
10
+ class: className,
11
+ open = $bindable(),
12
+ offset = 3,
13
+ popoverPadding = 12,
14
+ focusTriggerAfterClose = true,
15
+ flip = false,
16
+ ...props
17
+ }: PopoverResponsiveProps & {
18
+ dialogPadding?: string,
19
+ popoverPadding?: number,
20
+ offset?: number,
21
+ open?: boolean,
22
+ focusTriggerAfterClose?: boolean,
23
+ flip?: boolean,
24
+ triggerRef?: HTMLElement,
25
+ } = $props();
26
+
27
+ let openPopover = $state(false)
28
+ let openDialog = $state(false)
29
+
30
+ $effect(() => {
31
+ open = openPopover || openDialog
32
+ })
33
+
34
+ $effect(() => {
35
+ toggleOpen(open)
36
+ })
37
+
38
+ function toggleOpen(open?: boolean) {
39
+ if (getScreenWidth() >= SCREEN_BREAK_POINTS.sm) {
40
+ if (open === undefined) {
41
+ openPopover = !(openDialog || openPopover)
42
+ } else {
43
+ openPopover = open
44
+ }
45
+ openDialog = false
46
+ } else {
47
+ if (open === undefined) {
48
+ openDialog = !(openDialog || openPopover)
49
+ } else {
50
+ openDialog = open
51
+ }
52
+ openPopover = false
53
+ }
54
+
55
+ console.log('toggleOpen Responsive Popover', open)
56
+ }
57
+
58
+ onMount(() => {
59
+ triggerRef?.addEventListener('click', (e) => {
60
+ e.stopPropagation()
61
+ toggleOpen()
62
+ })
63
+ })
64
+ </script>
65
+
66
+
67
+ <Popover bind:open={openPopover}
68
+ triggerRef={triggerRef}
69
+ autoTrigger={false}
70
+ padding={popoverPadding}
71
+ focusTriggerAfterClose={focusTriggerAfterClose}
72
+ offset={offset}
73
+ flip={flip}
74
+ class={className}
75
+ {...props}
76
+ >
77
+ {@render children?.()}
78
+ </Popover>
79
+
80
+ <Dialog bind:open={openDialog}
81
+ position="top"
82
+ padding="none"
83
+ class={className}
84
+ triggerRef={triggerRef}
85
+ focusTriggerAfterClose={focusTriggerAfterClose}
86
+ >
87
+ {@render children?.()}
88
88
  </Dialog>