poe-svelte-ui-lib 1.6.3 → 1.6.4

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.
@@ -0,0 +1,68 @@
1
+ <script lang="ts">
2
+ import { twMerge } from "tailwind-merge"
3
+ import ArrowIcon from "../libIcons/ArrowIcon.svelte"
4
+ import { slide } from "svelte/transition"
5
+ import type { ICarouselProps } from "../types"
6
+
7
+ let { id = crypto.randomUUID(), wrapperClass = "", label = { name: "", class: "text-left" }, scrollValue = 200, children }: ICarouselProps = $props()
8
+
9
+ let carouselRef: HTMLDivElement | null = $state(null)
10
+ let isAtStart = $state(true)
11
+ let isAtEnd = $state(true)
12
+
13
+ function scrollCarousel(delta: number) {
14
+ if (carouselRef) carouselRef.scrollBy({ left: delta, behavior: "smooth" })
15
+ }
16
+
17
+ function updateScrollState() {
18
+ if (!carouselRef) return
19
+ isAtStart = carouselRef.scrollLeft === 0
20
+ isAtEnd = carouselRef.scrollLeft + carouselRef.clientWidth >= carouselRef.scrollWidth - 1
21
+ }
22
+
23
+ $effect(() => {
24
+ if (!carouselRef) return
25
+ updateScrollState()
26
+
27
+ const onScroll = () => updateScrollState()
28
+ carouselRef.addEventListener("scroll", onScroll)
29
+
30
+ const resizeObserver = new ResizeObserver(() => updateScrollState())
31
+ resizeObserver.observe(carouselRef)
32
+
33
+ return () => {
34
+ carouselRef?.removeEventListener("scroll", onScroll)
35
+ resizeObserver.disconnect()
36
+ }
37
+ })
38
+ </script>
39
+
40
+ <div class={twMerge(`flex flex-col items-center`, wrapperClass)}>
41
+ {#if label.name}
42
+ <h5 class={`${label.class}`}>{label.name}</h5>
43
+ {/if}
44
+ <!-- Карусель -->
45
+ <div class="relative w-full overflow-hidden rounded-2xl bg-(--back-color)/50">
46
+ <!-- Кнопки навигации -->
47
+ {#if !isAtStart}
48
+ <button
49
+ transition:slide={{ axis: "x" }}
50
+ class="absolute z-10 size-10 translate-y-1/2 cursor-pointer left-1 p-2 rounded-full bg-(--field-color) [&_svg]:h-full [&_svg]:max-h-full [&_svg]:w-full shadow-[0_0_6px_var(--shadow-color)] rotate-180"
51
+ onclick={() => scrollCarousel(-scrollValue)}>
52
+ <ArrowIcon />
53
+ </button>
54
+ {/if}
55
+ {#if !isAtEnd}
56
+ <button
57
+ transition:slide={{ axis: "x" }}
58
+ class="absolute z-10 size-10 translate-y-1/2 cursor-pointer right-1 p-2 rounded-full bg-(--field-color) [&_svg]:h-full [&_svg]:max-h-full [&_svg]:w-full shadow-[0_0_6px_var(--shadow-color)]"
59
+ onclick={() => scrollCarousel(scrollValue)}>
60
+ <ArrowIcon />
61
+ </button>
62
+ {/if}
63
+
64
+ <div {id} bind:this={carouselRef} class="flex overflow-y-hidden gap-2 p-2 h-24">
65
+ {@render children?.()}
66
+ </div>
67
+ </div>
68
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { ICarouselProps } from "../types";
2
+ declare const Carousel: import("svelte").Component<ICarouselProps, {}, "">;
3
+ type Carousel = ReturnType<typeof Carousel>;
4
+ export default Carousel;
package/dist/index.d.ts CHANGED
@@ -1,34 +1,35 @@
1
- export { default as Accordion } from './Accordion/Accordion.svelte';
2
- export { default as AccordionProps } from './Accordion/AccordionProps.svelte';
3
- export { default as Button } from './Button/Button.svelte';
4
- export { default as ButtonProps } from './Button/ButtonProps.svelte';
5
- export { default as ColorPicker } from './ColorPicker/ColorPicker.svelte';
6
- export { default as ColorPickerProps } from './ColorPicker/ColorPickerProps.svelte';
7
- export { default as FileAttach } from './FileAttach/FileAttach.svelte';
8
- export { default as FileAttachProps } from './FileAttach/FileAttachProps.svelte';
9
- export { default as Graph } from './Graph/Graph.svelte';
10
- export { default as GraphProps } from './Graph/GraphProps.svelte';
11
- export { default as Input } from './Input/Input.svelte';
12
- export { default as InputProps } from './Input/InputProps.svelte';
13
- export { default as Joystick } from './Joystick/Joystick.svelte';
14
- export { default as JoystickProps } from './Joystick/JoystickProps.svelte';
15
- export { default as Modal } from './Modal.svelte';
16
- export { default as Map } from './Map/Map.svelte';
17
- export { default as MapProps } from './Map/MapProps.svelte';
18
- export { default as ProgressBar } from './ProgressBar/ProgressBar.svelte';
19
- export { default as ProgressBarProps } from './ProgressBar/ProgressBarProps.svelte';
20
- export { default as Select } from './Select/Select.svelte';
21
- export { default as SelectProps } from './Select/SelectProps.svelte';
22
- export { default as Slider } from './Slider/Slider.svelte';
23
- export { default as SliderProps } from './Slider/SliderProps.svelte';
24
- export { default as Switch } from './Switch/Switch.svelte';
25
- export { default as SwitchProps } from './Switch/SwitchProps.svelte';
26
- export { default as Table } from './Table/Table.svelte';
27
- export { default as TableProps } from './Table/TableProps.svelte';
28
- export { default as Tabs } from './Tabs/Tabs.svelte';
29
- export { default as TabsProps } from './Tabs/TabsProps.svelte';
30
- export { default as TextField } from './TextField/TextField.svelte';
31
- export { default as TextFieldProps } from './TextField/TextFieldProps.svelte';
32
- export * from './locales/i18n';
33
- export * from './locales/translations';
34
- export { type UIComponent, type Position, type IUIComponentHandler, type IButtonProps, type IAccordionProps, type IInputProps, type ISelectProps, type ISelectOption, type ISwitchProps, type IColorPickerProps, type ISliderProps, type ITextFieldProps, type IMapProps, type IProgressBarProps, type IGraphProps, type IGraphDataObject, type ITableHeader, type ITableProps, type ITabsProps, type IJoystickProps, type IFileAttachProps, type IDeviceGNSS, } from './types';
1
+ export { default as Accordion } from "./Accordion/Accordion.svelte";
2
+ export { default as AccordionProps } from "./Accordion/AccordionProps.svelte";
3
+ export { default as Button } from "./Button/Button.svelte";
4
+ export { default as ButtonProps } from "./Button/ButtonProps.svelte";
5
+ export { default as Carousel } from "./Carousel/Carousel.svelte";
6
+ export { default as ColorPicker } from "./ColorPicker/ColorPicker.svelte";
7
+ export { default as ColorPickerProps } from "./ColorPicker/ColorPickerProps.svelte";
8
+ export { default as FileAttach } from "./FileAttach/FileAttach.svelte";
9
+ export { default as FileAttachProps } from "./FileAttach/FileAttachProps.svelte";
10
+ export { default as Graph } from "./Graph/Graph.svelte";
11
+ export { default as GraphProps } from "./Graph/GraphProps.svelte";
12
+ export { default as Input } from "./Input/Input.svelte";
13
+ export { default as InputProps } from "./Input/InputProps.svelte";
14
+ export { default as Joystick } from "./Joystick/Joystick.svelte";
15
+ export { default as JoystickProps } from "./Joystick/JoystickProps.svelte";
16
+ export { default as Modal } from "./Modal.svelte";
17
+ export { default as Map } from "./Map/Map.svelte";
18
+ export { default as MapProps } from "./Map/MapProps.svelte";
19
+ export { default as ProgressBar } from "./ProgressBar/ProgressBar.svelte";
20
+ export { default as ProgressBarProps } from "./ProgressBar/ProgressBarProps.svelte";
21
+ export { default as Select } from "./Select/Select.svelte";
22
+ export { default as SelectProps } from "./Select/SelectProps.svelte";
23
+ export { default as Slider } from "./Slider/Slider.svelte";
24
+ export { default as SliderProps } from "./Slider/SliderProps.svelte";
25
+ export { default as Switch } from "./Switch/Switch.svelte";
26
+ export { default as SwitchProps } from "./Switch/SwitchProps.svelte";
27
+ export { default as Table } from "./Table/Table.svelte";
28
+ export { default as TableProps } from "./Table/TableProps.svelte";
29
+ export { default as Tabs } from "./Tabs/Tabs.svelte";
30
+ export { default as TabsProps } from "./Tabs/TabsProps.svelte";
31
+ export { default as TextField } from "./TextField/TextField.svelte";
32
+ export { default as TextFieldProps } from "./TextField/TextFieldProps.svelte";
33
+ export * from "./locales/i18n";
34
+ export * from "./locales/translations";
35
+ export { type UIComponent, type Position, type IUIComponentHandler, type IButtonProps, type IAccordionProps, type IInputProps, type ISelectProps, type ISelectOption, type ISwitchProps, type IColorPickerProps, type ISliderProps, type ITextFieldProps, type IMapProps, type IProgressBarProps, type IGraphProps, type IGraphDataObject, type ITableHeader, type ITableProps, type ITabsProps, type IJoystickProps, type IFileAttachProps, type IDeviceGNSS, type ICarouselProps, } from "./types";
package/dist/index.js CHANGED
@@ -1,35 +1,36 @@
1
1
  /* Реэкспорт всех UI компонентов для удобного импорта */
2
- export { default as Accordion } from './Accordion/Accordion.svelte';
3
- export { default as AccordionProps } from './Accordion/AccordionProps.svelte';
4
- export { default as Button } from './Button/Button.svelte';
5
- export { default as ButtonProps } from './Button/ButtonProps.svelte';
6
- export { default as ColorPicker } from './ColorPicker/ColorPicker.svelte';
7
- export { default as ColorPickerProps } from './ColorPicker/ColorPickerProps.svelte';
8
- export { default as FileAttach } from './FileAttach/FileAttach.svelte';
9
- export { default as FileAttachProps } from './FileAttach/FileAttachProps.svelte';
10
- export { default as Graph } from './Graph/Graph.svelte';
11
- export { default as GraphProps } from './Graph/GraphProps.svelte';
12
- export { default as Input } from './Input/Input.svelte';
13
- export { default as InputProps } from './Input/InputProps.svelte';
14
- export { default as Joystick } from './Joystick/Joystick.svelte';
15
- export { default as JoystickProps } from './Joystick/JoystickProps.svelte';
16
- export { default as Modal } from './Modal.svelte';
17
- export { default as Map } from './Map/Map.svelte';
18
- export { default as MapProps } from './Map/MapProps.svelte';
19
- export { default as ProgressBar } from './ProgressBar/ProgressBar.svelte';
20
- export { default as ProgressBarProps } from './ProgressBar/ProgressBarProps.svelte';
21
- export { default as Select } from './Select/Select.svelte';
22
- export { default as SelectProps } from './Select/SelectProps.svelte';
23
- export { default as Slider } from './Slider/Slider.svelte';
24
- export { default as SliderProps } from './Slider/SliderProps.svelte';
25
- export { default as Switch } from './Switch/Switch.svelte';
26
- export { default as SwitchProps } from './Switch/SwitchProps.svelte';
27
- export { default as Table } from './Table/Table.svelte';
28
- export { default as TableProps } from './Table/TableProps.svelte';
29
- export { default as Tabs } from './Tabs/Tabs.svelte';
30
- export { default as TabsProps } from './Tabs/TabsProps.svelte';
31
- export { default as TextField } from './TextField/TextField.svelte';
32
- export { default as TextFieldProps } from './TextField/TextFieldProps.svelte';
33
- export * from './locales/i18n';
34
- export * from './locales/translations';
35
- export {} from './types';
2
+ export { default as Accordion } from "./Accordion/Accordion.svelte";
3
+ export { default as AccordionProps } from "./Accordion/AccordionProps.svelte";
4
+ export { default as Button } from "./Button/Button.svelte";
5
+ export { default as ButtonProps } from "./Button/ButtonProps.svelte";
6
+ export { default as Carousel } from "./Carousel/Carousel.svelte";
7
+ export { default as ColorPicker } from "./ColorPicker/ColorPicker.svelte";
8
+ export { default as ColorPickerProps } from "./ColorPicker/ColorPickerProps.svelte";
9
+ export { default as FileAttach } from "./FileAttach/FileAttach.svelte";
10
+ export { default as FileAttachProps } from "./FileAttach/FileAttachProps.svelte";
11
+ export { default as Graph } from "./Graph/Graph.svelte";
12
+ export { default as GraphProps } from "./Graph/GraphProps.svelte";
13
+ export { default as Input } from "./Input/Input.svelte";
14
+ export { default as InputProps } from "./Input/InputProps.svelte";
15
+ export { default as Joystick } from "./Joystick/Joystick.svelte";
16
+ export { default as JoystickProps } from "./Joystick/JoystickProps.svelte";
17
+ export { default as Modal } from "./Modal.svelte";
18
+ export { default as Map } from "./Map/Map.svelte";
19
+ export { default as MapProps } from "./Map/MapProps.svelte";
20
+ export { default as ProgressBar } from "./ProgressBar/ProgressBar.svelte";
21
+ export { default as ProgressBarProps } from "./ProgressBar/ProgressBarProps.svelte";
22
+ export { default as Select } from "./Select/Select.svelte";
23
+ export { default as SelectProps } from "./Select/SelectProps.svelte";
24
+ export { default as Slider } from "./Slider/Slider.svelte";
25
+ export { default as SliderProps } from "./Slider/SliderProps.svelte";
26
+ export { default as Switch } from "./Switch/Switch.svelte";
27
+ export { default as SwitchProps } from "./Switch/SwitchProps.svelte";
28
+ export { default as Table } from "./Table/Table.svelte";
29
+ export { default as TableProps } from "./Table/TableProps.svelte";
30
+ export { default as Tabs } from "./Tabs/Tabs.svelte";
31
+ export { default as TabsProps } from "./Tabs/TabsProps.svelte";
32
+ export { default as TextField } from "./TextField/TextField.svelte";
33
+ export { default as TextFieldProps } from "./TextField/TextFieldProps.svelte";
34
+ export * from "./locales/i18n";
35
+ export * from "./locales/translations";
36
+ export {} from "./types";
@@ -0,0 +1,6 @@
1
+ <script lang="ts"></script>
2
+
3
+ <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"
4
+ ><path
5
+ fill="currentColor"
6
+ d="M12.6 12L8.7 8.1q-.275-.275-.275-.7t.275-.7t.7-.275t.7.275l4.6 4.6q.15.15.213.325t.062.375t-.062.375t-.213.325l-4.6 4.6q-.275.275-.7.275t-.7-.275t-.275-.7t.275-.7z" /></svg>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const ArrowIcon: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type ArrowIcon = InstanceType<typeof ArrowIcon>;
18
+ export default ArrowIcon;
package/dist/types.d.ts CHANGED
@@ -363,3 +363,13 @@ export interface IFileAttachProps {
363
363
  currentImage?: string | null;
364
364
  onChange?: (event: Event, file: File | null) => void;
365
365
  }
366
+ export interface ICarouselProps {
367
+ id?: string;
368
+ wrapperClass?: string;
369
+ label?: {
370
+ name?: string;
371
+ class?: string;
372
+ };
373
+ scrollValue?: number;
374
+ children?: Snippet;
375
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "poe-svelte-ui-lib",
3
- "version": "1.6.3",
3
+ "version": "1.6.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {