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
@@ -1,146 +0,0 @@
1
- <script>
2
- import Button from "../Button/index.svelte"
3
- import Icon from "../Icon/index.svelte"
4
-
5
- let { manager } = $props()
6
- </script>
7
-
8
- {#snippet main_file_stuff()}
9
- {#if manager?.error_message}
10
- <div style="display: flex; align-items: center;">
11
- <p style="color: var(--error-t);">{manager?.error_message}</p>
12
- <Button manager={manager?.error_button_manager} />
13
- </div>
14
- {/if}
15
- {#if Array.isArray(manager?.val) ? manager?.val.length > 0 : !!manager?.val}
16
- <Button manager={manager?.clear_files_button_manager} />
17
- {:else}
18
- <div class="file_input_wrapper">
19
- <input
20
- type="file"
21
- name={manager?.name}
22
- required={manager?.is_required}
23
- readonly={manager?.is_read_only}
24
- multiple={manager?.is_multiselect}
25
- accept={Array.isArray(manager?.accept) ? manager?.accept.join(", ") : ""}
26
- onchange={(e) => manager?.get_file(e)}
27
- id={`file-input-${manager?.id}`}
28
- hidden
29
- />
30
- <label for={`file-input-${manager?.id}`} class="file_input_label">
31
- {manager?.select_file_button_text ? manager?.select_file_button_text : `Select file${manager?.is_multiselect ? "(s)" : ""}`}
32
- </label>
33
- </div>
34
- {/if}
35
- {/snippet}
36
-
37
- <div class="container">
38
- {#if manager?.label}
39
- <div style="display: inline-flex;">
40
- {#if manager?.label}
41
- <p class="label">{manager?.label}:</p>
42
- {/if}
43
- </div>
44
- {/if}
45
- {#if manager?.is_drop_zone && !(manager?.is_hide_drop_zone_if_file && (Array.isArray(manager?.val) ? manager?.val.length > 1 : manager?.val))}
46
- <div class="input_container" style="height: {manager?.height};">
47
- <div
48
- class:drop_zone={manager?.is_drop_zone}
49
- style:background-image={manager?.is_drop_zone ? manager?.svg_bg : ""}
50
- style="--border_radius: {manager?.border_radius}rem;
51
- margin-left: {manager?.ml}rem; margin-right: {manager?.mr}rem; margin-top: {manager?.mt}rem; margin-bottom: {manager?.mb}rem;"
52
- ondrop={(e) => manager?.drop_handler(e)}
53
- ondragover={(e) => e.preventDefault()}
54
- role="region"
55
- aria-label="File drop area"
56
- >
57
- <div>
58
- <Icon manager={manager?.file_drop_icon_manager} />
59
- </div>
60
- {#if (manager?.val && !Array.isArray(manager?.val)) || (manager?.val && Array.isArray(manager?.val) && manager?.val.length > 0)}
61
- {#if Array.isArray(manager?.val)}
62
- {#if manager?.val.length == 1}
63
- <p>{manager?.val[0]?.name ?? "Untitled"}</p>
64
- {:else}
65
- <p>{manager?.val.length + " files selected"}</p>
66
- {/if}
67
- {:else}
68
- <p>{manager?.val?.name ?? "Untitled"}</p>
69
- {/if}
70
- {:else}
71
- <p style="margin-bottom: 1rem;">
72
- Drag and drop file{manager?.is_multiselect ? "(s)" : ""} here or
73
- </p>
74
- {/if}
75
- {@render main_file_stuff()}
76
- </div>
77
- </div>
78
- {:else}
79
- {@render main_file_stuff()}
80
- {/if}
81
- </div>
82
-
83
- <style>
84
- .container{
85
- display: flex;
86
- flex-direction: column;
87
- flex: 1;
88
- height: 100%;
89
- }
90
- .input_container {
91
- position: relative;
92
- display: flex;
93
- flex-direction: column;
94
- cursor: pointer;
95
- /* height: 100%; */
96
- }
97
- .drop_zone {
98
- border-radius: var(--border_radius);
99
- padding: 1rem 1rem 2rem 1rem;
100
- height: 100%;
101
- display: flex;
102
- flex-direction: column;
103
- align-items: center;
104
- justify-content: center;
105
- }
106
- .file_input_wrapper {
107
- position: relative;
108
- }
109
- .file_input_label {
110
- display: inline-block;
111
- padding: 0.8rem 1rem;
112
- border: 1px solid var(--g2-t);
113
- border-radius: 1rem;
114
- cursor: pointer;
115
- color: var(--g2-t);
116
- font-size: 1.6rem;
117
- line-height: 1.6rem;
118
- font-weight: 400;
119
- height: 3.4rem;
120
- }
121
- .file_input_label:hover {
122
- background-color: var(--primary-transparent2-t);
123
- }
124
- .file_input_label:active {
125
- background-color: var(--g14-t);
126
- }
127
- input[type="file"]:not(:focus) + .file_input_label {
128
- outline: none;
129
- }
130
- input[type="file"] {
131
- position: absolute;
132
- top: 0;
133
- left: 0;
134
- height: 100%;
135
- width: 100%;
136
- opacity: 0;
137
- cursor: pointer;
138
- }
139
- .label {
140
- font-size: 1.2rem;
141
- font-weight: 600;
142
- color: var(--g12-t);
143
- line-height: 1.6rem;
144
- margin-right: 0.5rem;
145
- }
146
- </style>
@@ -1,225 +0,0 @@
1
- import { create_unique_id, set_closurable, set_closurable_color } from "../../client/index.js"
2
- import { create_button_manager } from "../Button/index.svelte.js"
3
- import { create_icon_manager } from "../Icon/index.svelte.js"
4
-
5
- export function create_file_input_manager(config) {
6
- const id = create_unique_id(null, 20)
7
- let val = $state(null)
8
- let label = $derived(set_closurable(config?.label, null))
9
- let name = $derived(set_closurable(config?.name, "file"))
10
- let is_required = $derived(set_closurable(config?.is_required, false))
11
- let is_read_only = $derived(set_closurable(config?.is_read_only, false))
12
- let accept = $derived(
13
- set_closurable(config?.accept, [
14
- "image/png",
15
- "image/jpeg",
16
- "image/webp",
17
- "image/gif",
18
- "image/avif",
19
- "image/svg+xml",
20
- "application/pdf",
21
- "video/mp4",
22
- "audio/mpeg",
23
- "audio/aac",
24
- "application/json",
25
- ])
26
- )
27
- let is_multiselect = $derived(set_closurable(config?.is_multiselect, false))
28
- let is_disabled = $derived(set_closurable(config?.is_disabled, false))
29
- let border_radius = $derived(set_closurable(config?.border_radius, 2))
30
- let height = $derived(set_closurable(config?.height, null))
31
- let icon_color = $derived(set_closurable_color(config?.icon_color, "var(--primary-t)"))
32
- let border_color = $derived(set_closurable_color(config?.border_color, "aabbccff"))
33
- let is_drop_zone = $derived(set_closurable(config?.is_drop_zone, true))
34
- let is_hide_drop_zone_if_file = $derived(set_closurable(config?.is_hide_drop_zone_if_file, true))
35
- let ml = $derived(set_closurable(config?.ml, 0))
36
- let mr = $derived(set_closurable(config?.mr, 0))
37
- let mt = $derived(set_closurable(config?.mt, 0))
38
- let mb = $derived(set_closurable(config?.mb, 0))
39
- let select_file_button_text = $derived(set_closurable(config?.select_file_button_text, null))
40
- let error_message = $state(null)
41
- let error_button_manager = $state(null)
42
- let clear_files_button_manager = $state(null)
43
- let file_drop_icon_manager = $state(null)
44
-
45
- let svg_bg = $derived(`url(
46
- "data:image/svg+xml,%3csvg width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'%3e%3crect stroke='%23${border_color}' x='.1rem' y='.1rem' width='calc(100% - .2rem)' height='calc(100% - .2rem)' fill='none' rx='${
47
- border_radius * 10
48
- }' ry='${
49
- border_radius * 10
50
- }' stroke-width='2' stroke-dasharray='8%2c 14' stroke-dashoffset='6' stroke-linecap='round'/%3e%3c/svg%3e"
51
- )`)
52
-
53
- function get_file(e) {
54
- error_message = null
55
- let val_loc = []
56
- for (let file of e.target.files) {
57
- val_loc = [...val_loc, file]
58
- }
59
- if (is_multiselect) {
60
- val = val_loc
61
- } else {
62
- val = val_loc[0]
63
- }
64
- if (typeof config?.on_get_file == "function") {
65
- config?.on_get_file(val)
66
- }
67
- }
68
-
69
- function drop_handler(ev) {
70
- console.log("File(s) dropped", ev)
71
- if (ev) {
72
- ev.preventDefault()
73
- }
74
- if (is_drop_zone) {
75
- error_message = null
76
- let val_loc = []
77
- if (ev.dataTransfer.items) {
78
- for (let i = 0; i < ev.dataTransfer.items.length; i++) {
79
- if (ev.dataTransfer.items[i].kind === "file") {
80
- const file = ev.dataTransfer.items[i].getAsFile()
81
- console.log(file?.type, accept, accept.includes(file?.type))
82
- if (accept.includes(file?.type)) {
83
- console.log("1 file[" + i + "].name = " + file.name)
84
- val_loc = [...val_loc, file]
85
- } else {
86
- error_message = error_message ?? "" + " " + file?.name + " of type " + file?.type + " not allowed"
87
- }
88
- }
89
- }
90
- } else {
91
- for (let i = 0; i < ev.dataTransfer.files.length; i++) {
92
- const file = ev.dataTransfer.files[i].getAsFile()
93
- val_loc = [...val_loc, file]
94
- }
95
- }
96
- if (is_multiselect) {
97
- val = val_loc
98
- } else {
99
- val = val_loc[0]
100
- }
101
- }
102
- if (config?.on_get_file) {
103
- config?.on_get_file(val)
104
- }
105
- }
106
-
107
- function clear_files() {
108
- val = []
109
- if (config?.on_clear_files) {
110
- config?.on_clear_files()
111
- }
112
- }
113
-
114
- function init(config) {
115
- val = config?.val ?? null
116
- file_drop_icon_manager = create_icon_manager({
117
- icon_id: () => (val && val.length > 0 ? "file_dropped" : "file_drop"),
118
- size: 8,
119
- sw: 12,
120
- color: () => icon_color,
121
- })
122
- error_button_manager = create_button_manager({
123
- type: "outlined",
124
- support_icon: "x",
125
- min_height: 2.4,
126
- color: "var(--error-t)",
127
- ml: 0.5,
128
- is_uniform: true,
129
- is_disabled: () => is_disabled,
130
- on_click: () => (error_message = null),
131
- })
132
- clear_files_button_manager = create_button_manager({
133
- ml: ml,
134
- mr: mr,
135
- mt: mt,
136
- mb: mb,
137
- support_icon: "x",
138
- is_compressed: true,
139
- is_disabled: () => is_disabled,
140
- text: () => (Array.isArray(val) ? `${val.length}Files Selected` : val?.name),
141
- on_click: () => clear_files(),
142
- })
143
- }
144
-
145
- init(config)
146
-
147
- return {
148
- id,
149
- get val() {
150
- return val
151
- },
152
- get name() {
153
- return name
154
- },
155
- get label() {
156
- return label
157
- },
158
- get is_required() {
159
- return is_required
160
- },
161
- get is_read_only() {
162
- return is_read_only
163
- },
164
- get accept() {
165
- return accept
166
- },
167
- get is_multiselect() {
168
- return is_multiselect
169
- },
170
- get is_disabled() {
171
- return is_disabled
172
- },
173
- get border_radius() {
174
- return border_radius
175
- },
176
- get height() {
177
- return height
178
- },
179
- get icon_color() {
180
- return icon_color
181
- },
182
- get border_color() {
183
- return border_color
184
- },
185
- get is_drop_zone() {
186
- return is_drop_zone
187
- },
188
- get is_hide_drop_zone_if_file() {
189
- return is_hide_drop_zone_if_file
190
- },
191
- get ml() {
192
- return ml
193
- },
194
- get mr() {
195
- return mr
196
- },
197
- get mt() {
198
- return mt
199
- },
200
- get mb() {
201
- return mb
202
- },
203
- get select_file_button_text() {
204
- return select_file_button_text
205
- },
206
- get error_message() {
207
- return error_message
208
- },
209
- get svg_bg() {
210
- return svg_bg
211
- },
212
- get error_button_manager() {
213
- return error_button_manager
214
- },
215
- get clear_files_button_manager() {
216
- return clear_files_button_manager
217
- },
218
- get file_drop_icon_manager() {
219
- return file_drop_icon_manager
220
- },
221
- get_file,
222
- drop_handler,
223
- clear_files,
224
- }
225
- }
@@ -1,99 +0,0 @@
1
- <script>
2
- let { val, is_bind_val = false, color_base = "var(--g14-t)", color_hover = "var(--primary-t)", on_change } = $props()
3
-
4
- let is_hovered = $state(false)
5
-
6
- function toggle() {
7
- if (on_change) {
8
- on_change(!val)
9
- }
10
- }
11
- </script>
12
-
13
- <button
14
- class="side_bar_toggle_button"
15
- style="--color_base: {color_base}; --color_hover: {color_hover};"
16
- onpointerenter={() => (is_hovered = true)}
17
- onpointerleave={() => (is_hovered = false)}
18
- class:is_hovered
19
- onclick={() => toggle()}
20
- aria-label="Hamburger Toggle"
21
- >
22
- <span class="bar_base top_line" class:top_line_x={val}></span>
23
- <span class="bar_base mid_line" class:mid_line_x={val}></span>
24
- <span class="bar_base bot_line" class:bot_line_x={val}></span>
25
- </button>
26
-
27
- <style>
28
- .side_bar_toggle_button {
29
- background-color: transparent;
30
- border: none;
31
- cursor: pointer;
32
- outline: none;
33
- padding: 0;
34
- pointer-events: initial;
35
- height: 2rem;
36
- width: 2.2rem;
37
- border-radius: 0.5rem;
38
- position: relative;
39
- }
40
- .is_hovered .bar_base {
41
- background-position: left;
42
- }
43
- .bar_base {
44
- background: linear-gradient(to left, var(--color_base) 50%, var(--color_hover) 50%) right;
45
- background-size: 200%;
46
- display: block;
47
- height: 0.3rem;
48
- position: absolute;
49
- width: 2.2rem;
50
- border-radius: 0.2rem;
51
- transform: translateY(-50%);
52
- border: none;
53
- }
54
- .top_line {
55
- top: 10%;
56
- transition:
57
- top 0.2s 0.2s ease-out,
58
- transform 0.2s linear,
59
- background-position 0.6s ease-out;
60
- }
61
- .top_line_x {
62
- transition:
63
- top 0.2s ease-out,
64
- transform 0.2s 0.2s ease-out,
65
- background-position 0.6s ease-out;
66
- top: 50%;
67
- transform: translateY(-50%) rotate3d(0, 0, 1, -45deg);
68
- }
69
- .mid_line {
70
- top: 50%;
71
- visibility: visible;
72
- transition:
73
- visibility 0s,
74
- background-position 0.3s ease-out;
75
- transition-delay: 0.2s;
76
- }
77
- .mid_line_x {
78
- visibility: hidden;
79
- transition:
80
- visibility 0s,
81
- background-position 0.3s ease-out;
82
- transition-delay: 0.2s;
83
- }
84
- .bot_line {
85
- top: 90%;
86
- transition:
87
- top 0.2s 0.2s ease-out,
88
- transform 0.2s linear,
89
- background-position 0.8s ease-out;
90
- }
91
- .bot_line_x {
92
- transition:
93
- top 0.2s ease-out,
94
- transform 0.2s 0.2s ease-out,
95
- background-position 0.8s ease-out;
96
- top: 50%;
97
- transform: translateY(-50%) rotate3d(0, 0, 1, 45deg);
98
- }
99
- </style>
@@ -1,145 +0,0 @@
1
- <script>
2
- import { create_icon_manager } from "../Icon/index.svelte.js"
3
- import Icon from "../Icon/index.svelte"
4
- import { fade } from "svelte/transition"
5
-
6
- let { children } = $props()
7
-
8
- let container_width = $state(null)
9
- let content_width = $state(null)
10
- let show_left_arrow = $state(false)
11
- let show_right_arrow = $derived(
12
- content_width && container_width && content_width > container_width && !hide_right_arrow
13
- )
14
- let hide_right_arrow = $state(false)
15
-
16
- function scrolled(e) {
17
- if (container_width < content_width) {
18
- show_left_arrow = e.target.scrollLeft > 0.5
19
- hide_right_arrow = e.target.scrollWidth - container_width - e.target.scrollLeft < 0.5
20
- } else {
21
- show_left_arrow = hide_right_arrow = false
22
- }
23
- }
24
-
25
- let scroll_box_el = $state(null)
26
-
27
- let in_left_arrow = $state(false)
28
- let in_right_arrow = $state(false)
29
- let hold_sub = $state(null)
30
-
31
- function start_hold(dir) {
32
- in_left_arrow = dir === "left"
33
- in_right_arrow = dir === "right"
34
- const starting_scroll_left = scroll_box_el ? scroll_box_el.scrollLeft : 0
35
- let cum = 0
36
- clearInterval(hold_sub)
37
- hold_sub = setInterval(() => {
38
- cum = in_left_arrow ? cum - 0.5 : cum + 0.5
39
- cum = in_right_arrow ? cum + 0.5 : cum - 0.5
40
- scroll_box_el.scrollLeft = starting_scroll_left + cum
41
- if ((in_left_arrow && !show_left_arrow) || (in_right_arrow && !show_right_arrow)) {
42
- stop_hold()
43
- }
44
- }, 10)
45
- }
46
-
47
- function stop_hold() {
48
- clearInterval(hold_sub)
49
- in_left_arrow = false
50
- in_right_arrow = false
51
- }
52
-
53
- let left_icon_manager = create_icon_manager({
54
- icon_id: "arrow",
55
- size: 1.2,
56
- sw: 50,
57
- deg: 270,
58
- color: () => in_left_arrow ? "var(--g4-t)" : "var(--g8-t)"
59
- })
60
-
61
- let right_icon_manager = create_icon_manager({
62
- icon_id: "arrow",
63
- size: 1.2,
64
- sw: 50,
65
- deg: 90,
66
- color: () => in_right_arrow ? "var(--g4-t)" : "var(--g8-t)"
67
- })
68
- </script>
69
-
70
- <div class="container" bind:offsetWidth={container_width} onwheel={e => e.stopPropagation()} ontouchmove={e => e.stopPropagation()} >
71
- <div class="scrollbox" onscroll={(e) => scrolled(e)} bind:this={scroll_box_el}>
72
- <div class="options" bind:clientWidth={content_width}>
73
- {#if children}
74
- {@render children()}
75
- {/if}
76
- </div>
77
- </div>
78
- {#if show_left_arrow}
79
- <div
80
- class="arrow_base left_arrow"
81
- transition:fade={{ duration: 150 }}
82
- onpointerenter={() => start_hold("left")}
83
- onpointerleave={stop_hold}
84
- ontouchstart={() => start_hold("left")}
85
- ontouchend={(e) => {
86
- e.preventDefault()
87
- stop_hold(e)}}
88
- >
89
- <Icon manager={left_icon_manager} />
90
- </div>
91
- {/if}
92
- {#if show_right_arrow}
93
- <div
94
- class="arrow_base right_arrow"
95
- transition:fade={{ duration: 150 }}
96
- onpointerenter={() => start_hold("right")}
97
- onpointerleave={stop_hold}
98
- ontouchstart={() => start_hold("right")}
99
- ontouchend={e => {
100
- e.preventDefault()
101
- stop_hold(e)}
102
- }
103
- >
104
- <Icon manager={right_icon_manager} />
105
- </div>
106
- {/if}
107
- </div>
108
-
109
- <style>
110
- .container {
111
- display: flex;
112
- flex: 1;
113
- position: relative;
114
- overflow: hidden;
115
- }
116
- .scrollbox {
117
- display: flex;
118
- overflow: scroll;
119
- }
120
- .scrollbox::-webkit-scrollbar {
121
- display: none;
122
- }
123
- .options {
124
- display: flex;
125
- }
126
- .arrow_base {
127
- position: absolute;
128
- width: 4rem;
129
- display: flex;
130
- align-items: center;
131
- }
132
- .left_arrow {
133
- background: linear-gradient(90deg, var(--bg), transparent);
134
- left: 0;
135
- top: 0;
136
- bottom: 0;
137
- }
138
- .right_arrow {
139
- background: linear-gradient(90deg, transparent, var(--bg));
140
- right: 0;
141
- top: 0;
142
- bottom: 0;
143
- flex-direction: row-reverse;
144
- }
145
- </style>