@medyll/idae-slotui-svelte 0.122.1 → 0.124.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 (203) hide show
  1. package/README.md +47 -47
  2. package/dist/base/alert/Alert.demo.svelte +62 -62
  3. package/dist/base/alert/Alert.svelte +121 -121
  4. package/dist/base/alert/alert.scss +93 -93
  5. package/dist/base/avatar/Avatar.demo.svelte +41 -41
  6. package/dist/base/avatar/Avatar.preview.svelte +6 -6
  7. package/dist/base/avatar/Avatar.svelte +65 -65
  8. package/dist/base/avatar/avatar.scss +17 -17
  9. package/dist/base/backdrop/Backdrop.demo.svelte +49 -49
  10. package/dist/base/backdrop/Backdrop.svelte +78 -78
  11. package/dist/base/backdrop/backdrop.scss +34 -34
  12. package/dist/base/badge/Badge.svelte +31 -31
  13. package/dist/base/badge/badge.scss +19 -19
  14. package/dist/base/box/Box.demo.svelte +54 -54
  15. package/dist/base/box/Box.svelte +72 -72
  16. package/dist/base/box/box.scss +33 -33
  17. package/dist/base/breadCrumb/BreadCrumb.svelte +23 -23
  18. package/dist/base/breadCrumb/breadcrumb.scss +11 -11
  19. package/dist/base/cartouche/Cartouche.demo.svelte +108 -108
  20. package/dist/base/cartouche/Cartouche.svelte +114 -114
  21. package/dist/base/cartouche/cartouche.scss +114 -114
  22. package/dist/base/chipper/Chipper.demo.svelte +45 -45
  23. package/dist/base/chipper/Chipper.svelte +36 -36
  24. package/dist/base/chipper/chipper.scss +65 -65
  25. package/dist/base/columner/Column.svelte +62 -62
  26. package/dist/base/columner/Columner.demo.svelte +15 -15
  27. package/dist/base/columner/Columner.svelte +21 -21
  28. package/dist/base/contentSwitcher/ContentSwitcher.demo.svelte +45 -45
  29. package/dist/base/contentSwitcher/ContentSwitcher.svelte +63 -63
  30. package/dist/base/contentSwitcher/content-switcher.scss +22 -22
  31. package/dist/base/debug/Debug.svelte +21 -21
  32. package/dist/base/demoer/DemoPage.svelte +40 -40
  33. package/dist/base/demoer/Demoer.svelte +170 -170
  34. package/dist/base/demoer/DemoerCode.svelte +45 -45
  35. package/dist/base/demoer/DemoerComponent.svelte +50 -50
  36. package/dist/base/divider/Divider.demo.svelte +34 -34
  37. package/dist/base/divider/Divider.svelte +68 -68
  38. package/dist/base/divider/divider.scss +19 -19
  39. package/dist/base/icon/Icon.demo.svelte +24 -24
  40. package/dist/base/icon/Icon.svelte +117 -117
  41. package/dist/base/icon/icon.scss +17 -17
  42. package/dist/base/paper/Paper.demo.svelte +31 -31
  43. package/dist/base/paper/Paper.svelte +20 -20
  44. package/dist/base/paper/paper.scss +15 -15
  45. package/dist/base/titleBar/TitleBar.demo.svelte +30 -30
  46. package/dist/base/titleBar/TitleBar.svelte +40 -40
  47. package/dist/base/titleBar/title-bar.scss +29 -29
  48. package/dist/controls/autocomplete/AutoComplete.demo.svelte +88 -88
  49. package/dist/controls/autocomplete/AutoComplete.svelte +152 -152
  50. package/dist/controls/autocomplete/auto-complete.scss +15 -15
  51. package/dist/controls/button/Button.demo.svelte +165 -165
  52. package/dist/controls/button/Button.svelte +95 -95
  53. package/dist/controls/button/ButtonAction.svelte +55 -55
  54. package/dist/controls/button/ButtonMenu.svelte +55 -55
  55. package/dist/controls/button/IconButton.svelte +45 -45
  56. package/dist/controls/button/button-action.scss +8 -8
  57. package/dist/controls/button/button-menu.scss +36 -36
  58. package/dist/controls/button/button.scss +293 -293
  59. package/dist/controls/checkbox/Checkbox.demo.svelte +29 -29
  60. package/dist/controls/checkbox/Checkbox.svelte +59 -59
  61. package/dist/controls/checkbox/checkbox.scss +115 -115
  62. package/dist/controls/confirm/Confirm.demo.svelte +60 -60
  63. package/dist/controls/confirm/Confirm.preview.svelte +14 -14
  64. package/dist/controls/confirm/Confirm.svelte +156 -156
  65. package/dist/controls/confirm/confirm.scss +12 -12
  66. package/dist/controls/inplaceedit/InPlaceEdit.demo.svelte +41 -41
  67. package/dist/controls/inplaceedit/InPlaceEdit.svelte +109 -109
  68. package/dist/controls/progress/Progress.demo.svelte +30 -30
  69. package/dist/controls/progress/Progress.svelte +26 -26
  70. package/dist/controls/progress/progress.scss +23 -23
  71. package/dist/controls/rating/Rating.demo.svelte +45 -45
  72. package/dist/controls/rating/Rating.svelte +44 -44
  73. package/dist/controls/rating/rating.scss +9 -9
  74. package/dist/controls/select/Select.demo.svelte +101 -101
  75. package/dist/controls/select/Select.svelte +125 -125
  76. package/dist/controls/select/select.scss +13 -13
  77. package/dist/controls/slider/Slider.demo.svelte +34 -34
  78. package/dist/controls/slider/Slider.svelte +153 -153
  79. package/dist/controls/slider/slider.scss +51 -51
  80. package/dist/controls/stepper/Stepper.demo.svelte +32 -32
  81. package/dist/controls/stepper/Stepper.svelte +30 -30
  82. package/dist/controls/stepper/stepper.scss +23 -23
  83. package/dist/controls/switch/Switch.demo.svelte +61 -61
  84. package/dist/controls/switch/Switch.svelte +45 -45
  85. package/dist/controls/switch/switch.scss +73 -73
  86. package/dist/controls/textfield/TextField.demo.svelte +79 -79
  87. package/dist/controls/textfield/TextField.svelte +86 -86
  88. package/dist/controls/textfield/textfield.scss +68 -68
  89. package/dist/csss/csss.scss +10 -10
  90. package/dist/data/dataList/DataList.demo.svelte +151 -151
  91. package/dist/data/dataList/DataList.preview.svelte +23 -23
  92. package/dist/data/dataList/DataList.svelte +233 -233
  93. package/dist/data/dataList/DataListCell.svelte +212 -212
  94. package/dist/data/dataList/DataListHead.svelte +75 -75
  95. package/dist/data/dataList/DataListRow.svelte +93 -93
  96. package/dist/data/dataList/datalist.scss +157 -157
  97. package/dist/data/finder/Finder.demo.svelte +55 -55
  98. package/dist/data/finder/Finder.svelte +166 -166
  99. package/dist/data/finder/finder.scss +14 -14
  100. package/dist/data/grouper/Grouper.demo.svelte +36 -36
  101. package/dist/data/grouper/Grouper.svelte +85 -85
  102. package/dist/data/jsoner/Jsoner.svelte +40 -40
  103. package/dist/data/list/List.svelte +16 -16
  104. package/dist/data/list/ListItem.svelte +10 -10
  105. package/dist/data/list/ListTitle.svelte +8 -8
  106. package/dist/data/loader/Loader.demo.svelte +95 -95
  107. package/dist/data/loader/Loader.preview.svelte +7 -7
  108. package/dist/data/loader/Loader.svelte +99 -99
  109. package/dist/data/loader/loader.scss +50 -50
  110. package/dist/data/sorter/Sorter.demo.svelte +62 -62
  111. package/dist/data/sorter/Sorter.svelte +80 -80
  112. package/dist/data/sorter/Sorterer.svelte +27 -27
  113. package/dist/data/sorter/sorterer.scss +11 -11
  114. package/dist/index.d.ts +58 -57
  115. package/dist/index.js +58 -57
  116. package/dist/navigation/drawer/Drawer.demo.svelte +52 -52
  117. package/dist/navigation/drawer/Drawer.svelte +163 -163
  118. package/dist/navigation/drawer/drawer.scss +69 -69
  119. package/dist/navigation/tabs/Tabs.demo.svelte +83 -83
  120. package/dist/navigation/tabs/Tabs.preview.svelte +22 -22
  121. package/dist/navigation/tabs/Tabs.svelte +158 -158
  122. package/dist/navigation/tabs/tabs.scss +92 -92
  123. package/dist/slotui-css/slotui-css.css +141 -141
  124. package/dist/slotui-css/slotui-min-css.css +141 -141
  125. package/dist/styles/slotui-mixins.scss +168 -168
  126. package/dist/styles/slotui-presets.scss +56 -56
  127. package/dist/styles/slotuisheet/SlotuiSheet.svelte +36 -36
  128. package/dist/styles/slotuisheet/SlotyuiSheet.demo.svelte +28 -28
  129. package/dist/styles/slotuisheet/sheetConfig.scss +7 -7
  130. package/dist/styles/slotuisheet/slotui-sheet.scss +192 -192
  131. package/dist/styles/slotuisheet/stylesheet-container.scss +147 -147
  132. package/dist/styles/slotuisheet/stylesheet.scss +156 -156
  133. package/dist/types/slotui-ambient.d.ts +27 -27
  134. package/dist/ui/bootstrapp/BootStrApp.svelte +92 -92
  135. package/dist/ui/chromeFrame/ChromeFrame.svelte +43 -43
  136. package/dist/ui/chromeFrame/ChromeFrameButtonList.svelte +33 -33
  137. package/dist/ui/chromeFrame/ChromeFrameList.svelte +106 -106
  138. package/dist/ui/chromeFrame/chrome-frame.scss +34 -34
  139. package/dist/ui/frame/Frame.demo.svelte +48 -48
  140. package/dist/ui/frame/Frame.svelte +90 -90
  141. package/dist/ui/frame/frame.scss +46 -46
  142. package/dist/ui/login/Login.demo.svelte +62 -62
  143. package/dist/ui/login/Login.svelte +102 -102
  144. package/dist/ui/marquee/Marquee.demo.svelte +33 -33
  145. package/dist/ui/marquee/Marquee.svelte +97 -97
  146. package/dist/ui/marquee/marquee.scss +34 -34
  147. package/dist/ui/menu/Menu.svelte +9 -9
  148. package/dist/ui/menu/MenuItem.svelte +9 -9
  149. package/dist/ui/menu/MenuTitle.svelte +10 -10
  150. package/dist/ui/menu/menu.scss +61 -61
  151. package/dist/ui/menuList/MenuList.demo.svelte +73 -73
  152. package/dist/ui/menuList/MenuList.svelte +143 -143
  153. package/dist/ui/menuList/MenuListItem.svelte +134 -134
  154. package/dist/ui/menuList/MenuListTitle.svelte +10 -10
  155. package/dist/ui/menuList/menu-list.scss +120 -120
  156. package/dist/ui/panel/Panel.demo.svelte +169 -169
  157. package/dist/ui/panel/Panel.svelte +96 -96
  158. package/dist/ui/panel/PanelGrid.svelte +62 -62
  159. package/dist/ui/panel/PanelSlide.svelte +156 -156
  160. package/dist/ui/panel/Paneler.svelte +63 -63
  161. package/dist/ui/panel/panel.scss +32 -32
  162. package/dist/ui/popper/Popper.demo.svelte +92 -92
  163. package/dist/ui/popper/Popper.svelte +160 -160
  164. package/dist/ui/popper/popper.scss +108 -108
  165. package/dist/ui/preview/Preview.svelte +41 -41
  166. package/dist/ui/serviceBox/ServiceBox.svelte +24 -24
  167. package/dist/ui/startMenu/BootMenu.svelte +102 -102
  168. package/dist/ui/startMenu/boot-menu.scss +86 -86
  169. package/dist/ui/taskbar/TaskBarContent.svelte +20 -20
  170. package/dist/ui/taskbar/Taskbar.svelte +26 -26
  171. package/dist/ui/taskbar/taskbar.scss +28 -28
  172. package/dist/ui/themeswitcher/ThemeSwitcher.svelte +18 -18
  173. package/dist/ui/toast/Toast.demo.svelte +19 -19
  174. package/dist/ui/toast/Toast.svelte +60 -60
  175. package/dist/ui/toast/Toaster.svelte +18 -18
  176. package/dist/ui/toggleBar/ToggleBar.demo.svelte +114 -114
  177. package/dist/ui/toggleBar/ToggleBar.svelte +58 -58
  178. package/dist/ui/toggleBar/toggle-bar.scss +45 -45
  179. package/dist/ui/toolBar/ToolBar.demo.svelte +98 -98
  180. package/dist/ui/toolBar/ToolBar.svelte +30 -30
  181. package/dist/ui/toolBar/toolbar.scss +32 -32
  182. package/dist/ui/tree/Tree.demo.svelte +84 -84
  183. package/dist/ui/tree/Tree.preview.svelte +19 -19
  184. package/dist/ui/tree/Tree.svelte +182 -182
  185. package/dist/ui/tree/tree.scss +38 -38
  186. package/dist/ui/window/Window.demo.svelte +111 -111
  187. package/dist/ui/window/Window.svelte +177 -177
  188. package/dist/ui/window/window.scss +66 -66
  189. package/dist/utils/content/Content.svelte +78 -78
  190. package/dist/utils/contextRooter/ContextRooter.demo.svelte +33 -33
  191. package/dist/utils/contextRooter/ContextRooter.svelte +6 -6
  192. package/dist/utils/css/Css.demo.svelte +5 -5
  193. package/dist/utils/css/Css.svelte +64 -64
  194. package/dist/utils/effects/transitions.js +6 -6
  195. package/dist/utils/looper/Looper.demo.svelte +36 -36
  196. package/dist/utils/looper/Looper.svelte +47 -47
  197. package/dist/utils/slotted/Slotted.svelte +21 -21
  198. package/dist/utils/stylesheet/StyleSheet.demo.svelte +28 -28
  199. package/dist/utils/stylesheet/StyleSheet.svelte +30 -30
  200. package/dist/utils/stylesheet/containerConfig.scss +7 -7
  201. package/dist/utils/stylesheet/stylesheet.scss +147 -147
  202. package/dist/utils/uses/sx4u/sx4uPreprocess.js +34 -34
  203. package/package.json +3 -3
@@ -1,179 +1,179 @@
1
- <svelte:options />
2
-
3
- <script lang="ts">
4
- import { wStore } from './store.js';
5
- import Button from '../../controls/button/Button.svelte';
6
- import Icon from '../../base/icon/Icon.svelte';
7
- import { draggebler } from '../../utils/uses/draggabler.js';
8
- import { makeOnTop } from '../../utils/uses/makeOnTop.js';
9
- import { positioner } from '../../utils/uses/positioner.js';
10
- import Slotted from '../../utils/slotted/Slotted.svelte';
11
- import type { WindowProps } from './types.js';
12
- import type { ExpandProps } from '../../types/index.js';
13
- import IconButton from '../../controls/button/IconButton.svelte';
14
-
15
- let {
16
- class: className = '',
17
- style = '',
18
- element = $bindable(),
19
- component = undefined,
20
- componentProps = undefined,
21
- contentHTML = undefined,
22
- parentNode = undefined,
23
- icon = 'bx:window-alt',
24
- iconClose = 'codicon:close',
25
- iconValidate = 'el:ok-circle',
26
- flow = 'absolute',
27
- startPosition = undefined,
28
- closeOnValidate = true,
29
- removeFromDomOnClose = false,
30
- self = $bindable(),
31
- componentInstance,
32
- outer = true,
33
- frameId = crypto.randomUUID(),
34
- title = '',
35
- open = true,
36
- minimized = false,
37
- maximized = true,
38
- active = true,
39
- secondaryTitle = '',
40
- description = '',
41
- showHandle = true,
42
- onClose = () => {},
43
- onCancel = () => {},
44
- onValidate = () => {},
45
- hideAcceptButton = false,
46
- hideCloseButton = false,
47
- hideCancelButton = true,
48
- children,
49
- windowIcon,
50
- windowButtonZone
51
- }: ExpandProps<WindowProps> = $props();
52
-
53
- // used to link to form present in svelte:component
54
- let formRef: any;
55
-
56
- export const actions = {
57
- close: () => {
58
- open = false;
59
- if (onClose) onClose();
60
- delete $wStore.instances[frameId];
61
- if (removeFromDomOnClose && self) self.$destroy();
62
- },
63
- setActive: () => {
64
- if ($wStore.activatedFrame !== frameId) $wStore.activatedFrame = frameId;
65
- }
66
- };
67
-
68
- if (!$wStore?.instances?.[frameId]) {
69
- $wStore.instances[frameId] = componentInstance;
70
- if (active) $wStore.activatedFrame = frameId;
71
- }
72
-
73
- $effect(() => {
74
- if (element && $wStore.activatedFrame === frameId) {
75
- makeOnTop(element);
76
- }
77
-
78
- element?.addEventListener('mousedown', actions.setActive);
79
-
80
- return () => {
81
- if (removeFromDomOnClose) delete $wStore[frameId];
82
- };
83
- });
84
-
85
- function handleCancel(args: any) {
86
- if (onCancel) onCancel(args);
87
- }
88
-
89
- async function handleValidate(args: any) {
90
- let closable = true;
91
- console.log({ formRef });
92
- if (formRef && formRef.hasOwnProperty('submit')) {
93
- closable = await formRef.submit();
94
- }
95
- if (onValidate) onValidate(args);
96
- if (closeOnValidate && closable) actions.close();
97
- }
98
- </script>
99
-
100
- {#key startPosition}
101
- <dialog
102
- bind:this={element}
103
- {style}
104
- style:position={flow}
105
- style:display={open ? '' : 'none'}
106
- use:positioner={{ position: startPosition }}
107
- use:draggebler={{ disabled: false }}
108
- use:makeOnTop
109
- class="window {className} "
110
- class:active={$wStore.activatedFrame === frameId}
111
- >
112
- {#if showHandle}
113
- <header class="bar">
114
- {#if icon || windowIcon}
115
- <div class="bar-icon">
116
- <Slotted child={windowIcon}>
117
- <Icon iconSize="small" {icon} />
118
- </Slotted>
119
- </div>
120
- {/if}
121
- <div class="handle">{title ?? ''}</div>
122
- <div class="ctrlZone">
123
- <div>
124
- <IconButton
125
- variant="naked"
126
- icon={{ icon: iconClose, iconSize: 'small', color: 'red' }}
127
- style="aspect-ratio:1/1"
128
- onclick={actions.close}
129
- />
130
- </div>
131
- </div>
132
- </header>
133
- {/if}
134
- <div>
135
- <Slotted child={children}>
136
- {#key component}
137
- {#if component}
138
- <svelte:component this={component} {...componentProps} bind:this={formRef} />
139
- {/if}
140
- {/key}
141
- {#if contentHTML}
142
- {@html contentHTML}
143
- {/if}
144
- </Slotted>
145
- </div>
146
- {#if !hideCloseButton || !hideAcceptButton}
147
- <Slotted child={windowButtonZone}>
148
- <footer class="buttonZone">
149
- {#if !hideCloseButton}
150
- <Button width="auto" variant="naked" icon={iconClose} onclick={actions.close}
151
- >Close</Button
152
- >
153
- {/if}
154
- {#if !hideCancelButton}
155
- <Button
156
- width="auto"
157
- variant="naked"
158
- icon="ant-design:ellipsis-outlined"
159
- onclick={handleCancel}
160
- >Cancel
161
- </Button>
162
- {/if}
163
- {#if !hideAcceptButton}
164
- <Button width="auto" icon={iconValidate} onclick={handleValidate}>Validate</Button>
165
- {/if}
166
- </footer>
167
- </Slotted>
168
- {/if}
169
- </dialog>
170
- {/key}
171
-
172
- <!-- {#if outer}
173
- <svelte:self bind:this={componentInstance} outer={false} />
174
- {:else}
175
- {/if} -->
176
-
1
+ <svelte:options />
2
+
3
+ <script lang="ts">
4
+ import { wStore } from './store.js';
5
+ import Button from '../../controls/button/Button.svelte';
6
+ import Icon from '../../base/icon/Icon.svelte';
7
+ import { draggebler } from '../../utils/uses/draggabler.js';
8
+ import { makeOnTop } from '../../utils/uses/makeOnTop.js';
9
+ import { positioner } from '../../utils/uses/positioner.js';
10
+ import Slotted from '../../utils/slotted/Slotted.svelte';
11
+ import type { WindowProps } from './types.js';
12
+ import type { ExpandProps } from '../../types/index.js';
13
+ import IconButton from '../../controls/button/IconButton.svelte';
14
+
15
+ let {
16
+ class: className = '',
17
+ style = '',
18
+ element = $bindable(),
19
+ component = undefined,
20
+ componentProps = undefined,
21
+ contentHTML = undefined,
22
+ parentNode = undefined,
23
+ icon = 'bx:window-alt',
24
+ iconClose = 'codicon:close',
25
+ iconValidate = 'el:ok-circle',
26
+ flow = 'absolute',
27
+ startPosition = undefined,
28
+ closeOnValidate = true,
29
+ removeFromDomOnClose = false,
30
+ self = $bindable(),
31
+ componentInstance,
32
+ outer = true,
33
+ frameId = crypto.randomUUID(),
34
+ title = '',
35
+ open = true,
36
+ minimized = false,
37
+ maximized = true,
38
+ active = true,
39
+ secondaryTitle = '',
40
+ description = '',
41
+ showHandle = true,
42
+ onClose = () => {},
43
+ onCancel = () => {},
44
+ onValidate = () => {},
45
+ hideAcceptButton = false,
46
+ hideCloseButton = false,
47
+ hideCancelButton = true,
48
+ children,
49
+ windowIcon,
50
+ windowButtonZone
51
+ }: ExpandProps<WindowProps> = $props();
52
+
53
+ // used to link to form present in svelte:component
54
+ let formRef: any;
55
+
56
+ export const actions = {
57
+ close: () => {
58
+ open = false;
59
+ if (onClose) onClose();
60
+ delete $wStore.instances[frameId];
61
+ if (removeFromDomOnClose && self) self.$destroy();
62
+ },
63
+ setActive: () => {
64
+ if ($wStore.activatedFrame !== frameId) $wStore.activatedFrame = frameId;
65
+ }
66
+ };
67
+
68
+ if (!$wStore?.instances?.[frameId]) {
69
+ $wStore.instances[frameId] = componentInstance;
70
+ if (active) $wStore.activatedFrame = frameId;
71
+ }
72
+
73
+ $effect(() => {
74
+ if (element && $wStore.activatedFrame === frameId) {
75
+ makeOnTop(element);
76
+ }
77
+
78
+ element?.addEventListener('mousedown', actions.setActive);
79
+
80
+ return () => {
81
+ if (removeFromDomOnClose) delete $wStore[frameId];
82
+ };
83
+ });
84
+
85
+ function handleCancel(args: any) {
86
+ if (onCancel) onCancel(args);
87
+ }
88
+
89
+ async function handleValidate(args: any) {
90
+ let closable = true;
91
+ console.log({ formRef });
92
+ if (formRef && formRef.hasOwnProperty('submit')) {
93
+ closable = await formRef.submit();
94
+ }
95
+ if (onValidate) onValidate(args);
96
+ if (closeOnValidate && closable) actions.close();
97
+ }
98
+ </script>
99
+
100
+ {#key startPosition}
101
+ <dialog
102
+ bind:this={element}
103
+ {style}
104
+ style:position={flow}
105
+ style:display={open ? '' : 'none'}
106
+ use:positioner={{ position: startPosition }}
107
+ use:draggebler={{ disabled: false }}
108
+ use:makeOnTop
109
+ class="window {className} "
110
+ class:active={$wStore.activatedFrame === frameId}
111
+ >
112
+ {#if showHandle}
113
+ <header class="bar">
114
+ {#if icon || windowIcon}
115
+ <div class="bar-icon">
116
+ <Slotted child={windowIcon}>
117
+ <Icon iconSize="small" {icon} />
118
+ </Slotted>
119
+ </div>
120
+ {/if}
121
+ <div class="handle">{title ?? ''}</div>
122
+ <div class="ctrlZone">
123
+ <div>
124
+ <IconButton
125
+ variant="naked"
126
+ icon={{ icon: iconClose, iconSize: 'small', color: 'red' }}
127
+ style="aspect-ratio:1/1"
128
+ onclick={actions.close}
129
+ />
130
+ </div>
131
+ </div>
132
+ </header>
133
+ {/if}
134
+ <div>
135
+ <Slotted child={children}>
136
+ {#key component}
137
+ {#if component}
138
+ <svelte:component this={component} {...componentProps} bind:this={formRef} />
139
+ {/if}
140
+ {/key}
141
+ {#if contentHTML}
142
+ {@html contentHTML}
143
+ {/if}
144
+ </Slotted>
145
+ </div>
146
+ {#if !hideCloseButton || !hideAcceptButton}
147
+ <Slotted child={windowButtonZone}>
148
+ <footer class="buttonZone">
149
+ {#if !hideCloseButton}
150
+ <Button width="auto" variant="naked" icon={iconClose} onclick={actions.close}
151
+ >Close</Button
152
+ >
153
+ {/if}
154
+ {#if !hideCancelButton}
155
+ <Button
156
+ width="auto"
157
+ variant="naked"
158
+ icon="ant-design:ellipsis-outlined"
159
+ onclick={handleCancel}
160
+ >Cancel
161
+ </Button>
162
+ {/if}
163
+ {#if !hideAcceptButton}
164
+ <Button width="auto" icon={iconValidate} onclick={handleValidate}>Validate</Button>
165
+ {/if}
166
+ </footer>
167
+ </Slotted>
168
+ {/if}
169
+ </dialog>
170
+ {/key}
171
+
172
+ <!-- {#if outer}
173
+ <svelte:self bind:this={componentInstance} outer={false} />
174
+ {:else}
175
+ {/if} -->
176
+
177
177
  <style>:root {
178
178
  --window-border-radius: var(--sld-radius-small);
179
179
  --window-background-color: var(--sld-color-background);
@@ -233,4 +233,4 @@ dialog.window footer.buttonZone {
233
233
  }
234
234
  dialog.window .ctrlZone {
235
235
  display: flex;
236
- }</style>
236
+ }</style>
@@ -1,66 +1,66 @@
1
- @use "../../styles/slotui-mixins.scss";
2
-
3
- :root {
4
- --window-border-radius: var(--sld-radius-small);
5
- --window-background-color: var(--sld-color-background);
6
- --window-color: var(--sld-color-foreground);
7
- --window-border: 1px solid rgba(255, 255, 255, 0.1);
8
- --window-min-width: 250px;
9
- --window-z-index: 70000;
10
- --window-box-shadow: var(--sld-elevation-1);
11
- --window-active-border: 1px solid var(--sld-color-primary);
12
- --window-active-box-shadow: var(--sld-elevation-3);
13
- --window-header-bar-background-color: var(--sld-color-paper);
14
- --window-header-bar-padding: var(--sld-pad-tiny) 0;
15
- --window-header-bar-icon-padding: unset var(--sld-pad-med);
16
- --window-footer-button-zone-padding: var(--sld-pad-tiny);
17
- --window-footer-button-zone-gap: var(--sld-gap-small);
18
- }
19
-
20
- dialog.window {
21
- display: block;
22
- border-radius: var(--window-border-radius);
23
- background-color: var(--window-background-color);
24
- color: var(--window-color);
25
- border: var(--window-border);
26
- min-width: var(--window-min-width);
27
- top: 0;
28
- left: 0;
29
- overflow: hidden;
30
- z-index: var(--window-z-index);
31
- max-height: 100%;
32
- padding: 0;
33
- box-shadow: var(--window-box-shadow);
34
-
35
- &.active {
36
- border: var(--window-active-border);
37
- box-shadow: var(--window-active-box-shadow);
38
- }
39
-
40
- header.bar {
41
- display: flex;
42
- align-items: center;
43
- text-align: center;
44
- background-color: var(--window-header-bar-background-color);
45
- color: var(--window-color);
46
- padding: var(--window-header-bar-padding);
47
-
48
- &-icon {
49
- padding: var(--window-header-bar-icon-padding);
50
- }
51
- .handle {
52
- flex: 1;
53
- cursor: pointer;
54
- }
55
- }
56
-
57
- footer.buttonZone {
58
- padding: var(--window-footer-button-zone-padding);
59
- display: flex;
60
- justify-content: end;
61
- gap: var(--window-footer-button-zone-gap);
62
- }
63
- .ctrlZone {
64
- display: flex;
65
- }
66
- }
1
+ @use "../../styles/slotui-mixins.scss";
2
+
3
+ :root {
4
+ --window-border-radius: var(--sld-radius-small);
5
+ --window-background-color: var(--sld-color-background);
6
+ --window-color: var(--sld-color-foreground);
7
+ --window-border: 1px solid rgba(255, 255, 255, 0.1);
8
+ --window-min-width: 250px;
9
+ --window-z-index: 70000;
10
+ --window-box-shadow: var(--sld-elevation-1);
11
+ --window-active-border: 1px solid var(--sld-color-primary);
12
+ --window-active-box-shadow: var(--sld-elevation-3);
13
+ --window-header-bar-background-color: var(--sld-color-paper);
14
+ --window-header-bar-padding: var(--sld-pad-tiny) 0;
15
+ --window-header-bar-icon-padding: unset var(--sld-pad-med);
16
+ --window-footer-button-zone-padding: var(--sld-pad-tiny);
17
+ --window-footer-button-zone-gap: var(--sld-gap-small);
18
+ }
19
+
20
+ dialog.window {
21
+ display: block;
22
+ border-radius: var(--window-border-radius);
23
+ background-color: var(--window-background-color);
24
+ color: var(--window-color);
25
+ border: var(--window-border);
26
+ min-width: var(--window-min-width);
27
+ top: 0;
28
+ left: 0;
29
+ overflow: hidden;
30
+ z-index: var(--window-z-index);
31
+ max-height: 100%;
32
+ padding: 0;
33
+ box-shadow: var(--window-box-shadow);
34
+
35
+ &.active {
36
+ border: var(--window-active-border);
37
+ box-shadow: var(--window-active-box-shadow);
38
+ }
39
+
40
+ header.bar {
41
+ display: flex;
42
+ align-items: center;
43
+ text-align: center;
44
+ background-color: var(--window-header-bar-background-color);
45
+ color: var(--window-color);
46
+ padding: var(--window-header-bar-padding);
47
+
48
+ &-icon {
49
+ padding: var(--window-header-bar-icon-padding);
50
+ }
51
+ .handle {
52
+ flex: 1;
53
+ cursor: pointer;
54
+ }
55
+ }
56
+
57
+ footer.buttonZone {
58
+ padding: var(--window-footer-button-zone-padding);
59
+ display: flex;
60
+ justify-content: end;
61
+ gap: var(--window-footer-button-zone-gap);
62
+ }
63
+ .ctrlZone {
64
+ display: flex;
65
+ }
66
+ }
@@ -1,80 +1,80 @@
1
- <!--
2
- @component Content
3
- @ Adds css properties for width, height, offsetHeight, and offsetWidth to the style of the element.
4
- @ var(--${cssPrefix}-height)
5
- @ var(--${cssPrefix}-width)
6
- @ var(--${cssPrefix}-offset-height)
7
- @ var(--${cssPrefix}-offset-width)
8
- @ EThe content element will fire a custom 'dom:resize' event when the bindable properties change.
9
- -->
10
- <script lang="ts">
11
- import type { BindableEvent, ContentProps } from './types.js';
12
-
13
- let {
14
- element = $bindable(),
15
- dimensions = $bindable({
16
- clientHeight: element?.clientHeight,
17
- clientWidth: element?.clientWidth,
18
- offsetHeight: element?.offsetHeight,
19
- offsetWidth: element?.offsetWidth
20
- }),
21
- cssVar,
22
- cssPrefix = 'bind',
23
- tag = 'div',
24
- style = $bindable(''),
25
- solid = false,
26
- implementation = 'inline',
27
- onresize = (event: BindableEvent) => {},
28
- children,
29
- ...rest
30
- }: ContentProps = $props();
31
-
32
- cssVar = `--${cssPrefix}-height: ${dimensions.clientHeight}px;
33
- --${cssPrefix}-width: ${dimensions.clientWidth}px;
34
- --${cssPrefix}-offset-height: ${dimensions.offsetHeight}px;
35
- --${cssPrefix}-offset-width: ${dimensions.offsetWidth}px;`;
36
-
37
- $effect(() => {
38
- if (element && dimensions)
39
- element.dispatchEvent(
40
- new CustomEvent('dom:resize', {
41
- detail: { dimensions, element }
42
- })
43
- );
44
- });
45
-
46
- function transformToObj(dimensions: ContentProps['dimensions']) {
47
- let result = {} as any;
48
- for (let key in dimensions) {
49
- result[`--${cssPrefix}-${key}`] = `${dimensions[key as keyof ContentProps['dimensions']]}px`;
50
- }
51
- return result;
52
- }
53
-
54
- function applyStyle() {
55
- switch (implementation) {
56
- case 'inline':
57
- return `${cssVar};display:contents;${style ?? ''}`;
58
- case 'style':
59
- return `${cssVar};display:block;${style ?? ''}`;
60
- }
61
- }
62
- </script>
63
-
64
- <svelte:element
65
- this={tag}
66
- bind:this={element}
67
- bind:clientHeight={dimensions.clientHeight}
68
- bind:clientWidth={dimensions.clientWidth}
69
- bind:offsetHeight={dimensions.offsetHeight}
70
- bind:offsetWidth={dimensions.offsetWidth}
71
- style={`${cssVar};${style}`}
72
- class={'content ' + rest?.class}
73
- {...rest}
74
- >
75
- {@render children?.()}
76
- </svelte:element>
77
-
1
+ <!--
2
+ @component Content
3
+ @ Adds css properties for width, height, offsetHeight, and offsetWidth to the style of the element.
4
+ @ var(--${cssPrefix}-height)
5
+ @ var(--${cssPrefix}-width)
6
+ @ var(--${cssPrefix}-offset-height)
7
+ @ var(--${cssPrefix}-offset-width)
8
+ @ EThe content element will fire a custom 'dom:resize' event when the bindable properties change.
9
+ -->
10
+ <script lang="ts">
11
+ import type { BindableEvent, ContentProps } from './types.js';
12
+
13
+ let {
14
+ element = $bindable(),
15
+ dimensions = $bindable({
16
+ clientHeight: element?.clientHeight,
17
+ clientWidth: element?.clientWidth,
18
+ offsetHeight: element?.offsetHeight,
19
+ offsetWidth: element?.offsetWidth
20
+ }),
21
+ cssVar,
22
+ cssPrefix = 'bind',
23
+ tag = 'div',
24
+ style = $bindable(''),
25
+ solid = false,
26
+ implementation = 'inline',
27
+ onresize = (event: BindableEvent) => {},
28
+ children,
29
+ ...rest
30
+ }: ContentProps = $props();
31
+
32
+ cssVar = `--${cssPrefix}-height: ${dimensions.clientHeight}px;
33
+ --${cssPrefix}-width: ${dimensions.clientWidth}px;
34
+ --${cssPrefix}-offset-height: ${dimensions.offsetHeight}px;
35
+ --${cssPrefix}-offset-width: ${dimensions.offsetWidth}px;`;
36
+
37
+ $effect(() => {
38
+ if (element && dimensions)
39
+ element.dispatchEvent(
40
+ new CustomEvent('dom:resize', {
41
+ detail: { dimensions, element }
42
+ })
43
+ );
44
+ });
45
+
46
+ function transformToObj(dimensions: ContentProps['dimensions']) {
47
+ let result = {} as any;
48
+ for (let key in dimensions) {
49
+ result[`--${cssPrefix}-${key}`] = `${dimensions[key as keyof ContentProps['dimensions']]}px`;
50
+ }
51
+ return result;
52
+ }
53
+
54
+ function applyStyle() {
55
+ switch (implementation) {
56
+ case 'inline':
57
+ return `${cssVar};display:contents;${style ?? ''}`;
58
+ case 'style':
59
+ return `${cssVar};display:block;${style ?? ''}`;
60
+ }
61
+ }
62
+ </script>
63
+
64
+ <svelte:element
65
+ this={tag}
66
+ bind:this={element}
67
+ bind:clientHeight={dimensions.clientHeight}
68
+ bind:clientWidth={dimensions.clientWidth}
69
+ bind:offsetHeight={dimensions.offsetHeight}
70
+ bind:offsetWidth={dimensions.offsetWidth}
71
+ style={`${cssVar};${style}`}
72
+ class={'content ' + rest?.class}
73
+ {...rest}
74
+ >
75
+ {@render children?.()}
76
+ </svelte:element>
77
+
78
78
  <style>.content {
79
79
  width: var(--sld-width-small);
80
80
  }
@@ -182,4 +182,4 @@
182
182
  }
183
183
  .content.elevation-5, .content[elevation-5] {
184
184
  box-shadow: var(--sld-elevation-5);
185
- }</style>
185
+ }</style>