ics-ui-kit 0.1.13 → 0.1.14

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 (105) hide show
  1. package/dist/{AlertIcon-5B6AgZpe.js → AlertIcon-BphnEYvV.js} +3 -3
  2. package/dist/AlertIcon-BphnEYvV.js.map +1 -0
  3. package/dist/Field-CP_-li9L.js +90 -0
  4. package/dist/Field-CP_-li9L.js.map +1 -0
  5. package/dist/{FormFooterTemplate-ClTxqrIB.js → FormFooterTemplate-Cfn5Nmge.js} +2 -2
  6. package/dist/{FormFooterTemplate-ClTxqrIB.js.map → FormFooterTemplate-Cfn5Nmge.js.map} +1 -1
  7. package/dist/{FormStack-B3UBh9oF.js → FormStack-Cc_ELdWL.js} +2 -2
  8. package/dist/{FormStack-B3UBh9oF.js.map → FormStack-Cc_ELdWL.js.map} +1 -1
  9. package/dist/{SearchSelectTag-DFCX9zT1.js → SearchSelectTag-CA7Ie3Nx.js} +2 -2
  10. package/dist/{SearchSelectTag-DFCX9zT1.js.map → SearchSelectTag-CA7Ie3Nx.js.map} +1 -1
  11. package/dist/TableFillHandle-C_yvCTSl.js +65 -0
  12. package/dist/TableFillHandle-C_yvCTSl.js.map +1 -0
  13. package/dist/TextOverflowTooltip-B1I5qwAT.js.map +1 -1
  14. package/dist/blocks/auth/otp-form.js +1 -1
  15. package/dist/components/alert/Alert.d.ts +4 -0
  16. package/dist/components/alert/Alert.stories.d.ts +1 -0
  17. package/dist/components/alert-dialog.js +1 -1
  18. package/dist/components/alert.js +18 -18
  19. package/dist/components/alert.js.map +1 -1
  20. package/dist/components/card.js +1 -1
  21. package/dist/components/dialog.js +1 -1
  22. package/dist/components/field/Field.d.ts +4 -0
  23. package/dist/components/field/Field.stories.d.ts +1 -0
  24. package/dist/components/field.js +1 -1
  25. package/dist/components/file-upload.js +1 -1
  26. package/dist/components/form.js +3 -3
  27. package/dist/components/search-select.js +1 -1
  28. package/dist/components/sidebar.js +204 -210
  29. package/dist/components/sidebar.js.map +1 -1
  30. package/dist/components/system-state.js +1 -1
  31. package/dist/components/table/Table.d.ts +109 -5
  32. package/dist/components/table/Table.stories.d.ts +285 -9
  33. package/dist/components/table/column-reorder/index.d.ts +1 -0
  34. package/dist/components/table/column-reorder/useColumnReorder.d.ts +82 -0
  35. package/dist/components/table/column-reorder.d.ts +2 -0
  36. package/dist/components/table/column-reorder.js +6 -0
  37. package/dist/components/table/column-reorder.js.map +1 -0
  38. package/dist/components/table/column-resize/columnAutoFit.d.ts +21 -0
  39. package/dist/components/table/column-resize/columnResizeSession.d.ts +9 -0
  40. package/dist/components/table/column-resize/index.d.ts +3 -0
  41. package/dist/components/table/column-resize/useColumnResize.d.ts +52 -0
  42. package/dist/components/table/column-resize.d.ts +2 -0
  43. package/dist/components/table/column-resize.js +7 -0
  44. package/dist/components/table/column-resize.js.map +1 -0
  45. package/dist/components/table/editable/TableFillHandle.d.ts +23 -0
  46. package/dist/components/table/editable/cellRange.d.ts +83 -0
  47. package/dist/components/table/editable/editableCell.d.ts +90 -0
  48. package/dist/components/table/editable/index.d.ts +3 -0
  49. package/dist/components/table/editable.d.ts +2 -0
  50. package/dist/components/table/editable.js +12 -0
  51. package/dist/components/table/editable.js.map +1 -0
  52. package/dist/components/table/index.d.ts +8 -1
  53. package/dist/components/table/opaqueCell.d.ts +47 -0
  54. package/dist/components/table/rowTint.d.ts +60 -0
  55. package/dist/components/table/sticky/index.d.ts +1 -0
  56. package/dist/components/table/sticky/stickyCell.d.ts +105 -0
  57. package/dist/components/table/sticky.d.ts +2 -0
  58. package/dist/components/table/sticky.js +22 -0
  59. package/dist/components/table/sticky.js.map +1 -0
  60. package/dist/components/table/tableStoryData.d.ts +84 -0
  61. package/dist/components/table/tableStoryParts.d.ts +72 -0
  62. package/dist/components/table/tree/TableTree.d.ts +106 -0
  63. package/dist/components/table/tree/index.d.ts +3 -0
  64. package/dist/components/table/tree/treeGeometry.d.ts +86 -0
  65. package/dist/components/table/tree/treeModel.d.ts +87 -0
  66. package/dist/components/table/tree.d.ts +2 -0
  67. package/dist/components/table/tree.js +19 -0
  68. package/dist/components/table/tree.js.map +1 -0
  69. package/dist/components/table.js +52 -79
  70. package/dist/components/table.js.map +1 -1
  71. package/dist/components/tag-input.js +1 -1
  72. package/dist/components/toolbar.js +1 -2
  73. package/dist/components/toolbar.js.map +1 -1
  74. package/dist/hooks.js +1 -1
  75. package/dist/lib/utils/dom.d.ts +72 -0
  76. package/dist/opaqueCell-SGaiyL54.js +31 -0
  77. package/dist/opaqueCell-SGaiyL54.js.map +1 -0
  78. package/dist/plus-BpxYPnAG.js +15 -0
  79. package/dist/plus-BpxYPnAG.js.map +1 -0
  80. package/dist/styles-scoped.css +315 -72
  81. package/dist/styles.css +315 -72
  82. package/dist/theme.css +2 -0
  83. package/dist/treeModel-BlPWVj4W.js +319 -0
  84. package/dist/treeModel-BlPWVj4W.js.map +1 -0
  85. package/dist/useBreakpoints-DHvp74UL.js +31 -0
  86. package/dist/useBreakpoints-DHvp74UL.js.map +1 -0
  87. package/dist/useColumnReorder-BxVZQ_Y5.js +119 -0
  88. package/dist/useColumnReorder-BxVZQ_Y5.js.map +1 -0
  89. package/dist/useColumnResize-wjfEyBBg.js +130 -0
  90. package/dist/useColumnResize-wjfEyBBg.js.map +1 -0
  91. package/dist/vendors/date-fns/index.d.ts +7 -14
  92. package/dist/vendors/date-fns/locale/en-US/index.d.ts +4 -0
  93. package/dist/vendors/date-fns/locale/ru/index.d.ts +4 -0
  94. package/dist/vendors/react-day-picker/index.d.ts +8 -17
  95. package/dist/vendors/react-hook-form/index.d.ts +8 -15
  96. package/dist/vendors/tanstack/react-table/index.d.ts +12 -0
  97. package/dist/vendors/zod/index.d.ts +8 -9
  98. package/package.json +3 -2
  99. package/tailwind.preset.js +6 -2
  100. package/dist/AlertIcon-5B6AgZpe.js.map +0 -1
  101. package/dist/Field-COD9VbUX.js +0 -86
  102. package/dist/Field-COD9VbUX.js.map +0 -1
  103. package/dist/components/data-table/DataTable.stories.d.ts +0 -8
  104. package/dist/useBreakpoints-D8wKOvil.js +0 -103
  105. package/dist/useBreakpoints-D8wKOvil.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ import { TreeLine, TreeRow } from './treeModel';
2
+ import * as React from "react";
3
+ export type TableTreeLinesProps = {
4
+ /**
5
+ * Модель линий, по одному элементу на колонку отступа. Считается `flattenTree`.
6
+ * Длина массива задаёт глубину узла — отдельный проп `level` не нужен.
7
+ */
8
+ lines: TreeLine[];
9
+ /** Спуск от раскрывателя вниз, к первому потомку. Ставится у раскрытых узлов с потомками. */
10
+ descends?: boolean;
11
+ className?: string;
12
+ };
13
+ /**
14
+ * Линии связи для строки дерева или группы.
15
+ *
16
+ * Кладётся в ячейку с `position: relative` и `padding-left: treeCellPaddingLeft(level)` —
17
+ * обычно этим занимается `TableTreeCell`.
18
+ *
19
+ * Все линии — абсолютно позиционированные блоки в 1px, а не рамки контейнеров: уровни
20
+ * вложенности в таблице не образуют вложенных DOM-узлов, поэтому рисовать `border-left`
21
+ * на контейнере уровня попросту негде.
22
+ *
23
+ * Разметка повторяет модель один в один и размечена data-атрибутами: на обёртке лежит вся
24
+ * модель строки (`data-tree-lines="pass none end"`), на каждом элементе — его роль
25
+ * (`data-tree-line`) и номер колонки. Это делает отладку в DevTools прямой: видно не только
26
+ * то, что нарисовано, но и то, что было велено нарисовать.
27
+ *
28
+ * @example
29
+ * <TableCell className="relative" style={{ paddingLeft: treeCellPaddingLeft(row.level) }}>
30
+ * <TableTreeLines lines={row.lines} descends={row.descends} />
31
+ * {row.node.name}
32
+ * </TableCell>
33
+ */
34
+ export declare const TableTreeLines: {
35
+ ({ lines, descends, className }: TableTreeLinesProps): import("react/jsx-runtime").JSX.Element;
36
+ displayName: string;
37
+ };
38
+ export type TableTreeToggleProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
39
+ expanded: boolean;
40
+ };
41
+ /** Квадрат раскрытия ветки. Иконка и `aria-expanded` следуют за `expanded`. */
42
+ export declare const TableTreeToggle: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
43
+ expanded: boolean;
44
+ } & React.RefAttributes<HTMLButtonElement>>;
45
+ /**
46
+ * Распорка на месте раскрывателя у листьев.
47
+ *
48
+ * Нужна, чтобы подписи узлов с потомками и без выравнивались по одной вертикали.
49
+ * Отдельным компонентом, а не режимом `TableTreeToggle`, чтобы у листа не было
50
+ * ни кнопки, ни `aria-expanded`.
51
+ */
52
+ export declare const TableTreeSpacer: {
53
+ ({ className }: {
54
+ className?: string;
55
+ }): import("react/jsx-runtime").JSX.Element;
56
+ displayName: string;
57
+ };
58
+ /**
59
+ * Всё, что ячейка иерархии знает о строке: где она стоит и что у неё с потомками.
60
+ *
61
+ * Структурный тип, а не generic: ячейке безразличен сам узел, поэтому в неё проходит любой
62
+ * `TreeRow<T>` — и любой собранный вручную объект с этими пятью полями. Второе нужно там,
63
+ * где дерева в памяти нет: список пришёл плоским, с готовым `level`, а линии считаются
64
+ * `childTreeLines`.
65
+ *
66
+ * Инвариант: `lines.length === level`. Отступ берётся из `level`, а линии расставляются по
67
+ * индексам `lines` — при расхождении уголок промахнётся мимо отступа.
68
+ */
69
+ export type TableTreeCellRow = Pick<TreeRow<unknown>, "level" | "lines" | "descends" | "hasChildren" | "isExpanded">;
70
+ export type TableTreeCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {
71
+ /**
72
+ * Положение строки в иерархии: `level` — отступ, `lines` — линии связи, `descends` — спуск
73
+ * к первому потомку, `hasChildren` — раскрыватель либо распорка на его месте, `isExpanded` —
74
+ * знак в раскрывателе и `aria-expanded`.
75
+ */
76
+ row: TableTreeCellRow;
77
+ /** Клик по раскрывателю. Без него раскрыватель рисуется, но ничего не делает. */
78
+ onToggle?: React.MouseEventHandler<HTMLButtonElement>;
79
+ toggleLabel?: string;
80
+ };
81
+ /**
82
+ * Ячейка с отступом, линиями и раскрывателем — весь столбец иерархии целиком.
83
+ *
84
+ * Собирает три вещи, которые иначе пришлось бы согласовывать вручную в каждой таблице:
85
+ * `padding-left` по глубине, линии и раскрыватель либо распорку на его месте. Содержимое
86
+ * остаётся за потребителем — внутрь идёт что угодно, от подписи до бейджей.
87
+ *
88
+ * `align-top` не косметика: при переносе текста в соседних колонках содержимое, выровненное
89
+ * по центру, уедет вниз от коннектора, который привязан к первой строке.
90
+ *
91
+ * @example
92
+ * <TableTreeCell row={row} onToggle={() => toggle(row.node.id)}>
93
+ * {row.node.name}
94
+ * </TableTreeCell>
95
+ */
96
+ export declare const TableTreeCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & {
97
+ /**
98
+ * Положение строки в иерархии: `level` — отступ, `lines` — линии связи, `descends` — спуск
99
+ * к первому потомку, `hasChildren` — раскрыватель либо распорка на его месте, `isExpanded` —
100
+ * знак в раскрывателе и `aria-expanded`.
101
+ */
102
+ row: TableTreeCellRow;
103
+ /** Клик по раскрывателю. Без него раскрыватель рисуется, но ничего не делает. */
104
+ onToggle?: React.MouseEventHandler<HTMLButtonElement>;
105
+ toggleLabel?: string;
106
+ } & React.RefAttributes<HTMLTableCellElement>>;
@@ -0,0 +1,3 @@
1
+ export { TableTreeCell, TableTreeLines, TableTreeToggle, TableTreeSpacer, type TableTreeCellProps, type TableTreeCellRow, type TableTreeLinesProps, type TableTreeToggleProps } from './TableTree';
2
+ export { treeLineX, treeCellPaddingLeft, TREE_INDENT, TREE_LINE_OFFSET, TREE_TOGGLE, TREE_STUB, TREE_CONNECTOR_Y, TREE_OVERHANG, TREE_TOGGLE_MARGIN_TOP } from './treeGeometry';
3
+ export { flattenTree, childTreeLines, type TreeLine, type TreeRow, type FlattenTreeOptions } from './treeModel';
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Геометрия линий иерархии.
3
+ *
4
+ * Значения связаны между собой — менять их можно только согласованно, поэтому производные
5
+ * выражены формулами, а не числами.
6
+ *
7
+ * ```
8
+ * ┌────────────────────────────────────────┐
9
+ * │ ┌───┐ │
10
+ * │ │ − │ Родитель │
11
+ * │ └─┬─┘ │
12
+ * ├─────┼──────────────────────────────────┤ ← граница ячеек; линию продлевает TREE_OVERHANG
13
+ * │ │ ┌───┐ │
14
+ * │ └────┤ + │ Потомок │ ← TREE_CONNECTOR_Y (центр первой строки)
15
+ * │ └───┘ │
16
+ * └────────────────────────────────────────┘
17
+ *
18
+ * ├─────┤ TREE_LINE_OFFSET — до вертикали нулевого уровня
19
+ * ├──────┤ TREE_INDENT — шаг между вертикалями соседних уровней
20
+ * ├────┤ TREE_STUB — отвод до левого края раскрывателя
21
+ * ├───┤ TREE_TOGGLE — сторона квадрата, центр на своей вертикали
22
+ * ```
23
+ *
24
+ * Схема не в масштабе — важны отношения величин, а не пропорции на картинке.
25
+ */
26
+ /** Шаг отступа на один уровень вложенности. */
27
+ export declare const TREE_INDENT = 18;
28
+ /** Отступ от левого края ячейки до вертикали нулевой колонки. */
29
+ export declare const TREE_LINE_OFFSET = 13;
30
+ /**
31
+ * Сторона квадрата-раскрывателя. Центрируется ровно на вертикали своего уровня.
32
+ *
33
+ * Совпадает с чекбоксом (`size-4`): в одной строке они стоят рядом, и разный размер
34
+ * у двух одинаковых по смыслу квадратов читается как небрежность.
35
+ *
36
+ * Сверху ограничен `2 * TREE_LINE_OFFSET` — иначе `treeCellPaddingLeft(0)` уходит в минус,
37
+ * и раскрыватель корня вылезает за левый край ячейки. Практический потолок ниже:
38
+ * при стороне больше `TREE_INDENT` обнуляется `TREE_STUB` и отвод к узлу исчезает.
39
+ */
40
+ export declare const TREE_TOGGLE = 16;
41
+ /**
42
+ * Длина горизонтального отвода — от вертикали предка до левого края раскрывателя.
43
+ *
44
+ * Обязана равняться `TREE_INDENT - TREE_TOGGLE / 2`: раскрыватель смещён от своей вертикали
45
+ * влево на половину стороны, и при любом другом значении между отводом и квадратом
46
+ * остаётся щель либо отвод заезжает под квадрат.
47
+ */
48
+ export declare const TREE_STUB: number;
49
+ /**
50
+ * Вертикальная позиция коннектора — центр ПЕРВОЙ строки текста, а не середина ячейки.
51
+ *
52
+ * Это принципиально для строк переменной высоты: при `top: 50%` середина ячейки уезжает вниз
53
+ * от подписи, как только контент переносится, и уголок перестаёт указывать на узел.
54
+ */
55
+ export declare const TREE_CONNECTOR_Y: number;
56
+ /**
57
+ * Насколько линии вылезают за padding-box ячейки сверху и снизу.
58
+ *
59
+ * Нижняя граница ячейки лежит вне её padding-box, и без этого выноса вертикаль обрывалась бы
60
+ * на каждой границе — вместо сплошной линии получался пунктир.
61
+ */
62
+ export declare const TREE_OVERHANG = 1;
63
+ /**
64
+ * Отступ раскрывателя сверху, при котором его центр совпадает с коннектором.
65
+ *
66
+ * Раньше здесь стоял `mt-0.5`, подобранный под сторону 12px. Теперь это разность:
67
+ * содержимое ячейки начинается на `TREE_CELL_PADDING_TOP`, а центр квадрата должен
68
+ * попасть на `TREE_CONNECTOR_Y`. При достаточно крупном раскрывателе значение
69
+ * становится отрицательным — квадрат заходит в верхний паддинг, и это нормально.
70
+ */
71
+ export declare const TREE_TOGGLE_MARGIN_TOP: number;
72
+ /**
73
+ * Горизонтальная позиция вертикали для колонки отступа.
74
+ *
75
+ * @example
76
+ * treeLineX(0); // 13
77
+ * treeLineX(2); // 49
78
+ */
79
+ export declare const treeLineX: (column: number) => number;
80
+ /**
81
+ * Левый отступ ячейки, при котором раскрыватель встаёт по центру вертикали своего уровня.
82
+ *
83
+ * @example
84
+ * <TableCell style={{ paddingLeft: treeCellPaddingLeft(row.level) }}> // уровень 2 → 41px
85
+ */
86
+ export declare const treeCellPaddingLeft: (level: number) => number;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Модель строки дерева: что рисовать в каждой колонке отступа.
3
+ *
4
+ * Ровно эти четыре состояния использует классический вывод `tree` и почти все табличные
5
+ * гриды (AG Grid, TanStack Table, rc-tree) — набор проверен и закрывает все случаи:
6
+ *
7
+ * - `pass` — сквозная вертикаль `│`: ветка предка продолжается ниже этой строки;
8
+ * - `branch` — `├`: отвод к узлу, и у узла есть следующие соседи;
9
+ * - `end` — `└`: отвод к последнему соседу, вертикаль обрывается на уголке;
10
+ * - `none` — пусто: ветка предка закончилась выше.
11
+ *
12
+ * Ключевой инвариант: **индекс в массиве равен номеру колонки**, а `lines.length` равно
13
+ * глубине узла. `branch`/`end` встречается только в последней колонке, `pass`/`none` — только
14
+ * в предыдущих. Именно этот инвариант убирает класс ошибок «сдвиг на единицу»: раньше
15
+ * массив хранил флаги предков, и колонка `level - 1` управлялась флагом родителя, хотя
16
+ * должна была — признаком `isLast` самого узла. Сравнивать модель с картинкой теперь можно
17
+ * глазами: `["pass", "none", "end"]` читается как `│ └`.
18
+ */
19
+ export type TreeLine = "none" | "pass" | "branch" | "end";
20
+ /** Строка плоского списка со всем, что нужно для отрисовки узла дерева. */
21
+ export type TreeRow<T> = {
22
+ node: T;
23
+ /** Родительский узел, `null` у корней. */
24
+ parent: T | null;
25
+ /** Глубина, 0 — корень. Равна `lines.length`. */
26
+ level: number;
27
+ /** Позиция среди соседей. */
28
+ index: number;
29
+ /** Последний ли среди соседей — от этого зависит `└` вместо `├`. */
30
+ isLast: boolean;
31
+ hasChildren: boolean;
32
+ /** Раскрыт ли узел. У листьев всегда `false`. */
33
+ isExpanded: boolean;
34
+ /**
35
+ * Нужен ли спуск от раскрывателя вниз, к первому потомку.
36
+ *
37
+ * Вертикаль потомка начинается от его собственной строки, поэтому участок между
38
+ * раскрывателем и низом строки родителя рисует именно родитель.
39
+ */
40
+ descends: boolean;
41
+ lines: TreeLine[];
42
+ /** Индексы от корня: `[0, 2, 1]`. Годится как стабильный ключ и как «1.3.2» в интерфейсе. */
43
+ path: number[];
44
+ };
45
+ export type FlattenTreeOptions<T> = {
46
+ /**
47
+ * Потомки узла. Это функция поиска, а не имя поля: плоскому списку с `parentId` хватит
48
+ * индекса `Map<parentId, T[]>`, перекладывать данные в узлы с `children` не нужно.
49
+ */
50
+ getChildren: (node: T) => T[] | undefined;
51
+ /** Раскрыт ли узел. Свёрнутые не отдают потомков. По умолчанию раскрыты все. */
52
+ isExpanded?: (node: T) => boolean;
53
+ };
54
+ /**
55
+ * Линии потомка, выведенные из линий родителя.
56
+ *
57
+ * Весь алгоритм — в двух строчках: у предков уголок превращается в продолжение (`branch` →
58
+ * `pass`), а обрыв — в пустоту (`end` → `none`); своя колонка получает уголок по `isLast`.
59
+ * Экспортируется отдельно, чтобы линии можно было считать и без обхода дерева — например,
60
+ * для виртуализованного или подгружаемого списка, где полного дерева в памяти нет.
61
+ *
62
+ * Родительские линии в плоском списке удобно держать бегущим массивом `linesByLevel[level]`:
63
+ * в списке, упорядоченном как при выводе, родитель всегда встречается раньше потомка.
64
+ *
65
+ * @example
66
+ * childTreeLines(["pass", "branch"], false); // ["pass", "pass", "branch"]
67
+ * childTreeLines(["pass", "branch"], true); // ["pass", "pass", "end"]
68
+ */
69
+ export declare const childTreeLines: (parentLines: TreeLine[], isLast: boolean) => TreeLine[];
70
+ /**
71
+ * Разворачивает дерево в плоский список строк и попутно считает модель линий.
72
+ *
73
+ * Порядок — как при отображении: узел, затем его раскрытые потомки.
74
+ *
75
+ * @example
76
+ * const rows = flattenTree(nodes, {
77
+ * getChildren: (node) => node.children,
78
+ * isExpanded: (node) => expanded.has(node.id)
79
+ * });
80
+ *
81
+ * rows.map((row) => (
82
+ * <TableRow key={row.path.join(".")}>
83
+ * <TableTreeCell row={row} onToggle={() => toggle(row.node.id)}>{row.node.name}</TableTreeCell>
84
+ * </TableRow>
85
+ * ));
86
+ */
87
+ export declare function flattenTree<T>(roots: T[], options: FlattenTreeOptions<T>): TreeRow<T>[];
@@ -0,0 +1,2 @@
1
+ export * from './tree/index'
2
+ export {}
@@ -0,0 +1,19 @@
1
+ import { s as a, o as E, p as s, u as l, r, q as _, v as R, j as t, k as L, m as N, l as O, x as n, w as G, n as i, t as b } from "../../treeModel-BlPWVj4W.js";
2
+ export {
3
+ a as TREE_CONNECTOR_Y,
4
+ E as TREE_INDENT,
5
+ s as TREE_LINE_OFFSET,
6
+ l as TREE_OVERHANG,
7
+ r as TREE_STUB,
8
+ _ as TREE_TOGGLE,
9
+ R as TREE_TOGGLE_MARGIN_TOP,
10
+ t as TableTreeCell,
11
+ L as TableTreeLines,
12
+ N as TableTreeSpacer,
13
+ O as TableTreeToggle,
14
+ n as childTreeLines,
15
+ G as flattenTree,
16
+ i as treeCellPaddingLeft,
17
+ b as treeLineX
18
+ };
19
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,83 +1,56 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import * as l from "react";
3
- import { T as s } from "../index-BVqs-uqP.js";
4
- import { S as c } from "../ScrollShadowContainer-DdrnF8qU.js";
5
- const n = s({
6
- slots: {
7
- wrapper: "relative w-full overflow-x-auto",
8
- table: "w-full caption-bottom text-sm"
9
- }
10
- }), m = l.forwardRef(
11
- ({ className: e, ...a }, t) => {
12
- const r = n();
13
- return /* @__PURE__ */ o("div", { className: r.wrapper(), children: /* @__PURE__ */ o("table", { ref: t, className: r.table({ className: e }), ...a }) });
14
- }
15
- );
16
- m.displayName = "Table";
17
- const i = s({
18
- base: "border-secondary-border bg-primary-bg [&_tr]:border-b"
19
- }), p = l.forwardRef(
20
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("thead", { ref: t, className: i({ className: e }), ...a })
21
- );
22
- p.displayName = "TableHeader";
23
- const d = s({
24
- base: "[&_tr:last-child]:border-0"
25
- }), y = l.forwardRef(
26
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("tbody", { ref: t, className: d({ className: e }), ...a })
27
- );
28
- y.displayName = "TableBody";
29
- const f = s({
30
- base: "overflow-x-hidden"
31
- }), h = l.forwardRef(
32
- ({ className: e, containerClassName: a, shadowSize: t, ...r }, b) => /* @__PURE__ */ o(
33
- c,
34
- {
35
- className: f({ className: a }),
36
- shadowSize: t,
37
- children: /* @__PURE__ */ o("tbody", { ref: b, className: d({ className: e }), ...r })
38
- }
39
- )
40
- );
41
- h.displayName = "TableBodyContainer";
42
- const N = s({
43
- base: "border-t bg-primary/[0.03] font-medium [&>tr]:last:border-b-0"
44
- }), w = l.forwardRef(
45
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("tfoot", { ref: t, className: N({ className: e }), ...a })
46
- );
47
- w.displayName = "TableFooter";
48
- const T = s({
49
- base: "border-b border-secondary-border transition-colors hover:bg-alpha-high-97 data-[state=selected]:bg-alpha-high-95 data-[state=selected]:hover:bg-alpha-high-92"
50
- }), x = l.forwardRef(
51
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("tr", { ref: t, className: T({ className: e }), ...a })
52
- );
53
- x.displayName = "TableRow";
54
- const R = s({
55
- base: "h-10 px-3 text-left align-middle font-medium text-muted [&:has([role=checkbox])]:pr-0"
56
- }), S = l.forwardRef(
57
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("th", { ref: t, className: R({ className: e }), ...a })
58
- );
59
- S.displayName = "TableHead";
60
- const g = s({
61
- base: "px-3 py-2.5 align-middle [&:has([role=checkbox])]:pr-0"
62
- }), C = l.forwardRef(
63
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("td", { ref: t, className: g({ className: e }), ...a })
64
- );
65
- C.displayName = "TableCell";
66
- const u = s({
67
- base: "mt-4 text-sm text-muted"
68
- }), v = l.forwardRef(
69
- ({ className: e, ...a }, t) => /* @__PURE__ */ o("caption", { ref: t, className: u({ className: e }), ...a })
70
- );
71
- v.displayName = "TableCaption";
1
+ import { s, o as T, p as l, u as E, r as t, q as o, v as R, T as r, b as _, c as n, h as i, g as C, d as b, e as d, a as L, i as O, f as S, j as A, k as N, m as c, l as f, x as g, w as m, n as u, t as p } from "../treeModel-BlPWVj4W.js";
2
+ import { C as I, g as G, u as x } from "../useColumnResize-wjfEyBBg.js";
3
+ import { C as F, u as H } from "../useColumnReorder-BxVZQ_Y5.js";
4
+ import { T as W, a as h, b as k, o as w, t as z } from "../opaqueCell-SGaiyL54.js";
5
+ import { C as K, T as U, a as q, b as M, d as P, e as j, c as v, i as V } from "../TableFillHandle-C_yvCTSl.js";
6
+ import { STICKY_FOOTER as J, STICKY_HEADER as Q, stickyCellStyles as Z, stickyOffset as $ } from "./table/sticky.js";
72
7
  export {
73
- m as Table,
74
- y as TableBody,
75
- h as TableBodyContainer,
76
- v as TableCaption,
8
+ K as CELL_RANGE_EDGE,
9
+ F as COLUMN_KEY_ATTRIBUTE,
10
+ I as ColumnResizeSession,
11
+ J as STICKY_FOOTER,
12
+ Q as STICKY_HEADER,
13
+ W as TABLE_ROW_TINT,
14
+ h as TABLE_ROW_TINT_LAYERS,
15
+ k as TABLE_ROW_TINT_LAYERS_AFTER,
16
+ s as TREE_CONNECTOR_Y,
17
+ T as TREE_INDENT,
18
+ l as TREE_LINE_OFFSET,
19
+ E as TREE_OVERHANG,
20
+ t as TREE_STUB,
21
+ o as TREE_TOGGLE,
22
+ R as TREE_TOGGLE_MARGIN_TOP,
23
+ r as Table,
24
+ _ as TableBody,
25
+ n as TableBodyContainer,
26
+ i as TableCaption,
77
27
  C as TableCell,
78
- w as TableFooter,
79
- S as TableHead,
80
- p as TableHeader,
81
- x as TableRow
28
+ U as TableFillHandle,
29
+ b as TableFooter,
30
+ d as TableHead,
31
+ L as TableHeader,
32
+ O as TableResizeHandle,
33
+ S as TableRow,
34
+ A as TableTreeCell,
35
+ N as TableTreeLines,
36
+ c as TableTreeSpacer,
37
+ f as TableTreeToggle,
38
+ q as cellEditorStyles,
39
+ M as cellRange,
40
+ P as cellRangeEdges,
41
+ j as cellRangeStyle,
42
+ v as cellStateStyles,
43
+ g as childTreeLines,
44
+ m as flattenTree,
45
+ G as getColumnAutoFitWidth,
46
+ V as inCellRange,
47
+ w as opaqueCellStyles,
48
+ Z as stickyCellStyles,
49
+ $ as stickyOffset,
50
+ z as tableRowTints,
51
+ u as treeCellPaddingLeft,
52
+ p as treeLineX,
53
+ H as useColumnReorder,
54
+ x as useColumnResize
82
55
  };
83
56
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ScrollShadowContainer } from \"../scroll-shadow-container\";\nimport { ScrollShadowContainerProps } from \"../scroll-shadow-container/ScrollShadowContainer\";\n\nconst tableStyles = tv({\n\tslots: {\n\t\twrapper: \"relative w-full overflow-x-auto\",\n\t\ttable: \"w-full caption-bottom text-sm\"\n\t}\n});\n\nexport const Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n\t({ className, ...props }, ref) => {\n\t\tconst styles = tableStyles();\n\n\t\treturn (\n\t\t\t<div className={styles.wrapper()}>\n\t\t\t\t<table ref={ref} className={styles.table({ className })} {...props} />\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nTable.displayName = \"Table\";\n\nconst tableHeaderStyles = tv({\n\tbase: \"border-secondary-border bg-primary-bg [&_tr]:border-b\"\n});\n\nexport const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n\t({ className, ...props }, ref) => <thead ref={ref} className={tableHeaderStyles({ className })} {...props} />\n);\n\nTableHeader.displayName = \"TableHeader\";\n\nconst tableBodyStyles = tv({\n\tbase: \"[&_tr:last-child]:border-0\"\n});\n\nexport const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n\t({ className, ...props }, ref) => <tbody ref={ref} className={tableBodyStyles({ className })} {...props} />\n);\n\nTableBody.displayName = \"TableBody\";\n\nconst tableBodyContainerStyles = tv({\n\tbase: \"overflow-x-hidden\"\n});\n\nexport type TableBodyContainerProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n\tcontainerClassName?: string;\n\tshadowSize?: ScrollShadowContainerProps[\"shadowSize\"];\n};\n\nexport const TableBodyContainer = React.forwardRef<HTMLTableSectionElement, TableBodyContainerProps>(\n\t({ className, containerClassName, shadowSize, ...props }, ref) => (\n\t\t<ScrollShadowContainer\n\t\t\tclassName={tableBodyContainerStyles({ className: containerClassName })}\n\t\t\tshadowSize={shadowSize}\n\t\t>\n\t\t\t<tbody ref={ref} className={tableBodyStyles({ className })} {...props} />\n\t\t</ScrollShadowContainer>\n\t)\n);\n\nTableBodyContainer.displayName = \"TableBodyContainer\";\n\nconst tableFooterStyles = tv({\n\tbase: \"border-t bg-primary/[0.03] font-medium [&>tr]:last:border-b-0\"\n});\n\nexport const TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n\t({ className, ...props }, ref) => <tfoot ref={ref} className={tableFooterStyles({ className })} {...props} />\n);\n\nTableFooter.displayName = \"TableFooter\";\n\nconst tableRowStyles = tv({\n\tbase: \"border-b border-secondary-border transition-colors hover:bg-alpha-high-97 data-[state=selected]:bg-alpha-high-95 data-[state=selected]:hover:bg-alpha-high-92\"\n});\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n\t({ className, ...props }, ref) => <tr ref={ref} className={tableRowStyles({ className })} {...props} />\n);\n\nTableRow.displayName = \"TableRow\";\n\nconst tableHeadStyles = tv({\n\tbase: \"h-10 px-3 text-left align-middle font-medium text-muted [&:has([role=checkbox])]:pr-0\"\n});\n\nexport const TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n\t({ className, ...props }, ref) => <th ref={ref} className={tableHeadStyles({ className })} {...props} />\n);\n\nTableHead.displayName = \"TableHead\";\n\nconst tableCellStyles = tv({\n\tbase: \"px-3 py-2.5 align-middle [&:has([role=checkbox])]:pr-0\"\n});\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n\t({ className, ...props }, ref) => <td ref={ref} className={tableCellStyles({ className })} {...props} />\n);\n\nTableCell.displayName = \"TableCell\";\n\nconst tableCaptionStyles = tv({\n\tbase: \"mt-4 text-sm text-muted\"\n});\n\nexport const TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n\t({ className, ...props }, ref) => <caption ref={ref} className={tableCaptionStyles({ className })} {...props} />\n);\n\nTableCaption.displayName = \"TableCaption\";\n"],"names":["tableStyles","tv","Table","React","className","props","ref","styles","tableHeaderStyles","TableHeader","jsx","tableBodyStyles","TableBody","tableBodyContainerStyles","TableBodyContainer","containerClassName","shadowSize","ScrollShadowContainer","tableFooterStyles","TableFooter","tableRowStyles","TableRow","tableHeadStyles","TableHead","tableCellStyles","TableCell","tableCaptionStyles","TableCaption"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as C, jsxs as q } from "react/jsx-runtime";
2
- import { u as z, S as H } from "../SearchSelectTag-DFCX9zT1.js";
2
+ import { u as z, S as H } from "../SearchSelectTag-CA7Ie3Nx.js";
3
3
  import { u as J } from "../useItemsKeyboardNavigation-CmeOR30y.js";
4
4
  import M, { useState as k, useRef as V, useCallback as r } from "react";
5
5
  import { T as S } from "../index-BVqs-uqP.js";
@@ -50,7 +50,7 @@ const d = x(void 0), I = ({ children: r, focus: o = "high" }) => /* @__PURE__ */
50
50
  );
51
51
  B.displayName = "Toolbar";
52
52
  const p = n({
53
- base: "group inline-flex items-center justify-center gap-1.5 rounded-sm p-1.5 focus-visible:shadow-focus focus-visible:outline-none",
53
+ base: "group inline-flex items-center justify-center gap-1.5 rounded-sm p-1.5 focus-visible:shadow-focus focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
54
54
  variants: {
55
55
  focus: {
56
56
  low: "hover:bg-secondary-bg-hover",
@@ -119,7 +119,6 @@ const _ = n({
119
119
  z.displayName = b.displayName;
120
120
  const A = n({
121
121
  extend: p,
122
- base: "disabled:pointer-events-none disabled:opacity-50",
123
122
  variants: {
124
123
  focus: {
125
124
  low: "data-[state=on]:bg-primary-bg-hover",
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sources":["../../src/components/toolbar/ToolbarContext.tsx","../../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from \"react\";\n\ninterface ToolbarContextValue {\n\tfocus: \"high\" | \"low\";\n}\n\nconst ToolbarContext = createContext<ToolbarContextValue | undefined>(undefined);\n\nexport interface ToolbarProviderProps {\n\tchildren: ReactNode;\n\tfocus?: \"high\" | \"low\";\n}\n\nexport const ToolbarProvider: React.FC<ToolbarProviderProps> = ({ children, focus = \"high\" }) => {\n\treturn <ToolbarContext.Provider value={{ focus }}>{children}</ToolbarContext.Provider>;\n};\n\nexport const useToolbarContext = (): ToolbarContextValue => {\n\tconst context = useContext(ToolbarContext);\n\n\tif (context === undefined) {\n\t\tthrow new Error(\"useToolbarContext должен использоваться внутри ToolbarProvider\");\n\t}\n\n\treturn context;\n};\n","import * as ToolbarPrimitive from \"@radix-ui/react-toolbar\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Divider } from \"../divider/Divider\";\nimport { Icon } from \"../icon\";\nimport { ChevronDown, LucideIcon } from \"lucide-react\";\nimport { ScrollArea } from \"../scroll-area/ScrollArea\";\nimport { ToolbarProvider, ToolbarProviderProps, useToolbarContext } from \"./ToolbarContext\";\n\nconst toolbarStyles = tv({\n\tslots: {\n\t\twrapper: \"flex items-center gap-1 p-1.5 lg:rounded-lg lg:p-1\",\n\t\tscrollbar: \"h-1.5 border-t-0 px-1.5\",\n\t\tthumb: \"\",\n\t\tscrollarea: \"lg:rounded-lg\"\n\t},\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: {\n\t\t\t\twrapper: \"border border-secondary-border bg-secondary-bg\",\n\t\t\t\tscrollarea: \"bg-secondary-bg lg:shadow-soft-sm\",\n\t\t\t\tthumb: \"bg-primary-border\"\n\t\t\t},\n\t\t\thigh: {\n\t\t\t\twrapper: \"bg-inverse-secondary-bg\",\n\t\t\t\tscrollarea: \"bg-inverse-secondary-bg lg:shadow-hard-base\",\n\t\t\t\tthumb: \"bg-inverse-active\"\n\t\t\t}\n\t\t}\n\t}\n});\n\nexport type ToolbarProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Root> &\n\tPick<ToolbarProviderProps, \"focus\">;\n\nexport const Toolbar = React.forwardRef<React.ElementRef<typeof ToolbarPrimitive.Root>, ToolbarProps>(\n\t({ className, focus = \"high\", ...props }, ref) => {\n\t\tconst styles = toolbarStyles();\n\n\t\treturn (\n\t\t\t<ToolbarProvider focus={focus}>\n\t\t\t\t<ScrollArea\n\t\t\t\t\ttype=\"always\"\n\t\t\t\t\tthumbClassName={styles.thumb({ focus })}\n\t\t\t\t\tscrollbarClassName={styles.scrollbar()}\n\t\t\t\t\tclassName={styles.scrollarea({ focus })}\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t>\n\t\t\t\t\t<ToolbarPrimitive.Root ref={ref} className={styles.wrapper({ className, focus })} {...props} />\n\t\t\t\t</ScrollArea>\n\t\t\t</ToolbarProvider>\n\t\t);\n\t}\n);\n\nToolbar.displayName = \"Toolbar\";\n\nconst toolbarButtonStyles = tv({\n\tbase: \"group inline-flex items-center justify-center gap-1.5 rounded-sm p-1.5 focus-visible:shadow-focus focus-visible:outline-none\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"hover:bg-secondary-bg-hover\",\n\t\t\thigh: \"hover:bg-inverse-hover\"\n\t\t}\n\t}\n});\n\nexport type ToolbarButtonProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarButton>;\n\nexport const ToolbarButton = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tToolbarButtonProps\n>(({ className, ...props }, ref) => {\n\tconst { focus } = useToolbarContext();\n\tconst styles = toolbarButtonStyles({ className, focus });\n\treturn <ToolbarPrimitive.ToolbarButton ref={ref} className={styles} {...props} />;\n});\n\nToolbarButton.displayName = \"ToolbarButton\";\n\nconst toolbarIconStyles = tv({\n\tbase: \"h-4 w-4\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg group-hover:text-muted\",\n\t\t\thigh: \"stroke-[1.5px] text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\nexport type ToolbarIconProps = React.ComponentPropsWithoutRef<typeof Icon>;\n\nexport const ToolbarIcon = React.forwardRef<React.ElementRef<typeof Icon>, ToolbarIconProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\treturn <Icon ref={ref} className={toolbarIconStyles({ className, focus })} {...props} />;\n\t}\n);\n\nToolbarIcon.displayName = \"ToolbarIcon\";\n\nconst toolbarTextStyles = tv({\n\tbase: \"text-base leading-none\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg group-hover:text-muted\",\n\t\t\thigh: \"text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\nexport type ToolbarTextProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const ToolbarText = React.forwardRef<HTMLDivElement, PropsWithChildren<ToolbarTextProps>>(\n\t({ className, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\treturn <div ref={ref} className={toolbarTextStyles({ className, focus })} {...props} />;\n\t}\n);\n\nToolbarText.displayName = \"ToolbarText\";\n\nconst toolbarSubTriggerStyles = tv({\n\tbase: \"\",\n\tslots: {\n\t\ticon: \"h-2 w-2 stroke-[3px]\"\n\t},\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg group-hover:text-muted\",\n\t\t\thigh: \"text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\nexport type ToolbarSubTriggerProps = Omit<React.ComponentPropsWithoutRef<typeof Icon>, \"icon\"> & {\n\ticon?: LucideIcon;\n};\n\nexport const ToolbarSubTrigger = React.forwardRef<React.ElementRef<typeof Icon>, ToolbarSubTriggerProps>(\n\t({ className, icon, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\tconst styles = toolbarSubTriggerStyles();\n\t\treturn (\n\t\t\t<span className={styles.base({ className, focus })}>\n\t\t\t\t<Icon icon={icon || ChevronDown} ref={ref} className={styles.icon({ focus })} {...props} />\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nToolbarSubTrigger.displayName = \"ToolbarSubTrigger\";\n\nconst toolbarToggleGroupStyles = tv({\n\tbase: \"flex items-center gap-1\"\n});\n\nexport type ToolbarToggleGroupProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToggleGroup>;\n\nexport const ToolbarToggleGroup = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToggleGroup>,\n\tToolbarToggleGroupProps\n>(({ className, ...props }, ref) => {\n\tconst styles = toolbarToggleGroupStyles({ className });\n\treturn <ToolbarPrimitive.ToggleGroup ref={ref} className={styles} {...props} />;\n});\nToolbarToggleGroup.displayName = ToolbarPrimitive.ToggleGroup.displayName;\n\nconst toolbarToggleStyles = tv({\n\textend: toolbarButtonStyles,\n\tbase: \"disabled:pointer-events-none disabled:opacity-50\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"data-[state=on]:bg-primary-bg-hover\",\n\t\t\thigh: \"data-[state=on]:bg-inverse-active\"\n\t\t}\n\t}\n});\n\nexport type ToolbarToggleItemProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarToggleItem> & {\n\tchildren: React.ReactNode;\n};\n\nexport const ToolbarToggleItem = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarToggleItem>,\n\tToolbarToggleItemProps\n>(({ className, children, ...props }, ref) => {\n\tconst { focus } = useToolbarContext();\n\tconst styles = toolbarToggleStyles({ className, focus });\n\n\treturn (\n\t\t<ToolbarPrimitive.ToolbarToggleItem ref={ref} className={styles} {...props}>\n\t\t\t{children}\n\t\t</ToolbarPrimitive.ToolbarToggleItem>\n\t);\n});\n\nToolbarToggleItem.displayName = \"ToolbarToggleItem\";\n\nconst toolbarDividerStyles = tv({\n\tbase: \"h-5 w-px\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"bg-secondary-border\",\n\t\t\thigh: \"bg-inverse-border\"\n\t\t}\n\t}\n});\n\nexport type ToolbarSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const ToolbarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, ToolbarSeparatorProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\tconst styles = toolbarDividerStyles({ className, focus });\n\t\treturn (\n\t\t\t<ToolbarPrimitive.ToolbarSeparator asChild data-orientation=\"vertical\">\n\t\t\t\t<Divider ref={ref} orientation=\"vertical\" className={styles} {...props} />\n\t\t\t</ToolbarPrimitive.ToolbarSeparator>\n\t\t);\n\t}\n);\n\nToolbarSeparator.displayName = \"ToolbarSeparator\";\n\nconst toolbarTriggerChevronStyles = tv({\n\tslots: {\n\t\twrapper: \"\",\n\t\tsubtrigger: \"py-0.5\"\n\t},\n\tvariants: {\n\t\tsub: {\n\t\t\ttrue: { wrapper: \"-ml-0.5 px-0.5 py-2\" }\n\t\t}\n\t}\n});\n\nexport type ToolbarTriggerChevronProps = ToolbarTriggerProps & {\n\tsub?: boolean;\n};\n\nexport const ToolbarTriggerChevron = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tToolbarTriggerChevronProps\n>(({ className, children, sub, ...props }, ref) => {\n\tconst styles = toolbarTriggerChevronStyles();\n\n\treturn (\n\t\t<ToolbarTrigger ref={ref} data-stick-left className={styles.wrapper({ className, sub })} {...props}>\n\t\t\t{children}\n\t\t\t<ToolbarSubTrigger className={styles.subtrigger()} />\n\t\t</ToolbarTrigger>\n\t);\n});\n\nToolbarTriggerChevron.displayName = \"ToolbarTriggerChevron \";\n\nconst toolbarTriggerStyles = tv({\n\tbase: \"\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"data-[state=open]:bg-primary-bg-hover\",\n\t\t\thigh: \"data-[state=open]:bg-inverse-active\"\n\t\t}\n\t}\n});\n\nexport type ToolbarTriggerProps = ToolbarButtonProps & {\n\t\"data-state\"?: \"open\" | \"closed\";\n};\n\nexport const ToolbarTrigger = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tToolbarTriggerProps\n>(({ className, children, ...props }, ref) => {\n\tconst { focus } = useToolbarContext();\n\n\treturn (\n\t\t<ToolbarButton ref={ref} data-stick-left className={toolbarTriggerStyles({ className, focus })} {...props}>\n\t\t\t{children}\n\t\t</ToolbarButton>\n\t);\n});\n\nToolbarTrigger.displayName = \"ToolbarTrigger\";\n"],"names":["ToolbarContext","createContext","ToolbarProvider","children","focus","jsx","useToolbarContext","context","useContext","toolbarStyles","tv","Toolbar","React","className","props","ref","styles","ScrollArea","ToolbarPrimitive.Root","toolbarButtonStyles","ToolbarButton","ToolbarPrimitive.ToolbarButton","toolbarIconStyles","ToolbarIcon","Icon","toolbarTextStyles","ToolbarText","toolbarSubTriggerStyles","ToolbarSubTrigger","icon","ChevronDown","toolbarToggleGroupStyles","ToolbarToggleGroup","ToolbarPrimitive.ToggleGroup","toolbarToggleStyles","ToolbarToggleItem","ToolbarPrimitive.ToolbarToggleItem","toolbarDividerStyles","ToolbarSeparator","ToolbarPrimitive.ToolbarSeparator","Divider","toolbarTriggerChevronStyles","ToolbarTriggerChevron","sub","jsxs","ToolbarTrigger","toolbarTriggerStyles"],"mappings":"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"}
1
+ {"version":3,"file":"toolbar.js","sources":["../../src/components/toolbar/ToolbarContext.tsx","../../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from \"react\";\n\ninterface ToolbarContextValue {\n\tfocus: \"high\" | \"low\";\n}\n\nconst ToolbarContext = createContext<ToolbarContextValue | undefined>(undefined);\n\nexport interface ToolbarProviderProps {\n\tchildren: ReactNode;\n\tfocus?: \"high\" | \"low\";\n}\n\nexport const ToolbarProvider: React.FC<ToolbarProviderProps> = ({ children, focus = \"high\" }) => {\n\treturn <ToolbarContext.Provider value={{ focus }}>{children}</ToolbarContext.Provider>;\n};\n\nexport const useToolbarContext = (): ToolbarContextValue => {\n\tconst context = useContext(ToolbarContext);\n\n\tif (context === undefined) {\n\t\tthrow new Error(\"useToolbarContext должен использоваться внутри ToolbarProvider\");\n\t}\n\n\treturn context;\n};\n","import * as ToolbarPrimitive from \"@radix-ui/react-toolbar\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Divider } from \"../divider/Divider\";\nimport { Icon } from \"../icon\";\nimport { ChevronDown, LucideIcon } from \"lucide-react\";\nimport { ScrollArea } from \"../scroll-area/ScrollArea\";\nimport { ToolbarProvider, ToolbarProviderProps, useToolbarContext } from \"./ToolbarContext\";\n\nconst toolbarStyles = tv({\n\tslots: {\n\t\twrapper: \"flex items-center gap-1 p-1.5 lg:rounded-lg lg:p-1\",\n\t\tscrollbar: \"h-1.5 border-t-0 px-1.5\",\n\t\tthumb: \"\",\n\t\tscrollarea: \"lg:rounded-lg\"\n\t},\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: {\n\t\t\t\twrapper: \"border border-secondary-border bg-secondary-bg\",\n\t\t\t\tscrollarea: \"bg-secondary-bg lg:shadow-soft-sm\",\n\t\t\t\tthumb: \"bg-primary-border\"\n\t\t\t},\n\t\t\thigh: {\n\t\t\t\twrapper: \"bg-inverse-secondary-bg\",\n\t\t\t\tscrollarea: \"bg-inverse-secondary-bg lg:shadow-hard-base\",\n\t\t\t\tthumb: \"bg-inverse-active\"\n\t\t\t}\n\t\t}\n\t}\n});\n\nexport type ToolbarProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Root> &\n\tPick<ToolbarProviderProps, \"focus\">;\n\nexport const Toolbar = React.forwardRef<React.ElementRef<typeof ToolbarPrimitive.Root>, ToolbarProps>(\n\t({ className, focus = \"high\", ...props }, ref) => {\n\t\tconst styles = toolbarStyles();\n\n\t\treturn (\n\t\t\t<ToolbarProvider focus={focus}>\n\t\t\t\t<ScrollArea\n\t\t\t\t\ttype=\"always\"\n\t\t\t\t\tthumbClassName={styles.thumb({ focus })}\n\t\t\t\t\tscrollbarClassName={styles.scrollbar()}\n\t\t\t\t\tclassName={styles.scrollarea({ focus })}\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t>\n\t\t\t\t\t<ToolbarPrimitive.Root ref={ref} className={styles.wrapper({ className, focus })} {...props} />\n\t\t\t\t</ScrollArea>\n\t\t\t</ToolbarProvider>\n\t\t);\n\t}\n);\n\nToolbar.displayName = \"Toolbar\";\n\nconst toolbarButtonStyles = tv({\n\tbase: \"group inline-flex items-center justify-center gap-1.5 rounded-sm p-1.5 focus-visible:shadow-focus focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"hover:bg-secondary-bg-hover\",\n\t\t\thigh: \"hover:bg-inverse-hover\"\n\t\t}\n\t}\n});\n\nexport type ToolbarButtonProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarButton>;\n\nexport const ToolbarButton = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tToolbarButtonProps\n>(({ className, ...props }, ref) => {\n\tconst { focus } = useToolbarContext();\n\tconst styles = toolbarButtonStyles({ className, focus });\n\treturn <ToolbarPrimitive.ToolbarButton ref={ref} className={styles} {...props} />;\n});\n\nToolbarButton.displayName = \"ToolbarButton\";\n\nconst toolbarIconStyles = tv({\n\tbase: \"h-4 w-4\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg group-hover:text-muted\",\n\t\t\thigh: \"stroke-[1.5px] text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\nexport type ToolbarIconProps = React.ComponentPropsWithoutRef<typeof Icon>;\n\nexport const ToolbarIcon = React.forwardRef<React.ElementRef<typeof Icon>, ToolbarIconProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\treturn <Icon ref={ref} className={toolbarIconStyles({ className, focus })} {...props} />;\n\t}\n);\n\nToolbarIcon.displayName = \"ToolbarIcon\";\n\nconst toolbarTextStyles = tv({\n\tbase: \"text-base leading-none\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg group-hover:text-muted\",\n\t\t\thigh: \"text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\nexport type ToolbarTextProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const ToolbarText = React.forwardRef<HTMLDivElement, PropsWithChildren<ToolbarTextProps>>(\n\t({ className, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\treturn <div ref={ref} className={toolbarTextStyles({ className, focus })} {...props} />;\n\t}\n);\n\nToolbarText.displayName = \"ToolbarText\";\n\nconst toolbarSubTriggerStyles = tv({\n\tbase: \"\",\n\tslots: {\n\t\ticon: \"h-2 w-2 stroke-[3px]\"\n\t},\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg group-hover:text-muted\",\n\t\t\thigh: \"text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\nexport type ToolbarSubTriggerProps = Omit<React.ComponentPropsWithoutRef<typeof Icon>, \"icon\"> & {\n\ticon?: LucideIcon;\n};\n\nexport const ToolbarSubTrigger = React.forwardRef<React.ElementRef<typeof Icon>, ToolbarSubTriggerProps>(\n\t({ className, icon, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\tconst styles = toolbarSubTriggerStyles();\n\t\treturn (\n\t\t\t<span className={styles.base({ className, focus })}>\n\t\t\t\t<Icon icon={icon || ChevronDown} ref={ref} className={styles.icon({ focus })} {...props} />\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nToolbarSubTrigger.displayName = \"ToolbarSubTrigger\";\n\nconst toolbarToggleGroupStyles = tv({\n\tbase: \"flex items-center gap-1\"\n});\n\nexport type ToolbarToggleGroupProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToggleGroup>;\n\nexport const ToolbarToggleGroup = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToggleGroup>,\n\tToolbarToggleGroupProps\n>(({ className, ...props }, ref) => {\n\tconst styles = toolbarToggleGroupStyles({ className });\n\treturn <ToolbarPrimitive.ToggleGroup ref={ref} className={styles} {...props} />;\n});\nToolbarToggleGroup.displayName = ToolbarPrimitive.ToggleGroup.displayName;\n\nconst toolbarToggleStyles = tv({\n\textend: toolbarButtonStyles,\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"data-[state=on]:bg-primary-bg-hover\",\n\t\t\thigh: \"data-[state=on]:bg-inverse-active\"\n\t\t}\n\t}\n});\n\nexport type ToolbarToggleItemProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarToggleItem> & {\n\tchildren: React.ReactNode;\n};\n\nexport const ToolbarToggleItem = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarToggleItem>,\n\tToolbarToggleItemProps\n>(({ className, children, ...props }, ref) => {\n\tconst { focus } = useToolbarContext();\n\tconst styles = toolbarToggleStyles({ className, focus });\n\n\treturn (\n\t\t<ToolbarPrimitive.ToolbarToggleItem ref={ref} className={styles} {...props}>\n\t\t\t{children}\n\t\t</ToolbarPrimitive.ToolbarToggleItem>\n\t);\n});\n\nToolbarToggleItem.displayName = \"ToolbarToggleItem\";\n\nconst toolbarDividerStyles = tv({\n\tbase: \"h-5 w-px\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"bg-secondary-border\",\n\t\t\thigh: \"bg-inverse-border\"\n\t\t}\n\t}\n});\n\nexport type ToolbarSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const ToolbarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, ToolbarSeparatorProps>(\n\t({ className, ...props }, ref) => {\n\t\tconst { focus } = useToolbarContext();\n\t\tconst styles = toolbarDividerStyles({ className, focus });\n\t\treturn (\n\t\t\t<ToolbarPrimitive.ToolbarSeparator asChild data-orientation=\"vertical\">\n\t\t\t\t<Divider ref={ref} orientation=\"vertical\" className={styles} {...props} />\n\t\t\t</ToolbarPrimitive.ToolbarSeparator>\n\t\t);\n\t}\n);\n\nToolbarSeparator.displayName = \"ToolbarSeparator\";\n\nconst toolbarTriggerChevronStyles = tv({\n\tslots: {\n\t\twrapper: \"\",\n\t\tsubtrigger: \"py-0.5\"\n\t},\n\tvariants: {\n\t\tsub: {\n\t\t\ttrue: { wrapper: \"-ml-0.5 px-0.5 py-2\" }\n\t\t}\n\t}\n});\n\nexport type ToolbarTriggerChevronProps = ToolbarTriggerProps & {\n\tsub?: boolean;\n};\n\nexport const ToolbarTriggerChevron = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tToolbarTriggerChevronProps\n>(({ className, children, sub, ...props }, ref) => {\n\tconst styles = toolbarTriggerChevronStyles();\n\n\treturn (\n\t\t<ToolbarTrigger ref={ref} data-stick-left className={styles.wrapper({ className, sub })} {...props}>\n\t\t\t{children}\n\t\t\t<ToolbarSubTrigger className={styles.subtrigger()} />\n\t\t</ToolbarTrigger>\n\t);\n});\n\nToolbarTriggerChevron.displayName = \"ToolbarTriggerChevron \";\n\nconst toolbarTriggerStyles = tv({\n\tbase: \"\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"data-[state=open]:bg-primary-bg-hover\",\n\t\t\thigh: \"data-[state=open]:bg-inverse-active\"\n\t\t}\n\t}\n});\n\nexport type ToolbarTriggerProps = ToolbarButtonProps & {\n\t\"data-state\"?: \"open\" | \"closed\";\n};\n\nexport const ToolbarTrigger = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tToolbarTriggerProps\n>(({ className, children, ...props }, ref) => {\n\tconst { focus } = useToolbarContext();\n\n\treturn (\n\t\t<ToolbarButton ref={ref} data-stick-left className={toolbarTriggerStyles({ className, focus })} {...props}>\n\t\t\t{children}\n\t\t</ToolbarButton>\n\t);\n});\n\nToolbarTrigger.displayName = \"ToolbarTrigger\";\n"],"names":["ToolbarContext","createContext","ToolbarProvider","children","focus","jsx","useToolbarContext","context","useContext","toolbarStyles","tv","Toolbar","React","className","props","ref","styles","ScrollArea","ToolbarPrimitive.Root","toolbarButtonStyles","ToolbarButton","ToolbarPrimitive.ToolbarButton","toolbarIconStyles","ToolbarIcon","Icon","toolbarTextStyles","ToolbarText","toolbarSubTriggerStyles","ToolbarSubTrigger","icon","ChevronDown","toolbarToggleGroupStyles","ToolbarToggleGroup","ToolbarPrimitive.ToggleGroup","toolbarToggleStyles","ToolbarToggleItem","ToolbarPrimitive.ToolbarToggleItem","toolbarDividerStyles","ToolbarSeparator","ToolbarPrimitive.ToolbarSeparator","Divider","toolbarTriggerChevronStyles","ToolbarTriggerChevron","sub","jsxs","ToolbarTrigger","toolbarTriggerStyles"],"mappings":"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"}
package/dist/hooks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { u as a } from "./useItemsKeyboardNavigation-CmeOR30y.js";
2
- import { g as o, f as r, d as t, b as I, a as i, e as m, u as p, c as b } from "./useBreakpoints-D8wKOvil.js";
2
+ import { g as o, f as r, d as t, b as I, a as i, e as m, u as p, c as b } from "./useBreakpoints-DHvp74UL.js";
3
3
  export {
4
4
  o as useActiveBreakpoint,
5
5
  r as useBreakpoint,