sveltekit-ui 1.1.15 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/package.json +3 -3
  2. package/src/routes/+page.svelte +24 -0
  3. package/dist/Components/Alert/index.svelte +0 -88
  4. package/dist/Components/Alert/index.svelte.js +0 -101
  5. package/dist/Components/ArrowToggle/index.svelte +0 -62
  6. package/dist/Components/Attachment/index.svelte +0 -77
  7. package/dist/Components/Attachment/index.svelte.js +0 -119
  8. package/dist/Components/Audio/index.svelte +0 -193
  9. package/dist/Components/Audio/index.svelte.js +0 -463
  10. package/dist/Components/AudioEditor/index.svelte +0 -252
  11. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  12. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  17. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  18. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  19. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  20. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  21. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  22. package/dist/Components/Button/index.svelte +0 -721
  23. package/dist/Components/Button/index.svelte.js +0 -375
  24. package/dist/Components/Chart/Klines/index.svelte +0 -87
  25. package/dist/Components/Chart/index.svelte +0 -226
  26. package/dist/Components/Chart/index.svelte.js +0 -1090
  27. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  28. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  29. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  30. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  31. package/dist/Components/ChartInput/index.svelte +0 -21
  32. package/dist/Components/ChartInput/index.svelte.js +0 -671
  33. package/dist/Components/Checkbox/index.svelte +0 -411
  34. package/dist/Components/Checkbox/index.svelte.js +0 -178
  35. package/dist/Components/Code/index.svelte +0 -23
  36. package/dist/Components/Code/index.svelte.js +0 -33
  37. package/dist/Components/Color/index.svelte +0 -51
  38. package/dist/Components/Color/index.svelte.js +0 -31
  39. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  40. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  41. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  42. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  43. package/dist/Components/ColorInput/index.svelte +0 -70
  44. package/dist/Components/ColorInput/index.svelte.js +0 -386
  45. package/dist/Components/ConditionsInput/index.svelte +0 -46
  46. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  47. package/dist/Components/Confetti/index.svelte +0 -98
  48. package/dist/Components/Confetti/index.svelte.js +0 -94
  49. package/dist/Components/Content/index.svelte +0 -500
  50. package/dist/Components/Content/index.svelte.js +0 -910
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  74. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  76. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  78. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  79. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  80. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  81. package/dist/Components/ContentInput/index.svelte +0 -78
  82. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  83. package/dist/Components/CronInput/index.svelte +0 -78
  84. package/dist/Components/CronInput/index.svelte.js +0 -198
  85. package/dist/Components/DataTypeInput/index.svelte +0 -174
  86. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  87. package/dist/Components/Dropdown/index.svelte +0 -116
  88. package/dist/Components/Dropdown/index.svelte.js +0 -403
  89. package/dist/Components/EmailAddress/index.svelte +0 -22
  90. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  91. package/dist/Components/ErrorX/index.svelte +0 -58
  92. package/dist/Components/Eye/index.svelte +0 -57
  93. package/dist/Components/FileInput/index.svelte +0 -146
  94. package/dist/Components/FileInput/index.svelte.js +0 -225
  95. package/dist/Components/Hamburger/index.svelte +0 -99
  96. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  97. package/dist/Components/Icon/index.svelte +0 -412
  98. package/dist/Components/Icon/index.svelte.js +0 -116
  99. package/dist/Components/IconInput/index.svelte +0 -77
  100. package/dist/Components/IconInput/index.svelte.js +0 -259
  101. package/dist/Components/Image/index.svelte +0 -126
  102. package/dist/Components/Image/index.svelte.js +0 -116
  103. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  104. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  105. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  106. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  107. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  108. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  109. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  110. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  111. package/dist/Components/ImageEditor/index.svelte +0 -93
  112. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  113. package/dist/Components/ImageSlider/index.svelte +0 -124
  114. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  115. package/dist/Components/InfoBox/index.svelte +0 -89
  116. package/dist/Components/Json/Nested/index.svelte +0 -157
  117. package/dist/Components/Json/index.svelte +0 -60
  118. package/dist/Components/Json/index.svelte.js +0 -594
  119. package/dist/Components/LabeledItem/index.svelte +0 -102
  120. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  121. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  122. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  123. package/dist/Components/Layout/index.svelte +0 -149
  124. package/dist/Components/Layout/index.svelte.js +0 -360
  125. package/dist/Components/Link/index.svelte +0 -47
  126. package/dist/Components/Link/index.svelte.js +0 -136
  127. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  128. package/dist/Components/LoadingWheel/index.svelte +0 -38
  129. package/dist/Components/Location/index.svelte +0 -79
  130. package/dist/Components/Location/index.svelte.js +0 -288
  131. package/dist/Components/LocationInput/index.svelte +0 -197
  132. package/dist/Components/LocationInput/index.svelte.js +0 -965
  133. package/dist/Components/Number/index.svelte +0 -47
  134. package/dist/Components/Number/index.svelte.js +0 -151
  135. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  136. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  137. package/dist/Components/PhoneNumber/index.svelte +0 -22
  138. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  139. package/dist/Components/Popover/index.svelte +0 -396
  140. package/dist/Components/Popover/index.svelte.js +0 -319
  141. package/dist/Components/Qr/index.svelte +0 -85
  142. package/dist/Components/Qr/index.svelte.js +0 -301
  143. package/dist/Components/QrInput/index.svelte +0 -47
  144. package/dist/Components/QrInput/index.svelte.js +0 -218
  145. package/dist/Components/Slider/index.svelte +0 -239
  146. package/dist/Components/Slider/index.svelte.js +0 -469
  147. package/dist/Components/Spacer/index.svelte +0 -41
  148. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  149. package/dist/Components/StoragePicker/index.svelte +0 -187
  150. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  151. package/dist/Components/SuccessCheck/index.svelte +0 -56
  152. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  153. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  154. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  155. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  156. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  157. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  158. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  159. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  160. package/dist/Components/TableAdvanced/index.svelte +0 -275
  161. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  162. package/dist/Components/Tag/index.svelte +0 -45
  163. package/dist/Components/Tag/index.svelte.js +0 -76
  164. package/dist/Components/TextArrayInput/index.svelte +0 -108
  165. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  166. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  167. package/dist/Components/TextInput/index.svelte +0 -223
  168. package/dist/Components/TextInput/index.svelte.js +0 -447
  169. package/dist/Components/Time/index.svelte +0 -7
  170. package/dist/Components/Time/index.svelte.js +0 -38
  171. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  172. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  173. package/dist/Components/TimeInput/index.js +0 -702
  174. package/dist/Components/TimeInput/index.svelte +0 -211
  175. package/dist/Components/TimeInput/index.svelte.js +0 -638
  176. package/dist/Components/Tooltip/index.svelte +0 -143
  177. package/dist/Components/TransparentBackground/index.svelte +0 -153
  178. package/dist/Components/TypingDots/index.svelte +0 -84
  179. package/dist/Components/VariablePathInput/index.svelte +0 -63
  180. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  181. package/dist/Components/VideoTBD/index.svelte +0 -100
  182. package/dist/Components/XFollow/index.svelte +0 -42
  183. package/dist/Components/XPost/index.svelte +0 -52
  184. package/dist/Components/XPost/index.svelte.js +0 -64
  185. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  186. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  187. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  188. package/dist/actions/draggable.js +0 -49
  189. package/dist/actions/index.js +0 -24
  190. package/dist/actions/no_spaces.js +0 -33
  191. package/dist/actions/numbers_only.js +0 -26
  192. package/dist/actions/scroll_y.js +0 -28
  193. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  194. package/dist/actions/swipe_handler.js +0 -295
  195. package/dist/client/astc_formatting/index.js +0 -1128
  196. package/dist/client/docs/index.js +0 -7622
  197. package/dist/client/index.js +0 -735
  198. package/dist/client/types/index.js +0 -2812
  199. package/dist/index.js +0 -180
  200. package/dist/style.css +0 -682
@@ -1,2812 +0,0 @@
1
- import { time_formats } from "../../Components/TimeInput/index.js"
2
-
3
- export const mime_type_extensions = {
4
- "image/webp": "webp",
5
- "image/jpeg": "jpeg",
6
- "image/png": "png",
7
- "image/gif": "gif",
8
- "image/bmp": "bmp",
9
- "image/tiff": "tiff",
10
- "image/heic": "heic",
11
- "image/svg+xml": "svg",
12
- "audio/mpeg": "mp3",
13
- "audio/wav": "wav",
14
- "audio/ogg": "ogg",
15
- "audio/aac": "aac",
16
- "audio/webm": "webm",
17
- "audio/flac": "flac",
18
- "audio/x-aiff": "aif",
19
- "video/mp4": "mp4",
20
- "video/webm": "webm",
21
- "video/ogg": "ogv",
22
- "video/x-msvideo": "avi",
23
- "video/x-ms-wmv": "wmv",
24
- "video/mpeg": "mpeg",
25
- "video/quicktime": "mov",
26
- "application/json": "json",
27
- "application/javascript": "js",
28
- "application/xml": "xml",
29
- "application/pdf": "pdf",
30
- "application/msword": "doc",
31
- "application/vnd.ms-excel": "xls",
32
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "xlsx",
33
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "docx",
34
- "application/vnd.openxmlformats-officedocument.presentationml.presentation": "pptx",
35
- "text/plain": "txt",
36
- "text/html": "html",
37
- "text/css": "css",
38
- "text/csv": "csv",
39
- "text/tab-separated-values": "tsv",
40
- "text/markdown": "md",
41
- }
42
-
43
- export const acceptable_storage_mime_types = [
44
- "image/webp",
45
- "image/jpeg",
46
- "image/png",
47
- "image/gif",
48
- "image/svg+xml",
49
- "audio/mpeg",
50
- "audio/wav",
51
- "audio/ogg",
52
- "audio/aac",
53
- "audio/webm",
54
- "audio/flac",
55
- "video/mp4",
56
- "video/webm",
57
- "video/ogg",
58
- "video/x-msvideo",
59
- "video/mpeg",
60
- "video/quicktime",
61
- "application/json",
62
- "application/javascript",
63
- "application/xml",
64
- "application/pdf",
65
- "application/msword",
66
- "application/vnd.ms-excel",
67
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
68
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
69
- "application/vnd.openxmlformats-officedocument.presentationml.presentation",
70
- "text/plain",
71
- "text/html",
72
- "text/css",
73
- "text/csv",
74
- "text/tab-separated-values",
75
- "text/markdown",
76
- ]
77
-
78
- export const language_options = [
79
- { key: "en", name: "English", english_name: "English", emoji: "🇺🇸" },
80
- { key: "es", name: "Español", english_name: "Spanish", emoji: "🇪🇸" },
81
- { key: "zh", name: "中文", english_name: "Chinese", emoji: "🇨🇳" },
82
- { key: "fr", name: "Français", english_name: "French", emoji: "🇫🇷" },
83
- { key: "de", name: "Deutsch", english_name: "German", emoji: "🇩🇪" },
84
- { key: "ja", name: "日本語", english_name: "Japanese", emoji: "🇯🇵" },
85
- { key: "pt", name: "Português", english_name: "Portuguese", emoji: "🇵🇹" },
86
- { key: "it", name: "Italiano", english_name: "Italian", emoji: "🇮🇹" },
87
- { key: "ru", name: "Русский", english_name: "Russian", emoji: "🇷🇺" },
88
- { key: "ko", name: "한국어", english_name: "Korean", emoji: "🇰🇷" },
89
- { key: "ar", name: "العربية", english_name: "Arabic", emoji: "🇸🇦" },
90
- { key: "hi", name: "हिन्दी", english_name: "Hindi", emoji: "🇮🇳" },
91
- { key: "nl", name: "Nederlands", english_name: "Dutch", emoji: "🇳🇱" },
92
- { key: "sv", name: "Svenska", english_name: "Swedish", emoji: "🇸🇪" },
93
- { key: "da", name: "Dansk", english_name: "Danish", emoji: "🇩🇰" },
94
- { key: "fi", name: "Suomi", english_name: "Finnish", emoji: "🇫🇮" },
95
- { key: "no", name: "Norsk", english_name: "Norwegian", emoji: "🇳🇴" },
96
- { key: "pl", name: "Polski", english_name: "Polish", emoji: "🇵🇱" },
97
- { key: "cs", name: "Čeština", english_name: "Czech", emoji: "🇨🇿" },
98
- { key: "tr", name: "Türkçe", english_name: "Turkish", emoji: "🇹🇷" },
99
- { key: "el", name: "Ελληνικά", english_name: "Greek", emoji: "🇬🇷" },
100
- { key: "hu", name: "Magyar", english_name: "Hungarian", emoji: "🇭🇺" },
101
- { key: "th", name: "ไทย", english_name: "Thai", emoji: "🇹🇭" },
102
- { key: "id", name: "Bahasa Indonesia", english_name: "Indonesian", emoji: "🇮🇩" },
103
- { key: "ro", name: "Română", english_name: "Romanian", emoji: "🇷🇴" },
104
- { key: "bg", name: "Български", english_name: "Bulgarian", emoji: "🇧🇬" },
105
- { key: "vi", name: "Tiếng Việt", english_name: "Vietnamese", emoji: "🇻🇳" },
106
- { key: "sk", name: "Slovenčina", english_name: "Slovak", emoji: "🇸🇰" },
107
- { key: "sl", name: "Slovenščina", english_name: "Slovenian", emoji: "🇸🇮" },
108
- { key: "hr", name: "Hrvatski", english_name: "Croatian", emoji: "🇭🇷" },
109
- { key: "sr", name: "Српски", english_name: "Serbian", emoji: "🇷🇸" },
110
- { key: "bs", name: "Bosanski", english_name: "Bosnian", emoji: "🇧🇦" },
111
- { key: "mk", name: "Македонски", english_name: "Macedonian", emoji: "🇲🇰" },
112
- { key: "uk", name: "Українська", english_name: "Ukrainian", emoji: "🇺🇦" },
113
- { key: "he", name: "עברית", english_name: "Hebrew", emoji: "🇮🇱" },
114
- { key: "fa", name: "فارسی", english_name: "Persian", emoji: "🇮🇷" },
115
- { key: "bn", name: "বাংলা", english_name: "Bengali", emoji: "🇧🇩" },
116
- { key: "ta", name: "தமிழ்", english_name: "Tamil", emoji: "🇮🇳" },
117
- { key: "te", name: "తెలుగు", english_name: "Telugu", emoji: "🇮🇳" },
118
- ]
119
-
120
- export const time_zone_options = [
121
- { key: "america/puerto_rico", name: "atlantic time / puerto rico (ast)", emoji: "🇵🇷" },
122
- { key: "america/new_york", name: "eastern time / new york (est/edt)", emoji: "🇺🇸" },
123
- { key: "america/toronto", name: "toronto time / toronto (est/edt)", emoji: "🇨🇦" },
124
- { key: "america/halifax", name: "halifax time (ast/adt)", emoji: "🇨🇦" },
125
- { key: "america/chicago", name: "central time / chicago (cst/cdt)", emoji: "🇺🇸" },
126
- { key: "america/mexico_city", name: "mexico city time (cst/cdt)", emoji: "🇲🇽" },
127
- { key: "america/denver", name: "mountain time / denver (mst/mdt)", emoji: "🇺🇸" },
128
- { key: "america/phoenix", name: "arizona time / phoenix (mst)", emoji: "🇺🇸" },
129
- { key: "america/los_angeles", name: "pacific time / los angeles (pst/pdt)", emoji: "🇺🇸" },
130
- { key: "america/anchorage", name: "alaska time (akst/akdt)", emoji: "🇺🇸" },
131
- { key: "america/adak", name: "hawaii-aleutian time (hast)", emoji: "🇺🇸" },
132
- { key: "pacific/honolulu", name: "hawaii time (hst)", emoji: "🇺🇸" },
133
- { key: "america/sao_paulo", name: "são paulo time (brt)", emoji: "🇧🇷" },
134
- { key: "america/bogota", name: "bogota time (cot)", emoji: "🇨🇴" },
135
- { key: "america/caracas", name: "caracas time (vet)", emoji: "🇻🇪" },
136
- { key: "america/lima", name: "lima time (pet)", emoji: "🇵🇪" },
137
- { key: "america/panama", name: "panama time (est)", emoji: "🇵🇦" },
138
- { key: "europe/london", name: "london time (gmt/bst)", emoji: "🇬🇧" },
139
- { key: "europe/berlin", name: "berlin time (cet/cest)", emoji: "🇩🇪" },
140
- { key: "europe/paris", name: "paris time (cet/cest)", emoji: "🇫🇷" },
141
- { key: "europe/moscow", name: "moscow time (msk)", emoji: "🇷🇺" },
142
- { key: "asia/dubai", name: "dubai time (gst)", emoji: "🇦🇪" },
143
- { key: "asia/tokyo", name: "tokyo time (jst)", emoji: "🇯🇵" },
144
- { key: "asia/shanghai", name: "shanghai time (cst)", emoji: "🇨🇳" },
145
- { key: "asia/kolkata", name: "india time (ist)", emoji: "🇮🇳" },
146
- { key: "asia/singapore", name: "singapore time (sgt)", emoji: "🇸🇬" },
147
- { key: "australia/sydney", name: "sydney time (aest/aedt)", emoji: "🇦🇺" },
148
- { key: "pacific/auckland", name: "auckland time (nzst/nzdt)", emoji: "🇳🇿" },
149
- { key: "europe/istanbul", name: "istanbul time (trt)", emoji: "🇹🇷" },
150
- { key: "america/st_johns", name: "newfoundland time / st. johns (nst/ndt)", emoji: "🇨🇦" },
151
- { key: "america/argentina/buenos_aires", name: "buenos aires time (art)", emoji: "🇦🇷" },
152
- { key: "america/santiago", name: "santiago time (clt)", emoji: "🇨🇱" },
153
- { key: "atlantic/reykjavik", name: "reykjavik time (gmt)", emoji: "🇮🇸" },
154
- { key: "africa/cairo", name: "cairo time (eet)", emoji: "🇪🇬" },
155
- { key: "asia/karachi", name: "pakistan time (pkt)", emoji: "🇵🇰" },
156
- { key: "asia/hong_kong", name: "hong kong time (hkt)", emoji: "🇭🇰" },
157
- { key: "asia/seoul", name: "seoul time (kst)", emoji: "🇰🇷" },
158
- { key: "asia/bangkok", name: "bangkok time (ict)", emoji: "🇹🇭" },
159
- { key: "asia/kuala_lumpur", name: "malaysia time (myt)", emoji: "🇲🇾" },
160
- { key: "asia/manila", name: "philippine time / manila (pst)", emoji: "🇵🇭" },
161
- ]
162
-
163
- export const person_trait_options = [
164
- { key: "white", name: "White", emoji: "✋🏻" },
165
- { key: "black", name: "Black / African American", emoji: "✋🏿" },
166
- { key: "hispanic_latino", name: "Hispanic / Latino", emoji: "✋🏽" },
167
- { key: "asian_indian", name: "Asian Indian", emoji: "✋🏾" },
168
- { key: "chinese", name: "Chinese", emoji: "✋🏼" },
169
- { key: "filipino", name: "Filipino", emoji: "✋🏼" },
170
- { key: "japanese", name: "Japanese", emoji: "✋🏻" },
171
- { key: "korean", name: "Korean", emoji: "✋🏻" },
172
- { key: "vietnamese", name: "Vietnamese", emoji: "✋🏼" },
173
- { key: "native_american", name: "Native American / Alaska Native", emoji: "✋🏽" },
174
- { key: "pacific_islander", name: "Native Hawaiian / Other Pacific Islander", emoji: "✋🏽" },
175
- { key: "middle_eastern", name: "Middle Eastern", emoji: "✋🏽" },
176
- { key: "north_african", name: "North African", emoji: "✋🏾" },
177
- { key: "other_ethnicity", name: "Other Ethnicity", emoji: "✋🏽" },
178
- { key: "mixed_ethnicity", name: "Mixed Ethnicity", emoji: "✋🏼" },
179
- { key: "speaks_english", name: "Speeks English", emoji: "🇺🇸" },
180
- { key: "speaks_spanish", name: "Speeks Spanish", emoji: "🇪🇸" },
181
- { key: "speaks_french", name: "Speeks French", emoji: "🇫🇷" },
182
- { key: "speaks_mandarin", name: "Speeks Mandarin", emoji: "🇨🇳" },
183
- { key: "speaks_russian", name: "Speeks Russian", emoji: "🇷🇺" },
184
- { key: "speaks_portuguese", name: "Speeks Portuguese", emoji: "🇵🇹" },
185
- { key: "speaks_korean", name: "Speeks Korean", emoji: "🇰🇷" },
186
- { key: "speaks_japanese", name: "Speeks Japanese", emoji: "🇯🇵" },
187
- { key: "speaks_german", name: "Speeks German", emoji: "🇩🇪" },
188
- { key: "gender_identity_male", name: "Male", emoji: "👱" },
189
- { key: "gender_identity_female", name: "Female", emoji: "👩" },
190
- { key: "gender_identity_transgender", name: "Transgender", emoji: "🏳️‍⚧️" },
191
- { key: "gender_identity_other", name: "Other Gender", emoji: "🌀" },
192
- { key: "assigned_sex_at_birth_male", name: "Assigned Male at Birth", emoji: "🚹" },
193
- { key: "assigned_sex_at_birth_female", name: "Assigned Female at Birth", emoji: "🚺" },
194
- { key: "attracted_to_gender_male", name: "Attracted to Males", emoji: "👱" },
195
- { key: "attracted_to_gender_female", name: "Attracted to Females", emoji: "👩" },
196
- { key: "attracted_to_gender_other", name: "Attracted to Other Genders", emoji: "🙂" },
197
- { key: "single", name: "Single", emoji: "💖" },
198
- { key: "married", name: "Married", emoji: "💍" },
199
- { key: "previously_married", name: "Preiously Married", emoji: "💍" },
200
- { key: "never_want_marriage", name: "Never Want Married", emoji: "1️⃣" },
201
- { key: "live_with_parents", name: "Live with Parents", emoji: "🏠" },
202
- { key: "home_owner", name: "Home Owner", emoji: "🏡" },
203
- { key: "couch_surfer", name: "Couch Surfer", emoji: "🛋️" },
204
- { key: "rent_housing", name: "Rent Housing", emoji: "🏢" },
205
- { key: "nomadic", name: "Nomadic", emoji: "🌏" },
206
- { key: "happy_childhood", name: "Happy Childhood", emoji: "🌈" },
207
- { key: "parents_together", name: "Parents Together", emoji: "👪" },
208
- { key: "close_to_parents", name: "Close to Parents", emoji: "👨‍👩‍👧‍👦" },
209
- { key: "not_close_to_parents", name: "Not Close to Parents", emoji: "👨‍👩‍👧‍👦" },
210
- { key: "own_cat", name: "Cat Owner", emoji: "🐈" },
211
- { key: "own_dog", name: "Dog Owner", emoji: "🐕" },
212
- { key: "parent", name: "Parent", emoji: "👨‍👩‍👧‍👦" },
213
- { key: "expecting_newborn", name: "Expecting Newborn", emoji: "🍼" },
214
- { key: "have_kids", name: "Have Kids", emoji: "👶" },
215
- { key: "dont_have_kids", name: "Don't Have Kids", emoji: "👶" },
216
- { key: "want_kids", name: "Want Kids", emoji: "🍼" },
217
- { key: "dont_want_kids", name: "Don't Want Kids", emoji: "👶" },
218
- { key: "over_100k_usd_net_worth", name: "Over $100k Net Worth", emoji: "💲" },
219
- { key: "over_500k_usd_net_worth", name: "Over $500k Net Worth", emoji: "💵" },
220
- { key: "over_1m_usd_net_worth", name: "Over $1 Million Net Worth", emoji: "💰" },
221
- { key: "low_budget", name: "Low Budget", emoji: "💸" },
222
- { key: "high_budget", name: "High Budget", emoji: "🤑" },
223
- { key: "investor", name: "Investor", emoji: "📈" },
224
- { key: "saver", name: "Saver", emoji: "🐷" },
225
- { key: "spender", name: "Spender", emoji: "🛍️" },
226
- { key: "philanthropist", name: "Philanthropist", emoji: "❤️" },
227
- { key: "financially_independent", name: "Financially Independent", emoji: "🌟" },
228
- { key: "entrepreneur", name: "Entrepreneur", emoji: "🚀" },
229
- { key: "own_cryptocurrency", name: "Cryptocurrency Enthusiast", emoji: "⛓️" },
230
- { key: "work_remotely", name: "Work Remotely", emoji: "💻" },
231
- { key: "work_in_web_development", name: "Work in Web Development", emoji: "🌐" },
232
- { key: "work_in_mobile_development", name: "Work in Mobile Development", emoji: "📱" },
233
- { key: "work_in_ui_ux_design", name: "Work in UI/UX Design", emoji: "🎨" },
234
- { key: "work_in_software_engineering", name: "Work in Software Engineering", emoji: "💻" },
235
- { key: "work_in_cryptocurrency", name: "Work in Cryptocurrency", emoji: "🪙" },
236
- { key: "work_in_startup", name: "Work in Startup", emoji: "🚀" },
237
- { key: "work_in_data_science", name: "Work in Data Science", emoji: "📈" },
238
- { key: "work_in_finance", name: "Work in Finance & Investment", emoji: "💹" },
239
- { key: "work_in_product_management", name: "Work in Product Management", emoji: "🗂️" },
240
- { key: "work_in_education", name: "Work in Education", emoji: "🎓" },
241
- { key: "work_in_healthcare", name: "Work in Healthcare", emoji: "⚕️" },
242
- { key: "work_in_politics", name: "Work in Politics", emoji: "🏛️" },
243
- { key: "work_in_creative_arts", name: "Work in Creative Arts", emoji: "👩‍🎨" },
244
- { key: "work_in_legal", name: "Work in Legal", emoji: "⚖️" },
245
- { key: "work_in_public_speaking", name: "Public Speaker", emoji: "🗣️" },
246
- { key: "work_in_content_creation", name: "Work in Content Creation", emoji: "📹" },
247
- { key: "work_in_mental_health", name: "Work in Mental Health", emoji: "🧠" },
248
- { key: "work_in_coaching", name: "Work in Coaching", emoji: "🏋️" },
249
- { key: "work_in_fitness", name: "Work in Fitness", emoji: "💪" },
250
- { key: "work_in_community_manager", name: "Community Manager", emoji: "🤝" },
251
- { key: "work_in_marketing", name: "Work in Marketing", emoji: "📈" },
252
- { key: "work_in_sales", name: "Work in Sales", emoji: "🤑" },
253
- { key: "work_in_ecommerce", name: "Work in Ecommerce", emoji: "🛒" },
254
- { key: "work_in_customer_support", name: "Work in Customer Support", emoji: "🔊" },
255
- { key: "work_in_travel", name: "Work in Travel", emoji: "✈️" },
256
- { key: "work_in_sports", name: "Work in Sports", emoji: "🏅" },
257
- { key: "work_in_architecture", name: "Work in Architecture", emoji: "🏗️" },
258
- { key: "work_in_hospitality", name: "Work in Hospitality", emoji: "🏨" },
259
- { key: "work_in_fashion", name: "Work in Fashion", emoji: "👗" },
260
- { key: "work_in_adult", name: "Work in Adult", emoji: "🔞" },
261
- { key: "work_in_social_media", name: "Work in Social Media", emoji: "📱" },
262
- { key: "work_in_journalism", name: "Work in Journalism", emoji: "📰" },
263
- { key: "work_in_environment", name: "Work in Environment", emoji: "🌳" },
264
- { key: "work_in_photography", name: "Work in Photography", emoji: "📸" },
265
- { key: "work_in_music", name: "Work in Music", emoji: "🎶" },
266
- { key: "work_in_food", name: "Work in Food", emoji: "🍳" },
267
- { key: "work_in_writing", name: "Work in Writing", emoji: "✍️" },
268
- { key: "work_in_event_planning", name: "Work in Event Planning", emoji: "🎉" },
269
- { key: "work_in_activism", name: "Work in Activism", emoji: "✊" },
270
- { key: "work_in_philanthropy", name: "Work in Philanthropy", emoji: "🎗️" },
271
- { key: "self_learner", name: "Self Learner", emoji: "🔍" },
272
- { key: "learn_by_doing", name: "Learn By Doing", emoji: "🛠️" },
273
- { key: "youtube_learner", name: "YouTube Learner", emoji: "▶️" },
274
- { key: "have_bachelors_degree", name: "Have Bachelor's Degree", emoji: "📜" },
275
- { key: "have_masters_degree", name: "Have Master's Degree", emoji: "🎓" },
276
- { key: "have_phd", name: "Have PhD", emoji: "👩‍🏫" },
277
- { key: "interest_in_philosophy", name: "Interest in Philosophy", emoji: "💭" },
278
- { key: "interest_in_psychology", name: "Interest in Psychology", emoji: "🧠" },
279
- { key: "interest_in_economics", name: "Interest in Economics", emoji: "💹" },
280
- { key: "interest_in_history", name: "Interest in History", emoji: "🏰" },
281
- { key: "interest_in_mathematics", name: "Interest in Mathematics", emoji: "➗" },
282
- { key: "enjoy_talking_politics", name: "Enjoy Talking Politics", emoji: "🗣️" },
283
- { key: "limit_talking_politics", name: "Limit Talking Politics", emoji: "🤐" },
284
- { key: "not_political", name: "Not Political", emoji: "🤷" },
285
- { key: "actively_advocate_politics", name: "Actively Advocate Politics", emoji: "✊" },
286
- { key: "politically_lean_democrat", name: "Politically Lean Democrat", emoji: "🔵" },
287
- { key: "politically_lean_republican", name: "Politically Lean Republican", emoji: "🔴" },
288
- { key: "politically_lean_independent", name: "Politically Lean Independent", emoji: "🟢" },
289
- { key: "politically_lean_libertarian", name: "Politically Lean Libertarian", emoji: "🟡" },
290
- { key: "politically_lean_green_party", name: "Politically Lean Green Party", emoji: "🍀" },
291
- { key: "politically_lean_progressive", name: "Politically Lean Progressive", emoji: "⏩" },
292
- { key: "politically_lean_centrist", name: "Politically Lean Centrist", emoji: "🎯" },
293
- { key: "politically_lean_conservative", name: "Politically Lean Conservative", emoji: "🐘" },
294
- { key: "politically_lean_socialist", name: "Politically Lean Socialist", emoji: "✊" },
295
- { key: "politically_lean_other", name: "Politically Lean Other", emoji: "🔀" },
296
- { key: "not_religious", name: "Not Religious", emoji: "💫" },
297
- { key: "religion_of_christianity", name: "Christianity Follower", emoji: "✝️" },
298
- { key: "religion_of_islam", name: "Islam Follower", emoji: "🕌" },
299
- { key: "religion_of_hinduism", name: "Hinduism Follower", emoji: "🕉️" },
300
- { key: "religion_of_buddhism", name: "Buddhism Follower", emoji: "🔆" },
301
- { key: "religion_of_sikhism", name: "Sikhism Follower", emoji: "🔱" },
302
- { key: "religion_of_judaism", name: "Judaism Follower", emoji: "✡️" },
303
- { key: "religion_of_taoism", name: "Taoism Follower", emoji: "☯️" },
304
- { key: "religion_of_shinto", name: "Shinto Follower", emoji: "⛩️" },
305
- { key: "religion_of_paganism", name: "Paganism Follower", emoji: "🌿" },
306
- { key: "religion_of_jainism", name: "Jainism Follower", emoji: "🙏" },
307
- { key: "religion_of_agnostic", name: "Agnostic", emoji: "❓" },
308
- { key: "religion_of_atheist", name: "Atheist", emoji: "🚫" },
309
- { key: "religion_of_other", name: "Other Religion Follower", emoji: "🔀" },
310
- { key: "spiritual", name: "Spiritual", emoji: "🌌" },
311
- { key: "diet_vegetarian", name: "Vegetarian", emoji: "🥕" },
312
- { key: "diet_vegan", name: "Vegan", emoji: "🌿" },
313
- { key: "diet_pescetarian", name: "Pescetarian", emoji: "🐟" },
314
- { key: "diet_gluten_free", name: "Gluten-Free", emoji: "🌾" },
315
- { key: "diet_keto", name: "Keto", emoji: "🥓" },
316
- { key: "diet_halal", name: "Halal", emoji: "☪️" },
317
- { key: "diet_kosher", name: "Kosher", emoji: "✡️" },
318
- { key: "diet_tea", name: "Tea Lover", emoji: "🍵" },
319
- { key: "diet_coffee", name: "Coffee Lover", emoji: "☕️" },
320
- { key: "diet_wine", name: "Wine Connoisseur", emoji: "🍷" },
321
- { key: "diet_beer", name: "Beer Aficionado", emoji: "🍺" },
322
- { key: "diet_organic", name: "Organic Diet", emoji: "🌾" },
323
- { key: "diet_healthy", name: "Healthy Diet", emoji: "🥗" },
324
- { key: "diet_fasting", name: "Intermittent Fasting Diet", emoji: "⏲️" },
325
- { key: "no_smoking", name: "Non-Smoker", emoji: "🚭" },
326
- { key: "no_alcohol", name: "Alcohol-Free", emoji: "🥤" },
327
- { key: "no_drugs", name: "Drug-Free", emoji: "🚫" },
328
- { key: "body_shape_slim", name: "Slim Body Shape", emoji: "🧍" },
329
- { key: "body_shape_petite", name: "Petite Body Shape", emoji: "🧚" },
330
- { key: "body_shape_lean_athletic", name: "Lean Athletic Body Shape", emoji: "🏃" },
331
- { key: "body_shape_muscular", name: "Muscular Body Shape", emoji: "💪" },
332
- { key: "body_shape_average", name: "Average Body Shape", emoji: "🚶" },
333
- { key: "body_shape_curvy", name: "Curvy Body Shape", emoji: "🍑" },
334
- { key: "body_shape_cushy", name: "Cushy Body Shape", emoji: "⚖️" },
335
- { key: "body_shape_heavy", name: "Heavy Body Shape", emoji: "🍰" },
336
- { key: "weight_under_100", name: "Under 100 lbs (45 kg)", emoji: "⚖️" },
337
- { key: "weight_100_125", name: "100-125 lbs (45-57 kg)", emoji: "⚖️" },
338
- { key: "weight_125_150", name: "125-150 lbs (57-68 kg)", emoji: "⚖️" },
339
- { key: "weight_150_175", name: "150-175 lbs (68-79 kg)", emoji: "⚖️" },
340
- { key: "weight_175_200", name: "175-200 lbs (79-91 kg)", emoji: "⚖️" },
341
- { key: "weight_200_225", name: "200-225 lbs (91-102 kg)", emoji: "⚖️" },
342
- { key: "weight_225_250", name: "225-250 lbs (102-113 kg)", emoji: "⚖️" },
343
- { key: "weight_250_300", name: "250-300 lbs (113-136 kg)", emoji: "⚖️" },
344
- { key: "weight_over_300", name: "Over 300 lbs (136 kg)", emoji: "⚖️" },
345
- { key: "height_under_4_6", name: "Under 4 ft 6 in (137 cm)", emoji: "📏" },
346
- { key: "height_4_6_to_5", name: "4 ft 6 in - 5 ft 0 in (137-152 cm)", emoji: "📏" },
347
- { key: "height_5_to_5_5", name: "5 ft 0 in - 5 ft 5 in (152-165 cm)", emoji: "📏" },
348
- { key: "height_5_5_to_5_8", name: "5 ft 5 in - 5 ft 8 in (165-173 cm)", emoji: "📏" },
349
- { key: "height_5_8_to_5_10", name: "5 ft 8 in - 5 ft 10 in (173-178 cm)", emoji: "📏" },
350
- { key: "height_5_10_to_6", name: "5 ft 10 in - 6 ft 0 in (178-183 cm)", emoji: "📏" },
351
- { key: "height_6_to_6_3", name: "6 ft 0 in - 6 ft 3 in (183-190 cm)", emoji: "📏" },
352
- { key: "height_over_6_3", name: "Over 6 ft 3 in (190 cm)", emoji: "📏" },
353
- { key: "have_no_tattoos", name: "No Tattoos", emoji: "⛔" },
354
- { key: "have_few_tattoos", name: "Few Tattoos", emoji: "💉" },
355
- { key: "have_many_tattoos", name: "Many Tattoos", emoji: "🎨" },
356
- { key: "have_cosmetic_procedures", name: "Had Cosmetic Procedures", emoji: "💄" },
357
- { key: "have_clear_skin", name: "Clear Skin", emoji: "🌟" },
358
- { key: "eye_color_blue", name: "Blue Eyes", emoji: "🔵" },
359
- { key: "eye_color_brown", name: "Brown Eyes", emoji: "🟤" },
360
- { key: "eye_color_green", name: "Green Eyes", emoji: "🟢" },
361
- { key: "eye_color_hazel", name: "Hazel Eyes", emoji: "🌰" },
362
- { key: "eye_color_gray", name: "Gray Eyes", emoji: "⚪️" },
363
- { key: "eye_color_amber", name: "Amber Eyes", emoji: "🟠" },
364
- { key: "eye_color_black", name: "Black Eyes", emoji: "⚫" },
365
- { key: "eye_color_mixed", name: "Mixed Eyes", emoji: "🌈" },
366
- { key: "have_black_hair", name: "Black Hair", emoji: "⚫️" },
367
- { key: "have_brown_hair", name: "Brown Hair", emoji: "🟤" },
368
- { key: "have_blonde_hair", name: "Blonde Hair", emoji: "🟡" },
369
- { key: "have_red_hair", name: "Red Hair", emoji: "🦰" },
370
- { key: "have_gray_hair", name: "Gray Hair", emoji: "⚪️" },
371
- { key: "have_dyed_hair", name: "Dyed Hair", emoji: "🌈" },
372
- { key: "have_bald_head", name: "Shaved/Bald", emoji: "🦲" },
373
- { key: "have_short_hair", name: "Short Hair", emoji: "💇" },
374
- { key: "have_long_hair", name: "Long Hair", emoji: "🪮" },
375
- { key: "have_beard", name: "Beard", emoji: "🧔" },
376
- { key: "seeking_travel_buddies", name: "Seeking Travel Buddies", emoji: "🎒" },
377
- { key: "seeking_friends", name: "Seeking Friends", emoji: "🤝" },
378
- { key: "seeking_casual_dating", name: "Seeking Casual Dating", emoji: "🍹" },
379
- { key: "seeking_business_partners", name: "Seeking Business Partners", emoji: "💼" },
380
- { key: "seeking_relationship", name: "Seeking Relationship", emoji: "❤️" },
381
- { key: "seeking_job", name: "Seeking Job", emoji: "🔍" },
382
- { key: "seeking_networking", name: "Seeking Networking", emoji: "🤝" },
383
- { key: "uses_twitter", name: "Twitter/X User", emoji: "🐦" },
384
- { key: "uses_youtube", name: "YouTube User", emoji: "📺" },
385
- { key: "uses_facebook", name: "Facebook User", emoji: "📘" },
386
- { key: "uses_instagram", name: "Instagram User", emoji: "📸" },
387
- { key: "uses_linkedin", name: "LinkedIn User", emoji: "💼" },
388
- { key: "uses_tiktok", name: "TikTok User", emoji: "🎵" },
389
- { key: "uses_snapchat", name: "Snapchat User", emoji: "👻" },
390
- { key: "uses_whatsapp", name: "WhatsApp User", emoji: "💬" },
391
- { key: "uses_telegram", name: "Telegram User", emoji: "📬" },
392
- { key: "uses_discord", name: "Discord User", emoji: "💻" },
393
- { key: "uses_reddit", name: "Reddit User", emoji: "👽" },
394
- { key: "uses_pinterest", name: "Pinterest User", emoji: "📌" },
395
- { key: "uses_twitch", name: "Twitch User", emoji: "🎮" },
396
- { key: "uses_wechat", name: "WeChat User", emoji: "💬" },
397
- { key: "uses_line", name: "LINE User", emoji: "💚" },
398
- { key: "uses_vk", name: "VK User", emoji: "🇷🇺" },
399
- { key: "introvert", name: "Introvert", emoji: "🤫" },
400
- { key: "extrovert", name: "Extrovert", emoji: "🦋" },
401
- { key: "minimalist", name: "Minimalist", emoji: "⬜️" },
402
- { key: "enjoy_partying_often", name: "Enjoy Partying Often", emoji: "🎉" },
403
- { key: "enjoy_partying_occasionally", name: "Enjoy Partying Occasionally", emoji: "🎊" },
404
- { key: "enjoy_college_style_parties", name: "Enjoy College-Style Parties", emoji: "🍺" },
405
- { key: "enjoy_loud_music_parties", name: "Enjoy Loud Music Parties", emoji: "🎶" },
406
- { key: "enjoy_heavy_drinking_parties", name: "Enjoy Heavy Drinking Parties", emoji: "🍻" },
407
- { key: "enjoy_professional_gatherings", name: "Enjoy Professional Gatherings", emoji: "🍷" },
408
- { key: "enjoy_elegant_gatherings", name: "Enjoy Elegant Gatherings", emoji: "🍾" },
409
- { key: "enjoy_formal_receptions", name: "Enjoy Formal Receptions", emoji: "👔" },
410
- { key: "enjoy_casual_socials", name: "Enjoy Casual Socials", emoji: "🍻" },
411
- { key: "enjoy_chill_hangouts", name: "Enjoy Chill Hangouts", emoji: "🛋️" },
412
- { key: "enjoy_large_events", name: "Enjoy Large Events", emoji: "🎪" },
413
- { key: "enjoy_small_gatherings", name: "Enjoy Small Gatherings", emoji: "🏡" },
414
- { key: "enjoy_online_events", name: "Enjoy Online Events", emoji: "💻" },
415
- { key: "tidy", name: "Tidy", emoji: "🧼" },
416
- { key: "messy", name: "Messy", emoji: "🧺" },
417
- { key: "have_trouble_walking", name: "Have Trouble Walking", emoji: "🦽" },
418
- { key: "have_disability", name: "Have Disability", emoji: "🧠" },
419
- { key: "often_wake_up_early", name: "Early Riser", emoji: "🌅" },
420
- { key: "often_stay_up_late", name: "Night Owl", emoji: "🌜" },
421
- { key: "enjoy_meditation", name: "Enjoy Meditation", emoji: "🧘" },
422
- { key: "enjoy_active_lifestyle", name: "Active Lifestyle", emoji: "🏃" },
423
- { key: "enjoy_fitness", name: "Fitness Enthusiast", emoji: "💪" },
424
- { key: "enjoy_yoga", name: "Yoga Enthusiast", emoji: "🧘" },
425
- { key: "enjoy_running", name: "Runner", emoji: "🏃" },
426
- { key: "enjoy_swimming", name: "Swimmer", emoji: "🏊" },
427
- { key: "enjoy_cycling", name: "Cyclist", emoji: "🚴" },
428
- { key: "enjoy_hiking", name: "Hiker", emoji: "🥾" },
429
- { key: "enjoy_golfing", name: "Golfer", emoji: "⛳" },
430
- { key: "fan_of_golf", name: "Golf Fan", emoji: "⛳" },
431
- { key: "enjoy_playing_tennis", name: "Enjoy Playing Tennis", emoji: "🎾" },
432
- { key: "fan_of_tennis", name: "Tennis Fan", emoji: "🎾" },
433
- { key: "enjoy_playing_pickleball", name: "Enjoy Playing Pickleball", emoji: "🎾" },
434
- { key: "enjoy_playing_football", name: "Enjoy Playing Football", emoji: "🏈" },
435
- { key: "fan_of_football", name: "Football Fan", emoji: "🏈" },
436
- { key: "enjoy_playing_soccer", name: "Enjoy Playing Soccer", emoji: "⚽" },
437
- { key: "soccer_fan", name: "Soccer Fan", emoji: "⚽" },
438
- { key: "enjoy_playing_basketball", name: "Enjoy playing Basketball", emoji: "🏀" },
439
- { key: "fan_of_basketball", name: "Basketball Fan", emoji: "🏀" },
440
- { key: "enjoy_playing_hockey", name: "Enjoy Playing Hockey", emoji: "🏒" },
441
- { key: "fan_of_hockey", name: "Hockey Fan", emoji: "🏒" },
442
- { key: "fan_of_formula_one", name: "Formula 1 Fan", emoji: "🏎️" },
443
- { key: "fan_of_motor_sports", name: "Motor Sports Fan", emoji: "🏍️" },
444
- { key: "enjoy_surfing", name: "Enjoy Surfing", emoji: "🏄‍♂️" },
445
- { key: "enjoy_rock_climbing", name: "Enjoy Rock Climbing", emoji: "🧗‍♀️" },
446
- { key: "enjoy_camping", name: "Enjoy Camping", emoji: "⛺" },
447
- { key: "enjoy_fishing", name: "Enjoy Fishing", emoji: "🎣" },
448
- { key: "enjoy_gardening", name: "Enjoy Gardening", emoji: "🌱" },
449
- { key: "enjoy_baking", name: "Enjoy Baking", emoji: "🍪" },
450
- { key: "enjoy_cooking", name: "Enjoy Cooking", emoji: "👩‍🍳" },
451
- { key: "enjoy_reading", name: "Enjoy Reading", emoji: "📚" },
452
- { key: "enjoy_writing", name: "Enjoy Writing", emoji: "✍️" },
453
- { key: "enjoy_drawing", name: "Enjoy Drawing", emoji: "✏️" },
454
- { key: "enjoy_painting", name: "Enjoy Painting", emoji: "🎨" },
455
- { key: "enjoy_pottery", name: "Enjoy Pottery", emoji: "🏺" },
456
- { key: "enjoy_knitting", name: "Enjoy Knitting", emoji: "🧶" },
457
- { key: "enjoy_origami", name: "Enjoy Origami", emoji: "🗾" },
458
- { key: "enjoy_photography", name: "Enjoy Photography", emoji: "📷" },
459
- { key: "enjoy_movies", name: "Enjoy Movies", emoji: "🍿" },
460
- { key: "enjoy_documentaries", name: "Enjoy Documentaries", emoji: "🎥" },
461
- { key: "enjoy_comedy", name: "Enjoy Comedy", emoji: "😄" },
462
- { key: "enjoy_music_production", name: "Enjoy Producing Music", emoji: "🎵" },
463
- { key: "enjoy_outdoors", name: "Enjoy Outdoors", emoji: "🏞️" },
464
- { key: "enjoy_beach", name: "Enjoy the Beach", emoji: "🏖️" },
465
- { key: "enjoy_diy", name: "Enjoy DIY", emoji: "🔨" },
466
- { key: "enjoy_diy_electronics", name: "Enjoy DIY Electronics", emoji: "🔌" },
467
- { key: "enjoy_home_renovation", name: "Enjoy Home Renovation", emoji: "🏚️" },
468
- { key: "enjoy_cruising", name: "Enjoy Cruises", emoji: "🚢" },
469
- { key: "enjoy_skateboarding", name: "Enjoy Skateboarding", emoji: "🛹" },
470
- { key: "enjoy_snow", name: "Enjoy Snow", emoji: "❄️" },
471
- { key: "enjoy_magic", name: "Enjoy Magic", emoji: "🔮" },
472
- { key: "enjoy_listening_to_podcasts", name: "Enjoy Listening to Podcasts", emoji: "🎙️" },
473
- { key: "enjoy_makeup_beauty", name: "Makeup & Beauty Aficionado", emoji: "💄" },
474
- { key: "enjoy_martial_arts", name: "Enjoy Practicing Martial Arts", emoji: "🥋" },
475
- { key: "fan_of_ufc", name: "UFC Fan", emoji: "🤼‍♂️" },
476
- { key: "fan_of_boxing", name: "Boxing Fan", emoji: "🥊" },
477
- { key: "fan_of_celebrity_fights", name: "Celebrity Fights Fan", emoji: "🎬" },
478
- { key: "enjoy_mathematics", name: "Enjoy Mathematics", emoji: "➗" },
479
- { key: "enjoy_robotics", name: "Enjoy Robotics", emoji: "🤖" },
480
- { key: "enjoy_puzzles", name: "Enjoy Assembling Puzzles", emoji: "🧩" },
481
- { key: "enjoy_astronomy", name: "Enjoy Astronomy", emoji: "🔭" },
482
- { key: "enjoy_bird_watching", name: "Enjoy Bird Watching", emoji: "🦉" },
483
- { key: "enjoy_theater", name: "Enjoy Theater", emoji: "🎭" },
484
- { key: "enjoy_music_concerts", name: "Enjoy Music Concerts", emoji: "🎷" },
485
- { key: "enjoy_eco_friendly_living", name: "Enjoy Eco-Friendly Living", emoji: "♻️" },
486
- { key: "enjoy_board_games", name: "Enjoy Board Games", emoji: "🎲" },
487
- { key: "enjoy_video_gaming", name: "Enjoy Video Games", emoji: "🎮" },
488
- { key: "enjoy_dancing", name: "Enjoy Dancing", emoji: "💃" },
489
- { key: "enjoy_scuba_diving", name: "Enjoy Scuba Diving", emoji: "🤿" },
490
- { key: "enjoy_skiing", name: "Enjoy Skiing", emoji: "⛷️" },
491
- { key: "enjoy_snowboarding", name: "Enjoy Snowboarding", emoji: "🏂" },
492
- { key: "enjoy_archery", name: "Enjoy Archery", emoji: "🏹" },
493
- { key: "enjoy_horseback_riding", name: "Enjoy Horseback Riding", emoji: "🏇" },
494
- { key: "enjoy_sailing", name: "Enjoy Sailing", emoji: "⛵" },
495
- { key: "enjoy_hunting", name: "Enjoy Hunting", emoji: "🦌" },
496
- { key: "enjoy_fossil_hunting", name: "Enjoy Fossil Hunting", emoji: "🦴" },
497
- { key: "enjoy_metal_detecting", name: "Enjoy Metal Detecting", emoji: "🔍" },
498
- { key: "enjoy_rare_metal", name: "Enjoy Rare Metals", emoji: "⚱️" },
499
- { key: "enjoy_coin_collecting", name: "Enjoy Coin Collecting", emoji: "💰" },
500
- { key: "enjoy_vinyl_collecting", name: "Enjoy Vinyl Collecting", emoji: "🎶" },
501
- { key: "enjoy_antique_collecting", name: "Enjoy Antique Collecting", emoji: "🔍" },
502
- { key: "enjoy_model_building", name: "Enjoy Model Building", emoji: "🚁" },
503
- { key: "enjoy_railroad_modeling", name: "Enjoy Railroad Modeling", emoji: "🚂" },
504
- { key: "enjoy_volunteering", name: "Enjoy Volunteering", emoji: "🤲" },
505
- { key: "enjoy_cosplay", name: "Enjoy Cosplay", emoji: "🎭" },
506
- { key: "travel_often", name: "Travel Often ", emoji: "✈️" },
507
- { key: "enjoy_craft_beer_brewing", name: "Enjoy Craft Beer Brewing", emoji: "🍺" },
508
- { key: "enjoy_wine_tasting", name: "Enjoy Wine Tasting", emoji: "🍷" },
509
- { key: "enjoy_cheese_tasting", name: "Enjoy Cheese Tasting", emoji: "🧀" },
510
- { key: "enjoy_zoo", name: "Enjoy Zoo", emoji: "🦁" },
511
- { key: "enjoy_urban_exploration", name: "Enjoy Urban Exploration", emoji: "🏚️" },
512
- { key: "use_apple_macbook", name: "Apple Macbook User", emoji: "💻" },
513
- { key: "use_iphone", name: "iPhone User", emoji: "📱" },
514
- { key: "use_android", name: "Android User", emoji: "🤖" },
515
- ]
516
-
517
- const array_literal = {
518
- kind: "literal",
519
- category: "variables",
520
- name: "Array",
521
- postgres_type: "jsonb",
522
- json_schema: { type: "array" },
523
- validator: (input) => {
524
- // validate tbd
525
- },
526
- }
527
- const array_uniform_literal = {
528
- kind: "literal",
529
- category: "variables",
530
- name: "Array Uniform",
531
- postgres_type: "jsonb",
532
- json_schema: { type: "array" },
533
- validator: (input) => {
534
- // validate tbd
535
- },
536
- }
537
- const object_literal = {
538
- kind: "literal",
539
- category: "variables",
540
- name: "Object",
541
- postgres_type: "jsonb",
542
- json_schema: { type: "object" },
543
- validator: (input) => {
544
- // validate here
545
- },
546
- }
547
- const object_uniform_literal = {
548
- kind: "literal",
549
- category: "variables",
550
- name: "Object Uniform",
551
- postgres_type: "jsonb",
552
- json_schema: { type: "object" },
553
- validator: (input) => {
554
- // validate here
555
- },
556
- }
557
- const text_literal = {
558
- kind: "literal",
559
- category: "variables",
560
- name: "Text",
561
- postgres_type: "text",
562
- json_schema: { type: "string" },
563
- validator: (input) => {
564
- // validate here
565
- },
566
- }
567
- const boolean_literal = {
568
- kind: "literal",
569
- category: "variables",
570
- name: "Boolean",
571
- postgres_type: "boolean",
572
- json_schema: { type: "boolean" },
573
- validator: (input) => {
574
- // validate here
575
- },
576
- }
577
- const int_literal = {
578
- kind: "literal",
579
- category: "variables",
580
- name: "Integer",
581
- postgres_type: "int",
582
- json_schema: { type: "number" },
583
- validator: (input) => {
584
- // validate here
585
- },
586
- }
587
- const bigint_literal = {
588
- kind: "literal",
589
- category: "variables",
590
- name: "Big Integer",
591
- postgres_type: "bigint",
592
- json_schema: { type: "number" },
593
- validator: (input) => {
594
- // validate here
595
- },
596
- }
597
- const null_literal = {
598
- kind: "literal",
599
- category: "variables",
600
- name: "Null",
601
- postgres_type: "jsonb",
602
- json_schema: { type: "null" },
603
- validator: (input) => {
604
- // validate here
605
- },
606
- }
607
- const epoch_literal = {
608
- kind: "literal",
609
- category: "variables",
610
- name: "Epoch",
611
- postgres_type: "bigint",
612
- json_schema: { type: "number", description: "Epoch in seconds" },
613
- validator: (input) => {
614
- // validate here
615
- },
616
- }
617
- const float_literal = {
618
- kind: "literal",
619
- category: "variables",
620
- name: "Float",
621
- postgres_type: "float",
622
- json_schema: { type: "number" },
623
- validator: (input) => {
624
- // validate here
625
- },
626
- }
627
- const color_literal = {
628
- kind: "literal",
629
- category: "variables",
630
- name: "Color",
631
- postgres_type: "jsonb",
632
- json_schema: {
633
- type: "object",
634
- description:
635
- "color parts l (lightness), c (chroma), h (hue), o (opacity) can range from 0-24. An example of a solid black that flips to white in dark mode would be { c: 0, l: 0, h: 0, o: 24, is_dark_theme_invert: true }. Generally use is_dark_theme_invert true, opacity 24, c is chroma and gets probably too vibrant over 14 so 10 is probably a standard amount and 3 if want softer or 0 for white, l is lightness and 0 is black and 24 full light typcally we assume a light backround so you might use something like l 8 for a header text. h is hue and the 0-24 range can be understood as 0: 0 oklch h val, red (pure red), 1: 14 oklch h val, orange-red (red with an orange tint), 2: 29 oklch h val, orange (warm orange), 3: 43 oklch h val, yellow-orange (a deep orange, close to golden), 4: 58 oklch h val, yellow (bright yellow), 5: 72 oklch h val, greenish-yellow (yellow with a slight green tint), 6: 87 oklch h val, yellow-green (green with strong yellow undertones), 7: 101 oklch h val, green (pure green), 8: 116 oklch h val, green-cyan (green shifting toward cyan), 9: 130 oklch h val, cyan (a strong cyan-green color), 10: 145 oklch h val, blue-green (cyan with a blue shift), 11: 159 oklch h val, cyan-blue (a cool blue-leaning cyan), 12: 174 oklch h val, light blue (sky blue, soft and light), 13: 188 oklch h val, blue (pure blue), 14: 203 oklch h val, indigo (a deep blue with hints of purple), 15: 217 oklch h val, blue-violet (a blue shifting toward purple), 16: 232 oklch h val, violet (violet with a blue tint), 17: 246 oklch h val, purple (deep purple), 18: 261 oklch h val, magenta-purple (purple with magenta tones), 19: 275 oklch h val, magenta (deep, vivid magenta), 20: 290 oklch h val, pink-magenta (magenta with a pink hue), 21: 304 oklch h val, pink (a soft, warm pink), 22: 319 oklch h val, pinkish-red (pink leaning toward red), 23: 333 oklch h val, red-pink (vivid red with pink tones), 24: 348 oklch h val, bright red (bright red, slightly pinkish) ",
636
- properties: {
637
- l: { type: "number" },
638
- c: { type: "number" },
639
- h: { type: "number" },
640
- o: { type: "number" },
641
- is_dark_theme_invert: { type: "boolean" },
642
- },
643
- additionalProperties: false,
644
- required: ["l", "c", "h", "o", "is_dark_theme_invert"],
645
- },
646
- validator: (input) => {
647
- // validate here
648
- },
649
- }
650
- const domain_literal = {
651
- kind: "literal",
652
- category: "variables",
653
- name: "Domain",
654
- postgres_type: "text",
655
- json_schema: {
656
- type: "string",
657
- },
658
- validator: (input) => {
659
- // validate here
660
- },
661
- }
662
- const email_address_literal = {
663
- kind: "literal",
664
- category: "variables",
665
- name: "Email Address",
666
- postgres_type: "text",
667
- json_schema: {
668
- type: "string",
669
- // format: "email",
670
- },
671
- validator: (input) => {
672
- // validate here
673
- },
674
- }
675
- const email_address_full_literal = {
676
- kind: "literal",
677
- category: "variables",
678
- name: "Email Address Full",
679
- postgres_type: "jsonb",
680
- json_schema: {
681
- type: "object",
682
- properties: {
683
- domain: domain_literal?.json_schema,
684
- domain_id: text_literal?.json_schema,
685
- account_id: text_literal?.json_schema,
686
- root_domain: domain_literal?.json_schema,
687
- display_name: text_literal?.json_schema,
688
- mailbox_hash: text_literal?.json_schema,
689
- email_address: email_address_literal?.json_schema,
690
- root_email_address: email_address_literal?.json_schema,
691
- epoch_email_address_verified: epoch_literal?.json_schema,
692
- },
693
- additionalProperties: false,
694
- required: ["domain", "root_domain", "mailbox_hash", "email_address", "root_email_address"],
695
- },
696
- validator: (input) => {
697
- // validate here
698
- },
699
- }
700
- const email_attachment_literal = {
701
- kind: "literal",
702
- category: "variables",
703
- name: "Email Attachment",
704
- postgres_type: "jsonb",
705
- json_schema: {
706
- type: "object",
707
- properties: {
708
- name: text_literal?.json_schema,
709
- content: text_literal?.json_schema,
710
- content_id: text_literal?.json_schema,
711
- content_type: text_literal?.json_schema,
712
- },
713
- additionalProperties: false,
714
- required: ["name", "content", "content_id", "content_type"],
715
- },
716
- validator: (input) => {
717
- // validate here
718
- },
719
- }
720
- const json_literal = {
721
- kind: "literal",
722
- category: "variables",
723
- name: "JSON",
724
- postgres_type: "jsonb",
725
- json_schema: {
726
- anyOf: [
727
- { type: "null" },
728
- { type: "boolean" },
729
- { type: "number" },
730
- { type: "string" },
731
- {
732
- type: "array",
733
- items: { $ref: "#/$defs/json_literal" },
734
- },
735
- {
736
- type: "object",
737
- additionalProperties: { $ref: "#/$defs/json_literal" },
738
- },
739
- ],
740
- },
741
- validator: (input) => {
742
- // validate here
743
- },
744
- }
745
- const storage_item_literal = {
746
- kind: "literal",
747
- category: "variables",
748
- name: "Storage Item",
749
- postgres_type: "jsonb",
750
- json_schema: {
751
- type: "object",
752
- properties: {
753
- id: text_literal?.json_schema,
754
- db_epoch_created: epoch_literal?.json_schema,
755
- db_epoch_updated: epoch_literal?.json_schema,
756
- account_id: text_literal?.json_schema,
757
- folder_path: { type: "array", items: text_literal?.json_schema },
758
- file_name: text_literal?.json_schema,
759
- file_extension: text_literal?.json_schema,
760
- mime_type: text_literal?.json_schema,
761
- size_kb: int_literal?.json_schema,
762
- metadata: json_literal?.json_schema,
763
- is_temporary: boolean_literal?.json_schema,
764
- set_to_delete_initiated_at: epoch_literal?.json_schema,
765
- is_public: boolean_literal?.json_schema,
766
- transcription: text_literal?.json_schema,
767
- },
768
- additionalProperties: false,
769
- required: [],
770
- },
771
- validator: (input) => {
772
- // validate here
773
- },
774
- }
775
- const html_literal = {
776
- kind: "literal",
777
- category: "variables",
778
- name: "HTML",
779
- postgres_type: "text",
780
- json_schema: text_literal?.json_schema,
781
- validator: (input) => {
782
- // validate here
783
- },
784
- }
785
- const phone_literal = {
786
- kind: "literal",
787
- category: "variables",
788
- name: "Phone Number",
789
- postgres_type: "jsonb",
790
- json_schema: {
791
- // type: "object",
792
- },
793
- validator: (input) => {
794
- // validate here
795
- },
796
- }
797
- const vector_literal = {
798
- kind: "literal",
799
- category: "variables",
800
- name: "Vector",
801
- postgres_type: "vector",
802
- json_schema: {
803
- type: "array",
804
- items: { type: "number" },
805
- },
806
- validator: (input) => {
807
- // validate here
808
- },
809
- }
810
- const icon_literal = {
811
- kind: "literal",
812
- category: "variables",
813
- name: "Icon",
814
- postgres_type: "jsonb",
815
- json_schema: {
816
- type: "object",
817
- properties: {
818
- icon: text_literal?.json_schema,
819
- color: color_literal?.json_schema,
820
- },
821
- additionalProperties: false,
822
- required: ["icon", "color"],
823
- },
824
- validator: (input) => {
825
- // validate here
826
- },
827
- }
828
- const time_literal = {
829
- kind: "literal",
830
- category: "variables",
831
- name: "Time",
832
- postgres_type: "jsonb",
833
- json_schema: {
834
- type: "object",
835
- properties: {
836
- format: {
837
- type: "string",
838
- description: JSON.stringify(time_formats),
839
- },
840
- epoch: {
841
- anyOf: [
842
- {
843
- type: "number",
844
- description: "epoch in seconds",
845
- },
846
- {
847
- type: "null",
848
- },
849
- ],
850
- description: "derived can keep null",
851
- },
852
- granularity: {
853
- type: "string",
854
- enum: ["year", "month", "week", "day", "hour", "minute", "second"],
855
- description: ["year", "month", "week", "day", "hour", "minute", "second"].join(", "),
856
- },
857
- year: {
858
- anyOf: [
859
- {
860
- type: "number",
861
- },
862
- {
863
- type: "null",
864
- },
865
- ],
866
- description: "derived can keep null",
867
- },
868
- month: {
869
- anyOf: [
870
- {
871
- type: "number",
872
- enum: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
873
- },
874
- {
875
- type: "null",
876
- },
877
- ],
878
- description: "derived can keep null",
879
- },
880
- day_of_month: {
881
- anyOf: [
882
- {
883
- type: "number",
884
- minimum: 1,
885
- maximum: 31,
886
- },
887
- {
888
- type: "null",
889
- },
890
- ],
891
- description: "derived can keep null",
892
- },
893
- day_of_week: {
894
- anyOf: [
895
- {
896
- type: "number",
897
- enum: [0, 1, 2, 3, 4, 5, 6],
898
- },
899
- {
900
- type: "null",
901
- },
902
- ],
903
- description: "derived can keep null",
904
- },
905
- day_of_year: {
906
- anyOf: [
907
- {
908
- type: "number",
909
- minimum: 1,
910
- maximum: 365,
911
- },
912
- {
913
- type: "null",
914
- },
915
- ],
916
- description: "derived can keep null",
917
- },
918
- week_of_year: {
919
- anyOf: [
920
- {
921
- type: "number",
922
- minimum: 1,
923
- maximum: 52,
924
- },
925
- {
926
- type: "null",
927
- },
928
- ],
929
- description: "derived can keep null",
930
- },
931
- hour: {
932
- anyOf: [
933
- {
934
- type: "number",
935
- minimum: 1,
936
- maximum: 24,
937
- },
938
- {
939
- type: "null",
940
- },
941
- ],
942
- description: "derived can keep null",
943
- },
944
- minute: {
945
- anyOf: [
946
- {
947
- type: "number",
948
- minimum: 1,
949
- maximum: 60,
950
- },
951
- {
952
- type: "null",
953
- },
954
- ],
955
- description: "derived can keep null",
956
- },
957
- timezone: {
958
- anyOf: [
959
- {
960
- type: "string",
961
- description: time_zone_options.map((h) => h?.key).join(", "),
962
- },
963
- {
964
- type: "null",
965
- },
966
- ],
967
- description: "derived can keep null",
968
- },
969
- content: {
970
- anyOf: [
971
- {
972
- type: "string",
973
- },
974
- {
975
- type: "null",
976
- },
977
- ],
978
- description: "derived can keep null",
979
- },
980
- datetime: {
981
- anyOf: [
982
- {
983
- type: "string",
984
- },
985
- {
986
- type: "null",
987
- },
988
- ],
989
- description: "derived can keep null",
990
- },
991
- },
992
- additionalProperties: false,
993
- required: ["epoch"],
994
- },
995
- validator: (input) => {
996
- // validate here
997
- },
998
- }
999
- const time_zone_literal = {
1000
- kind: "literal",
1001
- category: "variables",
1002
- name: "Time Zone",
1003
- postgres_type: "text",
1004
- json_schema: text_literal?.json_schema,
1005
- validator: (input) => {
1006
- // validate here
1007
- },
1008
- }
1009
- const location_literal = {
1010
- kind: "literal",
1011
- category: "variables",
1012
- name: "Location Apple",
1013
- postgres_type: "jsonb",
1014
- json_schema: {
1015
- type: "object",
1016
- properties: {
1017
- place_id: { type: "string" },
1018
- name: { type: "string" },
1019
- muid: { type: "string" },
1020
- latitude: { type: "number" },
1021
- longitude: { type: "number" },
1022
- formatted_address: { type: "string" },
1023
- country: { type: "string" },
1024
- country_code: { type: "string" },
1025
- administrative_area: { type: "string" },
1026
- administrative_area_code: { type: "string" },
1027
- locality: { type: "string" },
1028
- sub_locality: { type: "string" },
1029
- full_thoroughfare: { type: "string" },
1030
- },
1031
- required: ["latitude", "longitude", "name"],
1032
- additionalProperties: false,
1033
- },
1034
- validator: (input) => {
1035
- // validate here
1036
- },
1037
- }
1038
- const cron_literal = {
1039
- kind: "literal",
1040
- category: "variables",
1041
- name: "Cron",
1042
- postgres_type: "jsonb",
1043
- json_schema: {
1044
- type: "object",
1045
- properties: {
1046
- content: { type: "string" },
1047
- cron: { type: "string" },
1048
- minute: { type: "string" },
1049
- hour: { type: "string" },
1050
- day_of_month: { type: "string" },
1051
- month: { type: "string" },
1052
- day_of_week: { type: "string" },
1053
- },
1054
- additionalProperties: false,
1055
- required: [],
1056
- },
1057
- validator: (input) => {
1058
- // validate here
1059
- },
1060
- }
1061
- const variable_path_literal = {
1062
- kind: "literal",
1063
- category: "variables",
1064
- name: "Variable Path",
1065
- postgres_type: "jsonb",
1066
- json_schema: {
1067
- type: "array",
1068
- description: "The path to the value within variables.",
1069
- items: {
1070
- anyOf: [
1071
- {
1072
- type: "string",
1073
- },
1074
- {
1075
- type: "number",
1076
- },
1077
- {
1078
- type: "array",
1079
- items: {
1080
- anyOf: [
1081
- {
1082
- type: "string",
1083
- },
1084
- {
1085
- type: "number",
1086
- },
1087
- ],
1088
- },
1089
- },
1090
- ],
1091
- },
1092
- },
1093
- validator: (input) => {
1094
- // validate here
1095
- },
1096
- }
1097
- const content_literal = {
1098
- kind: "literal",
1099
- category: "variables",
1100
- name: "Content",
1101
- postgres_type: "jsonb",
1102
- // json_schema: get_content_node_json_schema("content_literal"),
1103
- validator: (input) => {
1104
- // validate here
1105
- },
1106
- }
1107
- const table_id_for_foreign_row_literal = {
1108
- kind: "literal",
1109
- category: "variables",
1110
- name: "Table ID for Foreign Row",
1111
- postgres_type: "text",
1112
- // json_schema: get_content_node_json_schema("content_literal"),
1113
- validator: (input) => {
1114
- // validate here
1115
- },
1116
- }
1117
- // image_literal
1118
- // audio_literal
1119
- // file_literal
1120
- // dropdown_literal
1121
- // text_array_literal
1122
- // function_literal
1123
-
1124
- export const literal_types = {
1125
- array_literal,
1126
- array_uniform_literal,
1127
- object_literal,
1128
- object_uniform_literal,
1129
- text_literal,
1130
- boolean_literal,
1131
- int_literal,
1132
- bigint_literal,
1133
- null_literal,
1134
- epoch_literal,
1135
- float_literal,
1136
- color_literal,
1137
- json_literal,
1138
- domain_literal,
1139
- email_address_literal,
1140
- email_address_full_literal,
1141
- email_attachment_literal,
1142
- storage_item_literal,
1143
- html_literal,
1144
- phone_literal,
1145
- vector_literal,
1146
- icon_literal,
1147
- time_literal,
1148
- time_zone_literal,
1149
- location_literal,
1150
- cron_literal,
1151
- content_literal,
1152
- table_id_for_foreign_row_literal,
1153
- variable_path_literal,
1154
- }
1155
-
1156
- export const main_child_element_options = {
1157
- slot: { display_order: 0, child_min_limit: 0, child_max_limit: 99 },
1158
- loop: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1159
- div: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1160
- section: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1161
- show_conditions: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1162
- header: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1163
- footer: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1164
- h1: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1165
- h2: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1166
- h3: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1167
- h4: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1168
- h5: { display_order: 13, child_min_limit: 0, child_max_limit: 99 },
1169
- h6: { display_order: 14, child_min_limit: 0, child_max_limit: 99 },
1170
- p: { display_order: 15, child_min_limit: 0, child_max_limit: 99 },
1171
- br: { display_order: 16, child_min_limit: 0, child_max_limit: 99 },
1172
- base_text: { display_order: 17, child_min_limit: 0, child_max_limit: 99 },
1173
- span: { display_order: 18, child_min_limit: 0, child_max_limit: 99 },
1174
- strong: { display_order: 19, child_min_limit: 0, child_max_limit: 99 },
1175
- em: { display_order: 20, child_min_limit: 0, child_max_limit: 99 },
1176
- strong_em: { display_order: 21, child_min_limit: 0, child_max_limit: 99 },
1177
- link: { display_order: 22, child_min_limit: 0, child_max_limit: 99 },
1178
- q: { display_order: 23, child_min_limit: 0, child_max_limit: 99 },
1179
- mark: { display_order: 24, child_min_limit: 0, child_max_limit: 99 },
1180
- s: { display_order: 25, child_min_limit: 0, child_max_limit: 99 },
1181
- blockquote: { display_order: 26, child_min_limit: 0, child_max_limit: 99 },
1182
- ul: { display_order: 27, child_min_limit: 0, child_max_limit: 99 },
1183
- ol: { display_order: 28, child_min_limit: 0, child_max_limit: 99 },
1184
- figure: { display_order: 29, child_min_limit: 0, child_max_limit: 99 },
1185
- picture: { display_order: 30, child_min_limit: 0, child_max_limit: 99 },
1186
- image: { display_order: 32, child_min_limit: 0, child_max_limit: 99 },
1187
- audio: { display_order: 34, child_min_limit: 0, child_max_limit: 99 },
1188
- video: { display_order: 35, child_min_limit: 0, child_max_limit: 99 },
1189
- youtube_video: { display_order: 36, child_min_limit: 0, child_max_limit: 99 },
1190
- x_post: { display_order: 37, child_min_limit: 0, child_max_limit: 99 },
1191
- table: { display_order: 38, child_min_limit: 0, child_max_limit: 99 },
1192
- table_advanced: { display_order: 39, child_min_limit: 0, child_max_limit: 99 },
1193
- hr: { display_order: 40, child_min_limit: 0, child_max_limit: 99 },
1194
- qr: { display_order: 41, child_min_limit: 0, child_max_limit: 99 },
1195
- code: { display_order: 42, child_min_limit: 0, child_max_limit: 99 },
1196
- code_inline: { display_order: 43, child_min_limit: 0, child_max_limit: 99 },
1197
- pre: { display_order: 44, child_min_limit: 0, child_max_limit: 99 },
1198
- json: { display_order: 45, child_min_limit: 0, child_max_limit: 99 },
1199
- email_address: { display_order: 46, child_min_limit: 0, child_max_limit: 99 },
1200
- email_address_input: { display_order: 47, child_min_limit: 0, child_max_limit: 99 },
1201
- phone_number: { display_order: 48, child_min_limit: 0, child_max_limit: 99 },
1202
- phone_number_input: { display_order: 49, child_min_limit: 0, child_max_limit: 99 },
1203
- time: { display_order: 50, child_min_limit: 0, child_max_limit: 99 },
1204
- time_input: { display_order: 51, child_min_limit: 0, child_max_limit: 99 },
1205
- text_input: { display_order: 52, child_min_limit: 0, child_max_limit: 99 },
1206
- location: { display_order: 53, child_min_limit: 0, child_max_limit: 99 },
1207
- location_input: { display_order: 54, child_min_limit: 0, child_max_limit: 99 },
1208
- slider: { display_order: 55, child_min_limit: 0, child_max_limit: 99 },
1209
- checkbox: { display_order: 56, child_min_limit: 0, child_max_limit: 99 },
1210
- number: { display_order: 57, child_min_limit: 0, child_max_limit: 99 },
1211
- icon: { display_order: 58, child_min_limit: 0, child_max_limit: 99 },
1212
- icon_input: { display_order: 59, child_min_limit: 0, child_max_limit: 99 },
1213
- dropdown: { display_order: 60, child_min_limit: 0, child_max_limit: 99 },
1214
- file: { display_order: 61, child_min_limit: 0, child_max_limit: 99 },
1215
- file_input: { display_order: 62, child_min_limit: 0, child_max_limit: 99 },
1216
- cron: { display_order: 64, child_min_limit: 0, child_max_limit: 99 },
1217
- cron_input: { display_order: 65, child_min_limit: 0, child_max_limit: 99 },
1218
- color: { display_order: 67, child_min_limit: 0, child_max_limit: 99 },
1219
- color_input: { display_order: 68, child_min_limit: 0, child_max_limit: 99 },
1220
- tag: { display_order: 69, child_min_limit: 0, child_max_limit: 99 },
1221
- }
1222
-
1223
- export const content_types = {
1224
- slot: {
1225
- kind: "content",
1226
- category: "content",
1227
- name: "Slot",
1228
- display_order: 0,
1229
- attributes: {
1230
- val: { type: "text_literal" },
1231
- },
1232
- child_elements: {},
1233
- },
1234
- loop: {
1235
- kind: "content",
1236
- category: "variables",
1237
- name: "Loop",
1238
- display_order: 0,
1239
- child_elements: {
1240
- ...main_child_element_options,
1241
- },
1242
- validator: (input) => {
1243
- // validate tbd
1244
- },
1245
- },
1246
- div: {
1247
- kind: "content",
1248
- category: "content",
1249
- name: "Div",
1250
- display_order: 1,
1251
- attributes: {
1252
- background_color: {
1253
- type: "color_literal",
1254
- display_name: "Background Color",
1255
- },
1256
- border_color: {
1257
- type: "color_literal",
1258
- display_name: "Border Color",
1259
- },
1260
- border_radius: {
1261
- type: "float_literal",
1262
- display_name: "Border Radius",
1263
- },
1264
- padding: {
1265
- type: "float_literal",
1266
- display_name: "Padding",
1267
- },
1268
- align_content: {
1269
- type: "text_literal",
1270
- display_name: "Align Content",
1271
- },
1272
- justify_content: {
1273
- type: "text_literal",
1274
- display_name: "Justify Content",
1275
- },
1276
- gap: {
1277
- type: "float_literal",
1278
- display_name: "Gap",
1279
- },
1280
- },
1281
- child_elements: {
1282
- ...main_child_element_options,
1283
- },
1284
- },
1285
- section: {
1286
- kind: "content",
1287
- category: "content",
1288
- name: "Section",
1289
- display_order: 2,
1290
- attributes: {
1291
- background_color: {
1292
- type: "color_literal",
1293
- display_name: "Background Color",
1294
- },
1295
- border_color: {
1296
- type: "color_literal",
1297
- display_name: "Border Color",
1298
- },
1299
- border_radius: {
1300
- display_name: "Border Radius",
1301
- json_schema: {
1302
- description: "border radius number used as rem units. Typically 1 should be good",
1303
- type: "number",
1304
- },
1305
- },
1306
- padding: {
1307
- display_name: "Padding",
1308
- json_schema: {
1309
- description: "padding number used as rem units. Typically 1 should be good",
1310
- type: "number",
1311
- },
1312
- },
1313
- },
1314
- child_elements: {
1315
- div: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1316
- header: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1317
- h1: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1318
- h2: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1319
- h3: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1320
- h4: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1321
- h5: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1322
- h6: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1323
- p: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1324
- ul: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1325
- ol: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1326
- table: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1327
- table_advanced: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1328
- figure: { display_order: 13, child_min_limit: 0, child_max_limit: 99 },
1329
- image: { display_order: 14, child_min_limit: 0, child_max_limit: 99 },
1330
- audio: { display_order: 16, child_min_limit: 0, child_max_limit: 99 },
1331
- video: { display_order: 15, child_min_limit: 0, child_max_limit: 99 },
1332
- code: { display_order: 17, child_min_limit: 0, child_max_limit: 99 },
1333
- blockquote: { display_order: 18, child_min_limit: 0, child_max_limit: 99 },
1334
- pre: { display_order: 19, child_min_limit: 0, child_max_limit: 99 },
1335
- hr: { display_order: 20, child_min_limit: 0, child_max_limit: 99 },
1336
- footer: { display_order: 21, child_min_limit: 0, child_max_limit: 99 },
1337
- youtube_video: { display_order: 22, child_min_limit: 0, child_max_limit: 99 },
1338
- x_post: { display_order: 23, child_min_limit: 0, child_max_limit: 99 },
1339
- time: { display_order: 24, child_min_limit: 0, child_max_limit: 99 },
1340
- location: { display_order: 25, child_min_limit: 0, child_max_limit: 99 },
1341
- json: { display_order: 26, child_min_limit: 0, child_max_limit: 99 },
1342
- },
1343
- },
1344
- show_conditions: {
1345
- kind: "content",
1346
- category: "content",
1347
- name: "Show Conditions",
1348
- display_order: 1,
1349
- attributes: {
1350
- is_run_serverside: {
1351
- type: "boolean_literal",
1352
- display_name: "Is Run Serverside",
1353
- default: false,
1354
- },
1355
- },
1356
- child_elements: {
1357
- show_conditions_item: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1358
- show_conditions_item_else: { display_order: 1, child_min_limit: 0, child_max_limit: 1 },
1359
- },
1360
- },
1361
- show_conditions_item: {
1362
- kind: "content",
1363
- category: "content",
1364
- name: "Show Conditions Item",
1365
- display_order: 1,
1366
- attributes: {
1367
- is_show: {
1368
- type: "boolean_literal",
1369
- display_name: "Is Show",
1370
- },
1371
- },
1372
- child_elements: {
1373
- ...main_child_element_options,
1374
- },
1375
- },
1376
- show_conditions_item_else: {
1377
- kind: "content",
1378
- category: "content",
1379
- name: "Show Conditions Item Else",
1380
- display_order: 1,
1381
- attributes: {},
1382
- child_elements: {
1383
- ...main_child_element_options,
1384
- },
1385
- },
1386
- header: {
1387
- kind: "content",
1388
- category: "content",
1389
- name: "Header",
1390
- display_order: 3,
1391
- attributes: {},
1392
- child_elements: {
1393
- h1: { display_order: 1, child_min_limit: 1, child_max_limit: 1 },
1394
- h2: { display_order: 2, child_min_limit: 0, child_max_limit: 1 },
1395
- },
1396
- },
1397
- h1: {
1398
- kind: "content",
1399
- category: "content",
1400
- name: "Heading 1",
1401
- display_order: 4,
1402
- attributes: {},
1403
- child_elements: {
1404
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1405
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1406
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1407
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1408
- },
1409
- },
1410
- h2: {
1411
- kind: "content",
1412
- category: "content",
1413
- name: "Heading 2",
1414
- display_order: 5,
1415
- attributes: {},
1416
- child_elements: {
1417
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1418
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1419
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1420
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1421
- },
1422
- },
1423
- h3: {
1424
- kind: "content",
1425
- category: "content",
1426
- name: "Heading 3",
1427
- display_order: 6,
1428
- attributes: {},
1429
- child_elements: {
1430
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1431
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1432
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1433
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1434
- },
1435
- },
1436
- h4: {
1437
- kind: "content",
1438
- category: "content",
1439
- name: "Heading 4",
1440
- display_order: 7,
1441
- attributes: {},
1442
- child_elements: {
1443
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1444
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1445
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1446
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1447
- },
1448
- },
1449
- h5: {
1450
- kind: "content",
1451
- category: "content",
1452
- name: "Heading 5",
1453
- display_order: 8,
1454
- attributes: {},
1455
- child_elements: {
1456
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1457
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1458
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1459
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1460
- },
1461
- },
1462
- h6: {
1463
- kind: "content",
1464
- category: "content",
1465
- name: "Heading 6",
1466
- display_order: 9,
1467
- attributes: {},
1468
- child_elements: {
1469
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1470
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1471
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1472
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1473
- },
1474
- },
1475
- p: {
1476
- kind: "content",
1477
- category: "content",
1478
- name: "Paragraph",
1479
- display_order: 10,
1480
- attributes: {},
1481
- child_elements: {
1482
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1483
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1484
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1485
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1486
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1487
- ref: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1488
- q: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1489
- span: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1490
- sub: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1491
- sup: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1492
- s: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1493
- mark: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1494
- code_inline: { display_order: 13, child_min_limit: 0, child_max_limit: 99 },
1495
- br: { display_order: 14, child_min_limit: 0, child_max_limit: 99 },
1496
- time: { display_order: 15, child_min_limit: 0, child_max_limit: 99 },
1497
- location: { display_order: 16, child_min_limit: 0, child_max_limit: 99 },
1498
- number: { display_order: 17, child_min_limit: 0, child_max_limit: 99 },
1499
- color: { display_order: 18, child_min_limit: 0, child_max_limit: 99 },
1500
- },
1501
- },
1502
- base_text: {
1503
- kind: "content",
1504
- category: "content",
1505
- name: "Base Text",
1506
- display_order: 11,
1507
- attributes: {
1508
- content: { type: "text_literal" },
1509
- text_color: { type: "color_literal" },
1510
- },
1511
- child_elements: {},
1512
- },
1513
- span: {
1514
- kind: "content",
1515
- category: "content",
1516
- name: "Span",
1517
- display_order: 12,
1518
- attributes: {},
1519
- child_elements: {},
1520
- },
1521
- strong: {
1522
- kind: "content",
1523
- category: "content",
1524
- name: "Strong Text",
1525
- display_order: 13,
1526
- attributes: {
1527
- content: { type: "text_literal" },
1528
- text_color: { type: "color_literal" },
1529
- },
1530
- child_elements: {},
1531
- },
1532
- em: {
1533
- kind: "content",
1534
- category: "content",
1535
- name: "Emphasized Text",
1536
- display_order: 14,
1537
- attributes: {
1538
- content: { type: "text_literal" },
1539
- text_color: { type: "color_literal" },
1540
- },
1541
- child_elements: {},
1542
- },
1543
- strong_em: {
1544
- kind: "content",
1545
- category: "content",
1546
- name: "Strong Emphasized Text",
1547
- display_order: 15,
1548
- attributes: {
1549
- content: { type: "text_literal" },
1550
- text_color: { type: "color_literal" },
1551
- },
1552
- child_elements: {},
1553
- },
1554
- link: {
1555
- kind: "content",
1556
- category: "content",
1557
- name: "Link",
1558
- display_order: 16,
1559
- attributes: {
1560
- href: { type: "text_literal" },
1561
- display_text: { type: "text_literal" },
1562
- text_color: { type: "color_literal" },
1563
- is_show_preview: { type: "boolean_literal" },
1564
- },
1565
- child_elements: {
1566
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1567
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1568
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1569
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1570
- ref: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1571
- q: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1572
- span: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1573
- sub: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1574
- sup: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1575
- s: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1576
- mark: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1577
- code_inline: { display_order: 13, child_min_limit: 0, child_max_limit: 99 },
1578
- br: { display_order: 14, child_min_limit: 0, child_max_limit: 99 },
1579
- time: { display_order: 15, child_min_limit: 0, child_max_limit: 99 },
1580
- location: { display_order: 16, child_min_limit: 0, child_max_limit: 99 },
1581
- number: { display_order: 17, child_min_limit: 0, child_max_limit: 99 },
1582
- color: { display_order: 18, child_min_limit: 0, child_max_limit: 99 },
1583
- },
1584
- },
1585
- q: {
1586
- kind: "content",
1587
- category: "content",
1588
- name: "Quotation",
1589
- display_order: 17,
1590
- attributes: {
1591
- href: { type: "text_literal" },
1592
- content: { type: "text_literal" },
1593
- text_color: { type: "color_literal" },
1594
- },
1595
- child_elements: {},
1596
- },
1597
- mark: {
1598
- kind: "content",
1599
- category: "content",
1600
- name: "Mark",
1601
- display_order: 18,
1602
- attributes: {},
1603
- child_elements: {
1604
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1605
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1606
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1607
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1608
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1609
- ref: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1610
- q: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1611
- span: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1612
- code_inline: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1613
- sub: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1614
- sup: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1615
- s: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1616
- },
1617
- },
1618
- s: {
1619
- kind: "content",
1620
- category: "content",
1621
- name: "Strikethrough",
1622
- display_order: 19,
1623
- attributes: {},
1624
- child_elements: {
1625
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1626
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1627
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1628
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1629
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1630
- q: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1631
- span: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1632
- code_inline: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1633
- sub: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1634
- sup: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1635
- },
1636
- },
1637
- blockquote: {
1638
- kind: "content",
1639
- category: "content",
1640
- name: "Blockquote",
1641
- display_order: 20,
1642
- attributes: {
1643
- cite: { type: "text_literal", display_name: "cite", default_value: null, display_order: 0 },
1644
- },
1645
- child_elements: {
1646
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1647
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1648
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1649
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1650
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1651
- ref: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1652
- q: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1653
- span: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1654
- sub: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1655
- sup: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1656
- s: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1657
- mark: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1658
- p: { display_order: 13, child_min_limit: 0, child_max_limit: 99 },
1659
- ul: { display_order: 14, child_min_limit: 0, child_max_limit: 99 },
1660
- ol: { display_order: 15, child_min_limit: 0, child_max_limit: 99 },
1661
- code_inline: { display_order: 16, child_min_limit: 0, child_max_limit: 9 },
1662
- },
1663
- },
1664
- ul: {
1665
- kind: "content",
1666
- category: "content",
1667
- name: "Unordered List",
1668
- display_order: 21,
1669
- attributes: {},
1670
- child_elements: {
1671
- li: { display_order: 1, child_min_limit: 1, child_max_limit: 999 },
1672
- },
1673
- },
1674
- ol: {
1675
- kind: "content",
1676
- category: "content",
1677
- name: "Ordered List",
1678
- display_order: 22,
1679
- attributes: {},
1680
- child_elements: {
1681
- li: { display_order: 1, child_min_limit: 1, child_max_limit: 999 },
1682
- },
1683
- },
1684
- li: {
1685
- kind: "content",
1686
- category: "content",
1687
- name: "List Item",
1688
- display_order: 23,
1689
- attributes: {},
1690
- child_elements: {
1691
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1692
- em: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1693
- strong: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1694
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1695
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1696
- image: { display_order: 6, child_min_limit: 0, child_max_limit: 9 },
1697
- audio: { display_order: 6, child_min_limit: 0, child_max_limit: 9 },
1698
- br: { display_order: 7, child_min_limit: 0, child_max_limit: 9 },
1699
- q: { display_order: 8, child_min_limit: 0, child_max_limit: 9 },
1700
- s: { display_order: 9, child_min_limit: 0, child_max_limit: 9 },
1701
- mark: { display_order: 10, child_min_limit: 0, child_max_limit: 9 },
1702
- span: { display_order: 11, child_min_limit: 0, child_max_limit: 9 },
1703
- code_inline: { display_order: 12, child_min_limit: 0, child_max_limit: 9 },
1704
- time: { display_order: 13, child_min_limit: 0, child_max_limit: 9 },
1705
- location: { display_order: 14, child_min_limit: 0, child_max_limit: 9 },
1706
- ...main_child_element_options, // tbd
1707
- },
1708
- },
1709
- figure: {
1710
- kind: "content",
1711
- category: "content",
1712
- name: "Figure",
1713
- display_order: 24,
1714
- attributes: {
1715
- caption: { type: "text_literal" },
1716
- },
1717
- child_elements: {
1718
- picture: { display_order: 1, child_min_limit: 0, child_max_limit: 1 },
1719
- video: { display_order: 2, child_min_limit: 0, child_max_limit: 1 },
1720
- audio: { display_order: 3, child_min_limit: 0, child_max_limit: 1 },
1721
- blockquote: { display_order: 4, child_min_limit: 0, child_max_limit: 1 },
1722
- },
1723
- },
1724
- picture: {
1725
- kind: "content",
1726
- category: "content",
1727
- name: "Picture",
1728
- display_order: 25,
1729
- attributes: {},
1730
- child_elements: {
1731
- source: { display_order: 1, child_min_limit: 1, child_max_limit: 9 },
1732
- },
1733
- },
1734
- source: {
1735
- kind: "content",
1736
- category: "content",
1737
- name: "Source",
1738
- display_order: 26,
1739
- attributes: {
1740
- alt: { type: "text_literal" },
1741
- name: { type: "text_literal" },
1742
- width: { type: "int_literal" },
1743
- height: { type: "int_literal" },
1744
- file_type: { type: "text_literal" },
1745
- storage_id: { type: "text_literal" },
1746
- aspect_ratio: { type: "float_literal" },
1747
- },
1748
- child_elements: {},
1749
- },
1750
- image: {
1751
- kind: "content",
1752
- category: "content",
1753
- name: "Image",
1754
- display_order: 27,
1755
- attributes: {
1756
- alt: { type: "text_literal" },
1757
- name: { type: "text_literal" },
1758
- width: { type: "int_literal" },
1759
- height: { type: "int_literal" },
1760
- mime_type: { type: "text_literal" },
1761
- storage_id: { type: "text_literal" },
1762
- aspect_ratio: { type: "float_literal" },
1763
- is_storage_id_public: { type: "boolean_literal" },
1764
- src: { type: "text_literal" },
1765
- src_quick: { type: "text_literal" },
1766
- display_max_height: { type: "int_literal" },
1767
- display_max_width: { type: "int_literal" },
1768
- border_radius: { type: "float_literal" },
1769
- bg_img_blur: { type: "float_literal" },
1770
- bg_img_opacity: { type: "float_literal" },
1771
- },
1772
- child_elements: {},
1773
- },
1774
- audio: {
1775
- kind: "content",
1776
- category: "content",
1777
- name: "Audio",
1778
- display_order: 29,
1779
- attributes: {
1780
- ui_type: { type: "text_literal" },
1781
- storage_id: { type: "text_literal" },
1782
- is_storage_id_public: { type: "boolean_literal" },
1783
- src: { type: "text_literal" },
1784
- mime_type: { type: "text_literal" },
1785
- title: { type: "text_literal" },
1786
- album: { type: "text_literal" },
1787
- artist: { type: "text_literal" },
1788
- image_storage_id: { type: "text_literal" },
1789
- image_is_storage_id_public: { type: "boolean_literal" },
1790
- image_src: { type: "text_literal" },
1791
- image_src_quick: { type: "text_literal" },
1792
- image_mime_type: { type: "text_literal" },
1793
- image_width: { type: "int_literal" },
1794
- image_height: { type: "int_literal" },
1795
- image_aspect_ratio: { type: "float_literal" },
1796
- },
1797
- child_elements: {},
1798
- },
1799
- video: {
1800
- // tbd
1801
- kind: "content",
1802
- category: "content",
1803
- name: "Video",
1804
- display_order: 28,
1805
- attributes: {},
1806
- child_elements: {},
1807
- },
1808
- qr: {
1809
- kind: "content",
1810
- category: "content",
1811
- name: "QR",
1812
- display_order: 29,
1813
- attributes: {
1814
- margin: {
1815
- type: "int_literal",
1816
- minimum: 0,
1817
- maximum: 50,
1818
- default: 10,
1819
- },
1820
- size: {
1821
- type: "int_literal",
1822
- minimum: 50,
1823
- maximum: 500,
1824
- default: 200,
1825
- },
1826
- image_size: {
1827
- type: "float_literal",
1828
- minimum: 0.1,
1829
- maximum: 1,
1830
- default: 0.5,
1831
- },
1832
- type_number: {
1833
- type: "int_literal",
1834
- minimum: 0,
1835
- maximum: 4,
1836
- default: 0,
1837
- },
1838
- error_correction_level: {
1839
- type: "text_literal",
1840
- enum: ["L", "M", "Q", "H"],
1841
- default: "M",
1842
- },
1843
- color: { type: "color_literal", default: "var(--primary-t)" },
1844
- corner_color: {
1845
- type: "color_literal",
1846
- default: "color-mix(in oklab, var(--primary-t), var(--bg) 20%)",
1847
- },
1848
- background_color: {
1849
- type: "color_literal",
1850
- default: "var(--shadow1-t)",
1851
- },
1852
- border_color: {
1853
- type: "color_literal",
1854
- default: "var(--shadow7-t)",
1855
- },
1856
- border_radius: {
1857
- type: "int_literal",
1858
- minimum: 0,
1859
- maximum: 10,
1860
- default: 5,
1861
- },
1862
- border_width: {
1863
- type: "int_literal",
1864
- minimum: 0,
1865
- maximum: 3,
1866
- default: 5,
1867
- },
1868
- data: { type: "text_literal" },
1869
- image: {
1870
- type: "image_literal",
1871
- },
1872
- extension: {
1873
- type: "text_literal",
1874
- enum: ["svg", "png", "jpeg"],
1875
- default: "svg",
1876
- },
1877
- quality: {
1878
- type: "float_literal",
1879
- minimum: 0,
1880
- maximum: 1,
1881
- default: 0.8,
1882
- },
1883
- },
1884
- child_elements: {},
1885
- },
1886
- table: {
1887
- kind: "content",
1888
- category: "content",
1889
- name: "Table",
1890
- display_order: 30,
1891
- attributes: {
1892
- caption: { type: "text_literal" },
1893
- },
1894
- child_elements: {
1895
- thead: { display_order: 1, child_min_limit: 1, child_max_limit: 1 },
1896
- tbody: { display_order: 2, child_min_limit: 1, child_max_limit: 1 },
1897
- tfoot: { display_order: 3, child_min_limit: 0, child_max_limit: 1 },
1898
- },
1899
- },
1900
- thead: {
1901
- kind: "content",
1902
- category: "content",
1903
- name: "Table Header",
1904
- display_order: 31,
1905
- attributes: {},
1906
- child_elements: {
1907
- tr: { display_order: 1, child_min_limit: 1, child_max_limit: 1 },
1908
- },
1909
- },
1910
- tbody: {
1911
- kind: "content",
1912
- category: "content",
1913
- name: "Table Body",
1914
- display_order: 32,
1915
- attributes: {},
1916
- child_elements: {
1917
- tr: { display_order: 1, child_min_limit: 1, child_max_limit: 999 },
1918
- },
1919
- },
1920
- tfoot: {
1921
- kind: "content",
1922
- category: "content",
1923
- name: "Table Footer",
1924
- display_order: 33,
1925
- attributes: {},
1926
- child_elements: {
1927
- tr: { display_order: 1, child_min_limit: 0, child_max_limit: 1 },
1928
- },
1929
- },
1930
- tr: {
1931
- kind: "content",
1932
- category: "content",
1933
- name: "Table Row",
1934
- display_order: 34,
1935
- attributes: {},
1936
- child_elements: {
1937
- th: { display_order: 1, child_min_limit: 1, child_max_limit: 999 },
1938
- td: { display_order: 2, child_min_limit: 1, child_max_limit: 999 },
1939
- },
1940
- },
1941
- th: {
1942
- kind: "content",
1943
- category: "content",
1944
- name: "Table Head Cell",
1945
- display_order: 35,
1946
- attributes: {},
1947
- child_elements: {
1948
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1949
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1950
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1951
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1952
- },
1953
- },
1954
- td: {
1955
- kind: "content",
1956
- category: "content",
1957
- name: "Table Body Cell",
1958
- display_order: 36,
1959
- attributes: {},
1960
- child_elements: {
1961
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
1962
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
1963
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
1964
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
1965
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
1966
- ref: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
1967
- q: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
1968
- span: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
1969
- br: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
1970
- sub: { display_order: 10, child_min_limit: 0, child_max_limit: 99 },
1971
- sup: { display_order: 11, child_min_limit: 0, child_max_limit: 99 },
1972
- s: { display_order: 12, child_min_limit: 0, child_max_limit: 99 },
1973
- mark: { display_order: 13, child_min_limit: 0, child_max_limit: 99 },
1974
- p: { display_order: 14, child_min_limit: 0, child_max_limit: 99 },
1975
- ul: { display_order: 15, child_min_limit: 0, child_max_limit: 99 },
1976
- ol: { display_order: 16, child_min_limit: 0, child_max_limit: 99 },
1977
- code_inline: { display_order: 17, child_min_limit: 0, child_max_limit: 99 },
1978
- code: { display_order: 18, child_min_limit: 0, child_max_limit: 99 },
1979
- figure: { display_order: 19, child_min_limit: 0, child_max_limit: 99 },
1980
- image: { display_order: 20, child_min_limit: 0, child_max_limit: 99 },
1981
- time: { display_order: 21, child_min_limit: 0, child_max_limit: 99 },
1982
- location: { display_order: 22, child_min_limit: 0, child_max_limit: 99 },
1983
- },
1984
- },
1985
- nav: {
1986
- kind: "content",
1987
- category: "content",
1988
- name: "Navigation",
1989
- display_order: 37,
1990
- attributes: {},
1991
- child_elements: {},
1992
- },
1993
- code: {
1994
- kind: "content",
1995
- category: "content",
1996
- name: "Code Block",
1997
- display_order: 38,
1998
- attributes: {
1999
- content: { type: "text_literal" },
2000
- language: { type: "text_literal" },
2001
- },
2002
- child_elements: {},
2003
- },
2004
- code_inline: {
2005
- kind: "content",
2006
- category: "content",
2007
- name: "Code Inline",
2008
- display_order: 39,
2009
- attributes: {
2010
- content: { type: "text_literal" },
2011
- color: { type: "color_literal" },
2012
- },
2013
- child_elements: {},
2014
- },
2015
- br: {
2016
- kind: "content",
2017
- category: "content",
2018
- name: "Line Break",
2019
- display_order: 40,
2020
- attributes: {},
2021
- child_elements: {},
2022
- },
2023
- spacer: {
2024
- kind: "content",
2025
- category: "content",
2026
- name: "Spacer",
2027
- display_order: 40,
2028
- attributes: {
2029
- mt: { type: "float_literal" },
2030
- mb: { type: "float_literal" },
2031
- ml: { type: "float_literal" },
2032
- mr: { type: "float_literal" },
2033
- is_vert: { type: "boolean_literal" },
2034
- color: { type: "color_literal" },
2035
- },
2036
- child_elements: {},
2037
- },
2038
- hr: {
2039
- kind: "content",
2040
- category: "content",
2041
- name: "Horizontal Rule",
2042
- display_order: 41,
2043
- attributes: {},
2044
- child_elements: {},
2045
- },
2046
- sub: {
2047
- kind: "content",
2048
- category: "content",
2049
- name: "Subscript",
2050
- display_order: 42,
2051
- attributes: {},
2052
- child_elements: {
2053
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
2054
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
2055
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
2056
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
2057
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
2058
- q: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
2059
- span: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
2060
- s: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
2061
- mark: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
2062
- },
2063
- },
2064
- sup: {
2065
- kind: "content",
2066
- category: "content",
2067
- name: "Superscript",
2068
- display_order: 43,
2069
- attributes: {},
2070
- child_elements: {
2071
- base_text: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
2072
- strong: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
2073
- em: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
2074
- strong_em: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
2075
- link: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
2076
- q: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
2077
- span: { display_order: 7, child_min_limit: 0, child_max_limit: 99 },
2078
- s: { display_order: 8, child_min_limit: 0, child_max_limit: 99 },
2079
- mark: { display_order: 9, child_min_limit: 0, child_max_limit: 99 },
2080
- },
2081
- },
2082
- pre: {
2083
- kind: "content",
2084
- category: "content",
2085
- name: "Preformatted Text",
2086
- display_order: 44,
2087
- attributes: {
2088
- content: { type: "text_literal" },
2089
- },
2090
- child_elements: {},
2091
- },
2092
- ref: {
2093
- kind: "content",
2094
- category: "content",
2095
- name: "Reference",
2096
- display_order: 45,
2097
- attributes: {
2098
- href: { type: "text_literal" },
2099
- content: { type: "text_literal" },
2100
- text_color: { type: "color_literal" },
2101
- },
2102
- child_elements: {},
2103
- },
2104
- footer: {
2105
- kind: "content",
2106
- category: "content",
2107
- name: "Footer",
2108
- display_order: 46,
2109
- attributes: {},
2110
- child_elements: {
2111
- ol: { display_order: 1, child_min_limit: 0, child_max_limit: 99 },
2112
- ul: { display_order: 2, child_min_limit: 0, child_max_limit: 99 },
2113
- p: { display_order: 3, child_min_limit: 0, child_max_limit: 99 },
2114
- h4: { display_order: 4, child_min_limit: 0, child_max_limit: 99 },
2115
- h5: { display_order: 5, child_min_limit: 0, child_max_limit: 99 },
2116
- h6: { display_order: 6, child_min_limit: 0, child_max_limit: 99 },
2117
- },
2118
- },
2119
- youtube_video: {
2120
- kind: "content",
2121
- category: "content",
2122
- name: "YouTube Video",
2123
- display_order: 47,
2124
- attributes: {
2125
- id: { type: "text_literal" },
2126
- video_id: { type: "text_literal" },
2127
- is_dark_theme: { type: "boolean_literal" },
2128
- },
2129
- child_elements: {},
2130
- },
2131
- x_post: {
2132
- kind: "content",
2133
- category: "content",
2134
- name: "X Post",
2135
- display_order: 48,
2136
- attributes: {
2137
- post_id: { type: "text_literal" },
2138
- },
2139
- child_elements: {},
2140
- },
2141
- table_advanced: {
2142
- kind: "content",
2143
- category: "content",
2144
- name: "Table Advanced",
2145
- display_order: 51,
2146
- attributes: {
2147
- // obviously this is way off just pasted in to start
2148
- columns: {
2149
- type: "object",
2150
- properties: {
2151
- id: { type: "text_literal" },
2152
- description: { type: "text_literal" },
2153
- header_content: { type: "text_literal" },
2154
- body_content: { type: "text_literal" },
2155
- is_shown: { type: "text_literal" },
2156
- is_fixed: { type: "text_literal" },
2157
- alignment: { type: "text_literal" },
2158
- min_width: { type: "text_literal" },
2159
- max_width: { type: "text_literal" },
2160
- display_order: { type: "text_literal" },
2161
- is_use_in_short_display: { type: "boolean_literal" },
2162
- is_autogenerated: { type: "boolean_literal" },
2163
- is_updatable: { type: "boolean_literal" },
2164
- is_db_column: { type: "boolean_literal" },
2165
- db_data_type: { type: "text_literal" },
2166
- postgres_type: { type: "text_literal" },
2167
- default_value: { type: "text_literal" },
2168
- quick_sort_variable_path: { type: "text_literal" },
2169
- is_primary_key: { type: "boolean_literal" },
2170
- is_nullable: { type: "boolean_literal" },
2171
- is_force_uniqueness: { type: "boolean_literal" },
2172
- foreign_table_id: { type: "text_literal" },
2173
- is_cascade: { type: "text_literal" },
2174
- },
2175
- additionalProperties: false,
2176
- required: [],
2177
- },
2178
- rows_data_from_variable_path: { type: "text_literal" },
2179
- is_data_editable: { type: "text_literal" },
2180
- is_paginate: { type: "text_literal" },
2181
- nav_items: { type: "text_literal" },
2182
- sort_by: { type: "text_literal" },
2183
- filter: { type: "text_literal" },
2184
- row_searchable_content: { type: "text_literal" },
2185
- row_input_content: { type: "text_literal" },
2186
- table_header_max_height: { type: "text_literal" },
2187
- table_row_max_height: { type: "text_literal" },
2188
- },
2189
- child_elements: {},
2190
- },
2191
- number: {
2192
- kind: "content",
2193
- category: "content",
2194
- name: "Number",
2195
- display_order: 51,
2196
- attributes: {
2197
- val: { type: ["float_literal", "int_literal", "bigint_literal"] },
2198
- },
2199
- child_elements: {},
2200
- },
2201
- color: {
2202
- kind: "content",
2203
- category: "content",
2204
- name: "Color",
2205
- display_order: 52,
2206
- attributes: {
2207
- val: { type: "color_literal" },
2208
- },
2209
- child_elements: {},
2210
- },
2211
- json: {
2212
- kind: "content",
2213
- category: "content",
2214
- name: "JSON",
2215
- display_order: 53,
2216
- attributes: {
2217
- is_show_buttons: { type: "boolean_literal" },
2218
- val: { type: "json_literal" },
2219
- },
2220
- child_elements: {},
2221
- },
2222
- email_address: {
2223
- kind: "content",
2224
- category: "content",
2225
- name: "Email Address",
2226
- attributes: {
2227
- is_full: { type: "boolean_literal" },
2228
- is_show_copy_to_clipboard: { type: "boolean_literal" },
2229
- is_show_mail_to: { type: "boolean_literal", default: false },
2230
- },
2231
- },
2232
- email_address_input: {
2233
- kind: "content",
2234
- category: "content",
2235
- name: "Email Address Input",
2236
- attributes: {
2237
- placeholder: { type: "text_literal" },
2238
- maximum_length: { type: "int_literal" },
2239
- },
2240
- },
2241
- phone: {
2242
- kind: "content",
2243
- category: "content",
2244
- name: "Phone",
2245
- attributes: {
2246
- is_full: { type: "boolean_literal" },
2247
- is_show_country_code: { type: "boolean_literal", default: true },
2248
- is_show_call_button: { type: "boolean_literal", default: true },
2249
- is_show_local: { type: "boolean_literal", default: true },
2250
- is_show_main_number: { type: "boolean_literal", default: true },
2251
- is_show_type: { type: "boolean_literal", default: true },
2252
- },
2253
- },
2254
- phone_input: {
2255
- kind: "content",
2256
- category: "content",
2257
- name: "Phone",
2258
- attributes: {
2259
- placeholder: { type: "text_literal" },
2260
- },
2261
- },
2262
- time_input: {
2263
- kind: "content",
2264
- category: "content",
2265
- name: "Time Input",
2266
- attributes: {
2267
- val_from_variable_path: {
2268
- type: "variable_path_literal",
2269
- allowed_types: ["time_literal"],
2270
- },
2271
- granularity: {
2272
- type: "text_literal",
2273
- enum: ["year", "month", "week", "day", "hour", "minute", "second"],
2274
- default: "day",
2275
- },
2276
- },
2277
- },
2278
- time: {
2279
- kind: "content",
2280
- category: "content",
2281
- name: "Time",
2282
- display_order: 49,
2283
- attributes: {
2284
- hour: { type: "int_literal" },
2285
- year: { type: "int_literal" },
2286
- color: { type: "color_literal" },
2287
- epoch: { type: "bigint_literal" },
2288
- month: { type: "int_literal" },
2289
- minute: { type: "int_literal" },
2290
- second: { type: "int_literal" },
2291
- content: { type: "text_literal" },
2292
- datetime: { type: "text_literal" },
2293
- timezone: { type: "text_literal" },
2294
- day_of_week: { type: "int_literal" },
2295
- day_of_year: { type: "int_literal" },
2296
- granularity: { type: "text_literal" },
2297
- day_of_month: { type: "int_literal" },
2298
- week_of_year: { type: "int_literal" },
2299
- },
2300
- child_elements: {},
2301
- },
2302
- phone_number: {
2303
- kind: "content",
2304
- category: "content",
2305
- name: "Phone Number",
2306
- display_order: 50,
2307
- attributes: {
2308
- tbd: { type: "text_literal" },
2309
- },
2310
- child_elements: {},
2311
- },
2312
- phone_number_input: {
2313
- kind: "content",
2314
- category: "content",
2315
- name: "Phone Number",
2316
- display_order: 50,
2317
- attributes: {
2318
- tbd: { type: "text_literal" },
2319
- },
2320
- child_elements: {},
2321
- },
2322
- file: {
2323
- kind: "content",
2324
- category: "content",
2325
- name: "File",
2326
- attributes: {},
2327
- },
2328
- boolean_icon: {
2329
- kind: "content",
2330
- category: "content",
2331
- name: "Boolean Icon",
2332
- attributes: {
2333
- true_icon: {
2334
- type: "icon_literal",
2335
- default: "x",
2336
- // enum: icon_ids
2337
- },
2338
- false_icon: {
2339
- type: "icon_literal",
2340
- default: "check",
2341
- // enum: icon_ids
2342
- },
2343
- },
2344
- },
2345
- tag: {
2346
- kind: "content",
2347
- category: "content",
2348
- name: "Tag",
2349
- attributes: {
2350
- // custom options input
2351
- options: {
2352
- type: "array_uniform_literal",
2353
- // items: { anyOf }
2354
- },
2355
- },
2356
- },
2357
- // foreign_key: {
2358
- // kind: "content",
2359
- // category: "content",
2360
- // name: "Foreign Key",
2361
- // attributes: {},
2362
- // },
2363
- variable_path_input: {
2364
- kind: "content",
2365
- category: "content",
2366
- name: "Variable Path Input",
2367
- attributes: {},
2368
- },
2369
- number_input: {
2370
- kind: "content",
2371
- category: "content",
2372
- name: "Number Input",
2373
- attributes: {
2374
- label: { type: "text_literal" },
2375
- placeholder: { type: "text_literal" },
2376
- val_from_variable_path: {
2377
- type: "variable_path_literal",
2378
- allowed_types: ["int_literal", "float_literal", "bigint_literal"],
2379
- },
2380
- },
2381
- },
2382
- text_input: {
2383
- kind: "content",
2384
- category: "content",
2385
- name: "Text Input",
2386
- attributes: {
2387
- val_from_variable_path: {
2388
- type: "variable_path_literal",
2389
- allowed_types: ["text_literal"],
2390
- },
2391
- label: { type: "text_literal" },
2392
- placeholder: { type: "text_literal" },
2393
- maximum_length: { type: "int_literal" },
2394
- is_text_hidable: { type: "boolean_literal", default: false },
2395
- is_text_hidden: { type: "boolean_literal", default: false },
2396
- },
2397
- },
2398
- slider: {
2399
- kind: "content",
2400
- category: "content",
2401
- name: "Slider",
2402
- attributes: {
2403
- val_from_variable_path: {
2404
- type: "variable_path_literal",
2405
- allowed_types: ["int_literal", "float_literal", "bigint_literal"],
2406
- },
2407
- label: { type: "text_literal" },
2408
- is_nullable: { type: "boolean_literal", default: false },
2409
- minimum: { type: "int_literal", default: 0 },
2410
- maximum: { type: "int_literal", default: 10 },
2411
- step: { type: "float_literal", default: 1 },
2412
- color: { type: "color_literal" },
2413
- is_short: { type: "boolean_literal", default: false },
2414
- step: { type: "int_literal", default: 1 },
2415
- },
2416
- },
2417
- checkbox: {
2418
- kind: "content",
2419
- category: "content",
2420
- name: "Checkbox",
2421
- attributes: {
2422
- val_from_variable_path: {
2423
- type: "variable_path_literal",
2424
- allowed_types: ["boolean_literal"],
2425
- },
2426
- label: { type: "text_literal" },
2427
- size: { type: "float_literal", default: 2.4 },
2428
- type: {
2429
- type: "text_literal",
2430
- default: "checkbox",
2431
- enum: ["checkbox", "toggle"],
2432
- },
2433
- label: { type: "text_literal" },
2434
- name: { type: "text_literal" },
2435
- color: { type: "color_literal" },
2436
- // on_val
2437
- // off_val
2438
- },
2439
- },
2440
- arrow_toggle_input: {
2441
- kind: "content",
2442
- category: "content",
2443
- name: "Arrow Toggle",
2444
- },
2445
- icon_input: {
2446
- kind: "content",
2447
- category: "content",
2448
- name: "Icon Input",
2449
- attributes: {
2450
- tbd: { type: "text_literal" },
2451
- },
2452
- },
2453
- icon: {
2454
- kind: "content",
2455
- category: "content",
2456
- name: "Icon",
2457
- display_order: 50,
2458
- attributes: {
2459
- icon_id: { type: "text_literal" },
2460
- color: { type: "color_literal" },
2461
- },
2462
- child_elements: {},
2463
- },
2464
- cron_input: {
2465
- kind: "content",
2466
- category: "content",
2467
- name: "Cron",
2468
- attributes: {
2469
- tbd: { type: "text_literal" },
2470
- },
2471
- },
2472
- cron: {
2473
- kind: "content",
2474
- category: "content",
2475
- name: "Cron",
2476
- attributes: {
2477
- tbd: { type: "text_literal" },
2478
- },
2479
- },
2480
- file_input: {
2481
- kind: "content",
2482
- category: "content",
2483
- name: "File Picker",
2484
- attributes: {
2485
- accept: {
2486
- type: "array_uniform_literal",
2487
- items: {
2488
- type: "text_literal",
2489
- // enum: mime_types
2490
- },
2491
- },
2492
- is_multiselect: { type: "boolean_literal", default: false },
2493
- is_drop_zone: { type: "boolean_literal", default: true },
2494
- },
2495
- },
2496
- color: {
2497
- kind: "content",
2498
- category: "content",
2499
- name: "Color",
2500
- display_order: 52,
2501
- attributes: {
2502
- val: { type: "color_literal" },
2503
- },
2504
- child_elements: {},
2505
- },
2506
- dropdown: {
2507
- kind: "content",
2508
- category: "content",
2509
- name: "Dropdown",
2510
- attributes: {
2511
- options: {
2512
- json_schema: {
2513
- type: "array",
2514
- items: {
2515
- type: "object",
2516
- properties: {
2517
- key: {
2518
- anyOf: [{ type: "string" }, { type: "number" }],
2519
- },
2520
- name: {
2521
- type: "string",
2522
- },
2523
- },
2524
- required: ["key", "name"],
2525
- additionalProperties: false,
2526
- },
2527
- },
2528
- },
2529
- },
2530
- },
2531
- color_input: {
2532
- kind: "content",
2533
- category: "content",
2534
- name: "Color Input",
2535
- attributes: {
2536
- val_from_variable_path: {
2537
- type: "variable_path_literal",
2538
- allowed_types: ["color_literal"],
2539
- },
2540
- is_show_opacity: { type: "boolean_literal", default: true },
2541
- h_options: {
2542
- type: "array_uniform_literal",
2543
- items: {
2544
- type: "int_literal",
2545
- enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
2546
- },
2547
- },
2548
- l_options: {
2549
- type: "array_uniform_literal",
2550
- items: {
2551
- type: "int_literal",
2552
- enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
2553
- },
2554
- },
2555
- c_options: {
2556
- type: "array_uniform_literal",
2557
- items: {
2558
- type: "int_literal",
2559
- enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
2560
- },
2561
- },
2562
- o_options: {
2563
- type: "array_uniform_literal",
2564
- items: {
2565
- type: "int_literal",
2566
- enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
2567
- },
2568
- },
2569
- },
2570
- },
2571
- location_input: {
2572
- kind: "content",
2573
- category: "content",
2574
- name: "Location Input",
2575
- attributes: {
2576
- val_from_variable_path: {
2577
- type: "variable_path_literal",
2578
- allowed_types: ["location_literal"],
2579
- },
2580
- is_show_opacity: { type: "boolean_literal", default: true },
2581
- },
2582
- },
2583
- location: {
2584
- kind: "content",
2585
- category: "content",
2586
- name: "Location",
2587
- attributes: {
2588
- // val_from_variable_path: {
2589
- // type: "variable_path_literal",
2590
- // allowed_types: ["location_literal"],
2591
- // },
2592
- val: { type: "location_literal" },
2593
- is_popover: { type: "boolean_literal", default: false },
2594
- is_inline: { type: "boolean_literal", default: false },
2595
- },
2596
- },
2597
- loop: {
2598
- kind: "content",
2599
- category: "content",
2600
- name: "Loop",
2601
- attributes: {
2602
- val_from_variable_path: {
2603
- type: "variable_path_literal",
2604
- allowed_types: ["array_uniform_literal", "object_uniform_literal"],
2605
- },
2606
- iter_identifier: { type: "text_literal" },
2607
- join_text: { type: "text_literal" },
2608
- },
2609
- child_elements: {
2610
- ...main_child_element_options,
2611
- },
2612
- },
2613
- // function_input: {}, maybe?
2614
- }
2615
-
2616
- export const node_types = {
2617
- ...literal_types,
2618
- ...content_types,
2619
- }
2620
-
2621
- function get_content_node_json_schema(type_id) {
2622
- //tbd
2623
- }
2624
-
2625
- function find_match(match_for, value) {
2626
- if (match_for?.type == "operator") {
2627
- if (Array.isArray(match_for?.conditions)) {
2628
- for (let condition of match_for?.conditions) {
2629
- if (is_pass_predicate(condition?.predicate, condition?.value, value)) {
2630
- if (match_for?.operator == "any_of") {
2631
- return true
2632
- }
2633
- } else if (match_for?.operator == "all_of") {
2634
- return false
2635
- }
2636
- }
2637
- if (match_for?.operator == "all_of") {
2638
- return true
2639
- }
2640
- }
2641
- }
2642
- return false
2643
- }
2644
-
2645
- // const override_base = {
2646
- // options: {
2647
- // color: null,
2648
- // is_bold: false,
2649
- // is_custom_text: false,
2650
- // display_text: null,
2651
- // },
2652
- // override: {
2653
- // type: "operator",
2654
- // operator: "all_of",
2655
- // conditions: [
2656
- // {
2657
- // type: "predicate",
2658
- // predicate: "equal_to",
2659
- // value: 4,
2660
- // },
2661
- // ],
2662
- // },
2663
- // }
2664
-
2665
- // function get_override_item_display_text(override_item) {
2666
- // console.log("override_item", override_item)
2667
- // let display_text = ""
2668
- // const predicate_text = {
2669
- // equal_to: "equals (==)",
2670
- // not_equal_to: "not equal to (!=)",
2671
- // less_than: "less than (<)",
2672
- // less_than_or_equal: "less than or equal to (<=)",
2673
- // greater_than: "greater than (>)",
2674
- // greater_than_or_equal: "greater than or equal to (>=)",
2675
- // contains: "contains",
2676
- // does_not_contain: "does not contain",
2677
- // starts_with: "starts with",
2678
- // ends_with: "ends with",
2679
- // }
2680
- // if (Array.isArray(override_item?.conditions) && override_item?.conditions.length > 0) {
2681
- // display_text = `${predicate_text?.[override_item?.conditions?.[0]?.predicate]} ${
2682
- // override_item?.conditions?.[0]?.value
2683
- // }`
2684
- // if (override_item?.conditions.length > 1) {
2685
- // display_text += `${override_item?.operator == "all_of" ? " and" : " or"} ${
2686
- // override_item?.conditions.length - 1
2687
- // } more conditions.`
2688
- // }
2689
- // } else {
2690
- // display_text = "No Conditions"
2691
- // }
2692
- // return display_text
2693
- // }
2694
-
2695
- // function is_pass_predicate(predicate, value, check_value) {
2696
- // switch (predicate) {
2697
- // case "equal_to":
2698
- // return check_value === value
2699
- // case "not_equal_to":
2700
- // return check_value !== value
2701
- // case "less_than":
2702
- // return check_value < value
2703
- // case "less_than_or_equal":
2704
- // return check_value <= value
2705
- // case "greater_than":
2706
- // return check_value > value
2707
- // case "greater_than_or_equal":
2708
- // return check_value >= value
2709
- // case "contains":
2710
- // return check_value.includes(value)
2711
- // case "does_not_contain":
2712
- // return !check_value.includes(value)
2713
- // case "starts_with":
2714
- // return check_value.startsWith(value)
2715
- // case "ends_with":
2716
- // return check_value.endsWith(value)
2717
- // default:
2718
- // return false
2719
- // }
2720
- // }
2721
-
2722
- // function is_pass_time_predicate(predicate, value, check_value) {
2723
- // const current_time = new Date()
2724
- // const check_date = new Date(check_value.epoch * 1000) // convert epoch to milliseconds
2725
- // switch (predicate) {
2726
- // case "past_x_hours":
2727
- // const past_x_hours = new Date(current_time.getTime() - value * 60 * 60 * 1000)
2728
- // return check_date >= past_x_hours
2729
- // case "past_x_days":
2730
- // const past_x_days = new Date(current_time.getTime() - value * 24 * 60 * 60 * 1000)
2731
- // return check_date >= past_x_days
2732
- // case "on_day_of_week":
2733
- // return check_date.getDay() === value
2734
- // case "today":
2735
- // return (
2736
- // check_date.getDate() === current_time.getDate() &&
2737
- // check_date.getMonth() === current_time.getMonth() &&
2738
- // check_date.getFullYear() === current_time.getFullYear()
2739
- // )
2740
- // case "yesterday":
2741
- // const yesterday = new Date(current_time.getTime() - 24 * 60 * 60 * 1000)
2742
- // return (
2743
- // check_date.getDate() === yesterday.getDate() &&
2744
- // check_date.getMonth() === yesterday.getMonth() &&
2745
- // check_date.getFullYear() === yesterday.getFullYear()
2746
- // )
2747
- // case "tomorrow":
2748
- // const tomorrow = new Date(current_time.getTime() + 24 * 60 * 60 * 1000)
2749
- // return (
2750
- // check_date.getDate() === tomorrow.getDate() &&
2751
- // check_date.getMonth() === tomorrow.getMonth() &&
2752
- // check_date.getFullYear() === tomorrow.getFullYear()
2753
- // )
2754
- // case "this_calendar_month":
2755
- // return (
2756
- // check_date.getMonth() === current_time.getMonth() && check_date.getFullYear() === current_time.getFullYear()
2757
- // )
2758
- // case "this_calendar_year":
2759
- // return check_date.getFullYear() === current_time.getFullYear()
2760
- // case "last_calendar_month":
2761
- // return (
2762
- // check_date.getMonth() === current_time.getMonth() - 1 &&
2763
- // check_date.getFullYear() === current_time.getFullYear()
2764
- // )
2765
- // case "last_calendar_year":
2766
- // return check_date.getFullYear() === current_time.getFullYear() - 1
2767
- // case "next_calendar_month":
2768
- // return (
2769
- // check_date.getMonth() === current_time.getMonth() + 1 &&
2770
- // check_date.getFullYear() === current_time.getFullYear()
2771
- // )
2772
- // case "next_calendar_year":
2773
- // return check_date.getFullYear() === current_time.getFullYear() + 1
2774
- // case "before_epoch":
2775
- // return check_date < new Date(value * 1000)
2776
- // case "after_epoch":
2777
- // return check_date > new Date(value * 1000)
2778
- // case "on_specific_date":
2779
- // const specific_date = new Date(value * 1000)
2780
- // return (
2781
- // check_date.getDate() === specific_date.getDate() &&
2782
- // check_date.getMonth() === specific_date.getMonth() &&
2783
- // check_date.getFullYear() === specific_date.getFullYear()
2784
- // )
2785
- // default:
2786
- // return false
2787
- // }
2788
- // }
2789
-
2790
- // function is_match(match_for, value) {
2791
- // if (match_for?.type == "operator") {
2792
- // if (Array.isArray(match_for?.conditions)) {
2793
- // for (let condition of match_for?.conditions) {
2794
- // if (
2795
- // data_type?.type == "time_literal"
2796
- // ? is_pass_time_predicate(condition?.predicate, condition?.value, value)
2797
- // : is_pass_predicate(condition?.predicate, condition?.value, value)
2798
- // ) {
2799
- // if (match_for?.operator == "any_of") {
2800
- // return true
2801
- // }
2802
- // } else if (match_for?.operator == "all_of") {
2803
- // return false
2804
- // }
2805
- // }
2806
- // if (match_for?.operator == "all_of") {
2807
- // return true
2808
- // }
2809
- // }
2810
- // }
2811
- // return false
2812
- // }