@ryuzaki13/react-foundation-lib 1.4.3 → 1.5.0

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 (51) hide show
  1. package/dist/chunks/{formatters-D33Uh3si.js → formatters-DVE1YVNQ.js} +349 -334
  2. package/dist/chunks/formatters-DVE1YVNQ.js.map +1 -0
  3. package/dist/error-report/index.js +1 -1
  4. package/dist/formatters/date/formatInstantDateTime.d.ts +19 -0
  5. package/dist/formatters/date/formatInstantDateTime.d.ts.map +1 -0
  6. package/dist/formatters/date/index.d.ts +1 -0
  7. package/dist/formatters/date/index.d.ts.map +1 -1
  8. package/dist/formatters/index.js +5 -5
  9. package/dist/hooks/useFloatingListbox.d.ts +1 -1
  10. package/package.json +1 -5
  11. package/src/array/README.mdx +4 -12
  12. package/src/binary/README.mdx +3 -11
  13. package/src/bounded-copy-stack/README.mdx +8 -14
  14. package/src/context-menu/README.mdx +11 -11
  15. package/src/copy/README.mdx +3 -11
  16. package/src/crypto/README.mdx +3 -11
  17. package/src/date-segments/README.mdx +3 -3
  18. package/src/dom/README.mdx +3 -11
  19. package/src/error/README.mdx +2 -2
  20. package/src/file/README.mdx +3 -11
  21. package/src/fingerprint/README.mdx +3 -3
  22. package/src/form/README.mdx +2 -2
  23. package/src/formatters/README.mdx +0 -6
  24. package/src/formatters/boolean/README.mdx +3 -11
  25. package/src/formatters/date/README.mdx +11 -1
  26. package/src/formulas/README.mdx +2 -8
  27. package/src/http/README.mdx +3 -3
  28. package/src/media/README.mdx +4 -4
  29. package/src/notifications/README.mdx +2 -2
  30. package/src/number-scale/README.mdx +1 -1
  31. package/src/odata-service/README.mdx +3 -9
  32. package/src/presets/README.mdx +2 -2
  33. package/src/pwa/README.mdx +0 -8
  34. package/src/query-client/README.mdx +5 -8
  35. package/src/range-output/README.mdx +3 -3
  36. package/src/session-storage/README.mdx +2 -2
  37. package/src/string-comparison/README.mdx +2 -2
  38. package/src/table/README.mdx +2 -10
  39. package/src/types/README.mdx +13 -13
  40. package/src/utils/README.mdx +4 -10
  41. package/src/validators/README.mdx +3 -3
  42. package/src/virtualizer/README.mdx +2 -6
  43. package/src/xml/README.mdx +3 -3
  44. package/dist/chunks/formatters-D33Uh3si.js.map +0 -1
  45. package/dist/currency/currency.d.ts +0 -8
  46. package/dist/currency/currency.d.ts.map +0 -1
  47. package/dist/currency/index.d.ts +0 -2
  48. package/dist/currency/index.d.ts.map +0 -1
  49. package/dist/currency/index.js +0 -16
  50. package/dist/currency/index.js.map +0 -1
  51. package/src/currency/README.mdx +0 -155
@@ -2,16 +2,14 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Data/Bounded Copy Stack" />
4
4
 
5
- # Ограниченный стек копий через `@ryuzaki13/react-foundation-lib/bounded-copy-stack`
5
+ # Ограниченный стек копий
6
6
 
7
7
  Модуль хранит небольшой список последних скопированных сущностей. Новый элемент помещается в начало, повтор по `fingerprint` обновляет существующую запись, а старые записи удаляются при превышении лимита.
8
8
 
9
- Документ рассчитан на разработчика без доступа к исходникам пакета. Ниже объясняются структура элемента, различие `id` и `fingerprint`, порядок записей, ссылки на payload и все граничные случаи.
10
-
11
9
  ## Содержание
12
10
 
13
11
  - [Назначение и границы](#назначение-и-границы)
14
- - [Установка и импорт](#установка-и-импорт)
12
+ - [Импорт](#импорт)
15
13
  - [Основные понятия](#основные-понятия)
16
14
  - [Быстрый старт](#быстрый-старт)
17
15
  - [`pushBoundedCopyStackItem`](#pushboundedcopystackitem)
@@ -44,11 +42,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
44
42
 
45
43
  Clipboard helpers находятся в `@ryuzaki13/react-foundation-lib/copy`. Владелец state/storage находится в host-приложении.
46
44
 
47
- ## Установка и импорт
48
-
49
- ```bash
50
- npm install @ryuzaki13/react-foundation-lib
51
- ```
45
+ ## Импорт
52
46
 
53
47
  ```ts
54
48
  import {
@@ -57,11 +51,11 @@ import {
57
51
  pushBoundedCopyStackItem
58
52
  } from "@ryuzaki13/react-foundation-lib/bounded-copy-stack";
59
53
 
60
- import type {
61
- BoundedCopyStackItem,
62
- BoundedCopyStackOptions,
63
- BoundedCopyStackPushInput,
64
- BoundedCopyStackPushResult
54
+ import {
55
+ type BoundedCopyStackItem,
56
+ type BoundedCopyStackOptions,
57
+ type BoundedCopyStackPushInput,
58
+ type BoundedCopyStackPushResult
65
59
  } from "@ryuzaki13/react-foundation-lib/bounded-copy-stack";
66
60
  ```
67
61
 
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Interaction/Context Menu State" />
4
4
 
5
- # Состояние и anchors контекстного меню через `@ryuzaki13/react-foundation-lib/context-menu`
5
+ # Состояние и anchors контекстного меню
6
6
 
7
7
  Модуль описывает открытое/закрытое состояние контекстного меню, источник открытия и два вида anchor: DOM element или экранная точка. Также он создаёт virtual anchor для Floating UI.
8
8
 
@@ -11,7 +11,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
11
11
  ## Содержание
12
12
 
13
13
  - [Назначение и границы](#назначение-и-границы)
14
- - [Установка и импорт](#установка-и-импорт)
14
+ - [Импорт](#импорт)
15
15
  - [Модель данных](#модель-данных)
16
16
  - [Получение точки](#получение-точки)
17
17
  - [`createVirtualAnchor`](#createvirtualanchor)
@@ -48,7 +48,7 @@ host React/Floating UI/menu component
48
48
 
49
49
  Готовый visual primitive находится в `@ryuzaki13/react-foundation-ui/context-menu`.
50
50
 
51
- ## Установка и импорт
51
+ ## Импорт
52
52
 
53
53
  ```ts
54
54
  import {
@@ -61,14 +61,14 @@ import {
61
61
  toggleMenu
62
62
  } from "@ryuzaki13/react-foundation-lib/context-menu";
63
63
 
64
- import type {
65
- ElementMenuAnchor,
66
- MenuAnchor,
67
- MenuOpenSource,
68
- MenuPoint,
69
- MenuState,
70
- OpenMenuPayload,
71
- PointMenuAnchor
64
+ import {
65
+ type ElementMenuAnchor,
66
+ type MenuAnchor,
67
+ type MenuOpenSource,
68
+ type MenuPoint,
69
+ type MenuState,
70
+ type OpenMenuPayload,
71
+ type PointMenuAnchor
72
72
  } from "@ryuzaki13/react-foundation-lib/context-menu";
73
73
  ```
74
74
 
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/API/Copy" />
4
4
 
5
- # Копирование текста через `@ryuzaki13/react-foundation-lib/copy`
5
+ # Копирование текста
6
6
 
7
7
  Модуль `copy` содержит React hooks для копирования текста в системный буфер обмена, чтения текста из DOM-элемента и показа короткого состояния «скопировано».
8
8
 
@@ -14,12 +14,10 @@ import { Meta } from "@storybook/addon-docs/blocks";
14
14
 
15
15
  Модуль ориентирован на браузер. Он скрывает технический выбор между современным Clipboard API и legacy fallback, но не отменяет браузерные разрешения и ограничения безопасности.
16
16
 
17
- README рассчитан на разработчика, который использует опубликованный пакет без доступа к исходному коду. Здесь объясняются базовые понятия React и DOM, точное поведение каждого hook, обработка ошибок, доступность, тестирование и известные ограничения.
18
-
19
17
  ## Содержание
20
18
 
21
19
  - [Назначение и границы модуля](#назначение-и-границы-модуля)
22
- - [Установка и импорт](#установка-и-импорт)
20
+ - [Импорт](#импорт)
23
21
  - [Минимальные понятия](#минимальные-понятия)
24
22
  - [Как выбрать API](#как-выбрать-api)
25
23
  - [Быстрый старт](#быстрый-старт)
@@ -72,13 +70,7 @@ README рассчитан на разработчика, который испо
72
70
  | Реализовать визуальную кнопку/tooltip | UI-компонент приложения или foundation UI-пакет |
73
71
  | Скопировать изображение или rich HTML | Отдельная реализация Clipboard API для нужного формата |
74
72
 
75
- ## Установка и импорт
76
-
77
- Установите пакет:
78
-
79
- ```bash
80
- npm install @ryuzaki13/react-foundation-lib
81
- ```
73
+ ## Импорт
82
74
 
83
75
  Модуль использует React hooks. Приложение должно предоставить совместимые peer-зависимости React:
84
76
 
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/API/Crypto" />
4
4
 
5
- # Идентификаторы и строковые hash через `@ryuzaki13/react-foundation-lib/crypto`
5
+ # Идентификаторы и строковые hash
6
6
 
7
7
  Модуль `crypto` предоставляет небольшие функции для двух разных задач:
8
8
 
@@ -13,12 +13,10 @@ import { Meta } from "@storybook/addon-docs/blocks";
13
13
 
14
14
  Несмотря на имя entrypoint, строковые hash этого модуля не являются криптографическими. Они не подходят для паролей, подписей, access token, проверки безопасности или сокрытия персональных данных.
15
15
 
16
- README рассчитан на разработчика, который использует опубликованный пакет без доступа к исходному коду. Здесь объясняются базовые понятия, точные форматы результатов, browser runtime, Unicode, коллизии, React/SSR, тестирование и безопасные границы применения.
17
-
18
16
  ## Содержание
19
17
 
20
18
  - [Назначение и границы модуля](#назначение-и-границы-модуля)
21
- - [Установка и импорт](#установка-и-импорт)
19
+ - [Импорт](#импорт)
22
20
  - [Минимальные понятия](#минимальные-понятия)
23
21
  - [Как выбрать API](#как-выбрать-api)
24
22
  - [Быстрый старт](#быстрый-старт)
@@ -71,13 +69,7 @@ README рассчитан на разработчика, который испо
71
69
  | Детерминированные hash | `hashString`, `hashString128`, `hashString128Base64Url`, `stringToElementId` | Та же точная строка даёт тот же результат. |
72
70
  | Случайный идентификатор | `uuidv4` | Каждый вызов должен создавать новое случайное значение. |
73
71
 
74
- ## Установка и импорт
75
-
76
- Установите пакет:
77
-
78
- ```bash
79
- npm install @ryuzaki13/react-foundation-lib
80
- ```
72
+ ## Импорт
81
73
 
82
74
  Импортируйте функции только из опубликованного subpath `/crypto`:
83
75
 
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Date/Segments" />
4
4
 
5
- # Сегменты даты и времени через `@ryuzaki13/react-foundation-lib/date-segments`
5
+ # Сегменты даты и времени
6
6
 
7
7
  Модуль разбирает строковую маску на редактируемые сегменты и литералы, преобразует `Date` в значения полей и строго собирает `Date` обратно. Он предназначен для segment-based date/time inputs.
8
8
 
@@ -11,7 +11,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
11
11
  ## Содержание
12
12
 
13
13
  - [Назначение и границы](#назначение-и-границы)
14
- - [Установка и импорт](#установка-и-импорт)
14
+ - [Импорт](#импорт)
15
15
  - [Базовые понятия](#базовые-понятия)
16
16
  - [Поддерживаемые tokens](#поддерживаемые-tokens)
17
17
  - [`parseDateSegmentMask`](#parsedatesegmentmask)
@@ -40,7 +40,7 @@ new Date(2026, 2, 3, 18, 3)
40
40
 
41
41
  Модуль не рендерит input, не управляет focus/caret, не форматирует итоговую дату для UI/backend и не парсит ISO/OData строку. Для общего парсинга/форматирования используйте `/formatters`.
42
42
 
43
- ## Установка и импорт
43
+ ## Импорт
44
44
 
45
45
  ```ts
46
46
  import {
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/API/DOM" />
4
4
 
5
- # Browser DOM и focus helpers через `@ryuzaki13/react-foundation-lib/dom`
5
+ # Browser DOM и focus helpers
6
6
 
7
7
  Модуль `dom` содержит небольшие browser helpers и React hooks для типовых инфраструктурных задач:
8
8
 
@@ -17,12 +17,10 @@ import { Meta } from "@storybook/addon-docs/blocks";
17
17
 
18
18
  Модуль является низкоуровневым browser foundation-слоем. Он не создаёт готовые кнопки, dialog, modal, popover, tooltip или download UI. Визуальный компонент по-прежнему отвечает за семантический HTML, ARIA, стили, анимацию, стек overlay, сообщения об ошибках и пользовательский сценарий.
19
19
 
20
- README рассчитан на разработчика, который использует опубликованный пакет без прямого доступа к исходному коду. Здесь объясняются базовые понятия DOM и React, все публичные функции, точный lifecycle, defaults, cleanup, ограничения доступности, тестирование и частые ошибки.
21
-
22
20
  ## Содержание
23
21
 
24
22
  - [Назначение и границы модуля](#назначение-и-границы-модуля)
25
- - [Установка и импорт](#установка-и-импорт)
23
+ - [Импорт](#импорт)
26
24
  - [Runtime и browser boundary](#runtime-и-browser-boundary)
27
25
  - [Минимальные понятия](#минимальные-понятия)
28
26
  - [Как выбрать API](#как-выбрать-api)
@@ -91,13 +89,7 @@ README рассчитан на разработчика, который испо
91
89
 
92
90
  Если приложению нужен готовый UI primitive, сначала ищите его в `@ryuzaki13/react-foundation-ui`. Модуль `dom` нужен авторам primitives и для специальных browser-сценариев, а не для повторной сборки локальных modal/dialog в каждом feature.
93
91
 
94
- ## Установка и импорт
95
-
96
- Установите пакет:
97
-
98
- ```bash
99
- npm install @ryuzaki13/react-foundation-lib
100
- ```
92
+ ## Импорт
101
93
 
102
94
  Entrypoint экспортирует React hooks, поэтому host-приложение должно предоставить совместимые peer-зависимости:
103
95
 
@@ -2,11 +2,11 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Errors/Missing Context" />
4
4
 
5
- # Ошибка отсутствующего React context через `@ryuzaki13/react-foundation-lib/error`
5
+ # Ошибка отсутствующего React context
6
6
 
7
7
  Модуль создаёт единообразное диагностическое сообщение, когда custom hook вызван вне нужного Provider.
8
8
 
9
- ## Установка и импорт
9
+ ## Импорт
10
10
 
11
11
  ```ts
12
12
  import { createMissingContextError, createMissingContextErrorMessage } from "@ryuzaki13/react-foundation-lib/error";
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/API/File" />
4
4
 
5
- # Работа с пользовательскими файлами через `@ryuzaki13/react-foundation-lib/file`
5
+ # Работа с пользовательскими файлами
6
6
 
7
7
  Модуль `file` содержит browser helpers для четырёх связанных задач:
8
8
 
@@ -13,12 +13,10 @@ import { Meta } from "@storybook/addon-docs/blocks";
13
13
 
14
14
  Модуль является низкоуровневым foundation-слоем. Он не рисует `<input type="file">`, не отправляет файл на backend, не показывает preview или progress, не проверяет реальное содержимое файла и не заменяет серверную валидацию.
15
15
 
16
- README рассчитан на разработчика, который использует опубликованный пакет без доступа к исходному коду. Поэтому ниже отдельно объясняются базовые понятия JavaScript/TypeScript, точный порядок проверок, структура результатов, все публичные функции и типы, фактические классы ошибок, ограничения безопасности и известные особенности текущей реализации.
17
-
18
16
  ## Содержание
19
17
 
20
18
  - [Назначение и границы модуля](#назначение-и-границы-модуля)
21
- - [Установка и импорт](#установка-и-импорт)
19
+ - [Импорт](#импорт)
22
20
  - [Runtime и browser boundary](#runtime-и-browser-boundary)
23
21
  - [Минимальные понятия](#минимальные-понятия)
24
22
  - [Как выбрать API](#как-выбрать-api)
@@ -90,13 +88,7 @@ README рассчитан на разработчика, который испо
90
88
 
91
89
  Если нужен только обычный upload через `multipart/form-data`, браузерный `File` можно положить в `FormData` напрямую. Предварительное чтение всего файла через `readFile` для этого не обязательно.
92
90
 
93
- ## Установка и импорт
94
-
95
- Установите пакет:
96
-
97
- ```bash
98
- npm install @ryuzaki13/react-foundation-lib
99
- ```
91
+ ## Импорт
100
92
 
101
93
  Импортируйте API только из опубликованного subpath `/file`:
102
94
 
@@ -2,14 +2,14 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Browser/Client Fingerprint" />
4
4
 
5
- # Client fingerprint через `@ryuzaki13/react-foundation-lib/fingerprint`
5
+ # Client fingerprint
6
6
 
7
7
  `getClientFingerprint` лениво загружает FingerprintJS, получает `visitorId` и кеширует Promise на всё время жизни JavaScript-модуля.
8
8
 
9
- ## Установка и импорт
9
+ ## Импорт
10
10
 
11
11
  ```bash
12
- npm install @ryuzaki13/react-foundation-lib @fingerprintjs/fingerprintjs
12
+ npm install @fingerprintjs/fingerprintjs
13
13
  ```
14
14
 
15
15
  ```ts
@@ -2,11 +2,11 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Forms/Form Errors" />
4
4
 
5
- # Чтение первой ошибки формы через `@ryuzaki13/react-foundation-lib/form`
5
+ # Чтение первой ошибки формы
6
6
 
7
7
  Модуль содержит одну функцию `readFirstFormError`. Она получает неоднородный массив ошибок и возвращает первое найденное текстовое сообщение.
8
8
 
9
- ## Установка и импорт
9
+ ## Импорт
10
10
 
11
11
  ```ts
12
12
  import { readFirstFormError } from "@ryuzaki13/react-foundation-lib/form";
@@ -8,12 +8,6 @@ import { Meta } from "@storybook/addon-docs/blocks";
8
8
 
9
9
  Документация разделена по предметным областям, чтобы разработчику не приходилось читать один огромный файл. Этот README объясняет общие правила, помогает выбрать API и подробно описывает небольшие helpers верхнего уровня.
10
10
 
11
- ## Установка
12
-
13
- ```bash
14
- npm install @ryuzaki13/react-foundation-lib
15
- ```
16
-
17
11
  Пакет является ESM. Корневого импорта пакета нет. Все formatter functions и их типы импортируются из точечного entrypoint:
18
12
 
19
13
  ```ts
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/API/Formatters/Boolean" />
4
4
 
5
- # Boolean и ABAP boolean через `@ryuzaki13/react-foundation-lib/formatters`
5
+ # Boolean и ABAP boolean
6
6
 
7
7
  Подмодуль `boolean` преобразует значения между JavaScript `boolean` и двухсимвольным ABAP-контрактом:
8
8
 
@@ -11,12 +11,10 @@ import { Meta } from "@storybook/addon-docs/blocks";
11
11
 
12
12
  Также он предоставляет более широкий parser `parseBoolean` для простых пользовательских или transport-значений.
13
13
 
14
- README рассчитан на разработчика без доступа к исходному коду. Ниже описано точное, местами неочевидное поведение всех трёх публичных функций. Особенно важно не путать строгий `parseAbapBoolean`, расширенный `parseBoolean` и truthy-семантику `toAbapBoolean`.
15
-
16
14
  ## Содержание
17
15
 
18
16
  - [Назначение и границы](#назначение-и-границы)
19
- - [Установка и импорт](#установка-и-импорт)
17
+ - [Импорт](#импорт)
20
18
  - [Минимальные понятия](#минимальные-понятия)
21
19
  - [Как выбрать функцию](#как-выбрать-функцию)
22
20
  - [`parseAbapBoolean`](#parseabapboolean)
@@ -47,13 +45,7 @@ README рассчитан на разработчика без доступа к
47
45
  - не сериализует JSON, URL или OData query;
48
46
  - не гарантирует, что широкий `toAbapBoolean(unknown)` подходит конкретному backend-контракту.
49
47
 
50
- ## Установка и импорт
51
-
52
- Установите пакет:
53
-
54
- ```bash
55
- npm install @ryuzaki13/react-foundation-lib
56
- ```
48
+ ## Импорт
57
49
 
58
50
  Все boolean helpers импортируются из единственного опубликованного subpath `/formatters`:
59
51
 
@@ -16,6 +16,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
16
16
  ```ts
17
17
  import {
18
18
  formatDateAsDate,
19
+ formatInstantDateTime,
19
20
  getCalendarPeriod,
20
21
  normalizeDateRange,
21
22
  parseDate,
@@ -55,6 +56,15 @@ date?.toISOString(); // "2026-03-03T13:03:50.000Z"
55
56
 
56
57
  Локальные getters такого `Date` зависят от timezone среды. Используйте TZ-вариант, когда значение означает настоящий момент события: timestamp аудита, время серверного события, instant для сортировки между часовыми поясами.
57
58
 
59
+ Для одинакового отображения абсолютной метки времени на SSR-сервере и в браузере
60
+ используйте явный часовой пояс IANA:
61
+
62
+ ```ts
63
+ formatInstantDateTime("2026-09-04T10:22:28Z", {
64
+ timeZone: "Asia/Yekaterinburg"
65
+ }); // "4 сент. 2026 г., 15:22:28"
66
+ ```
67
+
58
68
  ### Простое правило выбора
59
69
 
60
70
  | Значение означает | Использовать |
@@ -697,7 +707,7 @@ Intl-форматы локализованы. Для API используйте
697
707
  | Семейство | Публичный API |
698
708
  | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
699
709
  | Parsing | `parseDateValue`, `parseDateValueTZ`, `parseDate`, `parseDateTZ`, `parseDateByPattern`, `parseDateByFormat` |
700
- | Universal format | `formatDate`, `formatDateRange` |
710
+ | Universal format | `formatDate`, `formatDateRange`, `formatInstantDateTime` |
701
711
  | UI wrappers | все `formatDateAsDate*`, `formatDateAsMonth*`, `formatDateAsTime*`, `formatDateAsDatetime*` |
702
712
  | Machine wrappers | `formatDateAsAbapYear`, `formatDateAsAbapMonth`, `formatDateAsAbapDate`, `formatDateAsAbapDatetime`, `formatDateAsODataDate`, `formatDateAsODataDatetime`, `formatDateAsODataTime` |
703
713
  | Presets | `DATE_FORMAT_DEFAULTS`, `DEFAULT_DATE_PRESET_NAMES`, `DATE_FORMAT_STYLE_PRESET_NAMES`, `getDatePreset`, `getDatePresetNames`, `registerDatePreset`, `resetDatePresets`, `resolveDateFormatName`, `resolveDateFormatPreset`, type guards |
@@ -17,12 +17,10 @@ import { Meta } from "@storybook/addon-docs/blocks";
17
17
  контролируемая причина ошибки выполнения
18
18
  ```
19
19
 
20
- README рассчитан на разработчика без доступа к исходному коду. Здесь описано точное поведение всего публичного API, включая преобразование значений, реестр, validation, ошибки и связь с formatter pipeline.
21
-
22
20
  ## Содержание
23
21
 
24
22
  - [Назначение и границы](#назначение-и-границы)
25
- - [Установка и импорт](#установка-и-импорт)
23
+ - [Импорт](#импорт)
26
24
  - [Быстрый старт](#быстрый-старт)
27
25
  - [Основные понятия](#основные-понятия)
28
26
  - [Описание формулы](#описание-формулы)
@@ -71,11 +69,7 @@ Host-приложение владеет прикладными `TableFormulaDef
71
69
 
72
70
  Сериализуемая конфигурация колонки хранит только стабильный `formulaId` и ordered dependencies. Реальная функция остаётся доверенным кодом приложения.
73
71
 
74
- ## Установка и импорт
75
-
76
- ```bash
77
- npm install @ryuzaki13/react-foundation-lib
78
- ```
72
+ ## Импорт
79
73
 
80
74
  Используйте только опубликованный package subpath `/formulas`:
81
75
 
@@ -2,14 +2,14 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/HTTP/Headers and Text Response" />
4
4
 
5
- # HTTP headers и текстовые ответы через `@ryuzaki13/react-foundation-lib/http`
5
+ # HTTP headers и текстовые ответы
6
6
 
7
7
  Модуль создаёт стандартный набор HTTP-заголовков запрета кеширования и обычный `Response` с UTF-8 plain text.
8
8
 
9
9
  ## Содержание
10
10
 
11
11
  - [Назначение и границы](#назначение-и-границы)
12
- - [Установка и импорт](#установка-и-импорт)
12
+ - [Импорт](#импорт)
13
13
  - [`createNoStoreHeaders`](#createnostoreheaders)
14
14
  - [`createTextHttpResponse`](#createtexthttpresponse)
15
15
  - [Runtime и безопасность](#runtime-и-безопасность)
@@ -26,7 +26,7 @@ Headers с no-store + Response(text/plain; charset=UTF-8)
26
26
 
27
27
  Модуль не выполняет `fetch`, не сериализует JSON, не задаёт CORS, CSP, cookies или authorization и не превращает ошибки transport в response автоматически.
28
28
 
29
- ## Установка и импорт
29
+ ## Импорт
30
30
 
31
31
  ```ts
32
32
  import { createNoStoreHeaders, createTextHttpResponse } from "@ryuzaki13/react-foundation-lib/http";
@@ -2,7 +2,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/API/Media" />
4
4
 
5
- # Адаптивность и media queries через `@ryuzaki13/react-foundation-lib/media`
5
+ # Адаптивность и media queries
6
6
 
7
7
  Модуль `media` содержит общий низкоуровневый контракт адаптивности для React-приложений:
8
8
 
@@ -14,12 +14,12 @@ import { Meta } from "@storybook/addon-docs/blocks";
14
14
  - преобразование количества пикселей относительно размера `em`;
15
15
  - расчёт проектной высоты control.
16
16
 
17
- Документ рассчитан на разработчика, который использует опубликованный пакет без доступа к его исходному коду. Поэтому ниже отдельно объясняются базовые понятия CSS и React, точные значения, fallback-порядок, SSR, hydration, подписки, cleanup, ограничения и все публичные exports.
17
+ Ниже отдельно объясняются базовые понятия CSS и React, точные значения, fallback-порядок, SSR, hydration, подписки, cleanup, ограничения и все публичные exports.
18
18
 
19
19
  ## Содержание
20
20
 
21
21
  - [Граница ответственности](#граница-ответственности)
22
- - [Установка и импорт](#установка-и-импорт)
22
+ - [Импорт](#импорт)
23
23
  - [Минимальные понятия](#минимальные-понятия)
24
24
  - [Как выбрать API](#как-выбрать-api)
25
25
  - [Проектные брейкпоинты](#проектные-брейкпоинты)
@@ -82,7 +82,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
82
82
 
83
83
  Если задача решается только стилями, сначала используйте CSS. JavaScript hook нужен, когда media query действительно влияет на вычисления, выбор поведения, параметры сторонней библиотеки или внешний store.
84
84
 
85
- ## Установка и импорт
85
+ ## Импорт
86
86
 
87
87
  Установите пакет:
88
88
 
@@ -22,12 +22,12 @@ import { Meta } from "@storybook/addon-docs/blocks";
22
22
 
23
23
  Для ошибок внутри формы лучше показывать сообщение рядом с полем. Уведомление — дополнительный, а не единственный канал обратной связи.
24
24
 
25
- ## Установка и импорт
25
+ ## Импорт
26
26
 
27
27
  Модулю нужен peer dependency `zustand`.
28
28
 
29
29
  ```bash
30
- npm install @ryuzaki13/react-foundation-lib zustand
30
+ npm install zustand
31
31
  ```
32
32
 
33
33
  ```ts
@@ -13,7 +13,7 @@ import { Meta } from "@storybook/addon-docs/blocks";
13
13
  3. преобразует значение в позицию `0..100%` и обратно;
14
14
  4. работает с дискретными точками `marks`.
15
15
 
16
- ## Установка и импорт
16
+ ## Импорт
17
17
 
18
18
  ```ts
19
19
  import {
@@ -15,14 +15,14 @@ import { Meta } from "@storybook/addon-docs/blocks";
15
15
  - поиска пар «код + текст» в справочных коллекциях;
16
16
  - хранения общих настроек OData-справочников.
17
17
 
18
- README рассчитан на разработчика без доступа к исходному коду и с минимальным знанием JavaScript/TypeScript. В примерах объясняется не только вызов функции, но и смысл входных данных, результат, ограничения и типичные ошибки.
18
+ В примерах объясняется не только вызов функции, но и смысл входных данных, результат, ограничения и типичные ошибки.
19
19
 
20
20
  > Ранее helpers справочных коллекций публиковались через отдельный subpath `@ryuzaki13/react-foundation-lib/odata`. Теперь этот код входит в `odata-service`. Старый subpath удалён без compatibility alias.
21
21
 
22
22
  ## Содержание
23
23
 
24
24
  - [Что делает и чего не делает модуль](#что-делает-и-чего-не-делает-модуль)
25
- - [Установка и импорт](#установка-и-импорт)
25
+ - [Импорт](#импорт)
26
26
  - [Зависимости и среда выполнения](#зависимости-и-среда-выполнения)
27
27
  - [OData V2 простыми словами](#odata-v2-простыми-словами)
28
28
  - [Быстрый старт](#быстрый-старт)
@@ -99,13 +99,7 @@ host entity / feature / widget
99
99
  бизнес-правила, экран, пользовательский сценарий
100
100
  ```
101
101
 
102
- ## Установка и импорт
103
-
104
- Установите пакет:
105
-
106
- ```bash
107
- npm install @ryuzaki13/react-foundation-lib
108
- ```
102
+ ## Импорт
109
103
 
110
104
  Для полного entrypoint также разрешите совместимые peer dependencies, если package manager не сделал этого автоматически:
111
105
 
@@ -2,11 +2,11 @@ import { Meta } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  <Meta title="Foundation Lib/Data/Presets" />
4
4
 
5
- # Общие preset helpers через `@ryuzaki13/react-foundation-lib/presets`
5
+ # Общие preset helpers
6
6
 
7
7
  Модуль проверяет восстановленные preset ids, сопоставляет их с option objects и ищет одну option по id.
8
8
 
9
- ## Установка и импорт
9
+ ## Импорт
10
10
 
11
11
  ```ts
12
12
  import { getPresetOption, normalizePresetIds, resolvePresetOptionsByIds } from "@ryuzaki13/react-foundation-lib/presets";
@@ -13,14 +13,6 @@ import { Meta } from "@storybook/addon-docs/blocks";
13
13
 
14
14
  Используйте точный subpath. Внутренний файл `serviceWorker` не является самостоятельным публичным export, даже если отдельные функции используются самим hook.
15
15
 
16
- ## Установка
17
-
18
- Для `useServiceWorkerUpdate` нужен React. Cache policy не имеет React-зависимости.
19
-
20
- ```bash
21
- npm install @ryuzaki13/react-foundation-lib react
22
- ```
23
-
24
16
  ## Часть 1. Обновление Service Worker
25
17
 
26
18
  ### Задача hook
@@ -14,14 +14,14 @@ import { Meta } from "@storybook/addon-docs/blocks";
14
14
  - синхронизирует cache data и invalidation между вкладками;
15
15
  - предоставляет низкоуровневые helpers для optimistic update и rollback.
16
16
 
17
- README рассчитан на разработчика без доступа к исходному коду и с минимальным знанием JavaScript, TypeScript и TanStack Query. Здесь описаны установка, инициализация, жизненный цикл данных, точное поведение функций, ограничения browser API и полный публичный API.
17
+ Здесь описаны жизненный цикл данных, точное поведение функций, ограничения browser API и полный публичный API.
18
18
 
19
19
  > Ранее optimistic update был описан отдельным документом. Теперь весь смысл, примеры, ограничения и API находятся только на этой странице.
20
20
 
21
21
  ## Содержание
22
22
 
23
23
  - [Назначение и границы](#назначение-и-границы)
24
- - [Установка и импорт](#установка-и-импорт)
24
+ - [Импорт](#импорт)
25
25
  - [Обязательные build-time constants](#обязательные-build-time-constants)
26
26
  - [Основные понятия TanStack Query](#основные-понятия-tanstack-query)
27
27
  - [Как выбрать cache strategy](#как-выбрать-cache-strategy)
@@ -92,15 +92,12 @@ queryOptions/useQuery/useMutation
92
92
 
93
93
  Broadcast не является четвёртым хранилищем. Он только передаёт изменения между уже работающими вкладками.
94
94
 
95
- ## Установка и импорт
95
+ ## Импорт
96
96
 
97
- Установите foundation-пакет и совместимые peer dependencies:
97
+ Установите совместимые peer dependencies:
98
98
 
99
99
  ```bash
100
- npm install @ryuzaki13/react-foundation-lib
101
- npm install react @tanstack/react-query \
102
- @tanstack/query-persist-client-core \
103
- @tanstack/query-broadcast-client-experimental
100
+ npm install react @tanstack/react-query @tanstack/query-persist-client-core @tanstack/query-broadcast-client-experimental
104
101
  ```
105
102
 
106
103
  Публичный импорт: