@nemigo/layout 0.4.0 → 0.4.1

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.
@@ -1,7 +1,20 @@
1
1
  import type { Snippet } from "svelte";
2
+ /**
3
+ * Пропсы для компонента Context.
4
+ * Позволяет передать значение в контекст Svelte и отрендерить дочерние элементы.
5
+ */
2
6
  export interface ContextProps {
7
+ /**
8
+ * Ключ для контекста Svelte
9
+ */
3
10
  key: string;
11
+ /**
12
+ * Значение для передачи в контекст
13
+ */
4
14
  value: unknown;
15
+ /**
16
+ * Дочерние элементы для рендеринга
17
+ */
5
18
  children: Snippet;
6
19
  }
7
20
  declare const Context: import("svelte").Component<ContextProps, {}, "">;
@@ -1,26 +1,84 @@
1
1
  import type { TargetKeyboardEvent } from "@nemigo/helpers/html";
2
2
  import type { Snippet } from "svelte";
3
3
  import type { ClassValue } from "svelte/elements";
4
+ /**
5
+ * Базовые пропсы для компонента EnterBlock.
6
+ * Содержит общие свойства, используемые во всех вариантах компонента.
7
+ */
4
8
  interface BaseEnterBlockProps {
9
+ /**
10
+ * HTML ID элемента
11
+ */
5
12
  id?: string;
13
+ /**
14
+ * Текстовая метка для доступности (aria-label и title)
15
+ */
6
16
  label?: string;
17
+ /**
18
+ * CSS классы для элемента
19
+ */
7
20
  class?: ClassValue;
21
+ /**
22
+ * Инлайн стили для элемента
23
+ */
8
24
  style?: string;
25
+ /**
26
+ * Отключен ли элемент
27
+ */
9
28
  disabled?: boolean;
29
+ /**
30
+ * Состояние загрузки (показывает курсор ожидания)
31
+ */
10
32
  load?: boolean;
33
+ /**
34
+ * Обработчик события mousedown или строка "onclick" для использования onclick
35
+ */
11
36
  onmousedown?: ((e: MouseEvent) => void) | "onclick";
37
+ /**
38
+ * Дочерние элементы для рендеринга
39
+ */
12
40
  children: Snippet;
13
41
  }
42
+ /**
43
+ * Пропсы для EnterBlock с кастомным обработчиком onkeydown.
44
+ * Когда указан onkeydown, обработчики onclick и oncontextmenu работают только с MouseEvent.
45
+ */
14
46
  export interface OnKeydownEnterBlockProps extends BaseEnterBlockProps {
47
+ /**
48
+ * Обработчик клика мыши
49
+ */
15
50
  onclick?: (e: MouseEvent) => void;
51
+ /**
52
+ * Обработчик контекстного меню мыши
53
+ */
16
54
  oncontextmenu?: (e: MouseEvent) => void;
55
+ /**
56
+ * Кастомный обработчик клавиатурных событий
57
+ */
17
58
  onkeydown: (e: TargetKeyboardEvent) => void;
18
59
  }
60
+ /**
61
+ * Пропсы для EnterBlock без кастомного обработчика onkeydown.
62
+ * Обработчики onclick и oncontextmenu могут работать с событиями мыши и клавиатуры.
63
+ */
19
64
  export interface NotKeydownEnterBlockProps extends BaseEnterBlockProps {
65
+ /**
66
+ * Обработчик клика (мышь или клавиатура)
67
+ */
20
68
  onclick?: (e: MouseEvent | TargetKeyboardEvent) => void;
69
+ /**
70
+ * Обработчик контекстного меню (мышь или клавиатура)
71
+ */
21
72
  oncontextmenu?: (e: MouseEvent | TargetKeyboardEvent) => void;
73
+ /**
74
+ * Кастомный обработчик клавиатурных событий не используется
75
+ */
22
76
  onkeydown?: undefined;
23
77
  }
78
+ /**
79
+ * Объединенный тип пропсов для компонента EnterBlock.
80
+ * Поддерживает два режима: с кастомным onkeydown и с автоматической обработкой клавиатуры.
81
+ */
24
82
  export type EnterBlockProps = OnKeydownEnterBlockProps | NotKeydownEnterBlockProps;
25
83
  declare const EnterBlock: import("svelte").Component<EnterBlockProps, {}, "">;
26
84
  type EnterBlock = ReturnType<typeof EnterBlock>;
@@ -1,11 +1,24 @@
1
1
  import type { Timestamp } from "@nemigo/helpers/types";
2
2
  import type { Component } from "svelte";
3
+ /**
4
+ * Пропсы для компонента LazyBlock.
5
+ * Реализует ленивую загрузку компонентов с возможностью задержки и триггера.
6
+ */
3
7
  export interface LazyBlockProps {
4
8
  /**
9
+ * Задержка перед загрузкой компонента в миллисекундах.
5
10
  * @default 500
6
11
  */
7
12
  delay?: Timestamp;
13
+ /**
14
+ * Промис-триггер для запуска загрузки.
15
+ * Если указан, задержка игнорируется.
16
+ */
8
17
  trigger?: Promise<any>;
18
+ /**
19
+ * Функция для асинхронной загрузки компонента.
20
+ * Должна возвращать промис с объектом, содержащим default-экспорт компонента.
21
+ */
9
22
  load: () => Promise<{
10
23
  default: Component;
11
24
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nemigo/layout",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "private": false,
5
5
  "author": {
6
6
  "name": "Vlad Logvin",