sveltekit-ui 1.1.16 → 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 (156) hide show
  1. package/package.json +1 -1
  2. package/dist/Components/ArrowToggle/index.svelte +0 -62
  3. package/dist/Components/Attachment/index.svelte +0 -77
  4. package/dist/Components/Attachment/index.svelte.js +0 -119
  5. package/dist/Components/AudioEditor/index.svelte +0 -252
  6. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  7. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  8. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  9. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  10. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  11. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  12. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  13. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  14. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  15. package/dist/Components/Chart/Klines/index.svelte +0 -87
  16. package/dist/Components/Chart/index.svelte +0 -226
  17. package/dist/Components/Chart/index.svelte.js +0 -1090
  18. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  19. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  20. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  21. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  22. package/dist/Components/ChartInput/index.svelte +0 -21
  23. package/dist/Components/ChartInput/index.svelte.js +0 -671
  24. package/dist/Components/Color/index.svelte +0 -51
  25. package/dist/Components/Color/index.svelte.js +0 -31
  26. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  27. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  28. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  29. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  30. package/dist/Components/ColorInput/index.svelte +0 -70
  31. package/dist/Components/ColorInput/index.svelte.js +0 -386
  32. package/dist/Components/ConditionsInput/index.svelte +0 -46
  33. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  34. package/dist/Components/Confetti/index.svelte +0 -98
  35. package/dist/Components/Confetti/index.svelte.js +0 -94
  36. package/dist/Components/Content/index.svelte +0 -500
  37. package/dist/Components/Content/index.svelte.js +0 -910
  38. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  39. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  40. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  41. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  42. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  43. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  44. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  45. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  46. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  47. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  48. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  49. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  50. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  60. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  61. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  62. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  63. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  64. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  65. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  66. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  67. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  68. package/dist/Components/ContentInput/index.svelte +0 -78
  69. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  70. package/dist/Components/CronInput/index.svelte +0 -78
  71. package/dist/Components/CronInput/index.svelte.js +0 -198
  72. package/dist/Components/DataTypeInput/index.svelte +0 -174
  73. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  74. package/dist/Components/Dropdown/index.svelte +0 -116
  75. package/dist/Components/Dropdown/index.svelte.js +0 -403
  76. package/dist/Components/ErrorX/index.svelte +0 -58
  77. package/dist/Components/FileInput/index.svelte +0 -146
  78. package/dist/Components/FileInput/index.svelte.js +0 -225
  79. package/dist/Components/Hamburger/index.svelte +0 -99
  80. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  81. package/dist/Components/IconInput/index.svelte +0 -77
  82. package/dist/Components/IconInput/index.svelte.js +0 -259
  83. package/dist/Components/Image/index.svelte +0 -126
  84. package/dist/Components/Image/index.svelte.js +0 -116
  85. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  86. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  87. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  88. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  89. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  90. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  91. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  92. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  93. package/dist/Components/ImageEditor/index.svelte +0 -93
  94. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  95. package/dist/Components/ImageSlider/index.svelte +0 -124
  96. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  97. package/dist/Components/Json/Nested/index.svelte +0 -157
  98. package/dist/Components/LabeledItem/index.svelte +0 -102
  99. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  100. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  101. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  102. package/dist/Components/Layout/index.svelte +0 -149
  103. package/dist/Components/Layout/index.svelte.js +0 -360
  104. package/dist/Components/LoadingWheel/index.svelte +0 -38
  105. package/dist/Components/LocationInput/index.svelte +0 -197
  106. package/dist/Components/LocationInput/index.svelte.js +0 -965
  107. package/dist/Components/Number/index.svelte +0 -47
  108. package/dist/Components/Number/index.svelte.js +0 -151
  109. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  110. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  111. package/dist/Components/Popover/index.svelte +0 -396
  112. package/dist/Components/Popover/index.svelte.js +0 -319
  113. package/dist/Components/Spacer/index.svelte +0 -41
  114. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  115. package/dist/Components/StoragePicker/index.svelte +0 -187
  116. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  117. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  118. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  119. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  120. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  121. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  122. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  123. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  124. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  125. package/dist/Components/Tag/index.svelte +0 -45
  126. package/dist/Components/Tag/index.svelte.js +0 -76
  127. package/dist/Components/TextArrayInput/index.svelte +0 -108
  128. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  129. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  130. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  131. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  132. package/dist/Components/TimeInput/index.js +0 -702
  133. package/dist/Components/TimeInput/index.svelte +0 -211
  134. package/dist/Components/TimeInput/index.svelte.js +0 -638
  135. package/dist/Components/Tooltip/index.svelte +0 -143
  136. package/dist/Components/TransparentBackground/index.svelte +0 -153
  137. package/dist/Components/TypingDots/index.svelte +0 -84
  138. package/dist/Components/VariablePathInput/index.svelte +0 -63
  139. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  140. package/dist/Components/XFollow/index.svelte +0 -42
  141. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  142. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  143. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  144. package/dist/actions/draggable.js +0 -49
  145. package/dist/actions/index.js +0 -24
  146. package/dist/actions/no_spaces.js +0 -33
  147. package/dist/actions/numbers_only.js +0 -26
  148. package/dist/actions/scroll_y.js +0 -28
  149. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  150. package/dist/actions/swipe_handler.js +0 -295
  151. package/dist/client/astc_formatting/index.js +0 -1128
  152. package/dist/client/docs/index.js +0 -7622
  153. package/dist/client/index.js +0 -735
  154. package/dist/client/types/index.js +0 -2812
  155. package/dist/index.js +0 -180
  156. package/dist/style.css +0 -682
@@ -1,273 +0,0 @@
1
- import { create_popover_manager } from "../Popover/index.svelte.js"
2
- import { create_button_manager } from "../Button/index.svelte.js"
3
- import { create_text_input_manager } from "../TextInput/index.svelte.js"
4
- import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
5
- import { deep_copy } from "../../client/index.js"
6
-
7
- export function create_variable_path_input_manager(config) {
8
- let popover_manager = $state(null)
9
- let open_edit_button_manager = $state(null)
10
- let add_path_item_button_manager = $state(null)
11
- let finish_button_manager = $state(null)
12
- let defined_options = $state(null)
13
- let def_dropdown_manager = $state(null)
14
- let levels_nested = $state(null)
15
- let path_prepped = $state(null)
16
- let val = $derived(get_val())
17
- let val_text = $derived(val_to_text(val))
18
- let variable_data_type_at_path = $state(null)
19
-
20
- function get_val() {
21
- return def_dropdown_manager?.val
22
- ? [def_dropdown_manager?.val, ...(Array.isArray(path_prepped) ? path_prepped.map((h) => h?.val) : [])]
23
- : []
24
- }
25
-
26
- function prep_path(input) {
27
- let path_prepped_loc = $state([])
28
- if (Array.isArray(input)) {
29
- variable_data_type_at_path = Array.isArray(defined_options)
30
- ? defined_options.find((h) => h?.key === def_dropdown_manager?.val)?.data_type
31
- : null
32
- for (let i = 1; i < input.length; i++) {
33
- let type_dropdown_manager = create_dropdown_manager({
34
- placeholder: "Select Type",
35
- is_button_compressed: true,
36
- options: [
37
- { key: "number", name: "Number" },
38
- { key: "string", name: "String" },
39
- { key: "variable", name: "Variable" },
40
- ],
41
- val: Array.isArray(input?.[i])
42
- ? "variable"
43
- : Number.isInteger(input?.[i])
44
- ? "number"
45
- : typeof input?.[i] == "string"
46
- ? "string"
47
- : null,
48
- })
49
- let remove_path_item_button_manager = create_button_manager({
50
- type: "outlined",
51
- is_uniform: true,
52
- support_icon: "x",
53
- on_click: () => {
54
- let val = get_val()
55
- prep_path(Array.isArray(val) ? val.filter((_, idx) => idx !== i) : null)
56
- },
57
- })
58
- let insert_path_item_before_button_manager = create_button_manager({
59
- type: "outlined",
60
- is_uniform: true,
61
- support_icon: "plus",
62
- on_click: () => {
63
- let val = get_val()
64
- prep_path([
65
- ...(Array.isArray(val) ? val.slice(0, i) : []),
66
- null,
67
- ...(Array.isArray(val) ? val.slice(i) : []),
68
- ])
69
- },
70
- })
71
- let const_string_value_text_input_manager = create_text_input_manager({
72
- label: "Property",
73
- placeholder: "some_property",
74
- type: "text",
75
- val: type_dropdown_manager?.val == "string" ? input?.[i] : null,
76
- })
77
- let const_number_value_text_input_manager = create_text_input_manager({
78
- label: "Index",
79
- placeholder: "0",
80
- type: "number",
81
- val: type_dropdown_manager?.val == "number" ? input?.[i] : null,
82
- })
83
- let variable_path_input_manager = create_variable_path_input_manager({
84
- val: input?.[i],
85
- levels_nested: levels_nested + 1,
86
- get_defined_options: config?.get_defined_options,
87
- on_finish: () => {
88
- variable_path_input_manager.close_popover()
89
- },
90
- })
91
- let key_options = []
92
- if (variable_data_type_at_path?.type == "object_literal") {
93
- for (let [key, property] of Object.entries(variable_data_type_at_path?.properties)) {
94
- let select_button_manager = create_button_manager({
95
- type: "outlined",
96
- is_compressed: true,
97
- text: `${key}: (${property?.type})`,
98
- selected_type: () => (const_string_value_text_input_manager?.val == key ? "half_selected" : null),
99
- on_click: () => {
100
- type_dropdown_manager.set_val("string")
101
- const_string_value_text_input_manager.set_val(key)
102
- },
103
- })
104
- key_options.push({
105
- select_button_manager: select_button_manager,
106
- })
107
- }
108
- }
109
- let val = $derived(
110
- type_dropdown_manager?.val == "string"
111
- ? const_string_value_text_input_manager?.val
112
- : type_dropdown_manager?.val == "number"
113
- ? const_number_value_text_input_manager?.val
114
- : type_dropdown_manager?.val == "variable"
115
- ? variable_path_input_manager?.val
116
- : null
117
- )
118
- let variable_data_type_at_next_path = $derived(
119
- type_dropdown_manager?.val == "string"
120
- ? variable_data_type_at_path?.properties?.[const_string_value_text_input_manager?.val]
121
- : type_dropdown_manager?.val == "number"
122
- ? variable_data_type_at_path?.items
123
- : type_dropdown_manager?.val == "variable"
124
- ? variable_path_input_manager?.variable_data_type_at_path
125
- : null
126
- )
127
- variable_data_type_at_path = variable_data_type_at_next_path
128
- path_prepped_loc.push({
129
- get type_dropdown_manager() {
130
- return type_dropdown_manager
131
- },
132
- get remove_path_item_button_manager() {
133
- return remove_path_item_button_manager
134
- },
135
- get insert_path_item_before_button_manager() {
136
- return insert_path_item_before_button_manager
137
- },
138
- get const_string_value_text_input_manager() {
139
- return const_string_value_text_input_manager
140
- },
141
- get const_number_value_text_input_manager() {
142
- return const_number_value_text_input_manager
143
- },
144
- get variable_path_input_manager() {
145
- return variable_path_input_manager
146
- },
147
- get key_options() {
148
- return key_options
149
- },
150
- get variable_data_type_at_next_path() {
151
- return variable_data_type_at_next_path
152
- },
153
- get val() {
154
- return val
155
- },
156
- })
157
- }
158
- }
159
- path_prepped = path_prepped_loc
160
- }
161
-
162
- function close_popover() {
163
- popover_manager.close()
164
- }
165
-
166
- function val_to_text(input) {
167
- let text_items = []
168
- if (Array.isArray(input) && input.length > 0) {
169
- for (let item of input) {
170
- if (Array.isArray(item)) {
171
- text_items.push(val_to_text(item))
172
- } else {
173
- text_items.push(item)
174
- }
175
- }
176
- }
177
- return `[${text_items.join(", ")}]`
178
- }
179
-
180
- function init(input) {
181
- levels_nested = input?.levels_nested ?? 0
182
- if (typeof config?.get_defined_options == "function") {
183
- defined_options = config?.get_defined_options()
184
- }
185
- popover_manager = create_popover_manager({
186
- min_width: 280,
187
- target_width: 450,
188
- min_height: 400,
189
- target_height: 240,
190
- type: "center",
191
- header: "Defined Target Selector",
192
- on_open: () => {
193
- if (typeof config?.on_dropdown_opened == "function") {
194
- config?.on_dropdown_opened()
195
- }
196
- },
197
- })
198
- open_edit_button_manager = create_button_manager({
199
- type: "outlined",
200
- h: 10,
201
- l: 3,
202
- c: 1,
203
- is_compressed: true,
204
- text: () => (Array.isArray(val) && val.length > 0 ? val_to_text(val) : "Select Defined Identifier"),
205
- popover_target: () => `popover_${popover_manager?.id}`,
206
- })
207
- def_dropdown_manager = create_dropdown_manager({
208
- label: "Defined Variable",
209
- is_button_compressed: true,
210
- val: input?.val?.[0],
211
- on_dropdown_opened: () => {
212
- if (typeof config?.get_defined_options == "function") {
213
- defined_options = config?.get_defined_options()
214
- def_dropdown_manager.set_options(defined_options)
215
- }
216
- },
217
- mb: 1,
218
- })
219
- add_path_item_button_manager = create_button_manager({
220
- type: "outlined",
221
- support_icon: "plus",
222
- text: "Add Path Item",
223
- is_compressed: true,
224
- mb: 1,
225
- on_click: () => prep_path([...(Array.isArray(val) ? val : []), null]),
226
- })
227
- finish_button_manager = create_button_manager({
228
- text: "Finish",
229
- on_click: () => {
230
- if (typeof config?.on_finish == "function") {
231
- config?.on_finish(val)
232
- }
233
- },
234
- })
235
- prep_path(input?.val)
236
- }
237
-
238
- init(config)
239
-
240
- return {
241
- get val() {
242
- return val
243
- },
244
- get val_text() {
245
- return val_text
246
- },
247
- get variable_data_type_at_path() {
248
- return variable_data_type_at_path
249
- },
250
- get levels_nested() {
251
- return levels_nested
252
- },
253
- get popover_manager() {
254
- return popover_manager
255
- },
256
- get open_edit_button_manager() {
257
- return open_edit_button_manager
258
- },
259
- get def_dropdown_manager() {
260
- return def_dropdown_manager
261
- },
262
- get add_path_item_button_manager() {
263
- return add_path_item_button_manager
264
- },
265
- get path_prepped() {
266
- return path_prepped
267
- },
268
- get finish_button_manager() {
269
- return finish_button_manager
270
- },
271
- close_popover,
272
- }
273
- }
@@ -1,42 +0,0 @@
1
- <script>
2
- let { x_handle, size = 4 } = $props()
3
- </script>
4
-
5
- <a
6
- href="https://x.com/{x_handle}"
7
- role="button"
8
- tabindex="0"
9
- class="button_container"
10
- target="_blank"
11
- data-show-count="false"
12
- style="min-height: {size}rem; border-radius: {size}rem; padding: {size / 3}rem {size / 2}rem;
13
- font-size: {size / 1.8}rem;"
14
- >
15
- <svg fill="none" height={size * 5} width={size * 5} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1227"
16
- ><path
17
- d="M714.163 519.284 1160.89 0h-105.86L667.137 450.887 357.328 0H0l468.492 681.821L0 1226.37h105.866l409.625-476.152 327.181 476.152H1200L714.137 519.284h.026ZM569.165 687.828l-47.468-67.894-377.686-540.24h162.604l304.797 435.991 47.468 67.894 396.2 566.721H892.476L569.165 687.854v-.026Z"
18
- fill="var(--g24-t)"
19
- /></svg
20
- >
21
- @{x_handle}
22
- </a>
23
-
24
- <style>
25
- .button_container {
26
- display: flex;
27
- width: fit-content;
28
- gap: 0.8rem;
29
- align-items: center;
30
- background-color: var(--g1-t);
31
- color: var(--g24-t);
32
- text-decoration: none;
33
- font-weight: 600;
34
- box-shadow: 0px 0.5rem 1rem var(--g15-t);
35
- transition: all 0.3s ease 0s;
36
- }
37
- .button_container:hover {
38
- background-color: var(--g4-t);
39
- box-shadow: 0px 0.3rem 2rem var(--g15-t);
40
- transform: translateY(-0.2rem);
41
- }
42
- </style>
@@ -1,82 +0,0 @@
1
- <script>
2
- let { url, size = 4 } = $props()
3
- </script>
4
-
5
- <a
6
- href={url}
7
- role="button"
8
- tabindex="0"
9
- class="button_container"
10
- target="_blank"
11
- data-show-count="false"
12
- aria-label="share youtube channel"
13
- style="min-height: {size}rem; border-radius: {size / 2.5}rem; padding: {size / 4}rem {size / 3}rem;
14
- font-size: {size / 1.8}rem;"
15
- >
16
- <svg
17
- width="100%"
18
- height="{size / 1.5}rem"
19
- viewBox="0 0 381 86"
20
- version="1.1"
21
- xmlns="http://www.w3.org/2000/svg"
22
- xmlns:xlink="http://www.w3.org/1999/xlink"
23
- xml:space="preserve"
24
- style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"
25
- >
26
- <g>
27
- <path
28
- d="M118.946,13.279C117.549,8.052 113.433,3.936 108.206,2.539C98.731,0 60.742,0 60.742,0C60.742,0 22.753,0 13.278,2.539C8.052,3.936 3.935,8.052 2.538,13.279C0,22.753 0,42.52 0,42.52C0,42.52 0,62.287 2.538,71.76C3.935,76.987 8.052,81.104 13.278,82.501C22.753,85.039 60.742,85.039 60.742,85.039C60.742,85.039 98.731,85.039 108.206,82.501C113.433,81.104 117.549,76.987 118.946,71.76C121.485,62.287 121.485,42.52 121.485,42.52C121.485,42.52 121.485,22.753 118.946,13.279Z"
29
- style="fill:rgb(237,31,36);fill-rule:nonzero;"
30
- />
31
- <path d="M48.593,60.743L80.155,42.52L48.593,24.297L48.593,60.743Z" style="fill:white;fill-rule:nonzero;" />
32
- <path
33
- d="M189.801,69.023C190.466,67.287 190.8,64.449 190.8,60.51L190.8,43.916C190.8,40.094 190.466,37.3 189.801,35.533C189.135,33.767 187.962,32.883 186.283,32.883C184.661,32.883 183.516,33.767 182.851,35.533C182.185,37.3 181.852,40.094 181.852,43.916L181.852,60.51C181.852,64.449 182.17,67.287 182.808,69.023C183.444,70.761 184.602,71.629 186.283,71.629C187.962,71.629 189.135,70.761 189.801,69.023ZM176.336,77.364C173.931,75.744 172.222,73.223 171.21,69.805C170.196,66.389 169.69,61.842 169.69,56.166L169.69,48.434C169.69,42.7 170.268,38.095 171.427,34.621C172.585,31.146 174.394,28.612 176.857,27.019C179.318,25.427 182.547,24.63 186.544,24.63C190.482,24.63 193.638,25.441 196.013,27.063C198.387,28.684 200.125,31.219 201.226,34.664C202.325,38.111 202.876,42.7 202.876,48.434L202.876,56.166C202.876,61.842 202.34,66.404 201.269,69.849C200.197,73.296 198.459,75.815 196.056,77.407C193.652,79 190.395,79.796 186.283,79.796C182.054,79.796 178.738,78.985 176.336,77.364Z"
34
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
35
- />
36
- <path
37
- d="M362.376,33.878C361.769,34.632 361.362,35.862 361.16,37.57C360.956,39.279 360.857,41.871 360.857,45.346L360.857,49.169L369.63,49.169L369.63,45.346C369.63,41.929 369.514,39.337 369.283,37.57C369.051,35.804 368.632,34.56 368.024,33.835C367.415,33.111 366.474,32.749 365.2,32.749C363.925,32.749 362.984,33.126 362.376,33.878ZM360.857,56.293L360.857,58.986C360.857,62.404 360.956,64.966 361.16,66.674C361.362,68.383 361.781,69.629 362.42,70.411C363.057,71.192 364.04,71.584 365.374,71.584C367.168,71.584 368.4,70.888 369.066,69.498C369.731,68.108 370.093,65.792 370.151,62.548L380.49,63.156C380.548,63.621 380.577,64.257 380.577,65.067C380.577,69.991 379.231,73.669 376.537,76.101C373.845,78.533 370.035,79.75 365.113,79.75C359.206,79.75 355.064,77.897 352.69,74.189C350.314,70.484 349.127,64.75 349.127,56.988L349.127,47.691C349.127,39.699 350.358,33.865 352.82,30.186C355.281,26.508 359.495,24.669 365.461,24.669C369.572,24.669 372.729,25.422 374.93,26.928C377.13,28.435 378.68,30.78 379.578,33.965C380.476,37.151 380.925,41.553 380.925,47.17L380.925,56.293L360.857,56.293Z"
38
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
39
- />
40
- <path
41
- d="M147.142,55.295L133.502,6.036L145.404,6.036L150.182,28.363C151.399,33.867 152.296,38.558 152.875,42.437L153.223,42.437C153.628,39.657 154.526,34.996 155.916,28.45L160.868,6.036L172.77,6.036L158.957,55.295L158.957,78.927L147.142,78.927L147.142,55.295Z"
42
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
43
- />
44
- <path
45
- d="M241.586,25.672L241.586,78.927L232.203,78.927L231.16,72.412L230.9,72.412C228.351,77.335 224.528,79.796 219.432,79.796C215.899,79.796 213.293,78.638 211.613,76.321C209.933,74.005 209.094,70.384 209.094,65.462L209.094,25.672L221.083,25.672L221.083,64.766C221.083,67.142 221.344,68.836 221.865,69.848C222.386,70.863 223.255,71.369 224.471,71.369C225.514,71.369 226.513,71.051 227.468,70.413C228.424,69.776 229.133,68.966 229.597,67.981L229.597,25.672L241.586,25.672Z"
46
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
47
- />
48
- <path
49
- d="M303.082,25.672L303.082,78.927L293.699,78.927L292.656,72.412L292.397,72.412C289.846,77.335 286.024,79.796 280.928,79.796C277.395,79.796 274.789,78.638 273.109,76.321C271.429,74.005 270.59,70.384 270.59,65.462L270.59,25.672L282.579,25.672L282.579,64.766C282.579,67.142 282.839,68.836 283.36,69.848C283.882,70.863 284.751,71.369 285.967,71.369C287.01,71.369 288.009,71.051 288.964,70.413C289.92,69.776 290.629,68.966 291.093,67.981L291.093,25.672L303.082,25.672Z"
50
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
51
- />
52
- <path
53
- d="M274.164,15.681L262.262,15.681L262.262,78.927L250.534,78.927L250.534,15.681L238.632,15.681L238.632,6.037L274.164,6.037L274.164,15.681Z"
54
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
55
- />
56
- <path
57
- d="M331.772,55.908C331.772,59.789 331.611,62.83 331.293,65.03C330.975,67.232 330.439,68.796 329.686,69.721C328.933,70.648 327.918,71.111 326.646,71.111C325.66,71.111 324.748,70.88 323.909,70.416C323.068,69.953 322.389,69.258 321.867,68.331L321.867,38.098C322.272,36.651 322.967,35.463 323.952,34.536C324.937,33.611 326.007,33.146 327.166,33.146C328.383,33.146 329.323,33.624 329.99,34.579C330.655,35.535 331.119,37.142 331.38,39.402C331.641,41.66 331.772,44.874 331.772,49.044L331.772,55.908ZM342.761,34.185C342.036,30.827 340.863,28.394 339.242,26.887C337.62,25.382 335.39,24.629 332.553,24.629C330.352,24.629 328.296,25.252 326.385,26.497C324.474,27.742 322.996,29.378 321.954,31.405L321.866,31.405L321.867,3.344L310.313,3.344L310.313,78.926L320.216,78.926L321.433,73.888L321.693,73.888C322.619,75.683 324.009,77.102 325.863,78.145C327.716,79.187 329.773,79.709 332.032,79.709C336.085,79.709 339.068,77.84 340.98,74.105C342.891,70.369 343.847,64.535 343.847,56.599L343.847,48.173C343.847,42.208 343.484,37.545 342.761,34.185Z"
58
- style="fill:rgb(39,39,39);fill-rule:nonzero;"
59
- />
60
- </g>
61
- </svg>
62
- </a>
63
-
64
- <style>
65
- .button_container {
66
- display: flex;
67
- width: fit-content;
68
- gap: 0.8rem;
69
- align-items: center;
70
- background-color: var(--g1-t);
71
- color: var(--g24-t);
72
- text-decoration: none;
73
- font-weight: 600;
74
- box-shadow: 0px 0.5rem 1rem var(--g15-t);
75
- transition: all 0.3s ease 0s;
76
- }
77
- .button_container:hover {
78
- background-color: var(--g4-t);
79
- box-shadow: 0px 0.3rem 2rem var(--g15-t);
80
- transform: translateY(-0.2rem);
81
- }
82
- </style>
@@ -1,73 +0,0 @@
1
- <script>
2
- import LoadingWheel from "../LoadingWheel/index.svelte"
3
- import { onMount } from "svelte"
4
-
5
- let { manager } = $props()
6
-
7
- onMount(() => {
8
- if (typeof manager?.render_video == "function") {
9
- manager?.render_video()
10
- }
11
- })
12
- </script>
13
-
14
- <svelte:window onresize={() => manager.resize_video()} />
15
-
16
- <div id={manager?.selector_id}>
17
- {#if manager?.is_loading}
18
- <div
19
- style="width: 100%; height: 30rem; display: grid; place-items: center; background-color: var(--shadow2-t); border-radius: 1rem; margin-top: 2rem;"
20
- >
21
- <LoadingWheel size={8} />
22
- <p>Loading Youtube Video</p>
23
- </div>
24
- {/if}
25
- {#if manager?.error_message}
26
- <div class="failed_to_load_box">
27
- <p>{manager?.error_message}</p>
28
- <a href="https://youtu.be/{manager?.video_id}">https://youtu.be/{manager?.video_id}</a>
29
- </div>
30
- {/if}
31
- <div class="video_container">
32
- <div class="video_inner_container">
33
- <iframe
34
- class:is_hidden={!!manager?.error_message}
35
- style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"
36
- src="https://www.youtube.com/embed/{manager?.video_id}?rel=0"
37
- title="YouTube video player"
38
- frameborder="0"
39
- allow="clipboard-write; encrypted-media; gyroscope; web-share"
40
- allowfullscreen
41
- ></iframe>
42
- </div>
43
- </div>
44
- </div>
45
-
46
- <style>
47
- .video_container {
48
- position: relative;
49
- width: 100%;
50
- overflow: hidden;
51
- margin-top: 2rem;
52
- }
53
- .video_inner_container {
54
- position: relative;
55
- padding-bottom: 56.25%;
56
- height: 0;
57
- overflow: hidden;
58
- }
59
- .failed_to_load_box {
60
- margin: 1rem 0;
61
- background-color: oklch(var(--l8-t) var(--c16) var(--h3) / var(--o3));
62
- border-radius: 1rem;
63
- padding: 1rem;
64
- }
65
- .failed_to_load_box p {
66
- color: oklch(var(--l3-t) var(--c16) var(--h3));
67
- }
68
- .is_hidden {
69
- max-width: 0;
70
- max-height: 0;
71
- overflow: hidden;
72
- }
73
- </style>
@@ -1,54 +0,0 @@
1
- import { create_unique_id } from "../../client/index.js"
2
-
3
- export function create_youtube_video_manager(config) {
4
- let id = create_unique_id(null, 20)
5
- let theme = $derived(config?.is_dark_theme ? "dark" : "light")
6
-
7
- let is_loading = $state(false)
8
- let error_message = $state("")
9
-
10
- async function render_video() {
11
- error_message = ""
12
- is_loading = true
13
- if (config?.video_id) {
14
- var img = new Image()
15
- img.src = "http://img.youtube.com/vi/" + config?.video_id + "/mqdefault.jpg"
16
- img.onload = function () {
17
- if (this.width === 120) {
18
- error_message = "YouTube video not found or failed to load."
19
- } else {
20
- error_message = ""
21
- resize_video()
22
- }
23
- }
24
- } else {
25
- error_message = "YouTube video not found or failed to load."
26
- }
27
- is_loading = false
28
- }
29
-
30
- function resize_video() {
31
- const video_container = document?.querySelector(".video_container")
32
- const max_width = video_container.clientWidth
33
- const max_height = 15 * 16 // 20rem * 16px
34
- const aspect_ratio = 16 / 9
35
- const height = Math.min(max_width / aspect_ratio, max_height)
36
- const width = height * aspect_ratio
37
- if (video_container.style.height > height) {
38
- video_container.style.height = `${height}px`
39
- video_container.style.width = `${width}px`
40
- }
41
- }
42
-
43
- return {
44
- id,
45
- get video_id() {
46
- return config?.video_id
47
- },
48
- get theme() {
49
- return theme
50
- },
51
- render_video,
52
- resize_video,
53
- }
54
- }
@@ -1,49 +0,0 @@
1
- export default function draggable(node) {
2
- let is_dragging = false
3
- let left
4
- let top
5
-
6
- function handle_pointerdown(e) {
7
- is_dragging = true
8
- top = JSON.parse(node.style.top.replace(/[^\d.-]/g, ""))
9
- left = JSON.parse(node.style.left.replace(/[^\d.-]/g, ""))
10
- }
11
-
12
- function handle_pointerup(e) {
13
- is_dragging = false
14
- }
15
-
16
- function handle_pointermove(e) {
17
- if (is_dragging) {
18
- left += e.movementX
19
- top += e.movementY
20
- node.style.top = `${top}px`
21
- node.style.left = `${left}px`
22
- node.dispatchEvent(
23
- new CustomEvent("drag", { detail: { top: top, left: left } })
24
- )
25
- }
26
- }
27
-
28
- node.style.position = "absolute"
29
- node.style.cursor = "move"
30
- node.style.userSelect = "none"
31
- node.style["touch-action"] = "none"
32
- node.style["-webkit-touch-callout"] = "none"
33
- node.style["-ms-touch-action"] = "none"
34
- node.style["-moz-user-select"] = "none"
35
- node.style["-webkit-user-select"] = "none"
36
- node.style["-ms-user-select"] = "none"
37
-
38
- node.addEventListener("pointerdown", handle_pointerdown)
39
- window.addEventListener("pointerup", handle_pointerup)
40
- window.addEventListener("pointermove", handle_pointermove)
41
-
42
- return {
43
- destroy() {
44
- node.removeEventListener("pointerdown", handle_pointerdown)
45
- window.removeEventListener("pointerup", handle_pointerup)
46
- window.removeEventListener("pointermove", handle_pointermove)
47
- },
48
- }
49
- }
@@ -1,24 +0,0 @@
1
- export function intersection_observer(node) {
2
- let observer = null
3
- observer = new IntersectionObserver(
4
- (entries) => {
5
- entries.forEach((entry) => {
6
- if (entry.isIntersecting) {
7
- node.dispatchEvent(new CustomEvent("appeared"))
8
- } else {
9
- node.dispatchEvent(new CustomEvent("disappeared"))
10
- }
11
- })
12
- },
13
- { threshold: 1 }
14
- )
15
- observer.observe(node)
16
-
17
- return {
18
- destroy() {
19
- if (observer) {
20
- observer.disconnect()
21
- }
22
- },
23
- }
24
- }
@@ -1,33 +0,0 @@
1
- export default function no_spaces(node, is_no_spaces) {
2
- function handle_input(e) {
3
- if (is_no_spaces) {
4
- const cleaned_val = e.target.value.replace(/\s+/g, "")
5
- if (cleaned_val !== e.target.value) {
6
- e.target.value = ""
7
- e.target.value = cleaned_val
8
- node.dispatchEvent(
9
- new CustomEvent("clean_val", { detail: cleaned_val })
10
- )
11
- }
12
- }
13
- }
14
-
15
- function handle_keydown(e) {
16
- if (is_no_spaces && e.which === 32) {
17
- e.preventDefault()
18
- }
19
- }
20
-
21
- node.addEventListener("input", handle_input)
22
- node.addEventListener("keydown", handle_keydown)
23
-
24
- return {
25
- update(new_is_no_spaces) {
26
- is_no_spaces = new_is_no_spaces
27
- },
28
- destroy() {
29
- node.removeEventListener("input", handle_input)
30
- node.removeEventListener("keydown", handle_keydown)
31
- },
32
- }
33
- }
@@ -1,26 +0,0 @@
1
- export default function numbers_only(node) {
2
- function handle_input(e) {
3
- const cleaned_val = e.target.value.replace(/\D+/g, "")
4
- if (cleaned_val !== e.target.value) {
5
- e.target.value = ""
6
- e.target.value = cleaned_val
7
- node.dispatchEvent(new CustomEvent("clean_val", { detail: cleaned_val }))
8
- }
9
- }
10
-
11
- function handle_keydown(e) {
12
- if (e.which === 32) {
13
- e.preventDefault()
14
- }
15
- }
16
-
17
- node.addEventListener("input", handle_input)
18
- node.addEventListener("keydown", handle_keydown)
19
-
20
- return {
21
- destroy() {
22
- node.removeEventListener("input", handle_input)
23
- node.removeEventListener("keydown", handle_keydown)
24
- },
25
- }
26
- }