sveltekit-ui 1.1.16 → 1.1.18

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 (44) hide show
  1. package/dist/Components/Alert/index.svelte +88 -0
  2. package/dist/Components/Alert/index.svelte.js +101 -0
  3. package/dist/Components/Audio/index.svelte +193 -0
  4. package/dist/Components/Audio/index.svelte.js +463 -0
  5. package/dist/Components/AuthCodeInput/index.svelte +85 -0
  6. package/dist/Components/AuthCodeInput/index.svelte.js +95 -0
  7. package/dist/Components/Button/index.svelte +721 -0
  8. package/dist/Components/Button/index.svelte.js +375 -0
  9. package/dist/Components/Checkbox/index.svelte +411 -0
  10. package/dist/Components/Checkbox/index.svelte.js +178 -0
  11. package/dist/Components/Code/index.svelte +23 -0
  12. package/dist/Components/Code/index.svelte.js +33 -0
  13. package/dist/Components/EmailAddress/index.svelte +22 -0
  14. package/dist/Components/EmailAddress/index.svelte.js +45 -0
  15. package/dist/Components/Eye/index.svelte +57 -0
  16. package/dist/Components/Icon/index.svelte +412 -0
  17. package/dist/Components/Icon/index.svelte.js +116 -0
  18. package/dist/Components/InfoBox/index.svelte +89 -0
  19. package/dist/Components/Json/index.svelte +60 -0
  20. package/dist/Components/Json/index.svelte.js +594 -0
  21. package/dist/Components/Link/index.svelte +47 -0
  22. package/dist/Components/Link/index.svelte.js +136 -0
  23. package/dist/Components/LoadingSuccessDiv/index.svelte +51 -0
  24. package/dist/Components/Location/index.svelte +79 -0
  25. package/dist/Components/Location/index.svelte.js +288 -0
  26. package/dist/Components/PhoneNumber/index.svelte +22 -0
  27. package/dist/Components/PhoneNumber/index.svelte.js +41 -0
  28. package/dist/Components/Qr/index.svelte +85 -0
  29. package/dist/Components/Qr/index.svelte.js +301 -0
  30. package/dist/Components/QrInput/index.svelte +47 -0
  31. package/dist/Components/QrInput/index.svelte.js +218 -0
  32. package/dist/Components/Slider/index.svelte +239 -0
  33. package/dist/Components/Slider/index.svelte.js +469 -0
  34. package/dist/Components/SuccessCheck/index.svelte +56 -0
  35. package/dist/Components/TableAdvanced/index.svelte +275 -0
  36. package/dist/Components/TableAdvanced/index.svelte.js +1565 -0
  37. package/dist/Components/TextInput/index.svelte +223 -0
  38. package/dist/Components/TextInput/index.svelte.js +447 -0
  39. package/dist/Components/Time/index.svelte +7 -0
  40. package/dist/Components/Time/index.svelte.js +38 -0
  41. package/dist/Components/VideoTBD/index.svelte +100 -0
  42. package/dist/Components/XPost/index.svelte +52 -0
  43. package/dist/Components/XPost/index.svelte.js +64 -0
  44. package/package.json +1 -1
@@ -0,0 +1,223 @@
1
+ <script>
2
+ import Button from "../Button/index.svelte"
3
+ import Popover from "../Popover/index.svelte"
4
+ import EyeIcon from "../Eye/index.svelte"
5
+ import PasswordTooltip from "./PasswordTooltip/index.svelte"
6
+
7
+ let { manager } = $props()
8
+ </script>
9
+
10
+ {#snippet text_edit_content()}
11
+ <div>
12
+ <div class="container">
13
+ {#if manager?.label || manager?.error_message}
14
+ <div style="display: inline-flex;">
15
+ {#if manager?.label}
16
+ <label for={manager?.id}>{manager?.label}:</label>
17
+ {/if}
18
+ {#if manager?.error_message}
19
+ <p class="error_text">{manager?.error_message}</p>
20
+ {/if}
21
+ </div>
22
+ {/if}
23
+ <div class="input_container">
24
+ {#if manager?.is_nullable}
25
+ <Button manager={manager?.set_null_button_manager} />
26
+ {/if}
27
+ {#key manager?.rerender_input_trigger}
28
+ {#if manager?.type == "text_area"}
29
+ <textarea
30
+ id={`input_${manager?.id}`}
31
+ class="input_box textarea_sty"
32
+ class:is_disabled={manager?.is_disabled}
33
+ class:error={manager?.error_message && manager?.val && manager?.val.length > 0}
34
+ class:no_resize={!manager?.is_resizable}
35
+ style="max-height: {manager?.max_height}rem; border-radius: {manager?.border_radius}rem; margin-left: {manager?.ml}rem; margin-right: {manager?.mr}rem; margin-top: {manager?.mt}rem; margin-bottom: {manager?.mb}rem;"
36
+ type={manager?.input_type}
37
+ name={manager?.name}
38
+ autocomplete={manager?.autocomplete}
39
+ placeholder={manager?.placeholder}
40
+ required={manager?.is_required}
41
+ readonly={manager?.is_read_only}
42
+ disabled={manager?.is_disabled}
43
+ maxlength={manager?.max_length}
44
+ min={manager?.min}
45
+ max={manager?.max}
46
+ value={manager?.val}
47
+ rows={manager?.rows}
48
+ onblur={() => manager?.handle_blur()}
49
+ oninput={(e) => manager?.set_val(e?.target?.value, true)}
50
+ ></textarea>
51
+ {#if manager?.val && manager?.is_show_limit}
52
+ <p class="limit">{manager?.val.length}/{manager?.max_length}</p>
53
+ {/if}
54
+ {:else}
55
+ <input
56
+ id={`input_${manager?.id}`}
57
+ type={manager?.input_type}
58
+ name={manager?.name}
59
+ autocomplete={manager?.autocomplete}
60
+ placeholder={manager?.placeholder}
61
+ {...["number", "tel"].includes(manager?.input_type) ? { pattern: "[0-9]*" } : {}}
62
+ required={manager?.is_required}
63
+ readonly={manager?.is_read_only}
64
+ disabled={manager?.is_disabled}
65
+ class="input_box"
66
+ class:is_disabled={manager?.is_disabled}
67
+ class:error={manager?.error_message && manager?.val && manager?.val.length > 0}
68
+ style="border-radius: {manager?.border_radius}rem; margin-left: {manager?.ml}rem; margin-right: {manager?.mr}rem; margin-top: {manager?.mt}rem; margin-bottom: {manager?.mb}rem;"
69
+ maxlength={manager?.max_length}
70
+ min={manager?.min}
71
+ max={manager?.max}
72
+ value={manager?.val_closurable}
73
+ onblur={() => manager?.handle_blur()}
74
+ oninput={(e) => manager?.set_val(e?.target?.value, true)}
75
+ />
76
+ {/if}
77
+ {/key}
78
+ {#if manager?.is_text_hidable || manager?.type == "password"}
79
+ <div class="eye_icon">
80
+ <EyeIcon
81
+ is_eye_shown={manager?.is_text_hidden}
82
+ on_change={(input) => manager?.set_is_text_hidden(!!input)}
83
+ eye_color="var(--selected-t)"
84
+ />
85
+ </div>
86
+ {/if}
87
+ </div>
88
+ {#if manager?.type == "password" && manager?.is_password_tooltip_used && !manager?.is_disabled}
89
+ <PasswordTooltip
90
+ password_min_length={manager?.password_min_length}
91
+ is_password_requires_lowercase={manager?.is_password_requires_lowercase}
92
+ is_password_requires_uppercase={manager?.is_password_requires_uppercase}
93
+ is_password_requires_number={manager?.is_password_requires_number}
94
+ is_password_requires_special_char={manager?.is_password_requires_special_char}
95
+ val={manager?.val}
96
+ />
97
+ {/if}
98
+ {#if manager?.is_preview_img && manager?.is_image_url}
99
+ <div class="img">
100
+ <img
101
+ class:is_img_disabled={manager?.is_disabled}
102
+ src={manager?.val}
103
+ height={manager?.preview_img_size}
104
+ width={manager?.preview_img_size}
105
+ alt="url rendered"
106
+ />
107
+ </div>
108
+ {/if}
109
+ </div>
110
+ </div>
111
+ {/snippet}
112
+
113
+ {#if !manager?.is_popover}
114
+ {@render text_edit_content()}
115
+ {:else}
116
+ {#if manager?.is_popover_edit_content}
117
+ <div>
118
+ {#if manager?.label || manager?.error_message}
119
+ <div style="display: inline-flex;">
120
+ {#if manager?.label}
121
+ <p class="label">{manager?.label}:</p>
122
+ {/if}
123
+ {#if manager?.error_message}
124
+ <p class="error_text">{manager?.error_message}</p>
125
+ {/if}
126
+ </div>
127
+ {/if}
128
+ <div style="display: flex; gap: .5rem">
129
+ {#if manager?.val != null}
130
+ <p>{manager?.val}</p>
131
+ {:else}
132
+ <p style="color: var(--warning-t)">Null</p>
133
+ {/if}
134
+ <Button manager={manager?.popover_edit_button_manager} />
135
+ </div>
136
+ </div>
137
+ {/if}
138
+ <Popover manager={manager.popover_manager}>
139
+ {#snippet content()}
140
+ {@render text_edit_content()}
141
+ {/snippet}
142
+ {#snippet footer()}
143
+ <Button manager={manager?.finish_button_manager} />
144
+ {/snippet}
145
+ </Popover>
146
+ {/if}
147
+
148
+ <style>
149
+ .container {
150
+ display: flex;
151
+ flex-direction: column;
152
+ flex: 1;
153
+ }
154
+ .input_container {
155
+ position: relative;
156
+ display: flex;
157
+ gap: 0.5rem;
158
+ flex-direction: column;
159
+ flex: 1;
160
+ }
161
+ .is_disabled {
162
+ color: var(--g12-t);
163
+ }
164
+ .eye_icon {
165
+ position: absolute;
166
+ top: 50%;
167
+ right: 1.3rem;
168
+ transform: translateY(-50%);
169
+ user-select: none;
170
+ min-height: 1rem;
171
+ min-width: 1rem;
172
+ z-index: 1;
173
+ }
174
+ label {
175
+ font-size: 1.2rem;
176
+ font-weight: 600;
177
+ color: var(--g12-t);
178
+ line-height: 1.6rem;
179
+ margin-right: 0.5rem;
180
+ }
181
+ .error {
182
+ box-shadow: inset 0 0 0 1px var(--error-t);
183
+ -webkit-box-shadow: inset 0 0 0 1px var(--error-t);
184
+ }
185
+ .error_text {
186
+ font-size: 1.2rem;
187
+ color: oklch(var(--l5-t) var(--c7) var(--h1));
188
+ line-height: 1.2rem;
189
+ line-height: 1.2rem;
190
+ }
191
+ input {
192
+ box-sizing: border-box !important;
193
+ }
194
+ .img {
195
+ display: flex;
196
+ align-items: left;
197
+ margin: 0.5rem;
198
+ }
199
+ .is_img_disabled {
200
+ filter: grayscale(100%) opacity(40%);
201
+ }
202
+ .textarea_sty {
203
+ padding-top: 0.8rem;
204
+ resize: vertical;
205
+ }
206
+ .no_resize {
207
+ resize: none;
208
+ }
209
+ .limit {
210
+ position: absolute;
211
+ right: 1rem;
212
+ bottom: 0.8rem;
213
+ font-size: 1.2rem;
214
+ color: var(--g8-t);
215
+ font-weight: 300;
216
+ }
217
+ input,
218
+ textarea {
219
+ min-width: 0;
220
+ width: 100%;
221
+ box-sizing: border-box;
222
+ }
223
+ </style>
@@ -0,0 +1,447 @@
1
+ import { create_unique_id, set_closurable } from "../../client/index.js"
2
+ import { create_popover_manager } from "../Popover/index.svelte.js"
3
+ import { create_button_manager } from "../Button/index.svelte.js"
4
+ import { browser } from "$app/environment"
5
+
6
+ export function create_text_input_manager(config) {
7
+ const defaults = {
8
+ text_area: {
9
+ name: "text",
10
+ placeholder: "text",
11
+ autocomplete: "off",
12
+ is_text_hidable: false,
13
+ is_text_hidden: false,
14
+ },
15
+ text: {
16
+ name: "text",
17
+ placeholder: "text",
18
+ autocomplete: "off",
19
+ is_text_hidable: false,
20
+ is_text_hidden: false,
21
+ },
22
+ email: {
23
+ name: "email",
24
+ placeholder: "email",
25
+ autocomplete: "email",
26
+ is_text_hidable: false,
27
+ is_text_hidden: false,
28
+ },
29
+ password: {
30
+ name: "password",
31
+ placeholder: "password",
32
+ autocomplete: "current-password",
33
+ is_text_hidable: true,
34
+ is_text_hidden: true,
35
+ },
36
+ number: {
37
+ name: "number",
38
+ placeholder: "number",
39
+ autocomplete: "off",
40
+ is_text_hidable: false,
41
+ is_text_hidden: false,
42
+ },
43
+ tel: {
44
+ name: "tel",
45
+ placeholder: "telephone",
46
+ autocomplete: "tel-national",
47
+ is_text_hidable: false,
48
+ is_text_hidden: false,
49
+ },
50
+ url: {
51
+ name: "url",
52
+ placeholder: "url",
53
+ autocomplete: "url",
54
+ is_text_hidable: false,
55
+ is_text_hidden: false,
56
+ },
57
+ search: {
58
+ name: "search",
59
+ placeholder: "search",
60
+ autocomplete: "off",
61
+ is_text_hidable: false,
62
+ is_text_hidden: false,
63
+ },
64
+ }
65
+
66
+ const id = create_unique_id(null, 20)
67
+ let val = $state(config?.val)
68
+ let type = $state(config?.type ?? "text")
69
+ let input_type = $state(config?.type ?? "text")
70
+ let error_message = $state(config?.error_message ?? null)
71
+ let is_text_hidden = $state(defaults?.[type]?.is_text_hidden)
72
+ let is_image_url = $state(false)
73
+ let is_valid = $state(false)
74
+ let popover_manager = $state(null)
75
+ let popover_edit_button_manager = $state(null)
76
+ let finish_button_manager = $state(null)
77
+ let rerender_input_trigger = $state(0)
78
+
79
+ let val_closurable = $derived(set_closurable(val, null))
80
+ let is_popover = $derived(set_closurable(config?.is_popover, false))
81
+ let popover_header = $derived(set_closurable(config?.popover_header, null))
82
+ let label = $derived(set_closurable(config?.label, null))
83
+ let name = $derived(set_closurable(config?.name, "checkbox"))
84
+ let is_required = $derived(set_closurable(config?.is_required, false))
85
+ let is_nullable = $derived(set_closurable(config?.is_nullable, false))
86
+ let replace_spaces_with = $derived(set_closurable(config?.replace_spaces_with, null))
87
+ let is_numbers_only = $derived(set_closurable(config?.is_numbers_only, null))
88
+ let is_text_hidable = $derived(set_closurable(config?.is_text_hidable, defaults?.[type]?.is_text_hidable))
89
+ let autocomplete = $derived(set_closurable(config?.autocomplete, defaults?.[type]?.autocomplete))
90
+ let placeholder = $derived(set_closurable(config?.placeholder, defaults?.[type]?.placeholder))
91
+ let max_length = $derived(set_closurable(config?.max_length, 100000))
92
+ let is_disabled = $derived(set_closurable(config?.is_disabled, false))
93
+ let password_min_length = $derived(set_closurable(config?.password_min_length, 7))
94
+ let is_password_requires_lowercase = $derived(set_closurable(config?.is_password_requires_lowercase, true))
95
+ let is_password_requires_uppercase = $derived(set_closurable(config?.is_password_requires_uppercase, false))
96
+ let is_password_requires_number = $derived(set_closurable(config?.is_password_requires_number, false))
97
+ let is_password_requires_special_char = $derived(set_closurable(config?.is_password_requires_special_char, false))
98
+ let is_password_tooltip_used = $derived(set_closurable(config?.is_password_tooltip_used, true))
99
+ let is_preview_img = $derived(set_closurable(config?.is_preview_img, false))
100
+ let preview_img_size = $derived(set_closurable(config?.preview_img_size, 32))
101
+ let min = $derived(set_closurable(config?.min, -9007199254740990))
102
+ let max = $derived(set_closurable(config?.max, 9007199254740990))
103
+ let border_radius = $derived(set_closurable(config?.border_radius, 1))
104
+ let ml = $derived(set_closurable(config?.ml, 0))
105
+ let mr = $derived(set_closurable(config?.mr, 0))
106
+ let mt = $derived(set_closurable(config?.mt, 0))
107
+ let mb = $derived(set_closurable(config?.mb, 0))
108
+ let is_resizable = $derived(set_closurable(config?.is_resizable, false))
109
+ let is_show_limit = $derived(set_closurable(config?.is_show_limit, false))
110
+ let rows = $derived(set_closurable(config?.rows, 5))
111
+ let max_height = $derived(set_closurable(config?.max_height, 30))
112
+ let update_button_text = $derived(set_closurable(config?.update_button_text, null))
113
+ let is_popover_edit_content = $derived(set_closurable(config?.is_popover_edit_content, false))
114
+
115
+ let set_null_button_manager = $state(null)
116
+
117
+ function handle_blur(e) {
118
+ if (e?.type == "input") {
119
+ if (config?.on_blur) {
120
+ config?.on_blur(val)
121
+ }
122
+ }
123
+ }
124
+
125
+ function set_val(val_input, is_iternal = false) {
126
+ error_message = null
127
+ is_valid = false
128
+ if (val_input) {
129
+ if (replace_spaces_with !== null) {
130
+ val_input = val_input.replace(/\s+/g, replace_spaces_with)
131
+ }
132
+ if (val_input && is_numbers_only) {
133
+ val_input = val_input.replace(/\D+/g, "")
134
+ }
135
+ if (val_input && type == "tel") {
136
+ val_input = val_input.replace(/\D+/g, "")
137
+ }
138
+ if (type == "url") {
139
+ const is_valid_url = is_valid_web_url(val_input)
140
+ is_valid = is_valid_url
141
+ if (!is_valid_url) {
142
+ error_message = "Not Valid URL"
143
+ } else if (is_preview_img && is_valid_web_url(val_input)) {
144
+ is_image_url = type == "url" && check_image_url(val_input)
145
+ }
146
+ } else if (type == "password") {
147
+ const is_password_standard_met = is_password_valid(val_input)
148
+ is_valid = is_password_standard_met
149
+ if (!is_password_standard_met) {
150
+ error_message = "Password standard not met"
151
+ }
152
+ } else if (type == "email") {
153
+ const email_regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
154
+ const is_valid_email = val_input ? email_regex.test(val_input.toLowerCase()) : false
155
+ is_valid = is_valid_email
156
+ if (!is_valid_email) {
157
+ error_message = "Email standard not met"
158
+ } else {
159
+ is_valid = true
160
+ }
161
+ }
162
+ }
163
+ if (type == "number") {
164
+ val_input = val_input == null ? null : Number(val_input)
165
+ }
166
+ val = val_input
167
+ if (!is_iternal) {
168
+ rerender_input_trigger++
169
+ }
170
+ if (typeof config?.on_change == "function") {
171
+ config?.on_change(val_input)
172
+ }
173
+ }
174
+
175
+ async function check_image_url(val) {
176
+ if (is_preview_img && is_valid_web_url(val)) {
177
+ const res = await fetch(url)
178
+ const buff = await res.blob()
179
+ const is_valid = buff.type.startsWith("image/")
180
+ return is_valid
181
+ } else {
182
+ return false
183
+ }
184
+ }
185
+
186
+ function is_password_valid(val) {
187
+ const contains_lowercase_letter = val ? val.toUpperCase() != val : false
188
+ const contains_uppercase_letter = val ? val.toLowerCase() != val : false
189
+ const contains_number = val ? /[0-9]/.test(val) : false
190
+ const contains_special_char = val ? /[!-\/:-@[-`{-~]/.test(val) : false
191
+ const is_password_long_enough = val ? val.length > password_min_length : false
192
+ const is_password_standard_met =
193
+ (!is_password_requires_lowercase || (is_password_requires_lowercase && contains_lowercase_letter)) &&
194
+ (!is_password_requires_uppercase || (is_password_requires_uppercase && contains_uppercase_letter)) &&
195
+ (!is_password_requires_special_char || (is_password_requires_special_char && contains_special_char)) &&
196
+ (!is_password_requires_number || (is_password_requires_number && contains_number)) &&
197
+ is_password_long_enough
198
+ return is_password_standard_met
199
+ }
200
+
201
+ function is_valid_web_url(url) {
202
+ let reg_ex =
203
+ /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$/gm
204
+ return reg_ex.test(url)
205
+ }
206
+
207
+ function set_focus() {
208
+ if (!is_disabled) {
209
+ if (browser) {
210
+ let input_el = document?.querySelector(`#input_${id}`)
211
+ input_el.focus()
212
+ }
213
+ }
214
+ }
215
+
216
+ function set_is_text_hidden(input) {
217
+ if (typeof window === "undefined") {
218
+ return
219
+ }
220
+ is_text_hidden = !!input
221
+ let input_el = document?.querySelector(`#input_${id}`)
222
+ if (input_el) {
223
+ if (!!input) {
224
+ input_el.type = "password"
225
+ } else {
226
+ input_el.type = type
227
+ }
228
+ }
229
+ }
230
+
231
+ function set_type(input) {
232
+ type = input
233
+ if (typeof window === "undefined") {
234
+ return
235
+ }
236
+ is_text_hidden = !!input
237
+ let input_el = document?.querySelector(`#input_${id}`)
238
+ if (input_el) {
239
+ if (!!input) {
240
+ input_el.type = "text"
241
+ } else {
242
+ input_el.type = input
243
+ }
244
+ }
245
+ }
246
+
247
+ async function finish() {
248
+ if (typeof config?.on_finish == "function") {
249
+ const res = await config?.on_finish(val)
250
+ if (res?.is_success == true) {
251
+ popover_manager.show_temp_message(res?.message ?? "Success", "success")
252
+ } else if (res?.is_success == false) {
253
+ popover_manager.show_temp_message(res?.message ?? "Error", "error", 1800, false)
254
+ } else {
255
+ popover_manager.close()
256
+ }
257
+ } else {
258
+ popover_manager.close()
259
+ }
260
+ }
261
+
262
+ function init(config) {
263
+ val = config?.val ?? null
264
+ type = config?.type ?? "text"
265
+ input_type = config?.is_text_hidden ? "password" : config?.type ?? "text"
266
+ error_message = config?.error_message ?? null
267
+ is_text_hidden = config?.is_text_hidden ?? defaults?.[type]?.is_text_hidden
268
+ popover_manager = create_popover_manager({
269
+ type: "center",
270
+ header: popover_header ?? "Text Editor",
271
+ min_width: 350,
272
+ target_width: 550,
273
+ min_height: 300,
274
+ target_height: 500,
275
+ // anchor_id: () => `button_${main_toggle_button_anchor_id}`, tbd
276
+ })
277
+ popover_edit_button_manager = create_button_manager({
278
+ type: "soft",
279
+ is_uniform: true,
280
+ support_icon: "edit",
281
+ icon_size: 1.6,
282
+ icon_sw: 40,
283
+ min_height: 2,
284
+ border_radius: 0.5,
285
+ is_disabled: is_disabled,
286
+ popover_target: () => `popover_${popover_manager?.id}`,
287
+ })
288
+ set_null_button_manager = create_button_manager({
289
+ type: "outlined",
290
+ text: "Set Null",
291
+ is_compressed: true,
292
+ is_disabled: () => val == null,
293
+ on_click: () => (val = null),
294
+ })
295
+ finish_button_manager = create_button_manager({
296
+ text: update_button_text ?? "Finish",
297
+ on_click: () => finish(),
298
+ })
299
+ }
300
+
301
+ init(config)
302
+
303
+ return {
304
+ id,
305
+ get val() {
306
+ return val
307
+ },
308
+ get val_closurable() {
309
+ return val_closurable
310
+ },
311
+ get type() {
312
+ return type
313
+ },
314
+ get input_type() {
315
+ return input_type
316
+ },
317
+ get name() {
318
+ return name
319
+ },
320
+ get label() {
321
+ return label
322
+ },
323
+ get autocomplete() {
324
+ return autocomplete
325
+ },
326
+ get placeholder() {
327
+ return placeholder
328
+ },
329
+ get is_required() {
330
+ return is_required
331
+ },
332
+ get error_message() {
333
+ return error_message
334
+ },
335
+ get replace_spaces_with() {
336
+ return replace_spaces_with
337
+ },
338
+ get is_numbers_only() {
339
+ return is_numbers_only
340
+ },
341
+ get is_text_hidable() {
342
+ return is_text_hidable
343
+ },
344
+ get is_text_hidden() {
345
+ return is_text_hidden
346
+ },
347
+ get max_length() {
348
+ return max_length
349
+ },
350
+ get is_disabled() {
351
+ return is_disabled
352
+ },
353
+ get password_min_length() {
354
+ return password_min_length
355
+ },
356
+ get is_password_requires_lowercase() {
357
+ return is_password_requires_lowercase
358
+ },
359
+ get is_password_requires_uppercase() {
360
+ return is_password_requires_uppercase
361
+ },
362
+ get is_password_requires_number() {
363
+ return is_password_requires_number
364
+ },
365
+ get is_password_requires_special_char() {
366
+ return is_password_requires_special_char
367
+ },
368
+ get is_password_tooltip_used() {
369
+ return is_password_tooltip_used
370
+ },
371
+ get is_preview_img() {
372
+ return is_preview_img
373
+ },
374
+ get preview_img_size() {
375
+ return preview_img_size
376
+ },
377
+ get min() {
378
+ return min
379
+ },
380
+ get max() {
381
+ return max
382
+ },
383
+ get border_radius() {
384
+ return border_radius
385
+ },
386
+ get ml() {
387
+ return ml
388
+ },
389
+ get mr() {
390
+ return mr
391
+ },
392
+ get mt() {
393
+ return mt
394
+ },
395
+ get mb() {
396
+ return mb
397
+ },
398
+ get is_resizable() {
399
+ return is_resizable
400
+ },
401
+ get is_show_limit() {
402
+ return is_show_limit
403
+ },
404
+ get rows() {
405
+ return rows
406
+ },
407
+ get max_height() {
408
+ return max_height
409
+ },
410
+ get is_valid() {
411
+ return is_valid
412
+ },
413
+ get is_image_url() {
414
+ return is_image_url
415
+ },
416
+ get popover_manager() {
417
+ return popover_manager
418
+ },
419
+ get popover_edit_button_manager() {
420
+ return popover_edit_button_manager
421
+ },
422
+ get finish_button_manager() {
423
+ return finish_button_manager
424
+ },
425
+ get is_popover() {
426
+ return is_popover
427
+ },
428
+ get set_null_button_manager() {
429
+ return set_null_button_manager
430
+ },
431
+ get is_nullable() {
432
+ return is_nullable
433
+ },
434
+ get rerender_input_trigger() {
435
+ return rerender_input_trigger
436
+ },
437
+ get is_popover_edit_content() {
438
+ return is_popover_edit_content
439
+ },
440
+ init,
441
+ handle_blur,
442
+ set_val,
443
+ set_focus,
444
+ set_type,
445
+ set_is_text_hidden,
446
+ }
447
+ }
@@ -0,0 +1,7 @@
1
+ <script>
2
+ let { manager } = $props()
3
+ </script>
4
+
5
+ <time datetime={manager?.datetime} style={manager?.text_color ? `color: ${manager?.text_color};` : ""}
6
+ >{manager?.content}</time
7
+ >