sveltekit-ui 1.1.17 → 1.1.19

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/dist/Components/Alert/index.svelte +88 -0
  2. package/dist/Components/Alert/index.svelte.js +101 -0
  3. package/dist/Components/ArrowToggle/index.svelte +62 -0
  4. package/dist/Components/Attachment/index.svelte +77 -0
  5. package/dist/Components/Attachment/index.svelte.js +119 -0
  6. package/dist/Components/Audio/index.svelte +193 -0
  7. package/dist/Components/Audio/index.svelte.js +463 -0
  8. package/dist/Components/AudioEditor/index.svelte +252 -0
  9. package/dist/Components/AudioEditor/index.svelte.js +977 -0
  10. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  11. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  12. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  16. package/dist/Components/AuthCodeInput/index.svelte +85 -0
  17. package/dist/Components/AuthCodeInput/index.svelte.js +95 -0
  18. package/dist/Components/Breadcrumbs/index.svelte +27 -0
  19. package/dist/Components/Breadcrumbs/index.svelte.js +88 -0
  20. package/dist/Components/Button/index.svelte +721 -0
  21. package/dist/Components/Button/index.svelte.js +375 -0
  22. package/dist/Components/Chart/Klines/index.svelte +87 -0
  23. package/dist/Components/Chart/index.svelte +226 -0
  24. package/dist/Components/Chart/index.svelte.js +1099 -0
  25. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +150 -0
  26. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +45 -0
  27. package/dist/Components/ChartInput/DisplayNav/index.svelte +297 -0
  28. package/dist/Components/ChartInput/EditPanel/index.svelte +155 -0
  29. package/dist/Components/ChartInput/index.svelte +21 -0
  30. package/dist/Components/ChartInput/index.svelte.js +671 -0
  31. package/dist/Components/Checkbox/index.svelte +411 -0
  32. package/dist/Components/Checkbox/index.svelte.js +178 -0
  33. package/dist/Components/Code/index.svelte +23 -0
  34. package/dist/Components/Code/index.svelte.js +33 -0
  35. package/dist/Components/Color/index.svelte +51 -0
  36. package/dist/Components/Color/index.svelte.js +31 -0
  37. package/dist/Components/ColorInput/ChromaPicker/index.svelte +50 -0
  38. package/dist/Components/ColorInput/ColorPalette/index.svelte +62 -0
  39. package/dist/Components/ColorInput/OpacityPicker/index.svelte +68 -0
  40. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +136 -0
  41. package/dist/Components/ColorInput/index.svelte +70 -0
  42. package/dist/Components/ColorInput/index.svelte.js +386 -0
  43. package/dist/Components/ConditionsInput/index.svelte +46 -0
  44. package/dist/Components/ConditionsInput/index.svelte.js +201 -0
  45. package/dist/Components/Confetti/index.svelte +98 -0
  46. package/dist/Components/Confetti/index.svelte.js +94 -0
  47. package/dist/Components/Content/index.svelte +500 -0
  48. package/dist/Components/Content/index.svelte.js +910 -0
  49. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +31 -0
  50. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +258 -0
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +31 -0
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +258 -0
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +58 -0
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +206 -0
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +28 -0
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +224 -0
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +44 -0
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +272 -0
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +41 -0
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +202 -0
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +19 -0
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +117 -0
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +60 -0
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +542 -0
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +47 -0
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +185 -0
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +35 -0
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +222 -0
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +20 -0
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +84 -0
  71. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +25 -0
  72. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +91 -0
  73. package/dist/Components/ContentInput/AttributesInput/index.svelte +352 -0
  74. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +1436 -0
  75. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +64 -0
  76. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +97 -0
  77. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +184 -0
  78. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +41 -0
  79. package/dist/Components/ContentInput/index.svelte +78 -0
  80. package/dist/Components/ContentInput/index.svelte.js +1197 -0
  81. package/dist/Components/CronInput/index.svelte +78 -0
  82. package/dist/Components/CronInput/index.svelte.js +198 -0
  83. package/dist/Components/DataTypeInput/index.svelte +174 -0
  84. package/dist/Components/DataTypeInput/index.svelte.js +565 -0
  85. package/dist/Components/Dropdown/index.svelte +116 -0
  86. package/dist/Components/Dropdown/index.svelte.js +403 -0
  87. package/dist/Components/EmailAddress/index.svelte +22 -0
  88. package/dist/Components/EmailAddress/index.svelte.js +45 -0
  89. package/dist/Components/ErrorX/index.svelte +58 -0
  90. package/dist/Components/Eye/index.svelte +57 -0
  91. package/dist/Components/FileInput/index.svelte +146 -0
  92. package/dist/Components/FileInput/index.svelte.js +225 -0
  93. package/dist/Components/Hamburger/index.svelte +99 -0
  94. package/dist/Components/HorizScrollBox/index.svelte +145 -0
  95. package/dist/Components/Icon/index.svelte +412 -0
  96. package/dist/Components/Icon/index.svelte.js +116 -0
  97. package/dist/Components/IconInput/index.svelte +77 -0
  98. package/dist/Components/IconInput/index.svelte.js +259 -0
  99. package/dist/Components/Image/index.svelte +126 -0
  100. package/dist/Components/Image/index.svelte.js +116 -0
  101. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +165 -0
  102. package/dist/Components/ImageEditor/Image/index.svelte +104 -0
  103. package/dist/Components/ImageEditor/Panels/AI/index.svelte +44 -0
  104. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +96 -0
  105. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +124 -0
  106. package/dist/Components/ImageEditor/Panels/File/index.svelte +74 -0
  107. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +46 -0
  108. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +58 -0
  109. package/dist/Components/ImageEditor/index.svelte +93 -0
  110. package/dist/Components/ImageEditor/index.svelte.js +1961 -0
  111. package/dist/Components/ImageSlider/index.svelte +124 -0
  112. package/dist/Components/ImageSlider/index.svelte.js +99 -0
  113. package/dist/Components/InfoBox/index.svelte +89 -0
  114. package/dist/Components/Json/Nested/index.svelte +157 -0
  115. package/dist/Components/Json/index.svelte +60 -0
  116. package/dist/Components/Json/index.svelte.js +594 -0
  117. package/dist/Components/LabeledItem/index.svelte +102 -0
  118. package/dist/Components/Layout/NavBar/FullNav/index.svelte +52 -0
  119. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +87 -0
  120. package/dist/Components/Layout/NavBar/index.svelte +72 -0
  121. package/dist/Components/Layout/index.svelte +149 -0
  122. package/dist/Components/Layout/index.svelte.js +360 -0
  123. package/dist/Components/Link/index.svelte +47 -0
  124. package/dist/Components/Link/index.svelte.js +136 -0
  125. package/dist/Components/LoadingSuccessDiv/index.svelte +51 -0
  126. package/dist/Components/LoadingWheel/index.svelte +38 -0
  127. package/dist/Components/Location/index.svelte +79 -0
  128. package/dist/Components/Location/index.svelte.js +288 -0
  129. package/dist/Components/LocationInput/index.svelte +197 -0
  130. package/dist/Components/LocationInput/index.svelte.js +965 -0
  131. package/dist/Components/Number/index.svelte +47 -0
  132. package/dist/Components/Number/index.svelte.js +151 -0
  133. package/dist/Components/PhoneCountryCode/index.svelte +7 -0
  134. package/dist/Components/PhoneCountryCode/index.svelte.js +260 -0
  135. package/dist/Components/PhoneNumber/index.svelte +22 -0
  136. package/dist/Components/PhoneNumber/index.svelte.js +41 -0
  137. package/dist/Components/Popover/index.svelte +396 -0
  138. package/dist/Components/Popover/index.svelte.js +319 -0
  139. package/dist/Components/Qr/index.svelte +85 -0
  140. package/dist/Components/Qr/index.svelte.js +301 -0
  141. package/dist/Components/QrInput/index.svelte +47 -0
  142. package/dist/Components/QrInput/index.svelte.js +218 -0
  143. package/dist/Components/Slider/index.svelte +239 -0
  144. package/dist/Components/Slider/index.svelte.js +469 -0
  145. package/dist/Components/Spacer/index.svelte +41 -0
  146. package/dist/Components/StoragePicker/DisplayFile/index.svelte +15 -0
  147. package/dist/Components/StoragePicker/index.svelte +187 -0
  148. package/dist/Components/StoragePicker/index.svelte.js +592 -0
  149. package/dist/Components/SuccessCheck/index.svelte +56 -0
  150. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +117 -0
  151. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +456 -0
  152. package/dist/Components/TableAdvanced/FilterInput/index.svelte +54 -0
  153. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +247 -0
  154. package/dist/Components/TableAdvanced/Pagination/index.svelte +43 -0
  155. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +97 -0
  156. package/dist/Components/TableAdvanced/SortByInput/index.svelte +72 -0
  157. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +176 -0
  158. package/dist/Components/TableAdvanced/index.svelte +275 -0
  159. package/dist/Components/TableAdvanced/index.svelte.js +1565 -0
  160. package/dist/Components/Tag/index.svelte +45 -0
  161. package/dist/Components/Tag/index.svelte.js +76 -0
  162. package/dist/Components/TextArrayInput/index.svelte +108 -0
  163. package/dist/Components/TextArrayInput/index.svelte.js +239 -0
  164. package/dist/Components/TextInput/PasswordTooltip/index.svelte +89 -0
  165. package/dist/Components/TextInput/index.svelte +223 -0
  166. package/dist/Components/TextInput/index.svelte.js +447 -0
  167. package/dist/Components/Time/index.svelte +7 -0
  168. package/dist/Components/Time/index.svelte.js +38 -0
  169. package/dist/Components/TimeInput/NumberToggler/index.svelte +34 -0
  170. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +79 -0
  171. package/dist/Components/TimeInput/index.js +702 -0
  172. package/dist/Components/TimeInput/index.svelte +211 -0
  173. package/dist/Components/TimeInput/index.svelte.js +638 -0
  174. package/dist/Components/Tooltip/index.svelte +143 -0
  175. package/dist/Components/TransparentBackground/index.svelte +153 -0
  176. package/dist/Components/TypingDots/index.svelte +84 -0
  177. package/dist/Components/VariablePathInput/index.svelte +63 -0
  178. package/dist/Components/VariablePathInput/index.svelte.js +273 -0
  179. package/dist/Components/VideoTBD/index.svelte +100 -0
  180. package/dist/Components/XFollow/index.svelte +42 -0
  181. package/dist/Components/XPost/index.svelte +52 -0
  182. package/dist/Components/XPost/index.svelte.js +64 -0
  183. package/dist/Components/YoutubeChannelButton/index.svelte +82 -0
  184. package/dist/Components/YoutubeVideo/index.svelte +73 -0
  185. package/dist/Components/YoutubeVideo/index.svelte.js +54 -0
  186. package/dist/actions/draggable.js +49 -0
  187. package/dist/actions/index.js +24 -0
  188. package/dist/actions/no_spaces.js +33 -0
  189. package/dist/actions/numbers_only.js +26 -0
  190. package/dist/actions/scroll_y.js +28 -0
  191. package/dist/actions/stop_scroll_propagation_y.js +42 -0
  192. package/dist/actions/swipe_handler.js +295 -0
  193. package/dist/client/astc_formatting/index.js +1128 -0
  194. package/dist/client/docs/index.js +7622 -0
  195. package/dist/client/index.js +735 -0
  196. package/dist/client/types/index.js +2812 -0
  197. package/dist/index.js +180 -0
  198. package/dist/style.css +682 -0
  199. package/package.json +2 -2
  200. package/src/lib/Components/Chart/index.svelte.js +11 -2
@@ -0,0 +1,150 @@
1
+ <script>
2
+ let { data, shown_start_x, shown_end_x, shown_low_y, shown_high_y, period_x } = $props()
3
+
4
+ let kline_width_pd = $state(null)
5
+ let shown_normalized_klines = $state([])
6
+
7
+ if (data && shown_start_x && shown_end_x && shown_low_y && shown_high_y && period_x) {
8
+ update_shown()
9
+ }
10
+
11
+ // could import this from create_chart_manager
12
+ function get_kline_details(o, l, h, c) {
13
+ let res = {}
14
+ const is_closed_higher = c > o ? 1 : 0
15
+ const kline_height = h - l
16
+ const kline_box_height = Math.abs(c - o)
17
+ let kline_top_wick_height = h - o
18
+ let kline_bottom_wick_height = c - l
19
+ if (is_closed_higher) {
20
+ kline_top_wick_height = h - c
21
+ kline_bottom_wick_height = o - l
22
+ }
23
+ const kline_box_height_pd = kline_box_height / kline_height
24
+ const kline_top_wick_height_pd = kline_top_wick_height / kline_height
25
+ const kline_bottom_wick_height_pd = kline_bottom_wick_height / kline_height
26
+ const kline_close_height_pd = (c - l) / kline_height
27
+ res["is_closed_higher"] = is_closed_higher
28
+ res["kline_height"] = kline_height
29
+ res["kline_box_height"] = kline_box_height
30
+ res["kline_top_wick_height"] = kline_top_wick_height
31
+ res["kline_bottom_wick_height"] = kline_bottom_wick_height
32
+ res["kline_box_height_pd"] = kline_box_height_pd
33
+ res["kline_top_wick_height_pd"] = kline_top_wick_height_pd
34
+ res["kline_bottom_wick_height_pd"] = kline_bottom_wick_height_pd
35
+ res["kline_close_height_pd"] = kline_close_height_pd
36
+ return res
37
+ }
38
+
39
+ function update_shown() {
40
+ const shown_x_range = shown_end_x - shown_start_x
41
+ const shown_y_range = shown_high_y - shown_low_y
42
+ kline_width_pd = (period_x * 0.8) / shown_x_range
43
+ let normalized_klines_in_range_loc = []
44
+ console.log("shown_low_y", shown_low_y, shown_high_y)
45
+ for (let kline of data) {
46
+ if (shown_start_x <= kline.x && kline.x < shown_end_x) {
47
+ if (kline.h > shown_high_y) {
48
+ console.log("too high", kline)
49
+ }
50
+ if (kline.l < shown_low_y) {
51
+ console.log("too low", kline)
52
+ }
53
+ const norm_o = (kline.o - shown_low_y) / shown_y_range
54
+ const norm_h = (kline.h - shown_low_y) / shown_y_range
55
+ const norm_l = (kline.l - shown_low_y) / shown_y_range
56
+ const norm_c = (kline.c - shown_low_y) / shown_y_range
57
+ const norm_details = get_kline_details(norm_o, norm_h, norm_l, norm_c)
58
+ normalized_klines_in_range_loc = [
59
+ ...normalized_klines_in_range_loc,
60
+ {
61
+ x: (kline.x - shown_start_x) / shown_x_range,
62
+ o: norm_o,
63
+ h: norm_h,
64
+ l: norm_l,
65
+ c: norm_c,
66
+ ...norm_details,
67
+ },
68
+ ]
69
+ }
70
+ }
71
+ shown_normalized_klines = normalized_klines_in_range_loc
72
+ console.log("shown_normalized_klines", shown_normalized_klines)
73
+ }
74
+ </script>
75
+
76
+ {#each shown_normalized_klines as kline}
77
+ <div
78
+ class="kline_container"
79
+ style="
80
+ height: {kline.kline_height * 100}%;
81
+ width: {kline_width_pd * 100}%;
82
+ left: {kline.x * 100}%;
83
+ bottom: {kline.l * 100}%;"
84
+ >
85
+ <div class="kline">
86
+ <div
87
+ class="kline_part wick top_wick"
88
+ class:inc={kline.is_closed_higher}
89
+ class:dec={!kline.is_closed_higher}
90
+ style="
91
+ height: {kline.kline_top_wick_height_pd * 100}%;
92
+ top: 0;
93
+ "
94
+ ></div>
95
+ <div
96
+ class="kline_part box"
97
+ class:inc={kline.is_closed_higher}
98
+ class:dec={!kline.is_closed_higher}
99
+ style="min-height: 2px; top: {kline.kline_top_wick_height_pd *
100
+ 100}%; bottom: {kline.kline_bottom_wick_height_pd * 100}%;"
101
+ ></div>
102
+ <div
103
+ class="kline_part wick bottom_wick"
104
+ class:inc={kline.is_closed_higher}
105
+ class:dec={!kline.is_closed_higher}
106
+ style="height: {kline.kline_bottom_wick_height_pd * 100}%; bottom: 0;"
107
+ ></div>
108
+ </div>
109
+ </div>
110
+ {/each}
111
+
112
+ <style>
113
+ .kline_container {
114
+ position: absolute;
115
+ }
116
+ .kline {
117
+ position: relative;
118
+ height: 100%;
119
+ }
120
+ .kline_part {
121
+ position: absolute;
122
+ }
123
+ .wick {
124
+ left: 50%;
125
+ transform: translateX(-50%);
126
+ width: 2px;
127
+ }
128
+ .top_wick {
129
+ border-top-left-radius: 1px;
130
+ border-top-right-radius: 1px;
131
+ }
132
+ .bottom_wick {
133
+ border-bottom-left-radius: 1px;
134
+ border-bottom-right-radius: 1px;
135
+ }
136
+ .box {
137
+ width: 100%;
138
+ border-radius: 0.2rem;
139
+ }
140
+ .inc {
141
+ background: var(--green-buy);
142
+ }
143
+ .dec {
144
+ background: var(--red-sell);
145
+ }
146
+ /* .dec_box {
147
+ border: 1px solid var(--red-sell);
148
+ box-sizing: border-box;
149
+ } */
150
+ </style>
@@ -0,0 +1,45 @@
1
+ <script>
2
+ let { data, shown_start_x, shown_end_x, shown_low_y, shown_high_y } = $props()
3
+
4
+ if (data && shown_start_x && shown_end_x && shown_low_y && shown_high_y) {
5
+ prep_lines()
6
+ }
7
+
8
+ let svg_lines = $state([])
9
+ function prep_lines() {
10
+ console.log("linedata", data)
11
+ const shown_x_range = shown_end_x - shown_start_x
12
+ const shown_y_range = shown_high_y - shown_low_y
13
+ let svg_lines_loc = []
14
+ for (let t of data) {
15
+ const y1 = t.m * shown_start_x + t.b
16
+ const y2 = t.m * shown_end_x + t.b
17
+ const norm_y1 = (y1 - shown_low_y) / shown_y_range
18
+ const norm_y2 = (y2 - shown_low_y) / shown_y_range
19
+ svg_lines_loc = [
20
+ ...svg_lines_loc,
21
+ {
22
+ x1: 0,
23
+ y1: 1 - norm_y1,
24
+ x2: 1,
25
+ y2: 1 - norm_y2,
26
+ // score: t.score,
27
+ // cs: Math.floor(t.score * 255)
28
+ },
29
+ ]
30
+ }
31
+ svg_lines = svg_lines_loc
32
+ console.log("svg_lines", svg_lines)
33
+ }
34
+ </script>
35
+
36
+ <div class="lines">
37
+ <svg width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="none">
38
+ {#each svg_lines as svg_line}
39
+ <path
40
+ d="M{svg_line.x1 * 100} {svg_line.y1 * 100} L{svg_line.x2 * 100} {svg_line.y2 * 100}"
41
+ style="stroke-width:.2;stroke:rgb(240,240,240)"
42
+ />
43
+ {/each}
44
+ </svg>
45
+ </div>
@@ -0,0 +1,297 @@
1
+ <script>
2
+ // import Lines from "./Lines/index.svelte"
3
+ import Klines from "./Klines/index.svelte"
4
+
5
+ let { manager } = $props()
6
+
7
+ const y_axis_width = 1
8
+ const x_axis_height = 0.5
9
+
10
+ let is_hovered = $state(false)
11
+
12
+ function calc_z_height(shared_y_axis_i, dataset_i) {
13
+ let z_steps = 0
14
+ for (let i = 0; i < shared_y_axis_i; i++) {
15
+ z_steps +=
16
+ manager?.chart_prepped.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss[i].datasets
17
+ .length + 2
18
+ }
19
+ z_steps += dataset_i
20
+ return z_steps * 2
21
+ }
22
+
23
+ let hovered_y_axis = $state(-1)
24
+
25
+ let hovered_dataset_index = $state(-1)
26
+
27
+ function set_hovered_dataset_index(input) {
28
+ hovered_dataset_index = input
29
+ }
30
+ </script>
31
+
32
+ <div class="container">
33
+ {#if manager?.path_breadcrumbs_manager?.val?.length >= 0}
34
+ <div class="item">
35
+ <div class="grid" style="--y_axis_width: {y_axis_width}rem; --x_axis_height: {x_axis_height}rem;">
36
+ {#if manager?.chart_prepped && manager?.chart_prepped.frames && manager?.chart_prepped.frames.length > 0}
37
+ {#each manager?.chart_prepped.frames as frame, i}
38
+ {#each frame.shared_y_axiss as shared_y_axis}
39
+ <div
40
+ role="button"
41
+ tabindex="0"
42
+ class="part_container"
43
+ style="grid-area: {1 + i} / 1 / {2 + i} / 2; width: 100%; aspect-ratio: {frame?.aspect_ratio};"
44
+ onpointerenter={() => (is_hovered = true)}
45
+ onpointerleave={() => (is_hovered = false)}
46
+ onclick={() => manager?.path_breadcrumbs_manager.set_val([i])}
47
+ onkeypress={() => manager?.path_breadcrumbs_manager.set_val([i])}
48
+ >
49
+ <div
50
+ class="part_inner base_tint"
51
+ class:hover_tint={is_hovered ||
52
+ (manager?.path_breadcrumbs_manager?.val &&
53
+ manager?.path_breadcrumbs_manager?.val.length > 0 &&
54
+ manager?.path_breadcrumbs_manager?.val?.[0] === i)}
55
+ >
56
+ {#each shared_y_axis.datasets as dataset}
57
+ {#if dataset.type === "klines"}
58
+ <!-- <Klines /> -->
59
+ klines
60
+ {:else if dataset.type === "lines"}
61
+ <!-- <LinesDataset /> -->
62
+ lines
63
+ {/if}
64
+ {/each}
65
+ </div>
66
+ </div>
67
+ <div
68
+ role="button"
69
+ tabindex="0"
70
+ onpointerenter={() => (is_hovered = true)}
71
+ onpointerleave={() => (is_hovered = false)}
72
+ onclick={() =>
73
+ manager?.path_breadcrumbs_manager.set_val([
74
+ manager?.path_breadcrumbs_manager?.val?.[0],
75
+ manager?.path_breadcrumbs_manager?.val?.[1],
76
+ i,
77
+ ])}
78
+ onkeypress={() =>
79
+ manager?.path_breadcrumbs_manager.set_val([
80
+ manager?.path_breadcrumbs_manager?.val?.[0],
81
+ manager?.path_breadcrumbs_manager?.val?.[1],
82
+ i,
83
+ ])}
84
+ class="part_container"
85
+ style="grid-area: {1 + i} / 2 / {2 + i} / 3;"
86
+ >
87
+ <div
88
+ class="part_inner base_tint"
89
+ class:hover_tint={is_hovered ||
90
+ (manager?.path_breadcrumbs_manager?.val &&
91
+ manager?.path_breadcrumbs_manager?.val.length > 0 &&
92
+ manager?.path_breadcrumbs_manager?.val?.[0] === i)}
93
+ ></div>
94
+ </div>
95
+ {/each}
96
+ {/each}
97
+ <div
98
+ class="x_axis"
99
+ style="grid-area: {manager?.chart_prepped.frames.length + 1} / 1 / {manager?.chart_prepped.frames.length +
100
+ 2} / 2; height: {x_axis_height}rem;"
101
+ ></div>
102
+ {/if}
103
+ </div>
104
+ </div>
105
+ {/if}
106
+ {#if manager?.path_breadcrumbs_manager?.val.length >= 1 && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]}
107
+ <div class="item">
108
+ <div class="scene_frame">
109
+ <div class="frame_container_frame">
110
+ {#if Array.isArray(manager?.chart_prepped.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss)}
111
+ {#each manager?.chart_prepped.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss as shared_y_axis, shared_y_axis_i}
112
+ <div
113
+ role="button"
114
+ tabindex="0"
115
+ class="cards_container"
116
+ onpointerenter={() => (hovered_y_axis = shared_y_axis_i)}
117
+ onpointerleave={() => (hovered_y_axis = -1)}
118
+ onclick={() =>
119
+ manager?.path_breadcrumbs_manager.set_val([
120
+ manager?.path_breadcrumbs_manager?.val?.[0],
121
+ shared_y_axis_i,
122
+ ])}
123
+ onkeypress={() =>
124
+ manager?.path_breadcrumbs_manager.set_val([
125
+ manager?.path_breadcrumbs_manager?.val?.[0],
126
+ shared_y_axis_i,
127
+ ])}
128
+ >
129
+ {#each shared_y_axis.datasets as dataset, dataset_i}
130
+ <div class="card_base" style="transform: translateZ({calc_z_height(shared_y_axis_i, dataset_i)}rem);">
131
+ <div
132
+ class="base_tint part_inner"
133
+ class:hover_tint={hovered_y_axis === shared_y_axis_i ||
134
+ (manager?.path_breadcrumbs_manager?.val &&
135
+ manager?.path_breadcrumbs_manager?.val.length > 1 &&
136
+ manager?.path_breadcrumbs_manager?.val?.[1] === shared_y_axis_i)}
137
+ style="aspect-ratio: {manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val?.[0]]
138
+ ?.aspect_ratio}; min-width: calc(100% - {y_axis_width}rem);"
139
+ >
140
+ {#if dataset.type === "klines"}
141
+ klines
142
+ {:else if dataset.type === "lines"}
143
+ lines
144
+ {:else}
145
+ other
146
+ {/if}
147
+ </div>
148
+ <div
149
+ class="y_axis part_inner"
150
+ class:base_tint={dataset_i === 0}
151
+ class:hover_tint={dataset_i === 0 &&
152
+ (hovered_y_axis === shared_y_axis_i ||
153
+ (manager?.path_breadcrumbs_manager?.val &&
154
+ manager?.path_breadcrumbs_manager?.val.length > 1 &&
155
+ manager?.path_breadcrumbs_manager?.val?.[1] === shared_y_axis_i))}
156
+ style="min-width: {y_axis_width}rem; max-width: {y_axis_width}rem;"
157
+ ></div>
158
+ </div>
159
+ {/each}
160
+ </div>
161
+ {/each}
162
+ {/if}
163
+ </div>
164
+ </div>
165
+ </div>
166
+ {/if}
167
+ {#if manager?.path_breadcrumbs_manager?.val.length >= 2 && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val?.[0]]}
168
+ <div class="item">
169
+ <div class="scene">
170
+ <div class="frame_container">
171
+ <div class="cards_container">
172
+ {#if Array.isArray(manager?.chart_prepped?.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss?.[manager?.path_breadcrumbs_manager?.val?.[1]]?.datasets)}
173
+ {#each manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val?.[0]].shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]].datasets as dataset, i}
174
+ <div
175
+ role="button"
176
+ tabindex="0"
177
+ class="card_base"
178
+ style="transform: translateZ({i * 3}rem) translateY({i * 3}rem);"
179
+ onpointerenter={() => set_hovered_dataset_index(i)}
180
+ onpointerleave={() => set_hovered_dataset_index(-1)}
181
+ onclick={() =>
182
+ manager?.path_breadcrumbs_manager.set_val([
183
+ manager?.path_breadcrumbs_manager?.val?.[0],
184
+ manager?.path_breadcrumbs_manager?.val?.[1],
185
+ i,
186
+ ])}
187
+ onkeypress={() =>
188
+ manager?.path_breadcrumbs_manager.set_val([
189
+ manager?.path_breadcrumbs_manager?.val?.[0],
190
+ manager?.path_breadcrumbs_manager?.val?.[1],
191
+ i,
192
+ ])}
193
+ >
194
+ <div
195
+ class="base_tint part_inner"
196
+ class:hover_tint={hovered_dataset_index === i ||
197
+ (manager?.path_breadcrumbs_manager?.val.length === 3 &&
198
+ i === manager?.path_breadcrumbs_manager?.val?.[2])}
199
+ style="aspect-ratio: {manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val?.[0]]
200
+ ?.aspect_ratio}; min-width: calc(100% - {y_axis_width}rem);"
201
+ >
202
+ {#if dataset.type === "klines"}
203
+ klines
204
+ {:else if dataset.type === "lines"}
205
+ lines
206
+ {:else}
207
+ other
208
+ {/if}
209
+ </div>
210
+ <div
211
+ class="y_axis part_inner"
212
+ class:base_tint={i === 0}
213
+ style="min-width: {y_axis_width}rem; max-width: {y_axis_width}rem;"
214
+ ></div>
215
+ </div>
216
+ {/each}
217
+ {/if}
218
+ </div>
219
+ </div>
220
+ </div>
221
+ </div>
222
+ {/if}
223
+ </div>
224
+
225
+ <style>
226
+ .container {
227
+ display: flex;
228
+ }
229
+ .item {
230
+ width: 12rem;
231
+ margin: 1rem;
232
+ }
233
+ .scene {
234
+ min-width: 100%;
235
+ min-height: 20rem;
236
+ border: 1px solid #ccc;
237
+ perspective: 14rem;
238
+ cursor: pointer;
239
+ }
240
+ .frame_container {
241
+ transform-style: preserve-3d;
242
+ transform: rotate3d(-1, -0.2, 0, 30deg);
243
+ transition: transform 1s;
244
+ /* min-height: 10rem; */
245
+ display: block;
246
+ }
247
+ .cards_container {
248
+ position: relative;
249
+ transform-style: preserve-3d;
250
+ transition: transform 1s;
251
+ }
252
+ .card_base {
253
+ position: absolute;
254
+ left: 10%;
255
+ right: 10%;
256
+ display: flex;
257
+ flex: 1;
258
+ }
259
+ .part_inner {
260
+ display: flex;
261
+ flex: 1;
262
+ margin: 0.1rem;
263
+ border-radius: 0.1rem;
264
+ }
265
+ .base_tint {
266
+ background: #cccccc50;
267
+ }
268
+ .hover_tint {
269
+ background: #614dff50;
270
+ }
271
+ .grid {
272
+ display: grid;
273
+ grid-template-columns: auto var(--y_axis_width);
274
+ grid-template-rows: auto;
275
+ }
276
+ .x_axis {
277
+ margin: 0.1rem;
278
+ border-radius: 0.1rem;
279
+ background: #cccccc50;
280
+ }
281
+ .part_container {
282
+ display: flex;
283
+ }
284
+ .scene_frame {
285
+ min-width: 100%;
286
+ min-height: 20rem;
287
+ border: 1px solid #ccc;
288
+ perspective: 140rem;
289
+ }
290
+ .frame_container_frame {
291
+ transform-style: preserve-3d;
292
+ transform: rotate3d(-1, -0.2, 0, 40deg);
293
+ transition: transform 1s;
294
+ /* min-height: 10rem; */
295
+ display: block;
296
+ }
297
+ </style>
@@ -0,0 +1,155 @@
1
+ <script>
2
+ import Dropdown from "../../Dropdown/index.svelte"
3
+ import TextInput from "../../TextInput/index.svelte"
4
+ import ColorInput from "../../ColorInput/index.svelte"
5
+ import Button from "../../Button/index.svelte"
6
+ import Slider from "../../Slider/index.svelte"
7
+
8
+ let { manager } = $props()
9
+ </script>
10
+
11
+ {#if Array.isArray(manager?.path_breadcrumbs_manager?.val)}
12
+ {#if manager?.path_breadcrumbs_manager?.val.length === 0 && manager?.chart_prepped}
13
+ <h2>Chart</h2>
14
+ <p>{manager?.chart_prepped?.id}</p>
15
+ <Dropdown manager={manager?.chart_prepped?.x_axis_type_dropdown_manager} />
16
+ <TextInput manager={manager?.chart_prepped?.x_axis_title_text_input_manager} />
17
+ {#if Array.isArray(manager?.chart_prepped?.frames)}
18
+ {#each manager?.chart_prepped?.frames as frame, i}
19
+ <div class="frame_container">
20
+ <p>frame: {i}</p>
21
+ <Button manager={frame?.frame_shift_to_back_button_manager} />
22
+ <Button manager={frame?.frame_remove_button_manager} />
23
+ <Button manager={frame?.frame_select_path_button_manager} />
24
+ </div>
25
+ {/each}
26
+ {/if}
27
+ <Button manager={manager?.chart_prepped?.frame_add_button_manager} />
28
+ {:else if manager?.path_breadcrumbs_manager?.val.length === 1 && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]}
29
+ <h2>Frame</h2>
30
+ <Slider
31
+ manager={manager?.chart_prepped.frames[manager?.path_breadcrumbs_manager?.val[0]]
32
+ ?.chart_frame_aspect_ratio_slider_manager}
33
+ />
34
+ <h3>Shared Y Axiss</h3>
35
+ {#if Array.isArray(manager?.chart_prepped?.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss)}
36
+ {#each manager?.chart_prepped.frames[manager?.path_breadcrumbs_manager?.val[0]].shared_y_axiss as shared_y_axis, i}
37
+ <div class="sub_parts_container">
38
+ <p>shared_y_axis: {i}</p>
39
+ <Button manager={shared_y_axis?.shift_to_back_button_manager} />
40
+ <Button manager={shared_y_axis?.remove_button_manager} />
41
+ <Button manager={shared_y_axis?.select_path_button_manager} />
42
+ </div>
43
+ {/each}
44
+ {/if}
45
+ <Button
46
+ manager={manager?.chart_prepped.frames[manager?.path_breadcrumbs_manager?.val[0]]
47
+ ?.add_shared_y_axis_button_manager}
48
+ />
49
+ {:else if manager?.path_breadcrumbs_manager?.val.length === 2 && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]}
50
+ <h2>Shared Y Axis</h2>
51
+ <Slider
52
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
53
+ manager?.path_breadcrumbs_manager?.val[1]
54
+ ]?.top_padding_pd_slider_manager}
55
+ />
56
+ <Slider
57
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
58
+ manager?.path_breadcrumbs_manager?.val[1]
59
+ ]?.bottom_padding_pd_slider_manager}
60
+ />
61
+ <Dropdown
62
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
63
+ manager?.path_breadcrumbs_manager?.val[1]
64
+ ]?.y_axis_type_dropdown_manager}
65
+ />
66
+ <TextInput
67
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
68
+ manager?.path_breadcrumbs_manager?.val[1]
69
+ ]?.y_axis_title_text_input_manager}
70
+ />
71
+ <Button
72
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
73
+ manager?.path_breadcrumbs_manager?.val[1]
74
+ ]?.add_dataset_button_manager}
75
+ />
76
+ {#if Array.isArray(manager?.chart_prepped?.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss?.[manager?.path_breadcrumbs_manager?.val[1]].datasets)}
77
+ {#each manager?.chart_prepped?.frames?.[manager?.path_breadcrumbs_manager?.val?.[0]]?.shared_y_axiss?.[manager?.path_breadcrumbs_manager?.val[1]].datasets as dataset, i}
78
+ <div class="sub_parts_container">
79
+ <p>Dataset {i}</p>
80
+ <Button manager={dataset?.shift_to_back_button_manager} />
81
+ <Button manager={dataset?.remove_button_manager} />
82
+ <Button manager={dataset?.select_path_button_manager} />
83
+ </div>
84
+ {/each}
85
+ {/if}
86
+ {:else if manager?.path_breadcrumbs_manager?.val.length === 3 && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]}
87
+ <h2>Dataset</h2>
88
+ <TextInput
89
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
90
+ manager?.path_breadcrumbs_manager?.val[1]
91
+ ]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.name_text_input_manager}
92
+ />
93
+ <Dropdown
94
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
95
+ manager?.path_breadcrumbs_manager?.val[1]
96
+ ]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.dataset_type_dropdown_manager}
97
+ />
98
+ <Dropdown
99
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
100
+ manager?.path_breadcrumbs_manager?.val[1]
101
+ ]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.dataset_id_dropdown_manager}
102
+ />
103
+ <p class="label">Dataset Colors</p>
104
+ {#if Array.isArray(manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.colors) && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.colors.length > 0}
105
+ {#each manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.colors_input as color_input}
106
+ <div style="display: flex; gap: 1rem;">
107
+ <Button manager={color_input?.remove_button_manager} />
108
+ <ColorInput manager={color_input?.color_input_manager} />
109
+ </div>
110
+ {/each}
111
+ {:else}
112
+ <p>No Colors</p>
113
+ {/if}
114
+ <Button
115
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
116
+ manager?.path_breadcrumbs_manager?.val[1]
117
+ ]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.add_dataset_color_button_manager}
118
+ />
119
+ {#if Array.isArray(manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.keys_input) && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.keys_input.length > 0 && manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.dataset_id}
120
+ {#if manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]].type == "klines"}
121
+ <Dropdown
122
+ manager={manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[
123
+ manager?.path_breadcrumbs_manager?.val[1]
124
+ ]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.dataset_period_dropdown_manager}
125
+ />
126
+ {/if}
127
+ {#each manager?.chart_prepped?.frames[manager?.path_breadcrumbs_manager?.val[0]]?.shared_y_axiss[manager?.path_breadcrumbs_manager?.val[1]]?.datasets[manager?.path_breadcrumbs_manager?.val[2]]?.keys_input as key_input}
128
+ <Dropdown manager={key_input?.key_dropdown_manager} />
129
+ {/each}
130
+ {/if}
131
+ {/if}
132
+ {/if}
133
+
134
+ <style>
135
+ .frame_container {
136
+ display: flex;
137
+ flex-direction: column;
138
+ text-align: left;
139
+ margin: 0.2rem;
140
+ border: 1px solid var(--contrast-2);
141
+ box-sizing: border-box;
142
+ border-radius: 0.5rem;
143
+ padding: 0.5rem;
144
+ }
145
+ .sub_parts_container {
146
+ display: flex;
147
+ flex-direction: column;
148
+ text-align: left;
149
+ margin: 0.2rem;
150
+ border: 1px solid var(--contrast-2);
151
+ box-sizing: border-box;
152
+ border-radius: 0.5rem;
153
+ padding: 0.5rem;
154
+ }
155
+ </style>
@@ -0,0 +1,21 @@
1
+ <script>
2
+ import Button from "../Button/index.svelte"
3
+ import Popover from "../Popover/index.svelte"
4
+ import Breadcrumbs from "../Breadcrumbs/index.svelte"
5
+ import DisplayNav from "./DisplayNav/index.svelte"
6
+ import EditPanel from "./EditPanel/index.svelte"
7
+
8
+ let { manager } = $props()
9
+ </script>
10
+
11
+ <Button manager={manager?.chart_builder_popover_button_manager} />
12
+ <Popover manager={manager?.chart_builder_popover_manager}>
13
+ {#snippet content()}
14
+ <Breadcrumbs manager={manager?.path_breadcrumbs_manager} />
15
+ <DisplayNav {manager} />
16
+ <EditPanel {manager} />
17
+ {/snippet}
18
+ {#snippet footer()}
19
+ <Button manager={manager?.finish_button_manager} />
20
+ {/snippet}
21
+ </Popover>