@medyll/idae-slotui-svelte 0.122.1 → 0.123.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.
- package/README.md +47 -47
- package/dist/base/alert/Alert.demo.svelte +62 -62
- package/dist/base/alert/Alert.svelte +121 -121
- package/dist/base/alert/alert.scss +93 -93
- package/dist/base/avatar/Avatar.demo.svelte +41 -41
- package/dist/base/avatar/Avatar.preview.svelte +6 -6
- package/dist/base/avatar/Avatar.svelte +65 -65
- package/dist/base/avatar/avatar.scss +17 -17
- package/dist/base/backdrop/Backdrop.demo.svelte +49 -49
- package/dist/base/backdrop/Backdrop.svelte +78 -78
- package/dist/base/backdrop/backdrop.scss +34 -34
- package/dist/base/badge/Badge.svelte +31 -31
- package/dist/base/badge/badge.scss +19 -19
- package/dist/base/box/Box.demo.svelte +54 -54
- package/dist/base/box/Box.svelte +72 -72
- package/dist/base/box/box.scss +33 -33
- package/dist/base/breadCrumb/BreadCrumb.svelte +23 -23
- package/dist/base/breadCrumb/breadcrumb.scss +11 -11
- package/dist/base/cartouche/Cartouche.demo.svelte +108 -108
- package/dist/base/cartouche/Cartouche.svelte +114 -114
- package/dist/base/cartouche/cartouche.scss +114 -114
- package/dist/base/chipper/Chipper.demo.svelte +45 -45
- package/dist/base/chipper/Chipper.svelte +36 -36
- package/dist/base/chipper/chipper.scss +65 -65
- package/dist/base/columner/Column.svelte +62 -62
- package/dist/base/columner/Columner.demo.svelte +15 -15
- package/dist/base/columner/Columner.svelte +21 -21
- package/dist/base/contentSwitcher/ContentSwitcher.demo.svelte +45 -45
- package/dist/base/contentSwitcher/ContentSwitcher.svelte +63 -63
- package/dist/base/contentSwitcher/content-switcher.scss +22 -22
- package/dist/base/debug/Debug.svelte +21 -21
- package/dist/base/demoer/DemoPage.svelte +40 -40
- package/dist/base/demoer/Demoer.svelte +170 -170
- package/dist/base/demoer/DemoerCode.svelte +45 -45
- package/dist/base/demoer/DemoerComponent.svelte +50 -50
- package/dist/base/divider/Divider.demo.svelte +34 -34
- package/dist/base/divider/Divider.svelte +68 -68
- package/dist/base/divider/divider.scss +19 -19
- package/dist/base/icon/Icon.demo.svelte +24 -24
- package/dist/base/icon/Icon.svelte +117 -117
- package/dist/base/icon/icon.scss +17 -17
- package/dist/base/paper/Paper.demo.svelte +31 -31
- package/dist/base/paper/Paper.svelte +20 -20
- package/dist/base/paper/paper.scss +15 -15
- package/dist/base/titleBar/TitleBar.demo.svelte +30 -30
- package/dist/base/titleBar/TitleBar.svelte +40 -40
- package/dist/base/titleBar/title-bar.scss +29 -29
- package/dist/controls/autocomplete/AutoComplete.demo.svelte +88 -88
- package/dist/controls/autocomplete/AutoComplete.svelte +152 -152
- package/dist/controls/autocomplete/auto-complete.scss +15 -15
- package/dist/controls/button/Button.demo.svelte +165 -165
- package/dist/controls/button/Button.svelte +95 -95
- package/dist/controls/button/ButtonAction.svelte +55 -55
- package/dist/controls/button/ButtonMenu.svelte +55 -55
- package/dist/controls/button/IconButton.svelte +45 -45
- package/dist/controls/button/button-action.scss +8 -8
- package/dist/controls/button/button-menu.scss +36 -36
- package/dist/controls/button/button.scss +293 -293
- package/dist/controls/checkbox/Checkbox.demo.svelte +29 -29
- package/dist/controls/checkbox/Checkbox.svelte +59 -59
- package/dist/controls/checkbox/checkbox.scss +115 -115
- package/dist/controls/confirm/Confirm.demo.svelte +60 -60
- package/dist/controls/confirm/Confirm.preview.svelte +14 -14
- package/dist/controls/confirm/Confirm.svelte +156 -156
- package/dist/controls/confirm/confirm.scss +12 -12
- package/dist/controls/inplaceedit/InPlaceEdit.demo.svelte +41 -41
- package/dist/controls/inplaceedit/InPlaceEdit.svelte +109 -109
- package/dist/controls/progress/Progress.demo.svelte +30 -30
- package/dist/controls/progress/Progress.svelte +26 -26
- package/dist/controls/progress/progress.scss +23 -23
- package/dist/controls/rating/Rating.demo.svelte +45 -45
- package/dist/controls/rating/Rating.svelte +44 -44
- package/dist/controls/rating/rating.scss +9 -9
- package/dist/controls/select/Select.demo.svelte +101 -101
- package/dist/controls/select/Select.svelte +125 -125
- package/dist/controls/select/select.scss +13 -13
- package/dist/controls/slider/Slider.demo.svelte +34 -34
- package/dist/controls/slider/Slider.svelte +153 -153
- package/dist/controls/slider/slider.scss +51 -51
- package/dist/controls/stepper/Stepper.demo.svelte +32 -32
- package/dist/controls/stepper/Stepper.svelte +30 -30
- package/dist/controls/stepper/stepper.scss +23 -23
- package/dist/controls/switch/Switch.demo.svelte +61 -61
- package/dist/controls/switch/Switch.svelte +45 -45
- package/dist/controls/switch/switch.scss +73 -73
- package/dist/controls/textfield/TextField.demo.svelte +79 -79
- package/dist/controls/textfield/TextField.svelte +86 -86
- package/dist/controls/textfield/textfield.scss +68 -68
- package/dist/csss/csss.scss +10 -10
- package/dist/data/dataList/DataList.demo.svelte +151 -151
- package/dist/data/dataList/DataList.preview.svelte +23 -23
- package/dist/data/dataList/DataList.svelte +233 -233
- package/dist/data/dataList/DataListCell.svelte +212 -212
- package/dist/data/dataList/DataListHead.svelte +75 -75
- package/dist/data/dataList/DataListRow.svelte +93 -93
- package/dist/data/dataList/datalist.scss +157 -157
- package/dist/data/finder/Finder.demo.svelte +55 -55
- package/dist/data/finder/Finder.svelte +166 -166
- package/dist/data/finder/finder.scss +14 -14
- package/dist/data/grouper/Grouper.demo.svelte +36 -36
- package/dist/data/grouper/Grouper.svelte +85 -85
- package/dist/data/jsoner/Jsoner.svelte +40 -40
- package/dist/data/list/List.svelte +16 -16
- package/dist/data/list/ListItem.svelte +10 -10
- package/dist/data/list/ListTitle.svelte +8 -8
- package/dist/data/loader/Loader.demo.svelte +95 -95
- package/dist/data/loader/Loader.preview.svelte +7 -7
- package/dist/data/loader/Loader.svelte +99 -99
- package/dist/data/loader/loader.scss +50 -50
- package/dist/data/sorter/Sorter.demo.svelte +62 -62
- package/dist/data/sorter/Sorter.svelte +80 -80
- package/dist/data/sorter/Sorterer.svelte +27 -27
- package/dist/data/sorter/sorterer.scss +11 -11
- package/dist/index.d.ts +39 -38
- package/dist/index.js +39 -38
- package/dist/navigation/drawer/Drawer.demo.svelte +52 -52
- package/dist/navigation/drawer/Drawer.svelte +163 -163
- package/dist/navigation/drawer/drawer.scss +69 -69
- package/dist/navigation/tabs/Tabs.demo.svelte +83 -83
- package/dist/navigation/tabs/Tabs.preview.svelte +22 -22
- package/dist/navigation/tabs/Tabs.svelte +158 -158
- package/dist/navigation/tabs/tabs.scss +92 -92
- package/dist/slotui-css/slotui-css.css +141 -141
- package/dist/slotui-css/slotui-min-css.css +141 -141
- package/dist/styles/slotui-mixins.scss +168 -168
- package/dist/styles/slotui-presets.scss +56 -56
- package/dist/styles/slotuisheet/SlotuiSheet.svelte +36 -36
- package/dist/styles/slotuisheet/SlotyuiSheet.demo.svelte +28 -28
- package/dist/styles/slotuisheet/sheetConfig.scss +7 -7
- package/dist/styles/slotuisheet/slotui-sheet.scss +192 -192
- package/dist/styles/slotuisheet/stylesheet-container.scss +147 -147
- package/dist/styles/slotuisheet/stylesheet.scss +156 -156
- package/dist/types/slotui-ambient.d.ts +27 -27
- package/dist/ui/bootstrapp/BootStrApp.svelte +92 -92
- package/dist/ui/chromeFrame/ChromeFrame.svelte +43 -43
- package/dist/ui/chromeFrame/ChromeFrameButtonList.svelte +33 -33
- package/dist/ui/chromeFrame/ChromeFrameList.svelte +106 -106
- package/dist/ui/chromeFrame/chrome-frame.scss +34 -34
- package/dist/ui/frame/Frame.demo.svelte +48 -48
- package/dist/ui/frame/Frame.svelte +90 -90
- package/dist/ui/frame/frame.scss +46 -46
- package/dist/ui/login/Login.demo.svelte +62 -62
- package/dist/ui/login/Login.svelte +102 -102
- package/dist/ui/marquee/Marquee.demo.svelte +33 -33
- package/dist/ui/marquee/Marquee.svelte +97 -97
- package/dist/ui/marquee/marquee.scss +34 -34
- package/dist/ui/menu/Menu.svelte +9 -9
- package/dist/ui/menu/MenuItem.svelte +9 -9
- package/dist/ui/menu/MenuTitle.svelte +10 -10
- package/dist/ui/menu/menu.scss +61 -61
- package/dist/ui/menuList/MenuList.demo.svelte +73 -73
- package/dist/ui/menuList/MenuList.svelte +143 -143
- package/dist/ui/menuList/MenuListItem.svelte +134 -134
- package/dist/ui/menuList/MenuListTitle.svelte +10 -10
- package/dist/ui/menuList/menu-list.scss +120 -120
- package/dist/ui/panel/Panel.demo.svelte +169 -169
- package/dist/ui/panel/Panel.svelte +96 -96
- package/dist/ui/panel/PanelGrid.svelte +62 -62
- package/dist/ui/panel/PanelSlide.svelte +156 -156
- package/dist/ui/panel/Paneler.svelte +63 -63
- package/dist/ui/panel/panel.scss +32 -32
- package/dist/ui/popper/Popper.demo.svelte +92 -92
- package/dist/ui/popper/Popper.svelte +160 -160
- package/dist/ui/popper/popper.scss +108 -108
- package/dist/ui/preview/Preview.svelte +41 -41
- package/dist/ui/serviceBox/ServiceBox.svelte +24 -24
- package/dist/ui/startMenu/BootMenu.svelte +102 -102
- package/dist/ui/startMenu/boot-menu.scss +86 -86
- package/dist/ui/taskbar/TaskBarContent.svelte +20 -20
- package/dist/ui/taskbar/Taskbar.svelte +26 -26
- package/dist/ui/taskbar/taskbar.scss +28 -28
- package/dist/ui/themeswitcher/ThemeSwitcher.svelte +18 -18
- package/dist/ui/toast/Toast.demo.svelte +19 -19
- package/dist/ui/toast/Toast.svelte +60 -60
- package/dist/ui/toast/Toaster.svelte +18 -18
- package/dist/ui/toggleBar/ToggleBar.demo.svelte +114 -114
- package/dist/ui/toggleBar/ToggleBar.svelte +58 -58
- package/dist/ui/toggleBar/toggle-bar.scss +45 -45
- package/dist/ui/toolBar/ToolBar.demo.svelte +98 -98
- package/dist/ui/toolBar/ToolBar.svelte +30 -30
- package/dist/ui/toolBar/toolbar.scss +32 -32
- package/dist/ui/tree/Tree.demo.svelte +84 -84
- package/dist/ui/tree/Tree.preview.svelte +19 -19
- package/dist/ui/tree/Tree.svelte +182 -182
- package/dist/ui/tree/tree.scss +38 -38
- package/dist/ui/window/Window.demo.svelte +111 -111
- package/dist/ui/window/Window.svelte +177 -177
- package/dist/ui/window/window.scss +66 -66
- package/dist/utils/content/Content.svelte +78 -78
- package/dist/utils/contextRooter/ContextRooter.demo.svelte +33 -33
- package/dist/utils/contextRooter/ContextRooter.svelte +6 -6
- package/dist/utils/css/Css.demo.svelte +5 -5
- package/dist/utils/css/Css.svelte +64 -64
- package/dist/utils/effects/transitions.js +6 -6
- package/dist/utils/looper/Looper.demo.svelte +36 -36
- package/dist/utils/looper/Looper.svelte +47 -47
- package/dist/utils/slotted/Slotted.svelte +21 -21
- package/dist/utils/stylesheet/StyleSheet.demo.svelte +28 -28
- package/dist/utils/stylesheet/StyleSheet.svelte +30 -30
- package/dist/utils/stylesheet/containerConfig.scss +7 -7
- package/dist/utils/stylesheet/stylesheet.scss +147 -147
- package/dist/utils/uses/sx4u/sx4uPreprocess.js +34 -34
- package/package.json +3 -3
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Paneler from './Paneler.svelte';
|
|
3
|
-
import PanelSlide from './PanelSlide.svelte';
|
|
4
|
-
import Panel from './Panel.svelte';
|
|
5
|
-
import PanelGrid from './PanelGrid.svelte';
|
|
6
|
-
|
|
7
|
-
/* demo */
|
|
8
|
-
import { defaultsArgs } from '../../base/demoer/demoer.utils.js';
|
|
9
|
-
import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
|
|
10
|
-
import Demoer from '../../base/demoer/Demoer.svelte';
|
|
11
|
-
import DemoPage from '../../base/demoer/DemoPage.svelte';
|
|
12
|
-
/* demo */
|
|
13
|
-
|
|
14
|
-
let parametersSlot: any = {
|
|
15
|
-
isOpen: {
|
|
16
|
-
type: 'boolean',
|
|
17
|
-
values: [true, false]
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
$: componentArgsSlot = {
|
|
22
|
-
...defaultsArgs(parametersSlot),
|
|
23
|
-
onClose: () => {
|
|
24
|
-
componentArgsSlot.open = !componentArgsSlot.open;
|
|
25
|
-
},
|
|
26
|
-
data: [
|
|
27
|
-
{ id: 1, name: 'name' },
|
|
28
|
-
{ id: 2, name: 'name' },
|
|
29
|
-
{ id: 3, name: 'name' },
|
|
30
|
-
{ id: 4, name: 'name' }
|
|
31
|
-
]
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
//
|
|
35
|
-
let codeSlot = `
|
|
36
|
-
<script>
|
|
37
|
-
import Paneler from "./Paneler.svelte";
|
|
38
|
-
import PanelSlide from "./PanelSlide.svelte";
|
|
39
|
-
import Panel from "./Panel.svelte";
|
|
40
|
-
import PanelGrid from "./PanelGrid.svelte";
|
|
41
|
-
<\/script>
|
|
42
|
-
|
|
43
|
-
<Paneler style="width:450px;height:450px;overflow:hidden;">
|
|
44
|
-
<PanelSlide
|
|
45
|
-
class="overflow-x-hidden overflow-y-auto"
|
|
46
|
-
open={true}>
|
|
47
|
-
<Panel data={{ some: "data" }} title="Some Items">
|
|
48
|
-
<PanelGrid data={[...Array(9)]} let:data>
|
|
49
|
-
<div class="pad border radius-tiny">Some</div>
|
|
50
|
-
{#snippet panelGridZoom()}
|
|
51
|
-
<div class="pad-4 text-center theme-bg-primary">Some large</div>
|
|
52
|
-
{/snippet}
|
|
53
|
-
Some large
|
|
54
|
-
</div>
|
|
55
|
-
</PanelGrid>
|
|
56
|
-
</Panel>
|
|
57
|
-
<Panel title="Recent Items">
|
|
58
|
-
<PanelGrid data={[...Array(12)]} columns={6}>
|
|
59
|
-
<div class="pad border radius-tiny">Recent</div>
|
|
60
|
-
</PanelGrid>
|
|
61
|
-
</Panel>
|
|
62
|
-
<Panel title="Other Items">
|
|
63
|
-
<PanelGrid data={[...Array(7)]} columns={2}>
|
|
64
|
-
<div class="pad border radius-tiny">Others</div>
|
|
65
|
-
</PanelGrid>
|
|
66
|
-
</Panel>
|
|
67
|
-
</PanelSlide>
|
|
68
|
-
<PanelSlide
|
|
69
|
-
class="overflow-x-hidden overflow-y-auto"
|
|
70
|
-
let:panelSlideId
|
|
71
|
-
open={false}
|
|
72
|
-
let:data>
|
|
73
|
-
<Panel title="Zoom area">
|
|
74
|
-
<PanelGrid data={[...Array(130)]} columns={1}>
|
|
75
|
-
<div class="pad border radius-tiny">
|
|
76
|
-
list item for {panelSlideId}
|
|
77
|
-
</div>
|
|
78
|
-
</PanelGrid>
|
|
79
|
-
</Panel>
|
|
80
|
-
</PanelSlide>
|
|
81
|
-
</Paneler>
|
|
82
|
-
`;
|
|
83
|
-
|
|
84
|
-
let codeProps = `
|
|
85
|
-
<Button
|
|
86
|
-
onclick={() => {
|
|
87
|
-
openWindow("html", {
|
|
88
|
-
componentProps: { some: "props", someother: "deprops" },
|
|
89
|
-
contentHTML:
|
|
90
|
-
'<div class="pad-4 align-center">some html content</div>',
|
|
91
|
-
});
|
|
92
|
-
}}>
|
|
93
|
-
Window with html content
|
|
94
|
-
</Button>
|
|
95
|
-
|
|
96
|
-
<Button
|
|
97
|
-
onclick={() => {
|
|
98
|
-
openWindow("component", {
|
|
99
|
-
component: Debug,
|
|
100
|
-
componentProps: { some: "props", someother: "deprops" },
|
|
101
|
-
});
|
|
102
|
-
}}>
|
|
103
|
-
Window with component
|
|
104
|
-
</Button>`;
|
|
105
|
-
</script>
|
|
106
|
-
|
|
107
|
-
<ComponentDemo
|
|
108
|
-
component="Panel"
|
|
109
|
-
cite="If you can slide, then there are chances you are a panel<br /> C. Quin 2013"
|
|
110
|
-
>
|
|
111
|
-
<div class="flex-v gap-large">
|
|
112
|
-
<DemoPage code={codeSlot} component="Panel">
|
|
113
|
-
<Demoer parameters={parametersSlot} componentArgs={componentArgsSlot}>
|
|
114
|
-
{#snippet children({ activeParams })}
|
|
115
|
-
<div class=" w-full pad pos-rel">
|
|
116
|
-
<Paneler style="width:450px;height:450px;overflow:hidden;">
|
|
117
|
-
<PanelSlide class="overflow-x-hidden overflow-y-auto" open={true}>
|
|
118
|
-
<Panel data={{ some: 'data' }} title="Some Items">
|
|
119
|
-
<PanelGrid data={[...Array(9)]}>
|
|
120
|
-
{#snippet children({ data })}
|
|
121
|
-
<div class="pad border radius-tiny">Some</div>
|
|
122
|
-
{/snippet}
|
|
123
|
-
{#snippet panelGridZoom()}
|
|
124
|
-
<div class="pad-4 text-center theme-bg-primary">Some large</div>
|
|
125
|
-
{/snippet}
|
|
126
|
-
</PanelGrid>
|
|
127
|
-
</Panel>
|
|
128
|
-
<Panel title="More Items">
|
|
129
|
-
<PanelGrid data={[...Array(12)]} columns={6}>
|
|
130
|
-
<div class="pad border radius-tiny">More</div>
|
|
131
|
-
</PanelGrid>
|
|
132
|
-
</Panel>
|
|
133
|
-
<!-- <Panel title="Other Items">
|
|
134
|
-
<PanelGrid data={[...Array(7)]} columns={2}>
|
|
135
|
-
<div class="pad border radius-tiny">Others</div>
|
|
136
|
-
</PanelGrid>
|
|
137
|
-
</Panel> -->
|
|
138
|
-
{#snippet panelSlideZoom()}
|
|
139
|
-
<Panel title="Zoom area">
|
|
140
|
-
{#snippet children({ data, panelSlideId })}
|
|
141
|
-
<Panel title="Zoom area">
|
|
142
|
-
<PanelGrid data={[...Array(130)]} columns={1}>
|
|
143
|
-
<div class="pad border radius-tiny">
|
|
144
|
-
list item for {panelSlideId}
|
|
145
|
-
</div>
|
|
146
|
-
</PanelGrid>
|
|
147
|
-
</Panel>
|
|
148
|
-
{/snippet}
|
|
149
|
-
</Panel>
|
|
150
|
-
{/snippet}
|
|
151
|
-
</PanelSlide>
|
|
152
|
-
<PanelSlide class="overflow-x-hidden overflow-y-auto" open={false}
|
|
153
|
-
>{#snippet children({ data, panelSlideId })}
|
|
154
|
-
<Panel title="Zoom area">
|
|
155
|
-
<PanelGrid data={[...Array(130)]} columns={1}>
|
|
156
|
-
<div class="pad border radius-tiny">
|
|
157
|
-
list item for {panelSlideId}
|
|
158
|
-
</div>
|
|
159
|
-
</PanelGrid>
|
|
160
|
-
</Panel>
|
|
161
|
-
{/snippet}
|
|
162
|
-
</PanelSlide>
|
|
163
|
-
</Paneler>
|
|
164
|
-
</div>
|
|
165
|
-
{/snippet}
|
|
166
|
-
</Demoer>
|
|
167
|
-
</DemoPage>
|
|
168
|
-
</div>
|
|
169
|
-
</ComponentDemo>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Paneler from './Paneler.svelte';
|
|
3
|
+
import PanelSlide from './PanelSlide.svelte';
|
|
4
|
+
import Panel from './Panel.svelte';
|
|
5
|
+
import PanelGrid from './PanelGrid.svelte';
|
|
6
|
+
|
|
7
|
+
/* demo */
|
|
8
|
+
import { defaultsArgs } from '../../base/demoer/demoer.utils.js';
|
|
9
|
+
import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
|
|
10
|
+
import Demoer from '../../base/demoer/Demoer.svelte';
|
|
11
|
+
import DemoPage from '../../base/demoer/DemoPage.svelte';
|
|
12
|
+
/* demo */
|
|
13
|
+
|
|
14
|
+
let parametersSlot: any = {
|
|
15
|
+
isOpen: {
|
|
16
|
+
type: 'boolean',
|
|
17
|
+
values: [true, false]
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
$: componentArgsSlot = {
|
|
22
|
+
...defaultsArgs(parametersSlot),
|
|
23
|
+
onClose: () => {
|
|
24
|
+
componentArgsSlot.open = !componentArgsSlot.open;
|
|
25
|
+
},
|
|
26
|
+
data: [
|
|
27
|
+
{ id: 1, name: 'name' },
|
|
28
|
+
{ id: 2, name: 'name' },
|
|
29
|
+
{ id: 3, name: 'name' },
|
|
30
|
+
{ id: 4, name: 'name' }
|
|
31
|
+
]
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//
|
|
35
|
+
let codeSlot = `
|
|
36
|
+
<script>
|
|
37
|
+
import Paneler from "./Paneler.svelte";
|
|
38
|
+
import PanelSlide from "./PanelSlide.svelte";
|
|
39
|
+
import Panel from "./Panel.svelte";
|
|
40
|
+
import PanelGrid from "./PanelGrid.svelte";
|
|
41
|
+
<\/script>
|
|
42
|
+
|
|
43
|
+
<Paneler style="width:450px;height:450px;overflow:hidden;">
|
|
44
|
+
<PanelSlide
|
|
45
|
+
class="overflow-x-hidden overflow-y-auto"
|
|
46
|
+
open={true}>
|
|
47
|
+
<Panel data={{ some: "data" }} title="Some Items">
|
|
48
|
+
<PanelGrid data={[...Array(9)]} let:data>
|
|
49
|
+
<div class="pad border radius-tiny">Some</div>
|
|
50
|
+
{#snippet panelGridZoom()}
|
|
51
|
+
<div class="pad-4 text-center theme-bg-primary">Some large</div>
|
|
52
|
+
{/snippet}
|
|
53
|
+
Some large
|
|
54
|
+
</div>
|
|
55
|
+
</PanelGrid>
|
|
56
|
+
</Panel>
|
|
57
|
+
<Panel title="Recent Items">
|
|
58
|
+
<PanelGrid data={[...Array(12)]} columns={6}>
|
|
59
|
+
<div class="pad border radius-tiny">Recent</div>
|
|
60
|
+
</PanelGrid>
|
|
61
|
+
</Panel>
|
|
62
|
+
<Panel title="Other Items">
|
|
63
|
+
<PanelGrid data={[...Array(7)]} columns={2}>
|
|
64
|
+
<div class="pad border radius-tiny">Others</div>
|
|
65
|
+
</PanelGrid>
|
|
66
|
+
</Panel>
|
|
67
|
+
</PanelSlide>
|
|
68
|
+
<PanelSlide
|
|
69
|
+
class="overflow-x-hidden overflow-y-auto"
|
|
70
|
+
let:panelSlideId
|
|
71
|
+
open={false}
|
|
72
|
+
let:data>
|
|
73
|
+
<Panel title="Zoom area">
|
|
74
|
+
<PanelGrid data={[...Array(130)]} columns={1}>
|
|
75
|
+
<div class="pad border radius-tiny">
|
|
76
|
+
list item for {panelSlideId}
|
|
77
|
+
</div>
|
|
78
|
+
</PanelGrid>
|
|
79
|
+
</Panel>
|
|
80
|
+
</PanelSlide>
|
|
81
|
+
</Paneler>
|
|
82
|
+
`;
|
|
83
|
+
|
|
84
|
+
let codeProps = `
|
|
85
|
+
<Button
|
|
86
|
+
onclick={() => {
|
|
87
|
+
openWindow("html", {
|
|
88
|
+
componentProps: { some: "props", someother: "deprops" },
|
|
89
|
+
contentHTML:
|
|
90
|
+
'<div class="pad-4 align-center">some html content</div>',
|
|
91
|
+
});
|
|
92
|
+
}}>
|
|
93
|
+
Window with html content
|
|
94
|
+
</Button>
|
|
95
|
+
|
|
96
|
+
<Button
|
|
97
|
+
onclick={() => {
|
|
98
|
+
openWindow("component", {
|
|
99
|
+
component: Debug,
|
|
100
|
+
componentProps: { some: "props", someother: "deprops" },
|
|
101
|
+
});
|
|
102
|
+
}}>
|
|
103
|
+
Window with component
|
|
104
|
+
</Button>`;
|
|
105
|
+
</script>
|
|
106
|
+
|
|
107
|
+
<ComponentDemo
|
|
108
|
+
component="Panel"
|
|
109
|
+
cite="If you can slide, then there are chances you are a panel<br /> C. Quin 2013"
|
|
110
|
+
>
|
|
111
|
+
<div class="flex-v gap-large">
|
|
112
|
+
<DemoPage code={codeSlot} component="Panel">
|
|
113
|
+
<Demoer parameters={parametersSlot} componentArgs={componentArgsSlot}>
|
|
114
|
+
{#snippet children({ activeParams })}
|
|
115
|
+
<div class=" w-full pad pos-rel">
|
|
116
|
+
<Paneler style="width:450px;height:450px;overflow:hidden;">
|
|
117
|
+
<PanelSlide class="overflow-x-hidden overflow-y-auto" open={true}>
|
|
118
|
+
<Panel data={{ some: 'data' }} title="Some Items">
|
|
119
|
+
<PanelGrid data={[...Array(9)]}>
|
|
120
|
+
{#snippet children({ data })}
|
|
121
|
+
<div class="pad border radius-tiny">Some</div>
|
|
122
|
+
{/snippet}
|
|
123
|
+
{#snippet panelGridZoom()}
|
|
124
|
+
<div class="pad-4 text-center theme-bg-primary">Some large</div>
|
|
125
|
+
{/snippet}
|
|
126
|
+
</PanelGrid>
|
|
127
|
+
</Panel>
|
|
128
|
+
<Panel title="More Items">
|
|
129
|
+
<PanelGrid data={[...Array(12)]} columns={6}>
|
|
130
|
+
<div class="pad border radius-tiny">More</div>
|
|
131
|
+
</PanelGrid>
|
|
132
|
+
</Panel>
|
|
133
|
+
<!-- <Panel title="Other Items">
|
|
134
|
+
<PanelGrid data={[...Array(7)]} columns={2}>
|
|
135
|
+
<div class="pad border radius-tiny">Others</div>
|
|
136
|
+
</PanelGrid>
|
|
137
|
+
</Panel> -->
|
|
138
|
+
{#snippet panelSlideZoom()}
|
|
139
|
+
<Panel title="Zoom area">
|
|
140
|
+
{#snippet children({ data, panelSlideId })}
|
|
141
|
+
<Panel title="Zoom area">
|
|
142
|
+
<PanelGrid data={[...Array(130)]} columns={1}>
|
|
143
|
+
<div class="pad border radius-tiny">
|
|
144
|
+
list item for {panelSlideId}
|
|
145
|
+
</div>
|
|
146
|
+
</PanelGrid>
|
|
147
|
+
</Panel>
|
|
148
|
+
{/snippet}
|
|
149
|
+
</Panel>
|
|
150
|
+
{/snippet}
|
|
151
|
+
</PanelSlide>
|
|
152
|
+
<PanelSlide class="overflow-x-hidden overflow-y-auto" open={false}
|
|
153
|
+
>{#snippet children({ data, panelSlideId })}
|
|
154
|
+
<Panel title="Zoom area">
|
|
155
|
+
<PanelGrid data={[...Array(130)]} columns={1}>
|
|
156
|
+
<div class="pad border radius-tiny">
|
|
157
|
+
list item for {panelSlideId}
|
|
158
|
+
</div>
|
|
159
|
+
</PanelGrid>
|
|
160
|
+
</Panel>
|
|
161
|
+
{/snippet}
|
|
162
|
+
</PanelSlide>
|
|
163
|
+
</Paneler>
|
|
164
|
+
</div>
|
|
165
|
+
{/snippet}
|
|
166
|
+
</Demoer>
|
|
167
|
+
</DemoPage>
|
|
168
|
+
</div>
|
|
169
|
+
</ComponentDemo>
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
<script lang="ts" generics="T=Data">
|
|
2
|
-
import { run } from 'svelte/legacy';
|
|
3
|
-
|
|
4
|
-
import { onMount, getContext } from 'svelte';
|
|
5
|
-
import Button from '../../controls/button/Button.svelte';
|
|
6
|
-
import type { PanelContextType, PanelProps } from './types.js';
|
|
7
|
-
import type { Data } from '../../types/index.js';
|
|
8
|
-
|
|
9
|
-
let {
|
|
10
|
-
title = 'not set',
|
|
11
|
-
panelId = crypto.randomUUID() as string,
|
|
12
|
-
data = undefined,
|
|
13
|
-
showNavigation = true,
|
|
14
|
-
panelButtonPrevious,
|
|
15
|
-
panelButtonNext,
|
|
16
|
-
children
|
|
17
|
-
}: PanelProps<T> = $props();
|
|
18
|
-
export const actions = {
|
|
19
|
-
load: (args: any) => {}
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
let ref: HTMLDivElement | undefined = $state(undefined);
|
|
23
|
-
let panelSlideId = getContext<string>('PanelSlide');
|
|
24
|
-
let panelerContext = getContext<PanelContextType>('Paneler');
|
|
25
|
-
|
|
26
|
-
let currentIdx = $state(),
|
|
27
|
-
hasNext = $state(),
|
|
28
|
-
hasPrev = $state();
|
|
29
|
-
|
|
30
|
-
$effect(() => {
|
|
31
|
-
if ($panelerContext.panelSlides) {
|
|
32
|
-
currentIdx = Object.keys($panelerContext.panelSlides).indexOf(panelSlideId);
|
|
33
|
-
hasNext = Boolean(Object.keys($panelerContext.panelSlides)[currentIdx + 1]);
|
|
34
|
-
hasPrev = Boolean(Object.keys($panelerContext.panelSlides)[currentIdx - 1]);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
function prevNextPanel(page: 'next' | 'prev') {
|
|
39
|
-
const event = new CustomEvent('panel:button:clicked', {
|
|
40
|
-
detail: { panelId, page, data },
|
|
41
|
-
bubbles: true
|
|
42
|
-
});
|
|
43
|
-
ref?.dispatchEvent(event);
|
|
44
|
-
}
|
|
45
|
-
</script>
|
|
46
|
-
|
|
47
|
-
<div class="panel" bind:this={ref}>
|
|
48
|
-
<div class="panel-bar pos-sticky top-0 gap-small">
|
|
49
|
-
<div style="flex:1">{title}</div>
|
|
50
|
-
{#if hasPrev}
|
|
51
|
-
{#if panelButtonPrevious}
|
|
52
|
-
<div
|
|
53
|
-
onclick={() => {
|
|
54
|
-
prevNextPanel('prev');
|
|
55
|
-
}}
|
|
56
|
-
>
|
|
57
|
-
{@render panelButtonPrevious?.()}
|
|
58
|
-
</div>
|
|
59
|
-
{:else}
|
|
60
|
-
<Button
|
|
61
|
-
icon="chevron-left"
|
|
62
|
-
tall="mini"
|
|
63
|
-
variant="naked"
|
|
64
|
-
onclick={() => {
|
|
65
|
-
prevNextPanel('prev');
|
|
66
|
-
}}
|
|
67
|
-
/>
|
|
68
|
-
{/if}
|
|
69
|
-
{/if}
|
|
70
|
-
{#if hasNext}
|
|
71
|
-
{#if panelButtonNext}
|
|
72
|
-
<div
|
|
73
|
-
onclick={() => {
|
|
74
|
-
prevNextPanel('next');
|
|
75
|
-
}}
|
|
76
|
-
>
|
|
77
|
-
{@render panelButtonNext?.()}
|
|
78
|
-
</div>
|
|
79
|
-
{:else}
|
|
80
|
-
<Button
|
|
81
|
-
iconEnd="chevron-right"
|
|
82
|
-
variant="naked"
|
|
83
|
-
tall="mini"
|
|
84
|
-
onclick={() => {
|
|
85
|
-
prevNextPanel('next');
|
|
86
|
-
}}
|
|
87
|
-
></Button>
|
|
88
|
-
{/if}
|
|
89
|
-
{/if}
|
|
90
|
-
</div>
|
|
91
|
-
<div class="panelContent">
|
|
92
|
-
{@render children?.({ panelId, actions })}
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
|
|
1
|
+
<script lang="ts" generics="T=Data">
|
|
2
|
+
import { run } from 'svelte/legacy';
|
|
3
|
+
|
|
4
|
+
import { onMount, getContext } from 'svelte';
|
|
5
|
+
import Button from '../../controls/button/Button.svelte';
|
|
6
|
+
import type { PanelContextType, PanelProps } from './types.js';
|
|
7
|
+
import type { Data } from '../../types/index.js';
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
title = 'not set',
|
|
11
|
+
panelId = crypto.randomUUID() as string,
|
|
12
|
+
data = undefined,
|
|
13
|
+
showNavigation = true,
|
|
14
|
+
panelButtonPrevious,
|
|
15
|
+
panelButtonNext,
|
|
16
|
+
children
|
|
17
|
+
}: PanelProps<T> = $props();
|
|
18
|
+
export const actions = {
|
|
19
|
+
load: (args: any) => {}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
let ref: HTMLDivElement | undefined = $state(undefined);
|
|
23
|
+
let panelSlideId = getContext<string>('PanelSlide');
|
|
24
|
+
let panelerContext = getContext<PanelContextType>('Paneler');
|
|
25
|
+
|
|
26
|
+
let currentIdx = $state(),
|
|
27
|
+
hasNext = $state(),
|
|
28
|
+
hasPrev = $state();
|
|
29
|
+
|
|
30
|
+
$effect(() => {
|
|
31
|
+
if ($panelerContext.panelSlides) {
|
|
32
|
+
currentIdx = Object.keys($panelerContext.panelSlides).indexOf(panelSlideId);
|
|
33
|
+
hasNext = Boolean(Object.keys($panelerContext.panelSlides)[currentIdx + 1]);
|
|
34
|
+
hasPrev = Boolean(Object.keys($panelerContext.panelSlides)[currentIdx - 1]);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
function prevNextPanel(page: 'next' | 'prev') {
|
|
39
|
+
const event = new CustomEvent('panel:button:clicked', {
|
|
40
|
+
detail: { panelId, page, data },
|
|
41
|
+
bubbles: true
|
|
42
|
+
});
|
|
43
|
+
ref?.dispatchEvent(event);
|
|
44
|
+
}
|
|
45
|
+
</script>
|
|
46
|
+
|
|
47
|
+
<div class="panel" bind:this={ref}>
|
|
48
|
+
<div class="panel-bar pos-sticky top-0 gap-small">
|
|
49
|
+
<div style="flex:1">{title}</div>
|
|
50
|
+
{#if hasPrev}
|
|
51
|
+
{#if panelButtonPrevious}
|
|
52
|
+
<div
|
|
53
|
+
onclick={() => {
|
|
54
|
+
prevNextPanel('prev');
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
{@render panelButtonPrevious?.()}
|
|
58
|
+
</div>
|
|
59
|
+
{:else}
|
|
60
|
+
<Button
|
|
61
|
+
icon="chevron-left"
|
|
62
|
+
tall="mini"
|
|
63
|
+
variant="naked"
|
|
64
|
+
onclick={() => {
|
|
65
|
+
prevNextPanel('prev');
|
|
66
|
+
}}
|
|
67
|
+
/>
|
|
68
|
+
{/if}
|
|
69
|
+
{/if}
|
|
70
|
+
{#if hasNext}
|
|
71
|
+
{#if panelButtonNext}
|
|
72
|
+
<div
|
|
73
|
+
onclick={() => {
|
|
74
|
+
prevNextPanel('next');
|
|
75
|
+
}}
|
|
76
|
+
>
|
|
77
|
+
{@render panelButtonNext?.()}
|
|
78
|
+
</div>
|
|
79
|
+
{:else}
|
|
80
|
+
<Button
|
|
81
|
+
iconEnd="chevron-right"
|
|
82
|
+
variant="naked"
|
|
83
|
+
tall="mini"
|
|
84
|
+
onclick={() => {
|
|
85
|
+
prevNextPanel('next');
|
|
86
|
+
}}
|
|
87
|
+
></Button>
|
|
88
|
+
{/if}
|
|
89
|
+
{/if}
|
|
90
|
+
</div>
|
|
91
|
+
<div class="panelContent">
|
|
92
|
+
{@render children?.({ panelId, actions })}
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
96
|
<style>:root {
|
|
97
97
|
--panel-margin-bottom: 2rem;
|
|
98
98
|
--panel-bar-margin-bottom: 2rem;
|
|
@@ -117,4 +117,4 @@
|
|
|
117
117
|
padding: var(--panel-bar-button-padding);
|
|
118
118
|
border: var(--panel-bar-button-border);
|
|
119
119
|
background-color: var(--panel-bar-button-background-color);
|
|
120
|
-
}</style>
|
|
120
|
+
}</style>
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Button from '../../controls/button/Button.svelte';
|
|
3
|
-
import Slotted from '../../utils/slotted/Slotted.svelte';
|
|
4
|
-
|
|
5
|
-
import { fade } from 'svelte/transition';
|
|
6
|
-
import type { PanelGridProps } from './types.js';
|
|
7
|
-
|
|
8
|
-
let {
|
|
9
|
-
class: className = '',
|
|
10
|
-
element = $bindable(),
|
|
11
|
-
style = '',
|
|
12
|
-
data = [],
|
|
13
|
-
columns = 3,
|
|
14
|
-
isExpanded = $bindable(false),
|
|
15
|
-
children,
|
|
16
|
-
panelGridZoom,
|
|
17
|
-
...rest
|
|
18
|
-
}: PanelGridProps = $props();
|
|
19
|
-
</script>
|
|
20
|
-
|
|
21
|
-
{#if data}
|
|
22
|
-
<div
|
|
23
|
-
class="slotUiGrid panelGrid"
|
|
24
|
-
style="--sld-column-size:{Math.floor(100 / columns)}%;gap:0.5rem"
|
|
25
|
-
{...rest}
|
|
26
|
-
>
|
|
27
|
-
{#each data as dta}
|
|
28
|
-
{#if !isExpanded}
|
|
29
|
-
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
30
|
-
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
31
|
-
<div
|
|
32
|
-
onclick={() => {
|
|
33
|
-
if (panelGridZoom) isExpanded = true;
|
|
34
|
-
}}
|
|
35
|
-
class="panelGridThumb"
|
|
36
|
-
in:fade|global
|
|
37
|
-
>
|
|
38
|
-
<Slotted child={children} slotArgs={{ data: dta }}></Slotted>
|
|
39
|
-
</div>
|
|
40
|
-
{/if}
|
|
41
|
-
{/each}
|
|
42
|
-
</div>
|
|
43
|
-
{#if isExpanded}
|
|
44
|
-
<div class="panelGridPreview" in:fade|global>
|
|
45
|
-
<div>
|
|
46
|
-
<Button
|
|
47
|
-
onclick={() => {
|
|
48
|
-
isExpanded = false;
|
|
49
|
-
}}
|
|
50
|
-
variant="naked"
|
|
51
|
-
icon="chevron-left"
|
|
52
|
-
class="theme-text-primary"
|
|
53
|
-
/>
|
|
54
|
-
</div>
|
|
55
|
-
<div class="panelGridZoom">
|
|
56
|
-
<Slotted child={panelGridZoom}></Slotted>
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
{/if}
|
|
60
|
-
{/if}
|
|
61
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button from '../../controls/button/Button.svelte';
|
|
3
|
+
import Slotted from '../../utils/slotted/Slotted.svelte';
|
|
4
|
+
|
|
5
|
+
import { fade } from 'svelte/transition';
|
|
6
|
+
import type { PanelGridProps } from './types.js';
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
class: className = '',
|
|
10
|
+
element = $bindable(),
|
|
11
|
+
style = '',
|
|
12
|
+
data = [],
|
|
13
|
+
columns = 3,
|
|
14
|
+
isExpanded = $bindable(false),
|
|
15
|
+
children,
|
|
16
|
+
panelGridZoom,
|
|
17
|
+
...rest
|
|
18
|
+
}: PanelGridProps = $props();
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
{#if data}
|
|
22
|
+
<div
|
|
23
|
+
class="slotUiGrid panelGrid"
|
|
24
|
+
style="--sld-column-size:{Math.floor(100 / columns)}%;gap:0.5rem"
|
|
25
|
+
{...rest}
|
|
26
|
+
>
|
|
27
|
+
{#each data as dta}
|
|
28
|
+
{#if !isExpanded}
|
|
29
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
30
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
31
|
+
<div
|
|
32
|
+
onclick={() => {
|
|
33
|
+
if (panelGridZoom) isExpanded = true;
|
|
34
|
+
}}
|
|
35
|
+
class="panelGridThumb"
|
|
36
|
+
in:fade|global
|
|
37
|
+
>
|
|
38
|
+
<Slotted child={children} slotArgs={{ data: dta }}></Slotted>
|
|
39
|
+
</div>
|
|
40
|
+
{/if}
|
|
41
|
+
{/each}
|
|
42
|
+
</div>
|
|
43
|
+
{#if isExpanded}
|
|
44
|
+
<div class="panelGridPreview" in:fade|global>
|
|
45
|
+
<div>
|
|
46
|
+
<Button
|
|
47
|
+
onclick={() => {
|
|
48
|
+
isExpanded = false;
|
|
49
|
+
}}
|
|
50
|
+
variant="naked"
|
|
51
|
+
icon="chevron-left"
|
|
52
|
+
class="theme-text-primary"
|
|
53
|
+
/>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="panelGridZoom">
|
|
56
|
+
<Slotted child={panelGridZoom}></Slotted>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
{/if}
|
|
60
|
+
{/if}
|
|
61
|
+
|
|
62
62
|
<style>.panelGridPreview {
|
|
63
63
|
display: flex;
|
|
64
64
|
}
|
|
@@ -70,4 +70,4 @@
|
|
|
70
70
|
display: grid;
|
|
71
71
|
grid-gap: 0.2rem;
|
|
72
72
|
grid-template-columns: repeat(auto-fit, minmax(calc(var(--sld-column-size) - 0.5rem), 1fr));
|
|
73
|
-
}</style>
|
|
73
|
+
}</style>
|