@medyll/idae-slotui-svelte 0.26.0 → 0.28.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.
Files changed (187) hide show
  1. package/dist/base/alert/Alert.demo.svelte +10 -8
  2. package/dist/base/alert/Alert.svelte +56 -48
  3. package/dist/base/alert/types.d.ts +4 -4
  4. package/dist/base/alert/types.js +11 -11
  5. package/dist/base/avatar/Avatar.demo.svelte +12 -8
  6. package/dist/base/avatar/Avatar.preview.svelte +3 -2
  7. package/dist/base/avatar/Avatar.svelte +24 -19
  8. package/dist/base/avatar/types.d.ts +5 -5
  9. package/dist/base/avatar/types.js +9 -9
  10. package/dist/base/backdrop/Backdrop.demo.svelte +13 -9
  11. package/dist/base/backdrop/Backdrop.svelte +45 -37
  12. package/dist/base/backdrop/types.d.ts +7 -7
  13. package/dist/base/backdrop/types.js +10 -10
  14. package/dist/base/badge/Badge.svelte +22 -18
  15. package/dist/base/box/Box.demo.svelte +12 -9
  16. package/dist/base/box/Box.svelte +44 -36
  17. package/dist/base/box/types.d.ts +3 -3
  18. package/dist/base/box/types.js +16 -16
  19. package/dist/base/breadCrumb/BreadCrumb.svelte +12 -8
  20. package/dist/base/cartouche/Cartouche.demo.svelte +13 -9
  21. package/dist/base/cartouche/Cartouche.svelte +50 -43
  22. package/dist/base/cartouche/types.d.ts +7 -7
  23. package/dist/base/cartouche/types.js +20 -20
  24. package/dist/base/chipper/Chipper.demo.svelte +14 -10
  25. package/dist/base/chipper/Chipper.svelte +19 -14
  26. package/dist/base/chipper/types.d.ts +5 -5
  27. package/dist/base/chipper/types.js +10 -10
  28. package/dist/base/columner/Column.svelte +39 -31
  29. package/dist/base/columner/Columner.demo.svelte +4 -3
  30. package/dist/base/columner/Columner.svelte +12 -5
  31. package/dist/base/contentSwitcher/ContentSwitcher.demo.svelte +11 -8
  32. package/dist/base/contentSwitcher/ContentSwitcher.svelte +40 -30
  33. package/dist/base/contentSwitcher/types.d.ts +3 -3
  34. package/dist/base/contentSwitcher/types.js +6 -6
  35. package/dist/base/debug/Debug.svelte +14 -11
  36. package/dist/base/demoer/DemoPage.svelte +18 -12
  37. package/dist/base/demoer/Demoer.svelte +20 -16
  38. package/dist/base/demoer/DemoerCode.svelte +28 -6
  39. package/dist/base/demoer/DemoerComponent.svelte +33 -13
  40. package/dist/base/demoer/demoer.utils.d.ts +2 -1
  41. package/dist/base/demoer/demoer.utils.js +4 -1
  42. package/dist/base/divider/Divider.demo.svelte +12 -6
  43. package/dist/base/divider/Divider.svelte +58 -41
  44. package/dist/base/divider/types.d.ts +5 -5
  45. package/dist/base/divider/types.js +10 -10
  46. package/dist/base/icon/Icon.demo.svelte +8 -5
  47. package/dist/base/icon/Icon.svelte +34 -27
  48. package/dist/base/icon/types.d.ts +4 -4
  49. package/dist/base/icon/types.js +9 -9
  50. package/dist/base/paper/Paper.demo.svelte +12 -9
  51. package/dist/base/paper/Paper.svelte +13 -9
  52. package/dist/base/paper/type.d.ts +3 -3
  53. package/dist/base/paper/type.js +4 -4
  54. package/dist/base/titleBar/TitleBar.demo.svelte +11 -9
  55. package/dist/base/titleBar/TitleBar.svelte +16 -12
  56. package/dist/base/titleBar/types.d.ts +4 -4
  57. package/dist/base/titleBar/types.js +8 -8
  58. package/dist/controls/autocomplete/AutoComplete.demo.svelte +21 -16
  59. package/dist/controls/autocomplete/AutoComplete.svelte +81 -62
  60. package/dist/controls/button/Button.demo.svelte +71 -45
  61. package/dist/controls/button/Button.svelte +130 -155
  62. package/dist/controls/button/Button.svelte.d.ts +2 -27
  63. package/dist/controls/button/ButtonAction.svelte +122 -133
  64. package/dist/controls/button/ButtonAction.svelte.d.ts +3 -2
  65. package/dist/controls/button/ButtonMenu.svelte +22 -16
  66. package/dist/controls/button/IconButton.svelte +40 -14
  67. package/dist/controls/button/button-action.scss +1 -1
  68. package/dist/controls/button/button.scss +22 -47
  69. package/dist/controls/button/types.d.ts +19 -16
  70. package/dist/controls/button/types.js +26 -24
  71. package/dist/controls/checkbox/Checkbox.demo.svelte +13 -9
  72. package/dist/controls/checkbox/Checkbox.svelte +18 -14
  73. package/dist/controls/confirm/Confirm.demo.svelte +12 -8
  74. package/dist/controls/confirm/Confirm.preview.svelte +3 -2
  75. package/dist/controls/confirm/Confirm.svelte +87 -64
  76. package/dist/controls/inplaceedit/InPlaceEdit.demo.svelte +12 -8
  77. package/dist/controls/inplaceedit/InPlaceEdit.svelte +74 -55
  78. package/dist/controls/progress/Progress.demo.svelte +14 -9
  79. package/dist/controls/progress/Progress.svelte +19 -13
  80. package/dist/controls/rating/Rating.demo.svelte +11 -8
  81. package/dist/controls/rating/Rating.svelte +21 -16
  82. package/dist/controls/select/Select.demo.svelte +46 -37
  83. package/dist/controls/select/Select.svelte +76 -29
  84. package/dist/controls/slider/Slider.demo.svelte +14 -7
  85. package/dist/controls/slider/Slider.svelte +104 -89
  86. package/dist/controls/stepper/Stepper.demo.svelte +9 -6
  87. package/dist/controls/stepper/Stepper.svelte +19 -13
  88. package/dist/controls/switch/Switch.demo.svelte +31 -24
  89. package/dist/controls/switch/Switch.svelte +20 -15
  90. package/dist/controls/textfield/TextField.demo.svelte +28 -23
  91. package/dist/controls/textfield/TextField.svelte +42 -34
  92. package/dist/data/dataList/DataList.demo.svelte +44 -37
  93. package/dist/data/dataList/DataList.preview.svelte +8 -6
  94. package/dist/data/dataList/DataList.svelte +139 -115
  95. package/dist/data/dataList/DataList.svelte.d.ts +7 -8
  96. package/dist/data/dataList/DataListCell.svelte +146 -96
  97. package/dist/data/dataList/DataListHead.svelte +52 -36
  98. package/dist/data/dataList/DataListRow.svelte +57 -43
  99. package/dist/data/dataList/types.d.ts +16 -14
  100. package/dist/data/dataList/types.js +33 -33
  101. package/dist/data/finder/Finder.demo.svelte +15 -11
  102. package/dist/data/finder/Finder.svelte +64 -46
  103. package/dist/data/grouper/Grouper.demo.svelte +14 -8
  104. package/dist/data/grouper/Grouper.svelte +62 -50
  105. package/dist/data/jsoner/Jsoner.svelte +14 -10
  106. package/dist/data/list/List.svelte +6 -2
  107. package/dist/data/list/ListItem.svelte +5 -2
  108. package/dist/data/list/ListTitle.svelte +5 -2
  109. package/dist/data/loader/Loader.demo.svelte +16 -8
  110. package/dist/data/loader/Loader.preview.svelte +2 -1
  111. package/dist/data/loader/Loader.svelte +56 -49
  112. package/dist/data/sorter/Sorter.demo.svelte +20 -17
  113. package/dist/data/sorter/Sorter.svelte +40 -33
  114. package/dist/data/sorter/Sorterer.svelte +17 -15
  115. package/dist/index.d.ts +4 -4
  116. package/dist/index.js +4 -4
  117. package/dist/navigation/drawer/Drawer.demo.svelte +11 -7
  118. package/dist/navigation/drawer/Drawer.svelte +92 -81
  119. package/dist/navigation/tabs/Tabs.demo.svelte +23 -18
  120. package/dist/navigation/tabs/Tabs.preview.svelte +17 -14
  121. package/dist/navigation/tabs/Tabs.svelte +73 -61
  122. package/dist/slotui-css/button-action.css +1 -0
  123. package/dist/slotui-css/button-action.min.css +1 -0
  124. package/dist/slotui-css/button.css +83 -108
  125. package/dist/slotui-css/button.min.css +83 -108
  126. package/dist/slotui-css/slotui-combined.css +111 -135
  127. package/dist/styles/slotuisheet/SlotuiSheet.svelte +14 -11
  128. package/dist/styles/slotuisheet/SlotyuiSheet.demo.svelte +21 -17
  129. package/dist/ui/bootstrapp/BootStrApp.svelte +21 -15
  130. package/dist/ui/chromeFrame/ChromeFrame.svelte +19 -10
  131. package/dist/ui/chromeFrame/ChromeFrameButtonList.svelte +6 -4
  132. package/dist/ui/chromeFrame/ChromeFrameList.svelte +97 -58
  133. package/dist/ui/frame/Frame.demo.svelte +6 -4
  134. package/dist/ui/frame/Frame.svelte +51 -44
  135. package/dist/ui/frame/types.d.ts +5 -4
  136. package/dist/ui/frame/types.js +6 -5
  137. package/dist/ui/login/Login.demo.svelte +29 -21
  138. package/dist/ui/login/Login.svelte +49 -41
  139. package/dist/ui/marquee/Marque.demo.svelte +9 -6
  140. package/dist/ui/marquee/Marquee.svelte +69 -27
  141. package/dist/ui/menu/Menu.svelte +6 -2
  142. package/dist/ui/menu/MenuItem.svelte +6 -2
  143. package/dist/ui/menu/MenuTitle.svelte +5 -2
  144. package/dist/ui/menuList/MenuList.demo.svelte +14 -9
  145. package/dist/ui/menuList/MenuList.svelte +109 -96
  146. package/dist/ui/menuList/MenuListItem.svelte +85 -70
  147. package/dist/ui/menuList/MenuListTitle.svelte +5 -2
  148. package/dist/ui/panel/Panel.demo.svelte +37 -28
  149. package/dist/ui/panel/Panel.svelte +44 -34
  150. package/dist/ui/panel/PanelGrid.svelte +18 -14
  151. package/dist/ui/panel/PanelSlide.svelte +121 -79
  152. package/dist/ui/panel/Paneler.svelte +51 -24
  153. package/dist/ui/popper/Popper.demo.svelte +33 -25
  154. package/dist/ui/popper/Popper.svelte +105 -87
  155. package/dist/ui/popper/usePopper.d.ts +2 -2
  156. package/dist/ui/popper/usePopper.js +6 -6
  157. package/dist/ui/preview/Preview.svelte +18 -14
  158. package/dist/ui/serviceBox/ServiceBox.svelte +8 -6
  159. package/dist/ui/startMenu/BootMenu.svelte +32 -24
  160. package/dist/ui/taskbar/TaskBarContent.svelte +8 -7
  161. package/dist/ui/taskbar/Taskbar.svelte +15 -10
  162. package/dist/ui/themeswitcher/ThemeSwitcher.svelte +9 -7
  163. package/dist/ui/toast/Toast.demo.svelte +15 -10
  164. package/dist/ui/toast/Toast.svelte +57 -45
  165. package/dist/ui/toast/Toaster.svelte +4 -2
  166. package/dist/ui/toggleBar/ToggleBar.demo.svelte +69 -60
  167. package/dist/ui/toggleBar/ToggleBar.svelte +27 -23
  168. package/dist/ui/toolBar/ToolBar.demo.svelte +48 -38
  169. package/dist/ui/toolBar/ToolBar.svelte +16 -11
  170. package/dist/ui/tree/Tree.demo.svelte +53 -42
  171. package/dist/ui/tree/Tree.preview.svelte +14 -11
  172. package/dist/ui/tree/Tree.svelte +120 -67
  173. package/dist/ui/window/Window.demo.svelte +27 -19
  174. package/dist/ui/window/Window.svelte +95 -85
  175. package/dist/utils/content/Content.svelte +49 -43
  176. package/dist/utils/contextRooter/ContextRooter.demo.svelte +12 -8
  177. package/dist/utils/contextRooter/ContextRooter.svelte +5 -3
  178. package/dist/utils/css/Css.demo.svelte +2 -1
  179. package/dist/utils/css/Css.svelte +2 -1
  180. package/dist/utils/looper/Looper.demo.svelte +8 -6
  181. package/dist/utils/looper/Looper.svelte +27 -22
  182. package/dist/utils/slotted/Slotted.svelte +10 -1
  183. package/dist/utils/stylesheet/StyleSheet.demo.svelte +21 -17
  184. package/dist/utils/stylesheet/StyleSheet.svelte +14 -11
  185. package/package.json +3 -3
  186. package/dist/base/cartouche/Cartouche.preview.svelte +0 -25
  187. package/dist/base/cartouche/Cartouche.preview.svelte.d.ts +0 -27
@@ -1,38 +1,45 @@
1
- <script lang="ts">import Select from "./Select.svelte";
2
- import Button from "../button/Button.svelte";
3
- import { defaultsArgs, defaultsArgsFromProps } from "../../base/demoer/demoer.utils.js";
4
- import ComponentDemo from "../../base/demoer/DemoerComponent.svelte";
5
- import Demoer from "../../base/demoer/Demoer.svelte";
6
- import DemoPage from "../../base/demoer/DemoPage.svelte";
7
- import Icon from "../../base/icon/Icon.svelte";
8
- import { uiPresets } from "../../utils/engine/presets.js";
9
- import MenuItem from "../../ui/menu/MenuItem.svelte";
10
- let parametersSlot = {
11
- autoClose: {
12
- type: "boolean",
13
- values: [true, false]
14
- },
15
- stickToHookWidth: {
16
- type: "boolean",
17
- values: [false, true]
18
- },
19
- position: {
20
- type: "string",
21
- values: uiPresets.stickyPosition
22
- }
23
- };
24
- let componentArgsSlot = {
25
- ...defaultsArgs(parametersSlot),
26
- position: "BC",
27
- data: [
28
- { id: 1, name: "name 1" },
29
- { id: 2, name: "name 2" },
30
- { id: 3, name: "name 3" },
31
- { id: 4, name: "name 4" },
32
- { id: 5, name: "name 5" }
33
- ]
34
- };
35
- let codeSlot = `<script>
1
+ <script lang="ts">
2
+ import Select from './Select.svelte';
3
+ import Button from '../button/Button.svelte';
4
+ /* demo */
5
+ import { defaultsArgs, defaultsArgsFromProps } from '../../base/demoer/demoer.utils.js';
6
+ import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
7
+ import Demoer from '../../base/demoer/Demoer.svelte';
8
+ import DemoPage from '../../base/demoer/DemoPage.svelte';
9
+ import Icon from '../../base/icon/Icon.svelte';
10
+ import { uiPresets } from '../../utils/engine/presets.js';
11
+ /* demo */
12
+
13
+ import MenuItem from '../../ui/menu/MenuItem.svelte';
14
+
15
+ let parametersSlot: any = {
16
+ autoClose: {
17
+ type: 'boolean',
18
+ values: [true, false]
19
+ },
20
+ stickToHookWidth: {
21
+ type: 'boolean',
22
+ values: [false, true]
23
+ },
24
+ position: {
25
+ type: 'string',
26
+ values: uiPresets.stickyPosition
27
+ }
28
+ };
29
+
30
+ let componentArgsSlot = {
31
+ ...defaultsArgs(parametersSlot),
32
+ position: 'BC',
33
+ data: [
34
+ { id: 1, name: 'name 1' },
35
+ { id: 2, name: 'name 2' },
36
+ { id: 3, name: 'name 3' },
37
+ { id: 4, name: 'name 4' },
38
+ { id: 5, name: 'name 5' }
39
+ ]
40
+ };
41
+
42
+ let codeSlot = `<script>
36
43
  const data = [{id:1,name:'name'},{id:2,name:'name'}];
37
44
  <script>
38
45
 
@@ -52,7 +59,8 @@ let codeSlot = `<script>
52
59
  dataFieldName={"name"} />
53
60
  </Select>
54
61
  `;
55
- let codeProps = `
62
+
63
+ let codeProps = `
56
64
  <Loader
57
65
  status={"loading"}
58
66
  messages={{
@@ -65,7 +73,8 @@ let codeProps = `
65
73
  errorIcon="mdi:alert-circle-outline"
66
74
  loadingIcon="mdi:loading"
67
75
  successIcon="clarity:success-standard-line" />`;
68
- let isOpen = false;
76
+
77
+ let isOpen = false;
69
78
  </script>
70
79
 
71
80
  <ComponentDemo component="Select">
@@ -1,32 +1,79 @@
1
- <script lang="ts">import TextField from "../textfield/TextField.svelte";
2
- import Icon from "../../base/icon/Icon.svelte";
3
- import Popper from "../../ui/popper/Popper.svelte";
4
- import Menu from "../../ui/menu/Menu.svelte";
5
- import MenuItem from "../../ui/menu/MenuItem.svelte";
6
- import Slotted from "../../utils/slotted/Slotted.svelte";
7
- let {
8
- name,
9
- element,
10
- disabled = false,
11
- data,
12
- dataFieldId,
13
- dataFieldName,
14
- options = [],
15
- position,
16
- stickToHookWidth,
17
- autoClose = false,
18
- value = void 0,
19
- children,
20
- ...rest
21
- } = $props();
22
- let hiddenRef;
23
- let isVisible = false;
24
- let timerClick;
25
- const show = (visible) => (event) => {
26
- timerClick = setTimeout(() => {
27
- isVisible = visible;
28
- }, 250);
29
- };
1
+ <script lang="ts">
2
+ import type { CommonProps, Data, ElementProps, ExpandProps } from '../../types/index.js';
3
+ import TextField from '../textfield/TextField.svelte';
4
+ import Icon from '../../base/icon/Icon.svelte';
5
+ import Popper from '../../ui/popper/Popper.svelte';
6
+ import Menu from '../../ui/menu/Menu.svelte';
7
+ import MenuItem from '../../ui/menu/MenuItem.svelte';
8
+ import Slotted from '../../utils/slotted/Slotted.svelte';
9
+ import type { Snippet } from 'svelte';
10
+
11
+ type SelectProps = CommonProps & {
12
+ /** The position of the popper */
13
+ position?: ElementProps['popperPosition'];
14
+
15
+ /** Whether the popper should stick to the hook width */
16
+ stickToHookWidth: boolean;
17
+
18
+ /** Whether the popper should auto close */
19
+ autoClose?: boolean;
20
+
21
+ /** The value of the select */
22
+ value: any;
23
+
24
+ /** The name of the select */
25
+ name: string;
26
+
27
+ /** The style of the select */
28
+ style?: string;
29
+
30
+ /** The class name of the select */
31
+ className: string;
32
+
33
+ /** The data for the select */
34
+ data: any[];
35
+ disabled?: boolean;
36
+ /** The options for the select */
37
+ options?: {
38
+ data?: Data;
39
+ text: string;
40
+ icon?: any;
41
+ }[];
42
+
43
+ /** The data field id for the select */
44
+ dataFieldId: string;
45
+
46
+ /** The data field name for the select */
47
+ dataFieldName: string;
48
+ children?: Snippet<[{ optionsData: Data }]>;
49
+ };
50
+
51
+ let {
52
+ name,
53
+ element,
54
+ disabled = false,
55
+ data,
56
+ dataFieldId,
57
+ dataFieldName,
58
+ options = [],
59
+ position,
60
+ stickToHookWidth,
61
+ autoClose = false,
62
+ value = undefined,
63
+ children,
64
+ ...rest
65
+ }: ExpandProps<SelectProps> = $props();
66
+
67
+ let hiddenRef;
68
+ let isVisible: boolean = false;
69
+
70
+ let timerClick: any;
71
+
72
+ const show = (visible: boolean) => (event) => {
73
+ timerClick = setTimeout(() => {
74
+ isVisible = visible;
75
+ }, 250);
76
+ };
30
77
  </script>
31
78
 
32
79
  <input {value} bind:this={hiddenRef} type="hidden" {name} />
@@ -1,13 +1,20 @@
1
- <script lang="ts">import Slider from "./Slider.svelte";
2
- import ComponentDemo from "../../base/demoer/DemoerComponent.svelte";
3
- import Demoer from "../../base/demoer/Demoer.svelte";
4
- import DemoPage from "../../base/demoer/DemoPage.svelte";
5
- import { parameters, componentArgs } from "./types.js";
6
- let codeSlot = `
1
+ <script lang="ts">
2
+ import Slider from './Slider.svelte';
3
+
4
+ /* demo */
5
+ import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
6
+ import Demoer from '../../base/demoer/Demoer.svelte';
7
+ import DemoPage from '../../base/demoer/DemoPage.svelte';
8
+ /* demo */
9
+
10
+ import { parameters, componentArgs } from './types.js';
11
+
12
+ let codeSlot = `
7
13
  <Slider name={'switcher'} class="w-small" >
8
14
  <span />
9
15
  </Slider>`;
10
- let isOpen = false;
16
+
17
+ let isOpen = false;
11
18
  </script>
12
19
 
13
20
  <ComponentDemo component="Slider">
@@ -1,92 +1,107 @@
1
- <script lang="ts">let {
2
- class: className = "",
3
- style = "",
4
- dense = "default",
5
- element,
6
- elementInput,
7
- elementRail,
8
- value = $bindable(0),
9
- min = 0,
10
- max = 100,
11
- step = 1,
12
- orientation = "horizontal",
13
- reverse = false,
14
- disabled = false,
15
- onchange
16
- } = $props();
17
- let dragging = $state(false);
18
- let holding = $state(false);
19
- const steps = {
20
- increase() {
21
- value += step;
22
- if (value > max) value = max;
23
- },
24
- decrease() {
25
- value -= step;
26
- if (value < min) value = min;
27
- }
28
- };
29
- const move = {
30
- handle() {
31
- if (holding) {
32
- dragging = true;
33
- }
34
- },
35
- cancel() {
36
- holding = false;
37
- dragging = false;
38
- }
39
- };
40
- const key = {
41
- start(event2) {
42
- if (event2.cancelable) event2.preventDefault();
43
- holding = true;
44
- },
45
- mouseDown(event2) {
46
- if (event2.cancelable) event2.preventDefault();
47
- holding = true;
48
- },
49
- click(event2) {
50
- if (event2.cancelable) event2.preventDefault();
51
- getSliderVal(event2);
52
- holding = false;
53
- },
54
- keyDown(event2) {
55
- const { key: key2 } = event2;
56
- const up = !reverse ? steps.increase : steps.decrease;
57
- const down = !reverse ? steps.decrease : steps.increase;
58
- if (key2 === "ArrowDown" || key2 === "ArrowUp") event2.preventDefault();
59
- if (!disabled) {
60
- if (key2 === "ArrowLeft" || key2 === "ArrowDown" && !disabled) {
61
- up();
62
- } else if (key2 === "ArrowRight" || key2 === "ArrowUp" && !disabled) {
63
- down();
64
- }
65
- }
66
- }
67
- };
68
- let percentage = $derived(getPercentage(value));
69
- $effect(() => {
70
- if (value <= min) value = min;
71
- else if (value >= max) value = max;
72
- });
73
- $effect(() => {
74
- if (dragging) {
75
- getSliderVal(event);
76
- dragging = false;
77
- }
78
- });
79
- function getPercentage(val) {
80
- return (val - min) / (max - min) * 100;
81
- }
82
- function getSliderVal(event2) {
83
- const { clientX, clientY } = event2.touches ? event2.touches?.[0] : event2;
84
- const { left, top, width, height } = elementRail?.getBoundingClientRect();
85
- const offset = orientation === "horizontal" ? clientX - left : top + height - clientY;
86
- const size = orientation === "horizontal" ? width : height;
87
- const newValue = min + (max - min) * (offset / size);
88
- value = Math.round(newValue / step) * step;
89
- }
1
+ <script lang="ts">
2
+ import type { ExpandProps } from '../../types/index.js';
3
+ import type { SliderProps } from './types.js';
4
+
5
+ let {
6
+ class: className = '',
7
+ style = '',
8
+ dense = 'default',
9
+ element,
10
+ elementInput,
11
+ elementRail,
12
+ value = $bindable(0),
13
+ min = 0,
14
+ max = 100,
15
+ step = 1,
16
+ orientation = 'horizontal',
17
+ reverse = false,
18
+ disabled = false,
19
+ onchange
20
+ }: ExpandProps<SliderProps> = $props();
21
+
22
+ let dragging = $state(false);
23
+ let holding = $state(false);
24
+
25
+ const steps = {
26
+ increase() {
27
+ value += step;
28
+ if (value > max) value = max;
29
+ },
30
+ decrease() {
31
+ value -= step;
32
+ if (value < min) value = min;
33
+ }
34
+ };
35
+
36
+ const move = {
37
+ handle() {
38
+ if (holding) {
39
+ dragging = true;
40
+ }
41
+ },
42
+ cancel() {
43
+ holding = false;
44
+ dragging = false;
45
+ }
46
+ };
47
+
48
+ const key = {
49
+ start(event: Event) {
50
+ if (event.cancelable) event.preventDefault();
51
+ holding = true;
52
+ },
53
+ mouseDown(event: MouseEvent) {
54
+ if (event.cancelable) event.preventDefault();
55
+ holding = true;
56
+ },
57
+ click(event: MouseEvent) {
58
+ if (event.cancelable) event.preventDefault();
59
+ getSliderVal(event);
60
+ holding = false;
61
+ },
62
+ keyDown(event: KeyboardEvent) {
63
+ const { key } = event;
64
+ const up = !reverse ? steps.increase : steps.decrease;
65
+ const down = !reverse ? steps.decrease : steps.increase;
66
+ if (key === 'ArrowDown' || key === 'ArrowUp') event.preventDefault();
67
+ if (!disabled) {
68
+ if (key === 'ArrowLeft' || (key === 'ArrowDown' && !disabled)) {
69
+ up();
70
+ } else if (key === 'ArrowRight' || (key === 'ArrowUp' && !disabled)) {
71
+ down();
72
+ }
73
+ }
74
+ }
75
+ };
76
+
77
+ let percentage = $derived(getPercentage(value));
78
+ $effect(() => {
79
+ if (value <= min) value = min;
80
+ else if (value >= max) value = max;
81
+ });
82
+
83
+ $effect(() => {
84
+ if (dragging) {
85
+ getSliderVal(event);
86
+ dragging = false;
87
+ }
88
+ });
89
+
90
+ function getPercentage(val: number) {
91
+ return ((val - min) / (max - min)) * 100;
92
+ }
93
+
94
+ function getSliderVal(event: Event) {
95
+ // @ts-ignore
96
+ const { clientX, clientY } = (event.touches ? event.touches?.[0] : event) as TouchEvent;
97
+ // @ts-ignore
98
+ const { left, top, width, height } = elementRail?.getBoundingClientRect();
99
+ const offset = orientation === 'horizontal' ? clientX - left : top + height - clientY;
100
+ const size = orientation === 'horizontal' ? width : height;
101
+ const newValue = min + (max - min) * (offset / size);
102
+ //
103
+ value = Math.round(newValue / step) * step;
104
+ }
90
105
  </script>
91
106
 
92
107
  <svelte:window
@@ -1,9 +1,12 @@
1
- <script lang="ts">import Stepper from "./Stepper.svelte";
2
- import ComponentDemo from "../../base/demoer/DemoerComponent.svelte";
3
- import Demoer from "../../base/demoer/Demoer.svelte";
4
- import DemoPage from "../../base/demoer/DemoPage.svelte";
5
- import { parameters, componentArgs } from "./types.js";
6
- let code = `
1
+ <script lang="ts">
2
+ import Stepper from './Stepper.svelte';
3
+
4
+ import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
5
+ import Demoer from '../../base/demoer/Demoer.svelte';
6
+ import DemoPage from '../../base/demoer/DemoPage.svelte';
7
+ import { parameters, componentArgs } from './types.js';
8
+
9
+ let code = `
7
10
  <Stepper>
8
11
 
9
12
  </Stepper>`;
@@ -1,16 +1,22 @@
1
- <script lang="ts" generics="T = Data">import Slotted from "../../utils/slotted/Slotted.svelte";
2
- export const actions = {
3
- setActiveStep: function(step) {
4
- activeStep = step ?? 0;
5
- }
6
- };
7
- let {
8
- steps = $bindable([]),
9
- stepperOrientation = "horizontal",
10
- activeStep = $bindable(0),
11
- children
12
- } = $props();
13
- let child = children;
1
+ <script lang="ts" generics="T = Data">
2
+ import type { StepperProps } from './types.js';
3
+ import Slotted from '../../utils/slotted/Slotted.svelte';
4
+ import type { Data, ExpandProps } from '../../types/index.js';
5
+
6
+ export const actions = {
7
+ setActiveStep: function (step: number) {
8
+ activeStep = step ?? 0;
9
+ }
10
+ };
11
+
12
+ let {
13
+ steps = $bindable([]),
14
+ stepperOrientation = 'horizontal',
15
+ activeStep = $bindable(0),
16
+ children
17
+ }: ExpandProps<StepperProps<T>> = $props();
18
+
19
+ let child = children;
14
20
  </script>
15
21
 
16
22
  <div class="stepper {stepperOrientation}">
@@ -1,30 +1,37 @@
1
- <script lang="ts">import Switch from "./Switch.svelte";
2
- import { defaultsArgs, defaultsArgsFromProps } from "../../base/demoer/demoer.utils.js";
3
- import ComponentDemo from "../../base/demoer/DemoerComponent.svelte";
4
- import Demoer from "../../base/demoer/Demoer.svelte";
5
- import DemoPage from "../../base/demoer/DemoPage.svelte";
6
- import Icon from "../../base/icon/Icon.svelte";
7
- import { uiPresets } from "../../utils/engine/presets.js";
8
- let parametersSlot = {
9
- autoClose: {
10
- type: "boolean",
11
- values: [true, false]
12
- },
13
- stickToHookWidth: {
14
- type: "boolean",
15
- values: [true, false]
16
- },
17
- position: {
18
- type: "string",
19
- values: uiPresets.stickyPosition
20
- }
21
- };
22
- let componentArgs = defaultsArgs(parametersSlot);
23
- let codeSlot = `
1
+ <script lang="ts">
2
+ import Switch from './Switch.svelte';
3
+ import { defaultsArgs, defaultsArgsFromProps } from '../../base/demoer/demoer.utils.js';
4
+ /* demo */
5
+ import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
6
+ import Demoer from '../../base/demoer/Demoer.svelte';
7
+ import DemoPage from '../../base/demoer/DemoPage.svelte';
8
+ import Icon from '../../base/icon/Icon.svelte';
9
+ import { uiPresets } from '../../utils/engine/presets.js';
10
+ /* demo */
11
+
12
+ let parametersSlot: any = {
13
+ autoClose: {
14
+ type: 'boolean',
15
+ values: [true, false]
16
+ },
17
+ stickToHookWidth: {
18
+ type: 'boolean',
19
+ values: [true, false]
20
+ },
21
+ position: {
22
+ type: 'string',
23
+ values: uiPresets.stickyPosition
24
+ }
25
+ };
26
+
27
+ let componentArgs = defaultsArgs(parametersSlot);
28
+
29
+ let codeSlot = `
24
30
  <Switch name={'switcher'} class="w-small" >
25
31
 
26
32
  </Switch>`;
27
- let codeProps = `
33
+
34
+ let codeProps = `
28
35
  <Loader
29
36
  status={"loading"}
30
37
  messages={{
@@ -1,18 +1,23 @@
1
- <script lang="ts" generics="T=Data">import Slotted from "../../utils/slotted/Slotted.svelte";
2
- let {
3
- class: className = "",
4
- style = "",
5
- element = $bindable(null),
6
- name = $bindable(void 0),
7
- checked = $bindable(false),
8
- disabled = $bindable(false),
9
- metaData,
10
- onChange = (val, metaData2) => {
11
- },
12
- children,
13
- switchLabel
14
- } = $props();
15
- let hiddenRef;
1
+ <script lang="ts" generics="T=Data">
2
+ //
3
+ import type { Data, ExpandProps } from '../../types/index.js';
4
+ import Slotted from '../../utils/slotted/Slotted.svelte';
5
+ import type { SwitchProps } from './types.js';
6
+
7
+ let {
8
+ class: className = '',
9
+ style = '',
10
+ element = $bindable<HTMLElement | null>(null),
11
+ name = $bindable<string>(undefined),
12
+ checked = $bindable<boolean>(false),
13
+ disabled = $bindable<boolean>(false),
14
+ metaData,
15
+ onChange = (val: boolean, metaData: T) => {},
16
+ children,
17
+ switchLabel
18
+ }: ExpandProps<SwitchProps<T>> = $props();
19
+
20
+ let hiddenRef: HTMLInputElement;
16
21
  </script>
17
22
 
18
23
  <input bind:this={hiddenRef} {name} id={name} value={checked} type="hidden" />