@medyll/idae-slotui-svelte 0.120.0 → 0.121.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 (305) 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 +42 -43
  115. package/dist/index.js +42 -43
  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/alert.css +95 -95
  124. package/dist/slotui-css/alert.min.css +95 -95
  125. package/dist/slotui-css/auto-complete.css +11 -11
  126. package/dist/slotui-css/auto-complete.min.css +11 -11
  127. package/dist/slotui-css/avatar.css +12 -12
  128. package/dist/slotui-css/avatar.min.css +12 -12
  129. package/dist/slotui-css/backdrop.css +31 -31
  130. package/dist/slotui-css/backdrop.min.css +31 -31
  131. package/dist/slotui-css/badge.css +15 -15
  132. package/dist/slotui-css/badge.min.css +15 -15
  133. package/dist/slotui-css/boot-menu.css +76 -76
  134. package/dist/slotui-css/boot-menu.min.css +76 -76
  135. package/dist/slotui-css/box.css +28 -28
  136. package/dist/slotui-css/box.min.css +28 -28
  137. package/dist/slotui-css/breadcrumb.css +2 -2
  138. package/dist/slotui-css/breadcrumb.min.css +2 -2
  139. package/dist/slotui-css/button-action.css +7 -7
  140. package/dist/slotui-css/button-action.min.css +7 -7
  141. package/dist/slotui-css/button-menu.css +30 -30
  142. package/dist/slotui-css/button-menu.min.css +30 -30
  143. package/dist/slotui-css/button.css +760 -760
  144. package/dist/slotui-css/button.min.css +760 -760
  145. package/dist/slotui-css/cartouche.css +113 -113
  146. package/dist/slotui-css/cartouche.min.css +113 -113
  147. package/dist/slotui-css/checkbox.css +126 -126
  148. package/dist/slotui-css/checkbox.min.css +126 -126
  149. package/dist/slotui-css/chipper.css +55 -55
  150. package/dist/slotui-css/chipper.min.css +55 -55
  151. package/dist/slotui-css/chrome-frame.css +33 -33
  152. package/dist/slotui-css/chrome-frame.min.css +33 -33
  153. package/dist/slotui-css/confirm.css +8 -8
  154. package/dist/slotui-css/confirm.min.css +8 -8
  155. package/dist/slotui-css/containerConfig.css +6 -6
  156. package/dist/slotui-css/containerConfig.min.css +6 -6
  157. package/dist/slotui-css/content-switcher.css +20 -20
  158. package/dist/slotui-css/content-switcher.min.css +20 -20
  159. package/dist/slotui-css/csss.css +9 -9
  160. package/dist/slotui-css/csss.min.css +9 -9
  161. package/dist/slotui-css/datalist.css +135 -135
  162. package/dist/slotui-css/datalist.min.css +135 -135
  163. package/dist/slotui-css/divider.css +15 -15
  164. package/dist/slotui-css/divider.min.css +15 -15
  165. package/dist/slotui-css/drawer.css +87 -87
  166. package/dist/slotui-css/drawer.min.css +87 -87
  167. package/dist/slotui-css/finder.css +73 -73
  168. package/dist/slotui-css/finder.min.css +73 -73
  169. package/dist/slotui-css/frame.css +48 -48
  170. package/dist/slotui-css/frame.min.css +48 -48
  171. package/dist/slotui-css/icon.css +15 -15
  172. package/dist/slotui-css/icon.min.css +15 -15
  173. package/dist/slotui-css/loader.css +45 -45
  174. package/dist/slotui-css/loader.min.css +45 -45
  175. package/dist/slotui-css/marquee.css +57 -57
  176. package/dist/slotui-css/marquee.min.css +57 -57
  177. package/dist/slotui-css/menu-list.css +216 -216
  178. package/dist/slotui-css/menu-list.min.css +216 -216
  179. package/dist/slotui-css/menu.css +95 -95
  180. package/dist/slotui-css/menu.min.css +95 -95
  181. package/dist/slotui-css/panel.css +24 -24
  182. package/dist/slotui-css/panel.min.css +24 -24
  183. package/dist/slotui-css/paper.css +20 -20
  184. package/dist/slotui-css/paper.min.css +20 -20
  185. package/dist/slotui-css/popper.css +84 -84
  186. package/dist/slotui-css/popper.min.css +84 -84
  187. package/dist/slotui-css/progress.css +19 -19
  188. package/dist/slotui-css/progress.min.css +19 -19
  189. package/dist/slotui-css/rating.css +8 -8
  190. package/dist/slotui-css/rating.min.css +8 -8
  191. package/dist/slotui-css/select.css +10 -10
  192. package/dist/slotui-css/select.min.css +10 -10
  193. package/dist/slotui-css/sheetConfig.css +6 -6
  194. package/dist/slotui-css/sheetConfig.min.css +6 -6
  195. package/dist/slotui-css/slider.css +73 -73
  196. package/dist/slotui-css/slider.min.css +73 -73
  197. package/dist/slotui-css/slotui-css.css +4574 -4574
  198. package/dist/slotui-css/slotui-min-css.css +4574 -4574
  199. package/dist/slotui-css/slotui-sheet.css +294 -294
  200. package/dist/slotui-css/slotui-sheet.min.css +294 -294
  201. package/dist/slotui-css/sorterer.css +10 -10
  202. package/dist/slotui-css/sorterer.min.css +10 -10
  203. package/dist/slotui-css/stepper.css +19 -19
  204. package/dist/slotui-css/stepper.min.css +19 -19
  205. package/dist/slotui-css/stylesheet-container.css +373 -373
  206. package/dist/slotui-css/stylesheet-container.min.css +373 -373
  207. package/dist/slotui-css/stylesheet.css +370 -370
  208. package/dist/slotui-css/stylesheet.min.css +370 -370
  209. package/dist/slotui-css/switch.css +62 -62
  210. package/dist/slotui-css/switch.min.css +62 -62
  211. package/dist/slotui-css/tabs.css +84 -84
  212. package/dist/slotui-css/tabs.min.css +84 -84
  213. package/dist/slotui-css/taskbar.css +24 -24
  214. package/dist/slotui-css/taskbar.min.css +24 -24
  215. package/dist/slotui-css/textfield.css +127 -127
  216. package/dist/slotui-css/textfield.min.css +127 -127
  217. package/dist/slotui-css/title-bar.css +27 -27
  218. package/dist/slotui-css/title-bar.min.css +27 -27
  219. package/dist/slotui-css/toggle-bar.css +40 -40
  220. package/dist/slotui-css/toggle-bar.min.css +40 -40
  221. package/dist/slotui-css/toolbar.css +27 -27
  222. package/dist/slotui-css/toolbar.min.css +27 -27
  223. package/dist/slotui-css/tree.css +49 -49
  224. package/dist/slotui-css/tree.min.css +49 -49
  225. package/dist/slotui-css/window.css +59 -59
  226. package/dist/slotui-css/window.min.css +59 -59
  227. package/dist/styles/slotui-mixins.scss +168 -168
  228. package/dist/styles/slotui-presets.scss +56 -56
  229. package/dist/styles/slotuisheet/SlotuiSheet.svelte +36 -36
  230. package/dist/styles/slotuisheet/SlotyuiSheet.demo.svelte +28 -28
  231. package/dist/styles/slotuisheet/sheetConfig.scss +7 -7
  232. package/dist/styles/slotuisheet/slotui-sheet.scss +192 -192
  233. package/dist/styles/slotuisheet/stylesheet-container.scss +147 -147
  234. package/dist/styles/slotuisheet/stylesheet.scss +156 -156
  235. package/dist/types/slotui-ambient.d.ts +27 -27
  236. package/dist/ui/bootstrapp/BootStrApp.svelte +92 -92
  237. package/dist/ui/chromeFrame/ChromeFrame.svelte +43 -43
  238. package/dist/ui/chromeFrame/ChromeFrameButtonList.svelte +33 -33
  239. package/dist/ui/chromeFrame/ChromeFrameList.svelte +106 -106
  240. package/dist/ui/chromeFrame/chrome-frame.scss +34 -34
  241. package/dist/ui/frame/Frame.demo.svelte +48 -48
  242. package/dist/ui/frame/Frame.svelte +90 -90
  243. package/dist/ui/frame/frame.scss +46 -46
  244. package/dist/ui/login/Login.demo.svelte +62 -62
  245. package/dist/ui/login/Login.svelte +102 -102
  246. package/dist/ui/marquee/Marquee.demo.svelte +33 -33
  247. package/dist/ui/marquee/Marquee.svelte +97 -97
  248. package/dist/ui/marquee/marquee.scss +34 -34
  249. package/dist/ui/menu/Menu.svelte +9 -9
  250. package/dist/ui/menu/MenuItem.svelte +9 -9
  251. package/dist/ui/menu/MenuTitle.svelte +10 -10
  252. package/dist/ui/menu/menu.scss +61 -61
  253. package/dist/ui/menuList/MenuList.demo.svelte +73 -73
  254. package/dist/ui/menuList/MenuList.svelte +143 -143
  255. package/dist/ui/menuList/MenuListItem.svelte +134 -134
  256. package/dist/ui/menuList/MenuListTitle.svelte +10 -10
  257. package/dist/ui/menuList/menu-list.scss +120 -120
  258. package/dist/ui/panel/Panel.demo.svelte +169 -169
  259. package/dist/ui/panel/Panel.svelte +96 -96
  260. package/dist/ui/panel/PanelGrid.svelte +62 -62
  261. package/dist/ui/panel/PanelSlide.svelte +156 -156
  262. package/dist/ui/panel/Paneler.svelte +63 -63
  263. package/dist/ui/panel/panel.scss +32 -32
  264. package/dist/ui/popper/Popper.demo.svelte +92 -92
  265. package/dist/ui/popper/Popper.svelte +160 -160
  266. package/dist/ui/popper/popper.scss +108 -108
  267. package/dist/ui/preview/Preview.svelte +41 -41
  268. package/dist/ui/serviceBox/ServiceBox.svelte +24 -24
  269. package/dist/ui/startMenu/BootMenu.svelte +102 -102
  270. package/dist/ui/startMenu/boot-menu.scss +86 -86
  271. package/dist/ui/taskbar/TaskBarContent.svelte +20 -20
  272. package/dist/ui/taskbar/Taskbar.svelte +26 -26
  273. package/dist/ui/taskbar/taskbar.scss +28 -28
  274. package/dist/ui/themeswitcher/ThemeSwitcher.svelte +18 -18
  275. package/dist/ui/toast/Toast.demo.svelte +19 -19
  276. package/dist/ui/toast/Toast.svelte +60 -60
  277. package/dist/ui/toast/Toaster.svelte +18 -18
  278. package/dist/ui/toggleBar/ToggleBar.demo.svelte +114 -114
  279. package/dist/ui/toggleBar/ToggleBar.svelte +58 -58
  280. package/dist/ui/toggleBar/toggle-bar.scss +45 -45
  281. package/dist/ui/toolBar/ToolBar.demo.svelte +98 -98
  282. package/dist/ui/toolBar/ToolBar.svelte +30 -30
  283. package/dist/ui/toolBar/toolbar.scss +32 -32
  284. package/dist/ui/tree/Tree.demo.svelte +84 -84
  285. package/dist/ui/tree/Tree.preview.svelte +19 -19
  286. package/dist/ui/tree/Tree.svelte +182 -182
  287. package/dist/ui/tree/tree.scss +38 -38
  288. package/dist/ui/window/Window.demo.svelte +111 -111
  289. package/dist/ui/window/Window.svelte +177 -177
  290. package/dist/ui/window/window.scss +66 -66
  291. package/dist/utils/content/Content.svelte +78 -78
  292. package/dist/utils/contextRooter/ContextRooter.demo.svelte +33 -33
  293. package/dist/utils/contextRooter/ContextRooter.svelte +6 -6
  294. package/dist/utils/css/Css.demo.svelte +5 -5
  295. package/dist/utils/css/Css.svelte +64 -64
  296. package/dist/utils/effects/transitions.js +6 -6
  297. package/dist/utils/looper/Looper.demo.svelte +36 -36
  298. package/dist/utils/looper/Looper.svelte +47 -47
  299. package/dist/utils/slotted/Slotted.svelte +21 -21
  300. package/dist/utils/stylesheet/StyleSheet.demo.svelte +28 -28
  301. package/dist/utils/stylesheet/StyleSheet.svelte +30 -30
  302. package/dist/utils/stylesheet/containerConfig.scss +7 -7
  303. package/dist/utils/stylesheet/stylesheet.scss +147 -147
  304. package/dist/utils/uses/sx4u/sx4uPreprocess.js +34 -34
  305. package/package.json +3 -3
@@ -1,97 +1,97 @@
1
- <script lang="ts">
2
- import { popper} from '../../ui/popper/usePopper.js';
3
- import Icon from '../../base/icon/Icon.svelte';
4
- import type { ButtonProps } from './types.js';
5
- import Slotted from '../../utils/slotted/Slotted.svelte';
6
- import { tallPreset, widthPreset, type ExpandProps } from '../../types/index.js';
7
-
8
- let {
9
- class: className,
10
- style,
11
- element = $bindable(),
12
- type: buttonType = 'button',
13
- icon = $bindable(),
14
- iconEnd = $bindable(),
15
- variant = 'bordered',
16
- bgTheme,
17
- usePopperProps={disabled:true},
18
- loading,
19
- showChip,
20
- popperOpen,
21
- width = widthPreset.auto,
22
- tall = tallPreset.small,
23
- nowrap,
24
- ellipsis=true,
25
- selected = false,
26
- value,
27
- reverse = false,
28
- ratio,
29
- buttonPopper,
30
- buttonStart,
31
- buttonEnd,
32
- buttonLoadingIcon,
33
- children,
34
- ...rest
35
- }: ButtonProps = $props();
36
-
37
- let startRef: HTMLDivElement | undefined = $state<HTMLDivElement | undefined>(undefined);
38
-
39
- </script>
40
-
41
- <button
42
- class={className + ' slotui-button '}
43
- class:loading
44
- bind:this={element}
45
- use:popper={usePopperProps}
46
- onclickAway={() => {
47
- popperOpen = false;
48
- }}
49
- type={buttonType}
50
- {tall}
51
- {width}
52
- variant={variant}
53
- {selected}
54
- {...rest}
55
- style:aspect-ratio={ratio}
56
- style="--content-padding:{buttonStart || icon ? `${startRef?.clientWidth ?? '0.5rem'}px` : '0.5rem'}"
57
- >
58
- {#if buttonStart || icon}
59
- <div
60
- bind:this={startRef}
61
- class="start"
62
- style="--start-position:{(children ?? value) ? 'absolute' : 'relative'}"
63
- >
64
- <Slotted child={buttonStart}>
65
- <Icon iconSize="small" {icon} />
66
- </Slotted>
67
- </div>
68
- {/if}
69
- {#if children ?? value}
70
- <div
71
- class="central {ellipsis? 'ellipsis' : ''}"
72
- style="--content-padding:{buttonStart || icon ? `${startRef?.clientWidth ?? '0.5rem'}px` : '0.5rem'}"
73
- >
74
- <Slotted child={children}>{value ?? ''}</Slotted>
75
- </div>
76
- {/if}
77
- {#if buttonEnd || iconEnd}
78
- <div class="end">
79
- <Slotted child={buttonEnd}>
80
- <Icon icon={iconEnd} />
81
- </Slotted>
82
- </div>
83
- {/if}
84
-
85
- {#if loading}
86
- <div class="loadingButtonZone">
87
- <Slotted child={buttonLoadingIcon} />
88
- </div>
89
- {/if}
90
- {#if showChip}
91
- <span class="chip"></span>
92
- {/if}
93
- </button>
94
-
1
+ <script lang="ts">
2
+ import { popper} from '../../ui/popper/usePopper.js';
3
+ import Icon from '../../base/icon/Icon.svelte';
4
+ import type { ButtonProps } from './types.js';
5
+ import Slotted from '../../utils/slotted/Slotted.svelte';
6
+ import { tallPreset, widthPreset, type ExpandProps } from '../../types/index.js';
7
+
8
+ let {
9
+ class: className,
10
+ style,
11
+ element = $bindable(),
12
+ type: buttonType = 'button',
13
+ icon = $bindable(),
14
+ iconEnd = $bindable(),
15
+ variant = 'bordered',
16
+ bgTheme,
17
+ usePopperProps={disabled:true},
18
+ loading,
19
+ showChip,
20
+ popperOpen,
21
+ width = widthPreset.auto,
22
+ tall = tallPreset.small,
23
+ nowrap,
24
+ ellipsis=true,
25
+ selected = false,
26
+ value,
27
+ reverse = false,
28
+ ratio,
29
+ buttonPopper,
30
+ buttonStart,
31
+ buttonEnd,
32
+ buttonLoadingIcon,
33
+ children,
34
+ ...rest
35
+ }: ButtonProps = $props();
36
+
37
+ let startRef: HTMLDivElement | undefined = $state<HTMLDivElement | undefined>(undefined);
38
+
39
+ </script>
40
+
41
+ <button
42
+ class={className + ' slotui-button '}
43
+ class:loading
44
+ bind:this={element}
45
+ use:popper={usePopperProps}
46
+ onclickAway={() => {
47
+ popperOpen = false;
48
+ }}
49
+ type={buttonType}
50
+ {tall}
51
+ {width}
52
+ variant={variant}
53
+ {selected}
54
+ {...rest}
55
+ style:aspect-ratio={ratio}
56
+ style="--content-padding:{buttonStart || icon ? `${startRef?.clientWidth ?? '0.5rem'}px` : '0.5rem'}"
57
+ >
58
+ {#if buttonStart || icon}
59
+ <div
60
+ bind:this={startRef}
61
+ class="start"
62
+ style="--start-position:{(children ?? value) ? 'absolute' : 'relative'}"
63
+ >
64
+ <Slotted child={buttonStart}>
65
+ <Icon iconSize="small" {icon} />
66
+ </Slotted>
67
+ </div>
68
+ {/if}
69
+ {#if children ?? value}
70
+ <div
71
+ class="central {ellipsis? 'ellipsis' : ''}"
72
+ style="--content-padding:{buttonStart || icon ? `${startRef?.clientWidth ?? '0.5rem'}px` : '0.5rem'}"
73
+ >
74
+ <Slotted child={children}>{value ?? ''}</Slotted>
75
+ </div>
76
+ {/if}
77
+ {#if buttonEnd || iconEnd}
78
+ <div class="end">
79
+ <Slotted child={buttonEnd}>
80
+ <Icon icon={iconEnd} />
81
+ </Slotted>
82
+ </div>
83
+ {/if}
84
+
85
+ {#if loading}
86
+ <div class="loadingButtonZone">
87
+ <Slotted child={buttonLoadingIcon} />
88
+ </div>
89
+ {/if}
90
+ {#if showChip}
91
+ <span class="chip"></span>
92
+ {/if}
93
+ </button>
94
+
95
95
  <style global>:root {
96
96
  --sld-button-font-size: inherit;
97
97
  --sld-button-radius: var(--sld-radius-small);
@@ -852,4 +852,4 @@ input[type=submit].slotui-button.flat:focus {
852
852
  to {
853
853
  transform: rotate(360deg);
854
854
  }
855
- }</style>
855
+ }</style>
@@ -1,57 +1,57 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type { PopperProps } from '../../ui/popper/types.js';
4
- import type { MenuProps } from '../../ui/menu/types.js';
5
- import Popper from '../../ui/popper/Popper.svelte';
6
- import Button from './Button.svelte';
7
- import type { ButtonProps } from './types.js';
8
- import Icon from '../../base/icon/Icon.svelte';
9
- import Slotted from '../../utils/slotted/Slotted.svelte';
10
- import type { ExpandProps } from '../../types/index.js';
11
-
12
- type ButtonActionProps = ButtonProps & {
13
- menuProps?: MenuProps;
14
- popperProps?: PopperProps;
15
- popperContent?: Snippet;
16
- };
17
-
18
- let {
19
- element,
20
- class: className = '',
21
- menuProps = {},
22
- popperProps = {},
23
- popperContent = undefined,
24
- disabled = false,
25
- variant = 'bordered',
26
- tall = 'small',
27
- children,
28
- ...rest
29
- }: ExpandProps<ButtonActionProps> = $props();
30
- let holder: HTMLDivElement;
31
- let isOpen = $state(popperProps?.isOpen);
32
- let chevron = 'fluent:chevron-down-20-regular';
33
- </script>
34
-
35
- <div bind:this={holder} class="button button-action selected {variant} tall-{tall} {className}">
36
- <Button {...rest} {tall} bind:element variant="naked">
37
- <Slotted child={children} />
38
- </Button>
39
- <Button
40
- {disabled}
41
- onclick={() => {
42
- isOpen = true;
43
- }}
44
- {tall}
45
- variant="naked"
46
- icon={{icon:chevron,rotation:isOpen ? 180 : 0}}
47
- class="chevron" />
48
- </div>
49
- {#if isOpen && !disabled}
50
- <Popper bind:isOpen parentNode={holder} stickToHookWidth={true} autoClose={true} {...popperProps}>
51
- <Slotted child={popperContent} />
52
- </Popper>
53
- {/if}
54
-
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { PopperProps } from '../../ui/popper/types.js';
4
+ import type { MenuProps } from '../../ui/menu/types.js';
5
+ import Popper from '../../ui/popper/Popper.svelte';
6
+ import Button from './Button.svelte';
7
+ import type { ButtonProps } from './types.js';
8
+ import Icon from '../../base/icon/Icon.svelte';
9
+ import Slotted from '../../utils/slotted/Slotted.svelte';
10
+ import type { ExpandProps } from '../../types/index.js';
11
+
12
+ type ButtonActionProps = ButtonProps & {
13
+ menuProps?: MenuProps;
14
+ popperProps?: PopperProps;
15
+ popperContent?: Snippet;
16
+ };
17
+
18
+ let {
19
+ element,
20
+ class: className = '',
21
+ menuProps = {},
22
+ popperProps = {},
23
+ popperContent = undefined,
24
+ disabled = false,
25
+ variant = 'bordered',
26
+ tall = 'small',
27
+ children,
28
+ ...rest
29
+ }: ExpandProps<ButtonActionProps> = $props();
30
+ let holder: HTMLDivElement;
31
+ let isOpen = $state(popperProps?.isOpen);
32
+ let chevron = 'fluent:chevron-down-20-regular';
33
+ </script>
34
+
35
+ <div bind:this={holder} class="button button-action selected {variant} tall-{tall} {className}">
36
+ <Button {...rest} {tall} bind:element variant="naked">
37
+ <Slotted child={children} />
38
+ </Button>
39
+ <Button
40
+ {disabled}
41
+ onclick={() => {
42
+ isOpen = true;
43
+ }}
44
+ {tall}
45
+ variant="naked"
46
+ icon={{icon:chevron,rotation:isOpen ? 180 : 0}}
47
+ class="chevron" />
48
+ </div>
49
+ {#if isOpen && !disabled}
50
+ <Popper bind:isOpen parentNode={holder} stickToHookWidth={true} autoClose={true} {...popperProps}>
51
+ <Slotted child={popperContent} />
52
+ </Popper>
53
+ {/if}
54
+
55
55
  <style>:root {
56
56
  --sld-button-font-size: inherit;
57
57
  --sld-button-radius: var(--sld-radius-small);
@@ -820,4 +820,4 @@ input[type=submit].slotui-button.flat:focus {
820
820
  }
821
821
  .button-action .chevron {
822
822
  flex-shrink: 1;
823
- }</style>
823
+ }</style>
@@ -1,57 +1,57 @@
1
- <script lang="ts" generics="T">
2
- import Popper from '../../ui/popper/Popper.svelte';
3
- import MenuList from '../../ui/menuList/MenuList.svelte';
4
- import Button from './Button.svelte';
5
- import type { ButtonMenuProps } from './types.js';
6
- import type { MenuListProps } from '../../ui/menuList/types.js';
7
- import type { PopperProps } from '../../ui/popper/types.js';
8
- import MenuListItem from '../../ui/menuList/MenuListItem.svelte';
9
-
10
- let {
11
- menuProps = {} as MenuListProps<T>,
12
- popperProps = {} as PopperProps,
13
- disabled = false,
14
- element = $bindable(),
15
- popperElement,
16
- menuItem,
17
- children,
18
- ...rest
19
- }: ButtonMenuProps<T> = $props();
20
-
21
- let isOpen = $state(popperProps?.isOpen);
22
- let chevron = $derived(disabled ? 'fluent:chevron-up-20-regular' : 'fluent:chevron-up-12-down');
23
- </script>
24
-
25
- <Button
26
- onclick={() => {
27
- isOpen = true;
28
- }}
29
- {...rest}
30
- bind:element
31
- iconEnd={{ icon: chevron, rotation: isOpen ? 180 : 0 }}
32
- {children}
33
- />
34
- {#if isOpen && !disabled}
35
- <Popper
36
- bind:element={popperElement}
37
- bind:isOpen
38
- parentNode={element}
39
- {...popperProps}
40
- position="BC"
41
- stickToHookWidth={true}
42
- >
43
- <MenuList {...menuProps}>
44
- {#snippet children({ item })}
45
- {#if menuItem}
46
- {@render menuItem?.({ item })}
47
- {:else}
48
- <MenuListItem {...item} />
49
- {/if}
50
- {/snippet}
51
- </MenuList>
52
- </Popper>
53
- {/if}
54
-
1
+ <script lang="ts" generics="T">
2
+ import Popper from '../../ui/popper/Popper.svelte';
3
+ import MenuList from '../../ui/menuList/MenuList.svelte';
4
+ import Button from './Button.svelte';
5
+ import type { ButtonMenuProps } from './types.js';
6
+ import type { MenuListProps } from '../../ui/menuList/types.js';
7
+ import type { PopperProps } from '../../ui/popper/types.js';
8
+ import MenuListItem from '../../ui/menuList/MenuListItem.svelte';
9
+
10
+ let {
11
+ menuProps = {} as MenuListProps<T>,
12
+ popperProps = {} as PopperProps,
13
+ disabled = false,
14
+ element = $bindable(),
15
+ popperElement,
16
+ menuItem,
17
+ children,
18
+ ...rest
19
+ }: ButtonMenuProps<T> = $props();
20
+
21
+ let isOpen = $state(popperProps?.isOpen);
22
+ let chevron = $derived(disabled ? 'fluent:chevron-up-20-regular' : 'fluent:chevron-up-12-down');
23
+ </script>
24
+
25
+ <Button
26
+ onclick={() => {
27
+ isOpen = true;
28
+ }}
29
+ {...rest}
30
+ bind:element
31
+ iconEnd={{ icon: chevron, rotation: isOpen ? 180 : 0 }}
32
+ {children}
33
+ />
34
+ {#if isOpen && !disabled}
35
+ <Popper
36
+ bind:element={popperElement}
37
+ bind:isOpen
38
+ parentNode={element}
39
+ {...popperProps}
40
+ position="BC"
41
+ stickToHookWidth={true}
42
+ >
43
+ <MenuList {...menuProps}>
44
+ {#snippet children({ item })}
45
+ {#if menuItem}
46
+ {@render menuItem?.({ item })}
47
+ {:else}
48
+ <MenuListItem {...item} />
49
+ {/if}
50
+ {/snippet}
51
+ </MenuList>
52
+ </Popper>
53
+ {/if}
54
+
55
55
  <style>.buttonActionRoot {
56
56
  display: inline-block;
57
57
  position: relative;
@@ -82,4 +82,4 @@
82
82
  }
83
83
  .action:hover {
84
84
  background-color: rgba(255, 255, 255, 0.5);
85
- }</style>
85
+ }</style>
@@ -1,45 +1,45 @@
1
- <script lang="ts">
2
- import Icon from '../../base/icon/Icon.svelte';
3
- import Button from './Button.svelte';
4
- import type { ElementProps } from '../../types/index.js';
5
- import type { Snippet } from 'svelte';
6
- import type { ButtonProps } from './types.js';
7
- type IconButtonProps = {
8
- /** Icon to be displayed */
9
- icon: ElementProps['icon'];
10
- showShip?: boolean;
11
- /** Font size of the icon */
12
- iconFontSize?: ElementProps['iconSize'];
13
- element?: HTMLButtonElement | null;
14
-
15
- /** Aspect ratio of the icon button */
16
- ratio?: string;
17
-
18
- /** Whether to show the chip or not */
19
- showChip?: boolean;
20
-
21
- /** Rotation of the icon */
22
- rotation?: number;
23
-
24
- size?: ElementProps['width'];
25
- /** Children for the default content */
26
- children?: Snippet;
27
- } & Partial<ButtonProps>;
28
-
29
- let {
30
- element,
31
- icon,
32
- ratio = '1/1',
33
- iconFontSize = 'full',
34
- rotation = 0,
35
- size = 'mini',
36
- children,
37
- ...rest
38
- }: IconButtonProps = $props();
39
-
40
- let finalIcon = $derived(typeof icon === 'object' ? {...icon,iconSize:iconFontSize} : {icon,iconSize:iconFontSize});
41
- </script>
42
-
43
- <Button variant="square" bind:element width={size} tall="unset" {ratio} {...rest}>
44
- <Icon style="display:inline; " {rotation} icon={finalIcon} />
45
- </Button>
1
+ <script lang="ts">
2
+ import Icon from '../../base/icon/Icon.svelte';
3
+ import Button from './Button.svelte';
4
+ import type { ElementProps } from '../../types/index.js';
5
+ import type { Snippet } from 'svelte';
6
+ import type { ButtonProps } from './types.js';
7
+ type IconButtonProps = {
8
+ /** Icon to be displayed */
9
+ icon: ElementProps['icon'];
10
+ showShip?: boolean;
11
+ /** Font size of the icon */
12
+ iconFontSize?: ElementProps['iconSize'];
13
+ element?: HTMLButtonElement | null;
14
+
15
+ /** Aspect ratio of the icon button */
16
+ ratio?: string;
17
+
18
+ /** Whether to show the chip or not */
19
+ showChip?: boolean;
20
+
21
+ /** Rotation of the icon */
22
+ rotation?: number;
23
+
24
+ size?: ElementProps['width'];
25
+ /** Children for the default content */
26
+ children?: Snippet;
27
+ } & Partial<ButtonProps>;
28
+
29
+ let {
30
+ element,
31
+ icon,
32
+ ratio = '1/1',
33
+ iconFontSize = 'full',
34
+ rotation = 0,
35
+ size = 'mini',
36
+ children,
37
+ ...rest
38
+ }: IconButtonProps = $props();
39
+
40
+ let finalIcon = $derived(typeof icon === 'object' ? {...icon,iconSize:iconFontSize} : {icon,iconSize:iconFontSize});
41
+ </script>
42
+
43
+ <Button variant="square" bind:element width={size} tall="unset" {ratio} {...rest}>
44
+ <Icon style="display:inline; " {rotation} icon={finalIcon} />
45
+ </Button>
@@ -1,8 +1,8 @@
1
- .button-action {
2
- display: inline-flex;
3
- position: relative;
4
- align-items: center;
5
- .chevron {
6
- flex-shrink: 1;
7
- }
8
- }
1
+ .button-action {
2
+ display: inline-flex;
3
+ position: relative;
4
+ align-items: center;
5
+ .chevron {
6
+ flex-shrink: 1;
7
+ }
8
+ }
@@ -1,36 +1,36 @@
1
- .buttonActionRoot {
2
- display: inline-block;
3
- position: relative;
4
- width: 64px;
5
-
6
-
7
- }
8
-
9
- .buttonText {
10
- text-align: center;
11
- }
12
- .button {
13
- display: block;
14
- width: 64px;
15
-
16
- &:hover {
17
- background-color: rgba(255, 255, 255, 0.3);
18
- }
19
-
20
-
21
- }
22
-
23
- .action {
24
- position: absolute;
25
- display: block;
26
- top: 0;
27
- bottom: 0;
28
- right: 0;
29
- background-color: rgba(255, 255, 255, 0.1);
30
- width: 30%;
31
- padding: 0.5rem;
32
-
33
- &:hover {
34
- background-color: rgba(255, 255, 255, 0.5);
35
- }
36
- }
1
+ .buttonActionRoot {
2
+ display: inline-block;
3
+ position: relative;
4
+ width: 64px;
5
+
6
+
7
+ }
8
+
9
+ .buttonText {
10
+ text-align: center;
11
+ }
12
+ .button {
13
+ display: block;
14
+ width: 64px;
15
+
16
+ &:hover {
17
+ background-color: rgba(255, 255, 255, 0.3);
18
+ }
19
+
20
+
21
+ }
22
+
23
+ .action {
24
+ position: absolute;
25
+ display: block;
26
+ top: 0;
27
+ bottom: 0;
28
+ right: 0;
29
+ background-color: rgba(255, 255, 255, 0.1);
30
+ width: 30%;
31
+ padding: 0.5rem;
32
+
33
+ &:hover {
34
+ background-color: rgba(255, 255, 255, 0.5);
35
+ }
36
+ }