@tensor_1/react 2.0.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 (89) hide show
  1. package/dist/chart.cjs +127 -0
  2. package/dist/chart.d.cts +24 -0
  3. package/dist/chart.d.ts +3 -0
  4. package/dist/chart.js +5 -0
  5. package/dist/components/Alert.d.ts +13 -0
  6. package/dist/components/Alert.js +14 -0
  7. package/dist/components/AppShell.d.ts +12 -0
  8. package/dist/components/AppShell.js +12 -0
  9. package/dist/components/Avatar.d.ts +30 -0
  10. package/dist/components/Avatar.js +26 -0
  11. package/dist/components/Button.d.ts +18 -0
  12. package/dist/components/Button.js +30 -0
  13. package/dist/components/Card.d.ts +13 -0
  14. package/dist/components/Card.js +19 -0
  15. package/dist/components/Chart.d.ts +24 -0
  16. package/dist/components/Chart.js +83 -0
  17. package/dist/components/Checkbox.d.ts +10 -0
  18. package/dist/components/Checkbox.js +35 -0
  19. package/dist/components/CommandPalette.d.ts +30 -0
  20. package/dist/components/CommandPalette.js +26 -0
  21. package/dist/components/Comments.d.ts +19 -0
  22. package/dist/components/Comments.js +22 -0
  23. package/dist/components/DetailLayout.d.ts +16 -0
  24. package/dist/components/DetailLayout.js +11 -0
  25. package/dist/components/Drawer.d.ts +14 -0
  26. package/dist/components/Drawer.js +27 -0
  27. package/dist/components/Field.d.ts +16 -0
  28. package/dist/components/Field.js +14 -0
  29. package/dist/components/Input.d.ts +18 -0
  30. package/dist/components/Input.js +38 -0
  31. package/dist/components/Kanban.d.ts +21 -0
  32. package/dist/components/Kanban.js +26 -0
  33. package/dist/components/Label.d.ts +13 -0
  34. package/dist/components/Label.js +12 -0
  35. package/dist/components/List.d.ts +21 -0
  36. package/dist/components/List.js +21 -0
  37. package/dist/components/Modal.d.ts +15 -0
  38. package/dist/components/Modal.js +19 -0
  39. package/dist/components/PageHeader.d.ts +18 -0
  40. package/dist/components/PageHeader.js +15 -0
  41. package/dist/components/Pagination.d.ts +11 -0
  42. package/dist/components/Pagination.js +53 -0
  43. package/dist/components/Peek.d.ts +17 -0
  44. package/dist/components/Peek.js +34 -0
  45. package/dist/components/Popover.d.ts +18 -0
  46. package/dist/components/Popover.js +9 -0
  47. package/dist/components/Progress.d.ts +14 -0
  48. package/dist/components/Progress.js +20 -0
  49. package/dist/components/Prose.d.ts +21 -0
  50. package/dist/components/Prose.js +15 -0
  51. package/dist/components/Radio.d.ts +14 -0
  52. package/dist/components/Radio.js +18 -0
  53. package/dist/components/Select.d.ts +9 -0
  54. package/dist/components/Select.js +17 -0
  55. package/dist/components/Sidebar.d.ts +39 -0
  56. package/dist/components/Sidebar.js +89 -0
  57. package/dist/components/Spinner.d.ts +10 -0
  58. package/dist/components/Spinner.js +16 -0
  59. package/dist/components/Stat.d.ts +21 -0
  60. package/dist/components/Stat.js +18 -0
  61. package/dist/components/States.d.ts +38 -0
  62. package/dist/components/States.js +43 -0
  63. package/dist/components/StatusPill.d.ts +15 -0
  64. package/dist/components/StatusPill.js +18 -0
  65. package/dist/components/Switch.d.ts +9 -0
  66. package/dist/components/Switch.js +14 -0
  67. package/dist/components/Table.d.ts +34 -0
  68. package/dist/components/Table.js +62 -0
  69. package/dist/components/Tabs.d.ts +19 -0
  70. package/dist/components/Tabs.js +31 -0
  71. package/dist/components/Textarea.d.ts +9 -0
  72. package/dist/components/Textarea.js +18 -0
  73. package/dist/components/Timeline.d.ts +16 -0
  74. package/dist/components/Timeline.js +21 -0
  75. package/dist/components/Toast.d.ts +19 -0
  76. package/dist/components/Toast.js +29 -0
  77. package/dist/components/Tooltip.d.ts +16 -0
  78. package/dist/components/Tooltip.js +7 -0
  79. package/dist/components/Tree.d.ts +28 -0
  80. package/dist/components/Tree.js +69 -0
  81. package/dist/cx.d.ts +3 -0
  82. package/dist/cx.js +6 -0
  83. package/dist/hooks/useDialog.d.ts +3 -0
  84. package/dist/hooks/useDialog.js +21 -0
  85. package/dist/index.cjs +1040 -0
  86. package/dist/index.d.cts +534 -0
  87. package/dist/index.d.ts +40 -0
  88. package/dist/index.js +106 -0
  89. package/package.json +47 -0
@@ -0,0 +1,28 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
+
4
+ interface TreeNodeData {
5
+ id: string;
6
+ label: ReactNode;
7
+ icon?: ReactNode;
8
+ children?: TreeNodeData[];
9
+ }
10
+ interface TreeNodeProps {
11
+ node: TreeNodeData;
12
+ expanded: Set<string>;
13
+ selected?: string;
14
+ onToggle: (id: string) => void;
15
+ onSelect?: (id: string) => void;
16
+ level?: number;
17
+ }
18
+ interface TreeProps extends Omit<HTMLAttributes<HTMLUListElement>, 'onSelect' | 'onChange'> {
19
+ nodes: TreeNodeData[];
20
+ expanded?: Set<string>;
21
+ defaultExpanded?: Set<string>;
22
+ selected?: string;
23
+ onToggle?: (id: string) => void;
24
+ onSelect?: (id: string) => void;
25
+ }
26
+ declare function Tree({ nodes, expanded: controlledExpanded, defaultExpanded, selected, onToggle, onSelect, className, ...props }: TreeProps): react.JSX.Element;
27
+
28
+ export { Tree, type TreeNodeData, type TreeNodeProps, type TreeProps };
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { cx } from "../cx.js";
5
+ const ChevronIcon = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M2 4l4 4 4-4" }) });
6
+ function TreeNode({ node, expanded, selected, onToggle, onSelect, level = 0 }) {
7
+ const hasChildren = Array.isArray(node.children) && node.children.length > 0;
8
+ const isExpanded = expanded.has(node.id);
9
+ return /* @__PURE__ */ jsxs("li", { children: [
10
+ /* @__PURE__ */ jsxs(
11
+ "button",
12
+ {
13
+ className: "uix-tree__row",
14
+ "aria-expanded": hasChildren ? isExpanded : void 0,
15
+ "aria-selected": selected === node.id,
16
+ onClick: () => {
17
+ if (hasChildren) onToggle(node.id);
18
+ onSelect?.(node.id);
19
+ },
20
+ children: [
21
+ /* @__PURE__ */ jsx("span", { className: "uix-tree__toggle", children: hasChildren && /* @__PURE__ */ jsx(ChevronIcon, {}) }),
22
+ node.icon && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: node.icon }),
23
+ node.label
24
+ ]
25
+ }
26
+ ),
27
+ hasChildren && isExpanded && /* @__PURE__ */ jsx("ul", { children: node.children.map((child) => /* @__PURE__ */ jsx(
28
+ TreeNode,
29
+ {
30
+ node: child,
31
+ expanded,
32
+ selected,
33
+ onToggle,
34
+ onSelect,
35
+ level: level + 1
36
+ },
37
+ child.id
38
+ )) })
39
+ ] });
40
+ }
41
+ function Tree({ nodes, expanded: controlledExpanded, defaultExpanded, selected, onToggle, onSelect, className, ...props }) {
42
+ const [internalExpanded, setInternalExpanded] = useState(defaultExpanded ?? /* @__PURE__ */ new Set());
43
+ const expanded = controlledExpanded ?? internalExpanded;
44
+ function handleToggle(id) {
45
+ if (!controlledExpanded) {
46
+ setInternalExpanded((prev) => {
47
+ const next = new Set(prev);
48
+ if (next.has(id)) next.delete(id);
49
+ else next.add(id);
50
+ return next;
51
+ });
52
+ }
53
+ onToggle?.(id);
54
+ }
55
+ return /* @__PURE__ */ jsx("ul", { className: cx("uix-tree", className), role: "tree", ...props, children: nodes.map((node) => /* @__PURE__ */ jsx(
56
+ TreeNode,
57
+ {
58
+ node,
59
+ expanded,
60
+ selected,
61
+ onToggle: handleToggle,
62
+ onSelect
63
+ },
64
+ node.id
65
+ )) });
66
+ }
67
+ export {
68
+ Tree
69
+ };
package/dist/cx.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare function cx(...args: (string | false | null | undefined | 0)[]): string;
2
+
3
+ export { cx };
package/dist/cx.js ADDED
@@ -0,0 +1,6 @@
1
+ function cx(...args) {
2
+ return args.filter(Boolean).join(" ");
3
+ }
4
+ export {
5
+ cx
6
+ };
@@ -0,0 +1,3 @@
1
+ declare function useDialog(open: boolean): React.RefObject<HTMLDialogElement>;
2
+
3
+ export { useDialog };
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { useRef, useEffect } from "react";
3
+ function useDialog(open) {
4
+ const ref = useRef(null);
5
+ useEffect(() => {
6
+ const el = ref.current;
7
+ if (!el) return;
8
+ if (open) {
9
+ if (!el.open) el.showModal();
10
+ } else {
11
+ if (el.open) el.close();
12
+ }
13
+ return () => {
14
+ if (el.open) el.close();
15
+ };
16
+ }, [open]);
17
+ return ref;
18
+ }
19
+ export {
20
+ useDialog
21
+ };