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,143 @@
1
+ <script>
2
+ import { create_unique_id } from "../../client/index.js"
3
+
4
+ let { tooltip_content, target_content, is_disabled = false } = $props()
5
+
6
+ let id = create_unique_id(null, 20)
7
+ let screen_width = $state(null)
8
+ let screen_height = $state(null)
9
+ let positions = $state(null)
10
+
11
+ function handle_pointer_enter() {
12
+ positions = calc_positions()
13
+ }
14
+
15
+ function calc_positions() {
16
+ let edge_forgiveness = 10
17
+ let target_width = 400
18
+ let target_height = 400
19
+ let modal_left_pos = "0"
20
+ let modal_top_pos = "0"
21
+ let container_el = document?.querySelector(`#container_${id}`)
22
+ if (container_el && !isNaN(screen_width) && !isNaN(screen_height)) {
23
+ let toggle_el = document?.querySelector(`#toggle_${id}`)
24
+ const base_rect = toggle_el.getBoundingClientRect()
25
+ let is_popover_cross_base_vertically = false
26
+ const space_remaining_below = screen_height - base_rect.bottom - edge_forgiveness - target_height
27
+ const space_remaining_above = base_rect.top - edge_forgiveness - target_height
28
+ if (space_remaining_below >= 0) {
29
+ modal_top_pos = base_rect.bottom - edge_forgiveness + "px"
30
+ } else if (space_remaining_above >= 0) {
31
+ modal_top_pos = base_rect.top - target_height + edge_forgiveness + "px"
32
+ } else {
33
+ modal_top_pos = (screen_height - target_height) / 2 + "px"
34
+ is_popover_cross_base_vertically = true
35
+ }
36
+ modal_left_pos = base_rect.left + "px"
37
+ let space_remaining_left = base_rect.left - target_width - edge_forgiveness
38
+ const space_remaining_right = screen_width - base_rect.right - target_width - edge_forgiveness
39
+ const space_remaining_left_to_end = screen_width - base_rect.left - target_width - edge_forgiveness
40
+ const space_remaining_right_to_start = base_rect.right - target_width - edge_forgiveness
41
+ if (is_popover_cross_base_vertically && space_remaining_right > 0) {
42
+ modal_left_pos = base_rect.right - edge_forgiveness + "px"
43
+ } else if (is_popover_cross_base_vertically && space_remaining_left > 0) {
44
+ modal_left_pos = base_rect.left - target_width + edge_forgiveness + "px"
45
+ } else if (!is_popover_cross_base_vertically && space_remaining_left_to_end < 0) {
46
+ modal_left_pos = screen_width - target_width - edge_forgiveness + "px"
47
+ } else if (space_remaining_left_to_end > 0) {
48
+ modal_left_pos = base_rect.left - edge_forgiveness + "px"
49
+ } else if (space_remaining_right_to_start > 0) {
50
+ modal_left_pos = base_rect.right - target_width + "px"
51
+ }
52
+ modal_left_pos = parseInt(modal_left_pos) + edge_forgiveness + "px"
53
+ modal_top_pos = parseInt(modal_top_pos) + edge_forgiveness + "px"
54
+ }
55
+ if (parseInt(modal_left_pos) < edge_forgiveness) {
56
+ modal_left_pos = edge_forgiveness + "px"
57
+ }
58
+ if (parseInt(modal_top_pos) < edge_forgiveness) {
59
+ modal_top_pos = edge_forgiveness + "px"
60
+ }
61
+ let max_height = screen_height - 2 * edge_forgiveness + "px"
62
+ if (parseInt(max_height) > target_height) {
63
+ max_height = target_height - 2 * edge_forgiveness + "px"
64
+ }
65
+ let max_width = target_width - 2 * edge_forgiveness + "px"
66
+ if (parseInt(max_width) > screen_width) {
67
+ max_width = screen_width - 2 * edge_forgiveness + "px"
68
+ }
69
+ return {
70
+ modal_left_pos,
71
+ modal_top_pos,
72
+ target_width,
73
+ target_height,
74
+ max_height: max_height,
75
+ max_width: max_width,
76
+ edge_forgiveness,
77
+ }
78
+ }
79
+ </script>
80
+
81
+ <svelte:window bind:innerWidth={screen_width} bind:innerHeight={screen_height} />
82
+
83
+ <div id={`container_${id}`} class="container" class:is_disabled onpointerenter={() => handle_pointer_enter()}>
84
+ <div id={`toggle_${id}`}>
85
+ {#if target_content}
86
+ {@render target_content()}
87
+ {/if}
88
+ </div>
89
+ <div
90
+ id={`tooltip_${id}`}
91
+ class="tooltip"
92
+ style="
93
+ --modal_top_pos: {positions?.modal_top_pos};
94
+ --modal_left_pos: {positions?.modal_left_pos};
95
+ --target_width: {positions?.target_width}px;
96
+ --max_width: calc(100dvh - (2 * {positions?.edge_forgiveness}px));
97
+ --target_height: {positions?.target_height}px;
98
+ --max_width: {positions?.max_width};
99
+ --max_height: {positions?.max_height};"
100
+ >
101
+ {#if tooltip_content}
102
+ {@render tooltip_content()}
103
+ {/if}
104
+ </div>
105
+ </div>
106
+
107
+ <style>
108
+ .container {
109
+ position: relative;
110
+ display: inline-block;
111
+ cursor: help;
112
+ }
113
+ .tooltip {
114
+ position: fixed;
115
+ top: var(--modal_top_pos);
116
+ left: var(--modal_left_pos);
117
+ max-height: var(--max_height);
118
+ max-width: var(--max_width);
119
+ visibility: hidden;
120
+ opacity: 0;
121
+ transition:
122
+ visibility 0.2s,
123
+ opacity 0.2s,
124
+ transform 0.2s;
125
+ margin: 0;
126
+ padding: 0.5rem;
127
+ border-radius: 0.5rem;
128
+ background-color: oklch(var(--l23-t) var(--c1) var(--primary-h) / var(--o22));
129
+ border: 3px solid oklch(var(--l3-t) var(--c2) var(--primary-h) / var(--o24));
130
+ box-shadow: 0 0.2rem 2rem 0.5rem var(--shadow4-t);
131
+ overflow: scroll;
132
+ z-index: 11;
133
+ }
134
+ .container:hover .tooltip,
135
+ .container:focus .tooltip,
136
+ .container:active .tooltip {
137
+ visibility: visible;
138
+ opacity: 1;
139
+ }
140
+ .is_disabled .tooltip {
141
+ display: none;
142
+ }
143
+ </style>
@@ -0,0 +1,153 @@
1
+ <script>
2
+ import { intersection_observer } from "../../actions/index.js"
3
+
4
+ let { min_square_width = 10, max_square_width = 25, min_squares_per_row = 2, content } = $props()
5
+
6
+ let el = $state(null)
7
+
8
+ let child_width = $state(0)
9
+ let child_height = $state(0)
10
+ let border_radius = $state(0)
11
+ let square_count = $state(0)
12
+ let squares_per_row = $state(0)
13
+ let squares_per_col = $state(0)
14
+ let square_width = $state(0)
15
+
16
+ function resize_observer(node, callback) {
17
+ const observer = new ResizeObserver((entries) => {
18
+ for (let entry of entries) {
19
+ callback(entry.contentRect)
20
+ }
21
+ })
22
+ observer.observe(node)
23
+ return {
24
+ destroy() {
25
+ observer.unobserve(node)
26
+ },
27
+ }
28
+ }
29
+
30
+ function set_vals() {
31
+ const vals = calc_nums()
32
+ if (vals) {
33
+ child_width = vals.child_width
34
+ child_height = vals.child_height
35
+ squares_per_row = vals.squares_per_row
36
+ squares_per_col = vals.squares_per_col
37
+ square_width = vals.square_width
38
+ square_count = vals.square_count
39
+ border_radius = vals.border_radius
40
+ }
41
+ }
42
+
43
+ function calc_nums() {
44
+ let child_width = 0
45
+ let child_height = 0
46
+ let squares_per_row = min_squares_per_row
47
+ let squares_per_col = min_squares_per_row
48
+ let square_width = min_square_width
49
+ let square_count = 0
50
+ let border_radius = 0
51
+ if (!el || !el?.firstElementChild || !content) {
52
+ return
53
+ }
54
+ const rect = el?.firstElementChild.getBoundingClientRect()
55
+ const computed_style = window.getComputedStyle(el.firstElementChild)
56
+ border_radius = computed_style.borderRadius
57
+ child_width = rect?.width
58
+ child_height = rect?.height
59
+ const shorter_len = child_width < child_height ? child_width : child_height
60
+ square_width = Math.max(Math.min(shorter_len * 0.3, max_square_width), min_square_width)
61
+ let squares_per_shorter_len = Math.floor(shorter_len / square_width) + 1
62
+ if (squares_per_shorter_len < min_squares_per_row) {
63
+ squares_per_shorter_len = min_squares_per_row
64
+ }
65
+ square_width = shorter_len / squares_per_shorter_len
66
+ if (child_width < child_height) {
67
+ squares_per_row = squares_per_shorter_len
68
+ squares_per_col = Math.floor(child_height / square_width) + 1
69
+ } else {
70
+ squares_per_col = squares_per_shorter_len
71
+ squares_per_row = Math.floor(child_width / square_width) + 1
72
+ }
73
+ square_count = squares_per_row * squares_per_col
74
+ return {
75
+ squares_per_shorter_len,
76
+ child_width,
77
+ child_height,
78
+ squares_per_row,
79
+ squares_per_col,
80
+ square_width,
81
+ square_count,
82
+ border_radius,
83
+ }
84
+ }
85
+
86
+ function is_dark_square(n, x) {
87
+ let is_dark = n % 2
88
+ let is_offset_row = Math.floor(n / x) % 2 == 1
89
+ if (is_offset_row && x % 2 === 0) {
90
+ is_dark = !is_dark
91
+ }
92
+ return is_dark
93
+ }
94
+
95
+ function handle_resize() {
96
+ square_count = 0
97
+ setTimeout(() => {
98
+ set_vals()
99
+ }, 10)
100
+ }
101
+ </script>
102
+
103
+ <div
104
+ class="container"
105
+ bind:this={el}
106
+ use:intersection_observer
107
+ onappeared={() => set_vals()}
108
+ use:resize_observer={() => handle_resize()}
109
+ >
110
+ {#if child_width > 0 && child_height > 0 && square_count > 0}
111
+ <div
112
+ class="area_container"
113
+ style="
114
+ display: grid;
115
+ grid-template-columns: repeat({squares_per_row}, {square_width}px);
116
+ grid-template-rows: repeat({squares_per_col}, {square_width}px);
117
+ min-width: {child_width}px;
118
+ max-width: {child_width}px;
119
+ min-height: {child_height}px;
120
+ max-height: {child_height}px;
121
+ border-radius: {border_radius};"
122
+ >
123
+ {#each { length: square_count } as _, n}
124
+ <div
125
+ style="display: flex; background-color: {is_dark_square(n, squares_per_row) ? 'var(--g15)' : 'var(--g20)'};"
126
+ ></div>
127
+ {/each}
128
+ </div>
129
+ {/if}
130
+ {#if content}
131
+ {@render content()}
132
+ {/if}
133
+ </div>
134
+
135
+ <style>
136
+ .container {
137
+ position: relative;
138
+ display: flex;
139
+ flex-direction: column;
140
+ max-width: 100%;
141
+ z-index: 0;
142
+ overflow: hidden;
143
+ }
144
+ .area_container {
145
+ position: absolute;
146
+ left: 0;
147
+ right: 0;
148
+ top: 0;
149
+ bottom: 0;
150
+ z-index: -1;
151
+ overflow: hidden;
152
+ }
153
+ </style>
@@ -0,0 +1,84 @@
1
+ <script>
2
+ let { color = "var(--g8-t)" } = $props()
3
+ </script>
4
+
5
+ <div class="container" style="--color: {color};">
6
+ <span></span>
7
+ <span></span>
8
+ <span></span>
9
+ </div>
10
+
11
+ <style>
12
+ .container {
13
+ display: inline-block;
14
+ }
15
+ .container span {
16
+ display: inline-block;
17
+ width: 0.3rem;
18
+ height: 0.3rem;
19
+ background-color: var(--color);
20
+ border-radius: 0.3rem;
21
+ }
22
+ .container span:nth-child(1) {
23
+ animation: typing_one 3s infinite;
24
+ }
25
+ .container span:nth-child(2) {
26
+ animation: typing_two 3s infinite;
27
+ }
28
+ .container span:nth-child(3) {
29
+ animation: typing_three 3s infinite;
30
+ }
31
+ @keyframes typing_one {
32
+ 0% {
33
+ opacity: 0;
34
+ }
35
+ 10% {
36
+ opacity: 0;
37
+ }
38
+ 30% {
39
+ opacity: 1;
40
+ }
41
+ 85% {
42
+ opacity: 1;
43
+ }
44
+ 100% {
45
+ opacity: 0;
46
+ }
47
+ }
48
+
49
+ @keyframes typing_two {
50
+ 0% {
51
+ opacity: 0;
52
+ }
53
+ 30% {
54
+ opacity: 0;
55
+ }
56
+ 50% {
57
+ opacity: 1;
58
+ }
59
+ 85% {
60
+ opacity: 1;
61
+ }
62
+ 100% {
63
+ opacity: 0;
64
+ }
65
+ }
66
+
67
+ @keyframes typing_three {
68
+ 0% {
69
+ opacity: 0;
70
+ }
71
+ 50% {
72
+ opacity: 0;
73
+ }
74
+ 70% {
75
+ opacity: 1;
76
+ }
77
+ 85% {
78
+ opacity: 1;
79
+ }
80
+ 100% {
81
+ opacity: 0;
82
+ }
83
+ }
84
+ </style>
@@ -0,0 +1,63 @@
1
+ <script>
2
+ import Popover from "../Popover/index.svelte"
3
+ import Button from "../Button/index.svelte"
4
+ import TextInput from "../TextInput/index.svelte"
5
+ import Dropdown from "../Dropdown/index.svelte"
6
+ import Spacer from "../Spacer/index.svelte"
7
+ import Self from "./index.svelte"
8
+
9
+ let { manager } = $props()
10
+ </script>
11
+
12
+ <Button manager={manager?.open_edit_button_manager} />
13
+ <Popover manager={manager?.popover_manager}>
14
+ {#snippet content()}
15
+ <div>
16
+ {#if manager?.levels_nested}
17
+ <p>{manager?.levels_nested} levels nested</p>
18
+ {/if}
19
+ <p>{manager?.val_text}</p>
20
+ <Dropdown manager={manager?.def_dropdown_manager} />
21
+ {#if manager?.def_dropdown_manager?.val}
22
+ <p class="label">Path Items (optional)</p>
23
+ {#if Array.isArray(manager?.path_prepped) && manager?.path_prepped.length > 0}
24
+ {#each manager?.path_prepped as path_item}
25
+ <div>
26
+ <div style="display: flex; gap: 1rem">
27
+ <Button manager={path_item?.remove_path_item_button_manager} />
28
+ <Button manager={path_item?.insert_path_item_before_button_manager} />
29
+ <Dropdown manager={path_item?.type_dropdown_manager} />
30
+ </div>
31
+ {#if path_item?.type_dropdown_manager?.val == "variable"}
32
+ <div style="margin-top: 1rem;">
33
+ <Self manager={path_item?.variable_path_input_manager} />
34
+ </div>
35
+ {:else if path_item?.type_dropdown_manager?.val == "string"}
36
+ <TextInput manager={path_item?.const_string_value_text_input_manager} />
37
+ {:else if path_item?.type_dropdown_manager?.val == "number"}
38
+ <TextInput manager={path_item?.const_number_value_text_input_manager} />
39
+ {/if}
40
+ {#if Array.isArray(path_item?.key_options)}
41
+ <div style="margin-top: 1rem;">
42
+ <p class="label">Next Path Options</p>
43
+ <div style="display: flex; flex-wrap: wrap; gap: .5rem;">
44
+ {#each path_item?.key_options as key_option}
45
+ <Button manager={key_option?.select_button_manager} />
46
+ {/each}
47
+ </div>
48
+ </div>
49
+ {/if}
50
+ </div>
51
+ <Spacer mt={1} mb={1} />
52
+ {/each}
53
+ {:else}
54
+ <p>No Path Items</p>
55
+ {/if}
56
+ <Button manager={manager?.add_path_item_button_manager} />
57
+ {/if}
58
+ </div>
59
+ {/snippet}
60
+ {#snippet footer()}
61
+ <Button manager={manager?.finish_button_manager} />
62
+ {/snippet}
63
+ </Popover>