sveltekit-ui 1.0.44 → 1.0.45

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
 
@@ -109,6 +105,7 @@ export function create_image_editor_manager(config) {
109
105
  let ai_image_generator_is_loading = $state(null)
110
106
  let ai_generate_image_from_text_text_input_manager = $state(null)
111
107
  let ai_generate_image_images_prompt_file_input_manager = $state(null)
108
+ let ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = $state(null)
112
109
  let ai_generate_image_from_text_button_manager = $state(null)
113
110
  let ai_remove_background_is_loading = $state(false)
114
111
  let ai_restore_resolution_is_loading = $state(false)
@@ -1517,17 +1514,47 @@ export function create_image_editor_manager(config) {
1517
1514
  is_drop_zone: false,
1518
1515
  accept: ["image/png", "image/jpeg", "image/webp"],
1519
1516
  })
1517
+ ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = create_checkbox_manager({
1518
+ label: "Include Workspace Image in Images Prompt",
1519
+ val: true,
1520
+ })
1520
1521
  ai_generate_image_from_text_button_manager = create_button_manager({
1521
1522
  text: "Generate Image",
1522
1523
  is_compressed: true,
1523
1524
  mt: 1,
1524
1525
  is_loading: () => ai_image_generator_is_loading,
1525
1526
  is_disabled: () => is_disabled,
1526
- on_click: () =>
1527
- ai_image_generator({
1527
+ on_click: async () => {
1528
+ const files = Array.isArray(ai_generate_image_images_prompt_file_input_manager?.val)
1529
+ ? [...ai_generate_image_images_prompt_file_input_manager.val]
1530
+ : []
1531
+ if (selected_image_source && ai_generate_image_include_workspace_in_images_prompt_checkbox_manager?.val) {
1532
+ try {
1533
+ const target_mime = mime_type_input ?? "image/webp"
1534
+ const quality = file_quality_slider_manager?.val ?? 75
1535
+ const data_url = await get_image_data_url(selected_image_source, target_mime, quality)
1536
+ const m = data_url.match(/^data:(.*?);base64,(.*)$/)
1537
+ if (m) {
1538
+ const mime = m[1] || target_mime
1539
+ const bin = atob(m[2])
1540
+ const bytes = new Uint8Array(bin.length)
1541
+ for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)
1542
+ const ext = mime_type_extensions?.[mime] || "bin"
1543
+ const base =
1544
+ file_name_text_input_manager?.val ||
1545
+ (typeof create_unique_id === "function" ? create_unique_id("image", 6) : "workspace-image")
1546
+ const file = new File([bytes], `${base}.${ext}`, { type: mime })
1547
+ files.push(file)
1548
+ }
1549
+ } catch (e) {
1550
+ console.error("failed to include workspace image", e)
1551
+ }
1552
+ }
1553
+ await ai_image_generator({
1528
1554
  text_prompt: ai_generate_image_from_text_text_input_manager?.val,
1529
- images_prompt: ai_generate_image_images_prompt_file_input_manager?.val,
1530
- }),
1555
+ images_prompt: files,
1556
+ })
1557
+ },
1531
1558
  })
1532
1559
  ai_remove_bg_button_manager = create_button_manager({
1533
1560
  text: "Remove Background",
@@ -1861,6 +1888,9 @@ export function create_image_editor_manager(config) {
1861
1888
  get ai_generate_image_images_prompt_file_input_manager() {
1862
1889
  return ai_generate_image_images_prompt_file_input_manager
1863
1890
  },
1891
+ get ai_generate_image_include_workspace_in_images_prompt_checkbox_manager() {
1892
+ return ai_generate_image_include_workspace_in_images_prompt_checkbox_manager
1893
+ },
1864
1894
  get ai_generate_image_from_text_button_manager() {
1865
1895
  return ai_generate_image_from_text_button_manager
1866
1896
  },
@@ -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.45",
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
 
@@ -109,6 +105,7 @@ export function create_image_editor_manager(config) {
109
105
  let ai_image_generator_is_loading = $state(null)
110
106
  let ai_generate_image_from_text_text_input_manager = $state(null)
111
107
  let ai_generate_image_images_prompt_file_input_manager = $state(null)
108
+ let ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = $state(null)
112
109
  let ai_generate_image_from_text_button_manager = $state(null)
113
110
  let ai_remove_background_is_loading = $state(false)
114
111
  let ai_restore_resolution_is_loading = $state(false)
@@ -1517,17 +1514,47 @@ export function create_image_editor_manager(config) {
1517
1514
  is_drop_zone: false,
1518
1515
  accept: ["image/png", "image/jpeg", "image/webp"],
1519
1516
  })
1517
+ ai_generate_image_include_workspace_in_images_prompt_checkbox_manager = create_checkbox_manager({
1518
+ label: "Include Workspace Image in Images Prompt",
1519
+ val: true,
1520
+ })
1520
1521
  ai_generate_image_from_text_button_manager = create_button_manager({
1521
1522
  text: "Generate Image",
1522
1523
  is_compressed: true,
1523
1524
  mt: 1,
1524
1525
  is_loading: () => ai_image_generator_is_loading,
1525
1526
  is_disabled: () => is_disabled,
1526
- on_click: () =>
1527
- ai_image_generator({
1527
+ on_click: async () => {
1528
+ const files = Array.isArray(ai_generate_image_images_prompt_file_input_manager?.val)
1529
+ ? [...ai_generate_image_images_prompt_file_input_manager.val]
1530
+ : []
1531
+ if (selected_image_source && ai_generate_image_include_workspace_in_images_prompt_checkbox_manager?.val) {
1532
+ try {
1533
+ const target_mime = mime_type_input ?? "image/webp"
1534
+ const quality = file_quality_slider_manager?.val ?? 75
1535
+ const data_url = await get_image_data_url(selected_image_source, target_mime, quality)
1536
+ const m = data_url.match(/^data:(.*?);base64,(.*)$/)
1537
+ if (m) {
1538
+ const mime = m[1] || target_mime
1539
+ const bin = atob(m[2])
1540
+ const bytes = new Uint8Array(bin.length)
1541
+ for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i)
1542
+ const ext = mime_type_extensions?.[mime] || "bin"
1543
+ const base =
1544
+ file_name_text_input_manager?.val ||
1545
+ (typeof create_unique_id === "function" ? create_unique_id("image", 6) : "workspace-image")
1546
+ const file = new File([bytes], `${base}.${ext}`, { type: mime })
1547
+ files.push(file)
1548
+ }
1549
+ } catch (e) {
1550
+ console.error("failed to include workspace image", e)
1551
+ }
1552
+ }
1553
+ await ai_image_generator({
1528
1554
  text_prompt: ai_generate_image_from_text_text_input_manager?.val,
1529
- images_prompt: ai_generate_image_images_prompt_file_input_manager?.val,
1530
- }),
1555
+ images_prompt: files,
1556
+ })
1557
+ },
1531
1558
  })
1532
1559
  ai_remove_bg_button_manager = create_button_manager({
1533
1560
  text: "Remove Background",
@@ -1861,6 +1888,9 @@ export function create_image_editor_manager(config) {
1861
1888
  get ai_generate_image_images_prompt_file_input_manager() {
1862
1889
  return ai_generate_image_images_prompt_file_input_manager
1863
1890
  },
1891
+ get ai_generate_image_include_workspace_in_images_prompt_checkbox_manager() {
1892
+ return ai_generate_image_include_workspace_in_images_prompt_checkbox_manager
1893
+ },
1864
1894
  get ai_generate_image_from_text_button_manager() {
1865
1895
  return ai_generate_image_from_text_button_manager
1866
1896
  },
@@ -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);