sveltekit-ui 1.1.15 → 1.1.17

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 (200) hide show
  1. package/package.json +3 -3
  2. package/src/routes/+page.svelte +24 -0
  3. package/dist/Components/Alert/index.svelte +0 -88
  4. package/dist/Components/Alert/index.svelte.js +0 -101
  5. package/dist/Components/ArrowToggle/index.svelte +0 -62
  6. package/dist/Components/Attachment/index.svelte +0 -77
  7. package/dist/Components/Attachment/index.svelte.js +0 -119
  8. package/dist/Components/Audio/index.svelte +0 -193
  9. package/dist/Components/Audio/index.svelte.js +0 -463
  10. package/dist/Components/AudioEditor/index.svelte +0 -252
  11. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  12. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  17. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  18. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  19. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  20. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  21. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  22. package/dist/Components/Button/index.svelte +0 -721
  23. package/dist/Components/Button/index.svelte.js +0 -375
  24. package/dist/Components/Chart/Klines/index.svelte +0 -87
  25. package/dist/Components/Chart/index.svelte +0 -226
  26. package/dist/Components/Chart/index.svelte.js +0 -1090
  27. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  28. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  29. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  30. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  31. package/dist/Components/ChartInput/index.svelte +0 -21
  32. package/dist/Components/ChartInput/index.svelte.js +0 -671
  33. package/dist/Components/Checkbox/index.svelte +0 -411
  34. package/dist/Components/Checkbox/index.svelte.js +0 -178
  35. package/dist/Components/Code/index.svelte +0 -23
  36. package/dist/Components/Code/index.svelte.js +0 -33
  37. package/dist/Components/Color/index.svelte +0 -51
  38. package/dist/Components/Color/index.svelte.js +0 -31
  39. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  40. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  41. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  42. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  43. package/dist/Components/ColorInput/index.svelte +0 -70
  44. package/dist/Components/ColorInput/index.svelte.js +0 -386
  45. package/dist/Components/ConditionsInput/index.svelte +0 -46
  46. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  47. package/dist/Components/Confetti/index.svelte +0 -98
  48. package/dist/Components/Confetti/index.svelte.js +0 -94
  49. package/dist/Components/Content/index.svelte +0 -500
  50. package/dist/Components/Content/index.svelte.js +0 -910
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  74. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  76. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  78. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  79. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  80. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  81. package/dist/Components/ContentInput/index.svelte +0 -78
  82. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  83. package/dist/Components/CronInput/index.svelte +0 -78
  84. package/dist/Components/CronInput/index.svelte.js +0 -198
  85. package/dist/Components/DataTypeInput/index.svelte +0 -174
  86. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  87. package/dist/Components/Dropdown/index.svelte +0 -116
  88. package/dist/Components/Dropdown/index.svelte.js +0 -403
  89. package/dist/Components/EmailAddress/index.svelte +0 -22
  90. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  91. package/dist/Components/ErrorX/index.svelte +0 -58
  92. package/dist/Components/Eye/index.svelte +0 -57
  93. package/dist/Components/FileInput/index.svelte +0 -146
  94. package/dist/Components/FileInput/index.svelte.js +0 -225
  95. package/dist/Components/Hamburger/index.svelte +0 -99
  96. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  97. package/dist/Components/Icon/index.svelte +0 -412
  98. package/dist/Components/Icon/index.svelte.js +0 -116
  99. package/dist/Components/IconInput/index.svelte +0 -77
  100. package/dist/Components/IconInput/index.svelte.js +0 -259
  101. package/dist/Components/Image/index.svelte +0 -126
  102. package/dist/Components/Image/index.svelte.js +0 -116
  103. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  104. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  105. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  106. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  107. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  108. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  109. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  110. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  111. package/dist/Components/ImageEditor/index.svelte +0 -93
  112. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  113. package/dist/Components/ImageSlider/index.svelte +0 -124
  114. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  115. package/dist/Components/InfoBox/index.svelte +0 -89
  116. package/dist/Components/Json/Nested/index.svelte +0 -157
  117. package/dist/Components/Json/index.svelte +0 -60
  118. package/dist/Components/Json/index.svelte.js +0 -594
  119. package/dist/Components/LabeledItem/index.svelte +0 -102
  120. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  121. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  122. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  123. package/dist/Components/Layout/index.svelte +0 -149
  124. package/dist/Components/Layout/index.svelte.js +0 -360
  125. package/dist/Components/Link/index.svelte +0 -47
  126. package/dist/Components/Link/index.svelte.js +0 -136
  127. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  128. package/dist/Components/LoadingWheel/index.svelte +0 -38
  129. package/dist/Components/Location/index.svelte +0 -79
  130. package/dist/Components/Location/index.svelte.js +0 -288
  131. package/dist/Components/LocationInput/index.svelte +0 -197
  132. package/dist/Components/LocationInput/index.svelte.js +0 -965
  133. package/dist/Components/Number/index.svelte +0 -47
  134. package/dist/Components/Number/index.svelte.js +0 -151
  135. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  136. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  137. package/dist/Components/PhoneNumber/index.svelte +0 -22
  138. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  139. package/dist/Components/Popover/index.svelte +0 -396
  140. package/dist/Components/Popover/index.svelte.js +0 -319
  141. package/dist/Components/Qr/index.svelte +0 -85
  142. package/dist/Components/Qr/index.svelte.js +0 -301
  143. package/dist/Components/QrInput/index.svelte +0 -47
  144. package/dist/Components/QrInput/index.svelte.js +0 -218
  145. package/dist/Components/Slider/index.svelte +0 -239
  146. package/dist/Components/Slider/index.svelte.js +0 -469
  147. package/dist/Components/Spacer/index.svelte +0 -41
  148. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  149. package/dist/Components/StoragePicker/index.svelte +0 -187
  150. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  151. package/dist/Components/SuccessCheck/index.svelte +0 -56
  152. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  153. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  154. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  155. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  156. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  157. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  158. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  159. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  160. package/dist/Components/TableAdvanced/index.svelte +0 -275
  161. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  162. package/dist/Components/Tag/index.svelte +0 -45
  163. package/dist/Components/Tag/index.svelte.js +0 -76
  164. package/dist/Components/TextArrayInput/index.svelte +0 -108
  165. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  166. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  167. package/dist/Components/TextInput/index.svelte +0 -223
  168. package/dist/Components/TextInput/index.svelte.js +0 -447
  169. package/dist/Components/Time/index.svelte +0 -7
  170. package/dist/Components/Time/index.svelte.js +0 -38
  171. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  172. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  173. package/dist/Components/TimeInput/index.js +0 -702
  174. package/dist/Components/TimeInput/index.svelte +0 -211
  175. package/dist/Components/TimeInput/index.svelte.js +0 -638
  176. package/dist/Components/Tooltip/index.svelte +0 -143
  177. package/dist/Components/TransparentBackground/index.svelte +0 -153
  178. package/dist/Components/TypingDots/index.svelte +0 -84
  179. package/dist/Components/VariablePathInput/index.svelte +0 -63
  180. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  181. package/dist/Components/VideoTBD/index.svelte +0 -100
  182. package/dist/Components/XFollow/index.svelte +0 -42
  183. package/dist/Components/XPost/index.svelte +0 -52
  184. package/dist/Components/XPost/index.svelte.js +0 -64
  185. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  186. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  187. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  188. package/dist/actions/draggable.js +0 -49
  189. package/dist/actions/index.js +0 -24
  190. package/dist/actions/no_spaces.js +0 -33
  191. package/dist/actions/numbers_only.js +0 -26
  192. package/dist/actions/scroll_y.js +0 -28
  193. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  194. package/dist/actions/swipe_handler.js +0 -295
  195. package/dist/client/astc_formatting/index.js +0 -1128
  196. package/dist/client/docs/index.js +0 -7622
  197. package/dist/client/index.js +0 -735
  198. package/dist/client/types/index.js +0 -2812
  199. package/dist/index.js +0 -180
  200. package/dist/style.css +0 -682
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sveltekit-ui",
3
- "version": "1.1.15",
3
+ "version": "1.1.17",
4
4
  "description": "A SvelteKit UI component library for building modern web applications",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -19,14 +19,14 @@
19
19
  "dependencies": {
20
20
  "context-filter-polyfill": "^0.3.23",
21
21
  "qr-code-styling": "^1.9.2",
22
- "svelte": "^5.45.6"
22
+ "svelte": "^5.45.8"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@sveltejs/kit": "^2.22.2"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@sveltejs/adapter-vercel": "^6.2.0",
29
- "@sveltejs/kit": "^2.49.1",
29
+ "@sveltejs/kit": "^2.49.2",
30
30
  "@sveltejs/package": "^2.5.7",
31
31
  "@sveltejs/vite-plugin-svelte": "^6.2.1",
32
32
  "@vercel/analytics": "^1.6.1",
@@ -132,6 +132,30 @@
132
132
  attributes: { content: "For easier building, check out the ", text_color: null },
133
133
  selector_id: "upxajwlo",
134
134
  },
135
+ {
136
+ type_id: "link",
137
+ children: [
138
+ {
139
+ type_id: "base_text",
140
+ children: [],
141
+ attributes: { content: "contibase quick-start guide", text_color: null },
142
+ selector_id: "dwwoaka",
143
+ },
144
+ ],
145
+ attributes: {
146
+ href: "https://www.contibase.com/blog/quick-start-guide",
147
+ display_text: "contibase quick-start guide",
148
+ text_color: null,
149
+ is_show_preview: null,
150
+ },
151
+ selector_id: "cbmddeuw",
152
+ },
153
+ {
154
+ type_id: "base_text",
155
+ children: [],
156
+ attributes: { content: "or the ", text_color: null },
157
+ selector_id: "upxaddo",
158
+ },
135
159
  {
136
160
  type_id: "link",
137
161
  children: [
@@ -1,88 +0,0 @@
1
- <script>
2
- import SuccessCheck from "../SuccessCheck/index.svelte"
3
- import ErrorX from "../ErrorX/index.svelte"
4
- import Icon from "../Icon/index.svelte"
5
- import Button from "../Button/index.svelte"
6
- import { fly } from "svelte/transition"
7
-
8
- let { manager = null, options = null, on_alert_added } = $props()
9
- </script>
10
-
11
- <div class="alerts_container">
12
- {#if Array.isArray(manager?.alerts) && manager?.alerts.length > 0}
13
- {#each manager?.alerts as alert, i (alert)}
14
- <div
15
- class="card alert_box"
16
- class:alert_container={!manager?.is_small_screen}
17
- class:small_alert_container={manager?.is_small_screen}
18
- style="--br: {manager?.border_radius}rem;"
19
- transition:fly={{ x: 300, duration: 400 }}
20
- >
21
- <div class="icon">
22
- {#if alert.icon === "check"}
23
- <SuccessCheck color={manager?.success_icon_color} />
24
- {:else if alert.icon === "x"}
25
- <ErrorX color={manager?.error_icon_color} />
26
- {/if}
27
- </div>
28
- <div class="text_container">
29
- <h3>{alert.header}</h3>
30
- <p>{alert.message}</p>
31
- </div>
32
- <div class="x">
33
- <Button manager={alert?.x_button_manager} />
34
- </div>
35
- </div>
36
- {/each}
37
- {/if}
38
- </div>
39
-
40
- <style>
41
- .alerts_container {
42
- position: absolute;
43
- right: 0;
44
- overflow: scroll;
45
- max-height: 100vh;
46
- z-index: 10;
47
- }
48
- .alerts_container h3 {
49
- font-size: clamp(2.2rem, 4.2vw, 2.4rem);
50
- line-height: clamp(2.4rem, 4.5vw, 2.7rem);
51
- }
52
- .alert_container {
53
- position: relative;
54
- width: 30rem;
55
- height: 7rem;
56
- display: flex;
57
- align-items: center;
58
- }
59
- .small_alert_container {
60
- position: relative;
61
- height: 8rem;
62
- display: flex;
63
- align-items: center;
64
- }
65
- .alert_box {
66
- border-radius: var(--br);
67
- border: 1px solid var(--g15-t);
68
- box-shadow: 0 0.2rem 1rem var(--shadow3);
69
- }
70
- .icon {
71
- min-height: 4rem;
72
- min-width: 4rem;
73
- margin: auto 0.5rem auto 0;
74
- flex: 0;
75
- }
76
- .text_container {
77
- flex: 1;
78
- text-align: left;
79
- max-height: 100%;
80
- overflow: scroll;
81
- }
82
- .x {
83
- position: absolute;
84
- top: 0;
85
- right: 0;
86
- margin: 0.1rem;
87
- }
88
- </style>
@@ -1,101 +0,0 @@
1
- import { create_unique_id } from "../../client/index.js"
2
- import { create_button_manager } from "../Button/index.svelte.js"
3
-
4
- export function create_alert_manager(config) {
5
- let alerts = $state([])
6
- let is_small_screen = $state(false)
7
- let x_color = $state("var(--g7-t)")
8
- let border_radius = $state(1)
9
- let success_icon_color = $state("var(--success-t)")
10
- let error_icon_color = $state("var(--error-t)")
11
- let interval = $state(null)
12
-
13
- function run_auto_delete() {
14
- if (interval) {
15
- clearInterval(interval)
16
- interval = null
17
- }
18
- if (Array.isArray(alerts) && alerts.length > 0) {
19
- interval = setInterval(function () {
20
- if (Array.isArray(alerts) && alerts.length > 0) {
21
- alerts.sort((a, b) => a?.epoch - b?.epoch)
22
- const id = alerts[0]?.id
23
- if (id) {
24
- delete_alert(id)
25
- }
26
- }
27
- }, 3800)
28
- }
29
- }
30
-
31
- function delete_alert(id) {
32
- if (Array.isArray(alerts)) {
33
- alerts = alerts.filter((h) => h?.id != id)
34
- if (alerts.length < 1 && interval) {
35
- clearInterval(interval)
36
- interval = null
37
- }
38
- }
39
- }
40
-
41
- function add_alert(header, message, icon) {
42
- const id = create_unique_id(null, 20)
43
- const alert_to_add = {
44
- id: id,
45
- header: header,
46
- message: message,
47
- icon: icon,
48
- epoch: Math.floor(Date.now() / 1000),
49
- x_button_manager: create_button_manager({
50
- type: "soft",
51
- support_icon: "x",
52
- is_uniform: true,
53
- on_click: () => delete_alert(id),
54
- }),
55
- }
56
- alerts.push(alert_to_add)
57
- if (!interval) {
58
- run_auto_delete()
59
- }
60
- if (config?.on_alert_added) {
61
- config?.on_alert_added(alert_to_add)
62
- }
63
- }
64
-
65
- function init(config) {
66
- alerts = config?.alerts ?? []
67
- is_small_screen = config?.is_small_screen ?? false
68
- x_color = config?.x_color ?? "var(--g7-t)"
69
- border_radius = config?.border_radius ?? 1
70
- success_icon_color = config?.success_icon_color ?? "var(--success-t)"
71
- error_icon_color = config?.alerts ?? "var(--error-t)"
72
- run_auto_delete()
73
- }
74
- init(config)
75
-
76
- return {
77
- get interval() {
78
- return interval
79
- },
80
- get alerts() {
81
- return alerts
82
- },
83
- get is_small_screen() {
84
- return is_small_screen
85
- },
86
- get x_color() {
87
- return x_color
88
- },
89
- get border_radius() {
90
- return border_radius
91
- },
92
- get success_icon_color() {
93
- return success_icon_color
94
- },
95
- get error_icon_color() {
96
- return error_icon_color
97
- },
98
- add_alert,
99
- delete_alert,
100
- }
101
- }
@@ -1,62 +0,0 @@
1
- <script>
2
- let { direction = "up", is_open = false, color_one = "var(--g6-t)" } = $props()
3
-
4
- const map = { left: 270, right: 90, down: 180 }
5
- let r_deg = $derived(map?.[direction] ? map?.[direction] : 0)
6
- </script>
7
-
8
- <div class="side_bar_toggle" style="--r_deg: {r_deg}deg; --color_one: {color_one};">
9
- <div class="arrow_container">
10
- <span class="bar_base" class:left_line={is_open} class:left_line_opp={!is_open}></span>
11
- <span class="bar_base right_line" class:right_line={is_open} class:right_line_opp={!is_open}></span>
12
- </div>
13
- </div>
14
-
15
- <style>
16
- .side_bar_toggle {
17
- background-color: transparent;
18
- border: none;
19
- cursor: pointer;
20
- outline: none;
21
- padding: 0;
22
- pointer-events: initial;
23
- width: 1.2rem;
24
- transform: rotate(var(--r_deg));
25
- }
26
- .arrow_container {
27
- position: relative;
28
- height: 1rem;
29
- }
30
- .bar_base {
31
- background: linear-gradient(to left, var(--color_one) 50%, var(--g6-t) 50%) right;
32
- background-size: 200%;
33
- background-position: left;
34
- position: absolute;
35
- width: 0.8rem;
36
- border-radius: 0.1rem;
37
- transition: 0.4s ease;
38
- height: 0.2rem;
39
- transform-origin: center right;
40
- transform: rotate(0);
41
- left: 0;
42
- }
43
- .left_line {
44
- top: 0;
45
- transform-origin: center right;
46
- transform: translateX(0.05rem) rotate(-45deg);
47
- }
48
- .left_line_opp {
49
- top: calc(100% - 0.1rem);
50
- background-position: right;
51
- transform: translateX(0.05rem) rotate(45deg);
52
- }
53
- .right_line {
54
- top: 0;
55
- transform: translateX(-0.05rem) rotate(225deg);
56
- }
57
- .right_line_opp {
58
- top: calc(100% - 0.1rem);
59
- background-position: right;
60
- transform: translateX(-0.05rem) rotate(135deg);
61
- }
62
- </style>
@@ -1,77 +0,0 @@
1
- <script>
2
- import Button from "../Button/index.svelte"
3
- import Popover from "../Popover/index.svelte"
4
- import Image from "../Image/index.svelte"
5
- import Audio from "../Audio/index.svelte"
6
- import Json from "../Json/index.svelte"
7
- import Icon from "../Icon/index.svelte"
8
-
9
- let { manager } = $props()
10
- </script>
11
-
12
- {#snippet display_content()}
13
- {#if ["image/webp", "image/jpeg", "image/png", "image/gif"].includes(manager?.val_prepped?.content_type)}
14
- <Image manager={manager?.val_prepped?.image_manager} />
15
- {:else if ["audio/mpeg", "audio/wav", "audio/ogg", "audio/aac"].includes(manager?.val_prepped?.content_type)}
16
- <Audio manager={manager?.val_prepped?.audio_manager} />
17
- {:else if ["application/json"].includes(manager?.val_prepped?.content_type)}
18
- <Json manager={manager?.val_prepped?.json_manager} />
19
- {/if}
20
- {/snippet}
21
-
22
- <div class="container">
23
- <div style="display: flex; flex: 1; gap: 1rem; justify-content: space-between;">
24
- <div style="display: flex; align-items: center; gap: 1rem; flex: 1; min-width: 0;">
25
- <Icon manager={manager?.val_prepped?.icon_manager} />
26
- <div class="text_container">
27
- <p class="file_name">{manager?.val_prepped?.name}</p>
28
- <p style="margin-top: 0; line-height: 1.4rem; color: var(--g10-t); font-size: 1.2rem;">
29
- {manager?.val_prepped?.content_type}
30
- <span style="color: var(--g6-t); font-size: 1.2rem; margin-left: 1rem;"
31
- >{manager?.val_prepped?.content
32
- ? `${Math.round(((manager?.val_prepped?.content.length * 3) / 4) * 0.001)}KB`
33
- : ""}</span
34
- >
35
- </p>
36
- </div>
37
- </div>
38
- <div style="display: flex; gap: .5rem; flex-shrink: 0;">
39
- <Button manager={manager?.download_button_manager} />
40
- {#if ["image/webp", "image/jpeg", "image/png", "image/gif", "audio/mpeg", "audio/wav", "audio/ogg", "audio/aac", "application/json"].includes(manager?.val_prepped?.content_type)}
41
- <Button manager={manager?.show_content_button_manager} />
42
- {/if}
43
- </div>
44
- </div>
45
- {#if manager?.is_show_content}
46
- {@render display_content()}
47
- {/if}
48
- </div>
49
-
50
- <Popover manager={manager?.show_content_popover_manager}>
51
- {#snippet content()}
52
- {@render display_content()}
53
- {/snippet}
54
- </Popover>
55
-
56
- <style>
57
- .container {
58
- border-radius: 1.5rem;
59
- padding: 0.5rem 1rem;
60
- border: 1px solid var(--shadow5-t);
61
- }
62
- .file_name {
63
- margin: 0;
64
- line-height: 1.4rem;
65
- font-weight: bold;
66
- white-space: nowrap;
67
- overflow: hidden;
68
- text-overflow: ellipsis;
69
- max-width: 100%;
70
- }
71
- .text_container {
72
- display: flex;
73
- flex-direction: column;
74
- overflow: hidden;
75
- min-width: 0;
76
- }
77
- </style>
@@ -1,119 +0,0 @@
1
- import { create_button_manager } from "../Button/index.svelte.js"
2
- import { create_popover_manager } from "../Popover/index.svelte.js"
3
- import { create_image_manager } from "../Image/index.svelte.js"
4
- import { create_audio_manager } from "../Audio/index.svelte.js"
5
- import { create_json_manager } from "../Json/index.svelte.js"
6
- import { create_icon_manager } from "../Icon/index.svelte.js"
7
- import { set_closurable } from "../../client/index.js"
8
-
9
- export function create_attachment_manager(config) {
10
- let val_prepped = $state(null)
11
- let show_content_popover_manager = $state(null)
12
- let show_content_button_manager = $state(null)
13
- let download_button_manager = $state(null)
14
- let is_show_content = $derived(set_closurable(config?.is_show_content, false))
15
-
16
- function set_val_prepped(input) {
17
- if (!input || typeof input != "object" || Array.isArray(input)) {
18
- val_prepped = null
19
- return
20
- }
21
- let val_prepped_loc = {
22
- ...input,
23
- }
24
- if (["image/webp", "image/jpeg", "image/png", "image/gif"].includes(input?.content_type)) {
25
- val_prepped_loc.image_manager = create_image_manager({
26
- src: `data:${input.content_type};base64,${input.content}`,
27
- mime_type: input?.content_type,
28
- display_max_height: 280,
29
- display_max_width: 380,
30
- bg_img_blur: 20,
31
- bg_img_opacity: 0.01,
32
- })
33
- val_prepped_loc.icon_manager = create_icon_manager({
34
- icon_id: "photo",
35
- sw: 30,
36
- })
37
- } else if (["audio/mpeg", "audio/wav", "audio/ogg", "audio/aac"].includes(input?.content_type)) {
38
- val_prepped_loc.audio_manager = create_audio_manager({
39
- // ui_type: "short",
40
- src: `data:${input.content_type};base64,${input.content}`,
41
- type: input?.content_type,
42
- })
43
- val_prepped_loc.icon_manager = create_icon_manager({
44
- icon_id: "file", // tbd
45
- sw: 30,
46
- })
47
- } else if (["application/json"].includes(input?.content_type)) {
48
- const decoded_content = atob(input.content)
49
- const extracted_json = JSON.parse(decoded_content)
50
- val_prepped_loc.json_manager = create_json_manager({
51
- is_edit_mode: false,
52
- is_popover: false,
53
- is_show_buttons: true,
54
- val: extracted_json,
55
- })
56
- val_prepped_loc.icon_manager = create_icon_manager({
57
- icon_id: "file", // tbd
58
- sw: 30,
59
- })
60
- } else {
61
- val_prepped_loc.icon_manager = create_icon_manager({
62
- icon_id: "file",
63
- sw: 30,
64
- })
65
- }
66
- val_prepped = val_prepped_loc
67
- }
68
-
69
- function download_attachment(input) {
70
- const data_url = `data:${input.content_type};base64,${input.content}`
71
- const link = document.createElement("a")
72
- link.href = data_url
73
- link.download = input.name
74
- document.body.appendChild(link)
75
- link.click()
76
- document.body.removeChild(link)
77
- }
78
-
79
- function init(config) {
80
- set_val_prepped(config?.attachment)
81
- show_content_popover_manager = create_popover_manager({
82
- header: "Attachment",
83
- target_width: 400,
84
- target_height: 340,
85
- })
86
- download_button_manager = create_button_manager({
87
- type: "outlined",
88
- is_uniform: true,
89
- support_icon: "download",
90
- on_click: () => download_attachment(config?.attachment),
91
- })
92
- show_content_button_manager = create_button_manager({
93
- type: "outlined",
94
- text: "View",
95
- is_compressed: true,
96
- popover_target: () => `popover_${show_content_popover_manager?.id}`,
97
- })
98
- }
99
-
100
- init(config)
101
-
102
- return {
103
- get val_prepped() {
104
- return val_prepped
105
- },
106
- get show_content_popover_manager() {
107
- return show_content_popover_manager
108
- },
109
- get show_content_button_manager() {
110
- return show_content_button_manager
111
- },
112
- get download_button_manager() {
113
- return download_button_manager
114
- },
115
- get is_show_content() {
116
- return is_show_content
117
- },
118
- }
119
- }
@@ -1,193 +0,0 @@
1
- <script>
2
- import Button from "../Button/index.svelte"
3
- import Popover from "../Popover/index.svelte"
4
- import LoadingWheel from "../LoadingWheel/index.svelte"
5
- import Slider from "../Slider/index.svelte"
6
- import { onMount } from "svelte"
7
-
8
- let { manager } = $props()
9
-
10
- onMount(() => {
11
- if(typeof manager?.handle_mount == "function"){
12
- manager?.handle_mount()
13
- }
14
- })
15
-
16
-
17
- </script>
18
-
19
- {#snippet settings()}
20
- <Button manager={manager?.settings_button_manager} />
21
- <Popover manager={manager?.settings_popover_manager}>
22
- {#snippet content()}
23
- <div>
24
- <Slider manager={manager?.volume_slider_manager} />
25
- <Slider manager={manager?.rate_slider_manager} />
26
- </div>
27
- {/snippet}
28
- </Popover>
29
- {/snippet}
30
-
31
- <!-- onloadstart={() => console.log('Load start')}
32
- onwaiting={() => console.log('Waiting')}
33
- onstalled={() => console.log('Stalled')}
34
- onseeked={() => console.log('seeked')}
35
- onseeking={() => console.log('seeking')}
36
- ondurationchange={(e) => console.log('durationchange',e)}
37
- onloadeddata={(e) => console.log('onloadeddata',e)}
38
- oncanplaythrough={() => console.log('can_play_through')}
39
- onerror={(e) => console.log('error',e)}
40
- onabort={(e) => console.log('abort',e)} -->
41
- <div class="container">
42
- <audio
43
- id={`audio_${manager?.id}`}
44
- onplaying={() => manager?.play_audio()}
45
- onended={() => manager?.pause_audio()}
46
- ontimeupdate={() => manager?.handle_time_update()}
47
- oncanplay={() => manager?.handle_can_play()}
48
- onloadedmetadata={(e) => manager?.handle_loaded_metadata(e)}
49
- onprogress={() => manager?.handle_progress()}
50
- preload="metadata"
51
- style="display: none;"
52
- controls
53
- src={manager?.src}
54
- type={manager?.type}
55
- ></audio>
56
- {#if manager?.ui_type == 'square'}
57
- <div
58
- class="container_square"
59
- style="margin-left: {manager?.ml}rem; margin-right: {manager?.mr}rem; margin-top: {manager?.mt}rem; margin-bottom: {manager?.mb}rem;"
60
- >
61
- {#if manager?.image_src && !manager?.is_hide_image}
62
- <img
63
- src={manager?.image_src}
64
- type={manager?.image_type}
65
- alt={manager?.title || "Audio"}
66
- height="auto"
67
- width="100%"
68
- style="margin-right: 1rem;"
69
- />
70
- {/if}
71
- {#if !manager?.src}
72
- <p style="display: flex; flex: 1;">Missing Audio Source</p>
73
- {:else if manager?.is_loading && !manager?.time_slider_manager?.max}
74
- <div style="display: flex; flex: 1; gap: 1rem; margin: 2.5rem 0;">
75
- <LoadingWheel size={2} />
76
- <p>Loading...</p>
77
- </div>
78
- {:else}
79
- <div style="width: 100%; margin: .5rem 0;">
80
- <Slider manager={manager?.time_slider_manager} />
81
- </div>
82
- <div style="display: flex;">
83
- <Button manager={manager?.play_pause_button_manager} />
84
- <div class="slider_box" class:is_short={manager?.ui_type == 'short'} >
85
- <span>{manager?.formatted_current_time}{manager?.time_slider_manager?.max && manager?.time_slider_manager?.max != Infinity ? ` / ${manager?.formatted_duration}` : ""}</span>
86
- </div>
87
- {@render settings()}
88
- </div>
89
- {/if}
90
- </div>
91
- {:else}
92
- <div
93
- class="container_line"
94
- class:is_short={manager?.ui_type == 'short'}
95
- style="margin-left: {manager?.ml}rem; margin-right: {manager?.mr}rem; margin-top: {manager?.mt}rem; margin-bottom: {manager?.mb}rem;"
96
- >
97
- {#if manager?.image_src && !manager?.is_hide_image}
98
- <img
99
- src={manager?.image_src}
100
- type={manager?.image_type}
101
- alt={manager?.title || "Audio"}
102
- height="40"
103
- width="auto"
104
- style="margin-right: 1rem;"
105
- />
106
- {/if}
107
- {#if !manager?.src}
108
- <p style="display: flex; flex: 1;" class:is_short={manager?.ui_type == 'short'}>Missing Audio Source</p>
109
- {:else if manager?.is_loading && !manager?.time_slider_manager?.max}
110
- <div style="display: flex; flex: 1; margin-left: 1rem;" class:is_short={manager?.ui_type == 'short'}>
111
- <LoadingWheel size={2} />
112
- {#if manager?.ui_type != 'standard'}
113
- <p style="margin-left: 1rem;" class:is_short={manager?.ui_type == 'short'}>Loading...</p>
114
- {/if}
115
- </div>
116
- {:else}
117
- <Button manager={manager?.play_pause_button_manager} />
118
- <div class="slider_box" class:is_short={manager?.ui_type == 'short'}>
119
- <span>{manager?.formatted_current_time}</span>
120
- {#if manager?.ui_type == 'standard'}
121
- <div style="display: flex; flex: 1; flex-direction: column;" class:is_short={manager?.ui_type == 'short'}>
122
- <Slider manager={manager?.time_slider_manager} />
123
- </div>
124
- {:else}
125
- <span>/</span>
126
- {/if}
127
- {#if manager?.time_slider_manager?.max && manager?.time_slider_manager?.max != Infinity}
128
- <span>{manager?.formatted_duration}</span>
129
- {/if}
130
- </div>
131
- {#if manager?.ui_type == 'standard'}
132
- {@render settings()}
133
- {/if}
134
- {/if}
135
- </div>
136
- {/if}
137
- </div>
138
-
139
- <style>
140
- .container {
141
- display: flex;
142
- flex: 0;
143
- }
144
- .container_line {
145
- display: flex;
146
- flex: 1;
147
- align-items: center;
148
- justify-content: space-between;
149
- max-width: 50rem;
150
- margin: 0;
151
- border-radius: 2rem;
152
- padding: 1rem;
153
- box-shadow:
154
- 0 0.2rem 1rem var(--shadow2),
155
- inset 0 0 0 1px var(--shadow7-t);
156
- -webkit-box-shadow:
157
- 0 0.2rem 1rem var(--shadow2),
158
- inset 0 0 0 1px var(--shadow7-t);
159
- }
160
- .container_square{
161
- display: flex;
162
- flex-direction: column;
163
- flex: 0;
164
- align-items: center;
165
- justify-content: space-between;
166
- min-width: 20rem;
167
- width: 100%;
168
- max-width: 50rem;
169
- margin: 0;
170
- border-radius: 2rem;
171
- padding: 1rem;
172
- box-shadow:
173
- 0 0.2rem 1rem var(--shadow2),
174
- inset 0 0 0 1px var(--shadow7-t);
175
- -webkit-box-shadow:
176
- 0 0.2rem 1rem var(--shadow2),
177
- inset 0 0 0 1px var(--shadow7-t);
178
- }
179
- .slider_box {
180
- display: flex;
181
- flex: 1;
182
- align-items: center;
183
- }
184
- .slider_box span {
185
- margin: 0;
186
- line-height: 1;
187
- font-size: 1.6rem;
188
- margin: 0 0.5rem;
189
- }
190
- .is_short {
191
- flex: 0;
192
- }
193
- </style>