sveltekit-ui 1.0.44 → 1.0.46

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.
@@ -13,7 +13,12 @@
13
13
  {#if manager?.ai_tab_dropdown_manager?.val == "image_generator"}
14
14
  <div style="padding-top: .5rem;">
15
15
  <TextInput manager={manager?.ai_generate_image_from_text_text_input_manager} />
16
- <FileInput manager={manager?.ai_generate_image_images_prompt_file_input_manager} />
16
+ <div style="display: flex; gap: 1rem;">
17
+ <FileInput manager={manager?.ai_generate_image_images_prompt_file_input_manager} />
18
+ {#if manager?.selected_image_source}
19
+ <Checkbox manager={manager?.ai_generate_image_include_workspace_in_images_prompt_checkbox_manager} />
20
+ {/if}
21
+ </div>
17
22
  <Button manager={manager?.ai_generate_image_from_text_button_manager} />
18
23
  </div>
19
24
  {:else if manager?.ai_tab_dropdown_manager?.val == "remove_background"}
@@ -35,7 +35,9 @@
35
35
  <Button manager={manager?.undo_button_manager} />
36
36
  <Button manager={manager?.redo_button_manager} />
37
37
  <Button manager={manager?.clear_button_manager} />
38
- <Button manager={manager?.finish_button_manager} />
38
+ {#if manager?.is_popover}
39
+ <Button manager={manager?.finish_button_manager} />
40
+ {/if}
39
41
  </HorizScrollBox>
40
42
  </div>
41
43
  </div>
@@ -11,6 +11,7 @@ import { create_text_input_manager } from "../TextInput/index.svelte.js"
11
11
  import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
12
12
  import { create_slider_manager } from "../Slider/index.svelte.js"
13
13
  import { create_file_input_manager } from "../FileInput/index.svelte.js"
14
+ import { create_checkbox_manager } from "../Checkbox/index.svelte.js"
14
15
  import "context-filter-polyfill" // ctx.filter doesnt work on safari and this should fix
15
16
 
16
17
  export function create_image_editor_manager(config) {
@@ -49,12 +50,7 @@ export function create_image_editor_manager(config) {
49
50
  let start_y = $state(null)
50
51
  let last_known_x = $state(null)
51
52
  let last_known_y = $state(null)
52
- let is_loading = $state(false)
53
53
  let is_disabled = $state(false)
54
- let error_message = $state(null)
55
- let success_message = $state(null)
56
- let is_show_finish_button = $state(true)
57
- let is_show_img_slider = $state(true)
58
54
  let ai_error_message = $state(null)
59
55
  let file_size_kb = $state(null)
60
56
 
@@ -69,6 +65,7 @@ export function create_image_editor_manager(config) {
69
65
  let redo_button_manager = $state(null)
70
66
  let clear_button_manager = $state(null)
71
67
  let finish_button_manager = $state(null)
68
+ let is_show_img_slider = $state(false) // idk if using this really
72
69
 
73
70
  let filter_brightness_slider_manager = $state(null)
74
71
  let filter_contrast_slider_manager = $state(null)
@@ -109,6 +106,7 @@ export function create_image_editor_manager(config) {
109
106
  let ai_image_generator_is_loading = $state(null)
110
107
  let ai_generate_image_from_text_text_input_manager = $state(null)
111
108
  let ai_generate_image_images_prompt_file_input_manager = $state(null)
109
+ let ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = $state(null)
112
110
  let ai_generate_image_from_text_button_manager = $state(null)
113
111
  let ai_remove_background_is_loading = $state(false)
114
112
  let ai_restore_resolution_is_loading = $state(false)
@@ -1517,17 +1515,47 @@ export function create_image_editor_manager(config) {
1517
1515
  is_drop_zone: false,
1518
1516
  accept: ["image/png", "image/jpeg", "image/webp"],
1519
1517
  })
1518
+ ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = create_checkbox_manager({
1519
+ label: "Include Workspace Image in Images Prompt",
1520
+ val: true,
1521
+ })
1520
1522
  ai_generate_image_from_text_button_manager = create_button_manager({
1521
1523
  text: "Generate Image",
1522
1524
  is_compressed: true,
1523
1525
  mt: 1,
1524
1526
  is_loading: () => ai_image_generator_is_loading,
1525
1527
  is_disabled: () => is_disabled,
1526
- on_click: () =>
1527
- ai_image_generator({
1528
+ on_click: async () => {
1529
+ const files = Array.isArray(ai_generate_image_images_prompt_file_input_manager?.val)
1530
+ ? [...ai_generate_image_images_prompt_file_input_manager.val]
1531
+ : []
1532
+ if (selected_image_source && ai_generate_image_include_workspace_in_images_prompt_checkbox_manager?.val) {
1533
+ try {
1534
+ const target_mime = mime_type_input ?? "image/webp"
1535
+ const quality = file_quality_slider_manager?.val ?? 75
1536
+ const data_url = await get_image_data_url(selected_image_source, target_mime, quality)
1537
+ const m = data_url.match(/^data:(.*?);base64,(.*)$/)
1538
+ if (m) {
1539
+ const mime = m[1] || target_mime
1540
+ const bin = atob(m[2])
1541
+ const bytes = new Uint8Array(bin.length)
1542
+ for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)
1543
+ const ext = mime_type_extensions?.[mime] || "bin"
1544
+ const base =
1545
+ file_name_text_input_manager?.val ||
1546
+ (typeof create_unique_id === "function" ? create_unique_id("image", 6) : "workspace-image")
1547
+ const file = new File([bytes], `${base}.${ext}`, { type: mime })
1548
+ files.push(file)
1549
+ }
1550
+ } catch (e) {
1551
+ console.error("failed to include workspace image", e)
1552
+ }
1553
+ }
1554
+ await ai_image_generator({
1528
1555
  text_prompt: ai_generate_image_from_text_text_input_manager?.val,
1529
- images_prompt: ai_generate_image_images_prompt_file_input_manager?.val,
1530
- }),
1556
+ images_prompt: files,
1557
+ })
1558
+ },
1531
1559
  })
1532
1560
  ai_remove_bg_button_manager = create_button_manager({
1533
1561
  text: "Remove Background",
@@ -1750,6 +1778,9 @@ export function create_image_editor_manager(config) {
1750
1778
  get finish_button_manager() {
1751
1779
  return finish_button_manager
1752
1780
  },
1781
+ get is_show_img_slider() {
1782
+ return is_show_img_slider
1783
+ },
1753
1784
  get filter_brightness_slider_manager() {
1754
1785
  return filter_brightness_slider_manager
1755
1786
  },
@@ -1861,6 +1892,9 @@ export function create_image_editor_manager(config) {
1861
1892
  get ai_generate_image_images_prompt_file_input_manager() {
1862
1893
  return ai_generate_image_images_prompt_file_input_manager
1863
1894
  },
1895
+ get ai_generate_image_include_workspace_in_images_prompt_checkbox_manager() {
1896
+ return ai_generate_image_include_workspace_in_images_prompt_checkbox_manager
1897
+ },
1864
1898
  get ai_generate_image_from_text_button_manager() {
1865
1899
  return ai_generate_image_from_text_button_manager
1866
1900
  },
@@ -4537,7 +4537,12 @@ export const definitions = {
4537
4537
  },
4538
4538
  ai_generate_image_images_prompt_file_input_manager: {
4539
4539
  type: "object",
4540
- description: "text input manager containing the user’s image prompt for AI image generation",
4540
+ description: "file input manager containing the user’s image prompt for AI image generation",
4541
+ },
4542
+ ai_generate_image_include_workspace_in_images_prompt_checkbox_manager: {
4543
+ type: "object",
4544
+ description:
4545
+ "checkbox input manager containing if include workspace image in image prompt for AI image generation",
4541
4546
  },
4542
4547
  ai_generate_image_from_text_button_manager: {
4543
4548
  type: "object",
package/dist/style.css CHANGED
@@ -430,7 +430,7 @@ code,
430
430
  font-weight: 600;
431
431
  font-size: 1.2rem;
432
432
  line-height: 1.2;
433
- color: var(--g12-t);
433
+ color: var(--g10-t);
434
434
  }
435
435
  ::placeholder {
436
436
  color: var(--g14-t);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sveltekit-ui",
3
- "version": "1.0.44",
3
+ "version": "1.0.46",
4
4
  "description": "A SvelteKit UI component library for building modern web applications",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -28,7 +28,7 @@
28
28
  "@sveltejs/adapter-vercel": "^5.10.2",
29
29
  "@sveltejs/kit": "^2.37.0",
30
30
  "@sveltejs/package": "^2.5.0",
31
- "@sveltejs/vite-plugin-svelte": "^6.1.3",
31
+ "@sveltejs/vite-plugin-svelte": "^6.1.4",
32
32
  "@vercel/analytics": "^1.5.0",
33
33
  "typescript": "^5.9.2",
34
34
  "vite": "^7.1.4"
@@ -13,7 +13,12 @@
13
13
  {#if manager?.ai_tab_dropdown_manager?.val == "image_generator"}
14
14
  <div style="padding-top: .5rem;">
15
15
  <TextInput manager={manager?.ai_generate_image_from_text_text_input_manager} />
16
- <FileInput manager={manager?.ai_generate_image_images_prompt_file_input_manager} />
16
+ <div style="display: flex; gap: 1rem;">
17
+ <FileInput manager={manager?.ai_generate_image_images_prompt_file_input_manager} />
18
+ {#if manager?.selected_image_source}
19
+ <Checkbox manager={manager?.ai_generate_image_include_workspace_in_images_prompt_checkbox_manager} />
20
+ {/if}
21
+ </div>
17
22
  <Button manager={manager?.ai_generate_image_from_text_button_manager} />
18
23
  </div>
19
24
  {:else if manager?.ai_tab_dropdown_manager?.val == "remove_background"}
@@ -35,7 +35,9 @@
35
35
  <Button manager={manager?.undo_button_manager} />
36
36
  <Button manager={manager?.redo_button_manager} />
37
37
  <Button manager={manager?.clear_button_manager} />
38
- <Button manager={manager?.finish_button_manager} />
38
+ {#if manager?.is_popover}
39
+ <Button manager={manager?.finish_button_manager} />
40
+ {/if}
39
41
  </HorizScrollBox>
40
42
  </div>
41
43
  </div>
@@ -11,6 +11,7 @@ import { create_text_input_manager } from "$lib/Components/TextInput/index.svelt
11
11
  import { create_dropdown_manager } from "$lib/Components/Dropdown/index.svelte.js"
12
12
  import { create_slider_manager } from "$lib/Components/Slider/index.svelte.js"
13
13
  import { create_file_input_manager } from "$lib/Components/FileInput/index.svelte.js"
14
+ import { create_checkbox_manager } from "$lib/Components/Checkbox/index.svelte.js"
14
15
  import "context-filter-polyfill" // ctx.filter doesnt work on safari and this should fix
15
16
 
16
17
  export function create_image_editor_manager(config) {
@@ -49,12 +50,7 @@ export function create_image_editor_manager(config) {
49
50
  let start_y = $state(null)
50
51
  let last_known_x = $state(null)
51
52
  let last_known_y = $state(null)
52
- let is_loading = $state(false)
53
53
  let is_disabled = $state(false)
54
- let error_message = $state(null)
55
- let success_message = $state(null)
56
- let is_show_finish_button = $state(true)
57
- let is_show_img_slider = $state(true)
58
54
  let ai_error_message = $state(null)
59
55
  let file_size_kb = $state(null)
60
56
 
@@ -69,6 +65,7 @@ export function create_image_editor_manager(config) {
69
65
  let redo_button_manager = $state(null)
70
66
  let clear_button_manager = $state(null)
71
67
  let finish_button_manager = $state(null)
68
+ let is_show_img_slider = $state(false) // idk if using this really
72
69
 
73
70
  let filter_brightness_slider_manager = $state(null)
74
71
  let filter_contrast_slider_manager = $state(null)
@@ -109,6 +106,7 @@ export function create_image_editor_manager(config) {
109
106
  let ai_image_generator_is_loading = $state(null)
110
107
  let ai_generate_image_from_text_text_input_manager = $state(null)
111
108
  let ai_generate_image_images_prompt_file_input_manager = $state(null)
109
+ let ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = $state(null)
112
110
  let ai_generate_image_from_text_button_manager = $state(null)
113
111
  let ai_remove_background_is_loading = $state(false)
114
112
  let ai_restore_resolution_is_loading = $state(false)
@@ -1517,17 +1515,47 @@ export function create_image_editor_manager(config) {
1517
1515
  is_drop_zone: false,
1518
1516
  accept: ["image/png", "image/jpeg", "image/webp"],
1519
1517
  })
1518
+ ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = create_checkbox_manager({
1519
+ label: "Include Workspace Image in Images Prompt",
1520
+ val: true,
1521
+ })
1520
1522
  ai_generate_image_from_text_button_manager = create_button_manager({
1521
1523
  text: "Generate Image",
1522
1524
  is_compressed: true,
1523
1525
  mt: 1,
1524
1526
  is_loading: () => ai_image_generator_is_loading,
1525
1527
  is_disabled: () => is_disabled,
1526
- on_click: () =>
1527
- ai_image_generator({
1528
+ on_click: async () => {
1529
+ const files = Array.isArray(ai_generate_image_images_prompt_file_input_manager?.val)
1530
+ ? [...ai_generate_image_images_prompt_file_input_manager.val]
1531
+ : []
1532
+ if (selected_image_source && ai_generate_image_include_workspace_in_images_prompt_checkbox_manager?.val) {
1533
+ try {
1534
+ const target_mime = mime_type_input ?? "image/webp"
1535
+ const quality = file_quality_slider_manager?.val ?? 75
1536
+ const data_url = await get_image_data_url(selected_image_source, target_mime, quality)
1537
+ const m = data_url.match(/^data:(.*?);base64,(.*)$/)
1538
+ if (m) {
1539
+ const mime = m[1] || target_mime
1540
+ const bin = atob(m[2])
1541
+ const bytes = new Uint8Array(bin.length)
1542
+ for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)
1543
+ const ext = mime_type_extensions?.[mime] || "bin"
1544
+ const base =
1545
+ file_name_text_input_manager?.val ||
1546
+ (typeof create_unique_id === "function" ? create_unique_id("image", 6) : "workspace-image")
1547
+ const file = new File([bytes], `${base}.${ext}`, { type: mime })
1548
+ files.push(file)
1549
+ }
1550
+ } catch (e) {
1551
+ console.error("failed to include workspace image", e)
1552
+ }
1553
+ }
1554
+ await ai_image_generator({
1528
1555
  text_prompt: ai_generate_image_from_text_text_input_manager?.val,
1529
- images_prompt: ai_generate_image_images_prompt_file_input_manager?.val,
1530
- }),
1556
+ images_prompt: files,
1557
+ })
1558
+ },
1531
1559
  })
1532
1560
  ai_remove_bg_button_manager = create_button_manager({
1533
1561
  text: "Remove Background",
@@ -1750,6 +1778,9 @@ export function create_image_editor_manager(config) {
1750
1778
  get finish_button_manager() {
1751
1779
  return finish_button_manager
1752
1780
  },
1781
+ get is_show_img_slider() {
1782
+ return is_show_img_slider
1783
+ },
1753
1784
  get filter_brightness_slider_manager() {
1754
1785
  return filter_brightness_slider_manager
1755
1786
  },
@@ -1861,6 +1892,9 @@ export function create_image_editor_manager(config) {
1861
1892
  get ai_generate_image_images_prompt_file_input_manager() {
1862
1893
  return ai_generate_image_images_prompt_file_input_manager
1863
1894
  },
1895
+ get ai_generate_image_include_workspace_in_images_prompt_checkbox_manager() {
1896
+ return ai_generate_image_include_workspace_in_images_prompt_checkbox_manager
1897
+ },
1864
1898
  get ai_generate_image_from_text_button_manager() {
1865
1899
  return ai_generate_image_from_text_button_manager
1866
1900
  },
@@ -4537,7 +4537,12 @@ export const definitions = {
4537
4537
  },
4538
4538
  ai_generate_image_images_prompt_file_input_manager: {
4539
4539
  type: "object",
4540
- description: "text input manager containing the user’s image prompt for AI image generation",
4540
+ description: "file input manager containing the user’s image prompt for AI image generation",
4541
+ },
4542
+ ai_generate_image_include_workspace_in_images_prompt_checkbox_manager: {
4543
+ type: "object",
4544
+ description:
4545
+ "checkbox input manager containing if include workspace image in image prompt for AI image generation",
4541
4546
  },
4542
4547
  ai_generate_image_from_text_button_manager: {
4543
4548
  type: "object",
package/src/lib/style.css CHANGED
@@ -430,7 +430,7 @@ code,
430
430
  font-weight: 600;
431
431
  font-size: 1.2rem;
432
432
  line-height: 1.2;
433
- color: var(--g12-t);
433
+ color: var(--g10-t);
434
434
  }
435
435
  ::placeholder {
436
436
  color: var(--g14-t);