@locusgraph/components 0.2.1 → 0.2.2

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 (43) hide show
  1. package/dist/action/button-group.js +33 -136
  2. package/dist/action/button.js +15 -62
  3. package/dist/display/badge.js +13 -54
  4. package/dist/display/chat/attachment/attachment-parts.js +52 -218
  5. package/dist/display/chat/attachment/attachment.js +46 -186
  6. package/dist/display/chat/bubble.js +47 -192
  7. package/dist/display/chat/marker.js +32 -131
  8. package/dist/display/chat/message.js +56 -236
  9. package/dist/display/content/item.js +101 -415
  10. package/dist/display/content/kbd.js +18 -77
  11. package/dist/display/rule-grid/rule-grid.js +69 -292
  12. package/dist/display/skeletons/layouts/skeleton-rule-grid.js +25 -74
  13. package/dist/display/skeletons/layouts/skeleton-table.js +38 -158
  14. package/dist/display/skeletons/shapes/skeleton-avatar.js +19 -83
  15. package/dist/display/skeletons/shapes/skeleton-button.js +19 -83
  16. package/dist/display/skeletons/shapes/skeleton-text.js +18 -71
  17. package/dist/display/skeletons/skeleton-parts.js +17 -58
  18. package/dist/display/status/alert.js +30 -122
  19. package/dist/display/status/empty.js +57 -238
  20. package/dist/display/status/skeleton.js +9 -39
  21. package/dist/display/status/spinner.js +10 -40
  22. package/dist/display/table.js +75 -308
  23. package/dist/form/field/field-error.js +24 -107
  24. package/dist/form/field/field-separator.js +14 -65
  25. package/dist/form/field/field-set.js +20 -84
  26. package/dist/form/field/field-text.js +27 -115
  27. package/dist/form/field/field.js +31 -125
  28. package/dist/form/input.js +11 -45
  29. package/dist/form/native-select.js +31 -139
  30. package/dist/form/textarea.js +9 -39
  31. package/dist/layout/use-mobile.js +7 -20
  32. package/dist/navigation/breadcrumb.js +75 -294
  33. package/dist/navigation/navigation-menu.js +83 -359
  34. package/dist/navigation/pagination.js +78 -315
  35. package/dist/shell/app-header.js +21 -73
  36. package/dist/shell/app-shell.js +17 -56
  37. package/dist/shell/breadcrumbs.js +39 -97
  38. package/dist/shell/docs/docs-shell.js +35 -99
  39. package/dist/shell/docs/docs-sidebar.js +39 -86
  40. package/dist/shell/docs/use-active-section.js +31 -75
  41. package/dist/shell/navigation/app-sidebar.js +52 -174
  42. package/dist/shell/navigation/nav-group.js +40 -149
  43. package/package.json +1 -1
@@ -1,194 +1,72 @@
1
- import { c as _c } from "react/compiler-runtime";
2
1
  import { Sidebar, SidebarRail } from "../../layout/sidebar/sidebar.js";
3
2
  import { SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../../layout/sidebar/sidebar-menu.js";
4
3
  import { SidebarContent, SidebarFooter, SidebarHeader } from "../../layout/sidebar/sidebar-sections.js";
5
4
  import { NavGroup } from "./nav-group.js";
6
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- function BrandLink(t0) {
8
- const $ = _c(14);
9
- const {
10
- brand,
11
- Link
12
- } = t0;
13
- let t1;
14
- if ($[0] !== brand.icon) {
15
- t1 = /*#__PURE__*/_jsx("span", {
16
- "data-slot": "app-brand-icon",
17
- className: "flex aspect-square size-8 shrink-0 items-center justify-center rounded-lg border border-line bg-ghost",
18
- children: brand.icon
19
- });
20
- $[0] = brand.icon;
21
- $[1] = t1;
22
- } else {
23
- t1 = $[1];
24
- }
25
- let t2;
26
- if ($[2] !== brand.title) {
27
- t2 = /*#__PURE__*/_jsx("span", {
28
- className: "truncate text-sm font-semibold tracking-tight",
29
- children: brand.title
30
- });
31
- $[2] = brand.title;
32
- $[3] = t2;
33
- } else {
34
- t2 = $[3];
35
- }
36
- let t3;
37
- if ($[4] !== brand.subtitle) {
38
- t3 = brand.subtitle && /*#__PURE__*/_jsx("span", {
39
- className: "truncate text-xs text-soft",
40
- children: brand.subtitle
41
- });
42
- $[4] = brand.subtitle;
43
- $[5] = t3;
44
- } else {
45
- t3 = $[5];
46
- }
47
- let t4;
48
- if ($[6] !== t2 || $[7] !== t3) {
49
- t4 = /*#__PURE__*/_jsxs("span", {
50
- className: "grid flex-1 text-left leading-tight",
51
- children: [t2, t3]
52
- });
53
- $[6] = t2;
54
- $[7] = t3;
55
- $[8] = t4;
56
- } else {
57
- t4 = $[8];
58
- }
59
- let t5;
60
- if ($[9] !== Link || $[10] !== brand.href || $[11] !== t1 || $[12] !== t4) {
61
- t5 = /*#__PURE__*/_jsx(SidebarMenu, {
62
- children: /*#__PURE__*/_jsx(SidebarMenuItem, {
63
- children: /*#__PURE__*/_jsx(SidebarMenuButton, {
64
- size: "lg",
65
- asChild: true,
66
- children: /*#__PURE__*/_jsxs(Link, {
67
- href: brand.href,
68
- children: [t1, t4]
69
- })
6
+ function BrandLink({
7
+ brand,
8
+ Link
9
+ }) {
10
+ return /*#__PURE__*/_jsx(SidebarMenu, {
11
+ children: /*#__PURE__*/_jsx(SidebarMenuItem, {
12
+ children: /*#__PURE__*/_jsx(SidebarMenuButton, {
13
+ size: "lg",
14
+ asChild: true,
15
+ children: /*#__PURE__*/_jsxs(Link, {
16
+ href: brand.href,
17
+ children: [/*#__PURE__*/_jsx("span", {
18
+ "data-slot": "app-brand-icon",
19
+ className: "flex aspect-square size-8 shrink-0 items-center justify-center rounded-lg border border-line bg-ghost",
20
+ children: brand.icon
21
+ }), /*#__PURE__*/_jsxs("span", {
22
+ className: "grid flex-1 text-left leading-tight",
23
+ children: [/*#__PURE__*/_jsx("span", {
24
+ className: "truncate text-sm font-semibold tracking-tight",
25
+ children: brand.title
26
+ }), brand.subtitle && /*#__PURE__*/_jsx("span", {
27
+ className: "truncate text-xs text-soft",
28
+ children: brand.subtitle
29
+ })]
30
+ })]
70
31
  })
71
32
  })
72
- });
73
- $[9] = Link;
74
- $[10] = brand.href;
75
- $[11] = t1;
76
- $[12] = t4;
77
- $[13] = t5;
78
- } else {
79
- t5 = $[13];
80
- }
81
- return t5;
33
+ })
34
+ });
82
35
  }
83
- function AppSidebar(t0) {
84
- const $ = _c(24);
85
- const {
86
- brand,
87
- groups,
88
- bottomItems,
89
- footer,
90
- activeHref,
91
- linkComponent: t1
92
- } = t0;
93
- const linkComponent = t1 === undefined ? "a" : t1;
94
- let t2;
95
- if ($[0] !== brand || $[1] !== linkComponent) {
96
- t2 = /*#__PURE__*/_jsx(SidebarHeader, {
36
+ function AppSidebar({
37
+ brand,
38
+ groups,
39
+ bottomItems,
40
+ footer,
41
+ activeHref,
42
+ linkComponent = "a"
43
+ }) {
44
+ return /*#__PURE__*/_jsxs(Sidebar, {
45
+ collapsible: "icon",
46
+ children: [/*#__PURE__*/_jsx(SidebarHeader, {
97
47
  className: "h-14 justify-center border-b border-line py-0",
98
48
  children: /*#__PURE__*/_jsx(BrandLink, {
99
49
  brand: brand,
100
50
  Link: linkComponent
101
51
  })
102
- });
103
- $[0] = brand;
104
- $[1] = linkComponent;
105
- $[2] = t2;
106
- } else {
107
- t2 = $[2];
108
- }
109
- let t3;
110
- if ($[3] !== activeHref || $[4] !== groups || $[5] !== linkComponent) {
111
- let t4;
112
- if ($[7] !== activeHref || $[8] !== linkComponent) {
113
- t4 = group => /*#__PURE__*/_jsx(NavGroup, {
52
+ }), /*#__PURE__*/_jsxs(SidebarContent, {
53
+ children: [groups.map(group => /*#__PURE__*/_jsx(NavGroup, {
114
54
  group: group,
115
55
  activeHref: activeHref,
116
56
  Link: linkComponent
117
- }, group.label);
118
- $[7] = activeHref;
119
- $[8] = linkComponent;
120
- $[9] = t4;
121
- } else {
122
- t4 = $[9];
123
- }
124
- t3 = groups.map(t4);
125
- $[3] = activeHref;
126
- $[4] = groups;
127
- $[5] = linkComponent;
128
- $[6] = t3;
129
- } else {
130
- t3 = $[6];
131
- }
132
- let t4;
133
- if ($[10] !== activeHref || $[11] !== bottomItems || $[12] !== linkComponent) {
134
- t4 = bottomItems && bottomItems.length > 0 && /*#__PURE__*/_jsx(NavGroup, {
135
- group: {
136
- label: "",
137
- items: bottomItems
138
- },
139
- activeHref: activeHref,
140
- Link: linkComponent,
141
- className: "mt-auto"
142
- });
143
- $[10] = activeHref;
144
- $[11] = bottomItems;
145
- $[12] = linkComponent;
146
- $[13] = t4;
147
- } else {
148
- t4 = $[13];
149
- }
150
- let t5;
151
- if ($[14] !== t3 || $[15] !== t4) {
152
- t5 = /*#__PURE__*/_jsxs(SidebarContent, {
153
- children: [t3, t4]
154
- });
155
- $[14] = t3;
156
- $[15] = t4;
157
- $[16] = t5;
158
- } else {
159
- t5 = $[16];
160
- }
161
- let t6;
162
- if ($[17] !== footer) {
163
- t6 = footer && /*#__PURE__*/_jsx(SidebarFooter, {
57
+ }, group.label)), bottomItems && bottomItems.length > 0 && /*#__PURE__*/_jsx(NavGroup, {
58
+ group: {
59
+ label: "",
60
+ items: bottomItems
61
+ },
62
+ activeHref: activeHref,
63
+ Link: linkComponent,
64
+ className: "mt-auto"
65
+ })]
66
+ }), footer && /*#__PURE__*/_jsx(SidebarFooter, {
164
67
  className: "border-t border-line",
165
68
  children: footer
166
- });
167
- $[17] = footer;
168
- $[18] = t6;
169
- } else {
170
- t6 = $[18];
171
- }
172
- let t7;
173
- if ($[19] === Symbol.for("react.memo_cache_sentinel")) {
174
- t7 = /*#__PURE__*/_jsx(SidebarRail, {});
175
- $[19] = t7;
176
- } else {
177
- t7 = $[19];
178
- }
179
- let t8;
180
- if ($[20] !== t2 || $[21] !== t5 || $[22] !== t6) {
181
- t8 = /*#__PURE__*/_jsxs(Sidebar, {
182
- collapsible: "icon",
183
- children: [t2, t5, t6, t7]
184
- });
185
- $[20] = t2;
186
- $[21] = t5;
187
- $[22] = t6;
188
- $[23] = t8;
189
- } else {
190
- t8 = $[23];
191
- }
192
- return t8;
69
+ }), /*#__PURE__*/_jsx(SidebarRail, {})]
70
+ });
193
71
  }
194
72
  export { AppSidebar };
@@ -1,168 +1,59 @@
1
- import { c as _c } from "react/compiler-runtime";
2
1
  import { SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../../layout/sidebar/sidebar-menu.js";
3
2
  import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel } from "../../layout/sidebar/sidebar-sections.js";
4
3
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  function isActiveHref(itemHref, activeHref) {
6
5
  return activeHref === itemHref || activeHref.startsWith(`${itemHref}/`);
7
6
  }
8
- function NavItemLink(t0) {
9
- const $ = _c(20);
10
- let Link;
11
- let item;
12
- let props;
13
- if ($[0] !== t0) {
14
- ({
15
- item,
16
- Link,
17
- ...props
18
- } = t0);
19
- $[0] = t0;
20
- $[1] = Link;
21
- $[2] = item;
22
- $[3] = props;
23
- } else {
24
- Link = $[1];
25
- item = $[2];
26
- props = $[3];
27
- }
28
- let t1;
29
- if ($[4] !== item.icon) {
30
- t1 = /*#__PURE__*/_jsx(item.icon, {});
31
- $[4] = item.icon;
32
- $[5] = t1;
33
- } else {
34
- t1 = $[5];
35
- }
36
- let t2;
37
- if ($[6] !== item.title) {
38
- t2 = /*#__PURE__*/_jsx("span", {
7
+ function NavItemLink({
8
+ item,
9
+ Link,
10
+ ...props
11
+ }) {
12
+ const content = /*#__PURE__*/_jsxs(_Fragment, {
13
+ children: [/*#__PURE__*/_jsx(item.icon, {}), /*#__PURE__*/_jsx("span", {
39
14
  children: item.title
40
- });
41
- $[6] = item.title;
42
- $[7] = t2;
43
- } else {
44
- t2 = $[7];
45
- }
46
- let t3;
47
- if ($[8] !== t1 || $[9] !== t2) {
48
- t3 = /*#__PURE__*/_jsxs(_Fragment, {
49
- children: [t1, t2]
50
- });
51
- $[8] = t1;
52
- $[9] = t2;
53
- $[10] = t3;
54
- } else {
55
- t3 = $[10];
56
- }
57
- const content = t3;
15
+ })]
16
+ });
58
17
  if (item.external) {
59
- let t4;
60
- if ($[11] !== content || $[12] !== item.href || $[13] !== props) {
61
- t4 = /*#__PURE__*/_jsx("a", {
62
- ...props,
63
- href: item.href,
64
- target: "_blank",
65
- rel: "noreferrer",
66
- children: content
67
- });
68
- $[11] = content;
69
- $[12] = item.href;
70
- $[13] = props;
71
- $[14] = t4;
72
- } else {
73
- t4 = $[14];
74
- }
75
- return t4;
76
- }
77
- let t4;
78
- if ($[15] !== Link || $[16] !== content || $[17] !== item.href || $[18] !== props) {
79
- t4 = /*#__PURE__*/_jsx(Link, {
18
+ return /*#__PURE__*/_jsx("a", {
80
19
  ...props,
81
20
  href: item.href,
21
+ target: "_blank",
22
+ rel: "noreferrer",
82
23
  children: content
83
24
  });
84
- $[15] = Link;
85
- $[16] = content;
86
- $[17] = item.href;
87
- $[18] = props;
88
- $[19] = t4;
89
- } else {
90
- t4 = $[19];
91
25
  }
92
- return t4;
26
+ return /*#__PURE__*/_jsx(Link, {
27
+ ...props,
28
+ href: item.href,
29
+ children: content
30
+ });
93
31
  }
94
- function NavGroup(t0) {
95
- const $ = _c(15);
96
- const {
97
- group,
98
- activeHref,
99
- Link,
100
- className
101
- } = t0;
102
- let t1;
103
- if ($[0] !== group.label) {
104
- t1 = group.label && /*#__PURE__*/_jsx(SidebarGroupLabel, {
32
+ function NavGroup({
33
+ group,
34
+ activeHref,
35
+ Link,
36
+ className
37
+ }) {
38
+ return /*#__PURE__*/_jsxs(SidebarGroup, {
39
+ className: className,
40
+ children: [group.label && /*#__PURE__*/_jsx(SidebarGroupLabel, {
105
41
  children: group.label
106
- });
107
- $[0] = group.label;
108
- $[1] = t1;
109
- } else {
110
- t1 = $[1];
111
- }
112
- let t2;
113
- if ($[2] !== Link || $[3] !== activeHref || $[4] !== group.items) {
114
- let t3;
115
- if ($[6] !== Link || $[7] !== activeHref) {
116
- t3 = item => /*#__PURE__*/_jsx(SidebarMenuItem, {
117
- children: /*#__PURE__*/_jsx(SidebarMenuButton, {
118
- asChild: true,
119
- isActive: isActiveHref(item.href, activeHref),
120
- tooltip: item.title,
121
- children: /*#__PURE__*/_jsx(NavItemLink, {
122
- item: item,
123
- Link: Link
124
- })
125
- })
126
- }, item.href);
127
- $[6] = Link;
128
- $[7] = activeHref;
129
- $[8] = t3;
130
- } else {
131
- t3 = $[8];
132
- }
133
- t2 = group.items.map(t3);
134
- $[2] = Link;
135
- $[3] = activeHref;
136
- $[4] = group.items;
137
- $[5] = t2;
138
- } else {
139
- t2 = $[5];
140
- }
141
- let t3;
142
- if ($[9] !== t2) {
143
- t3 = /*#__PURE__*/_jsx(SidebarGroupContent, {
42
+ }), /*#__PURE__*/_jsx(SidebarGroupContent, {
144
43
  children: /*#__PURE__*/_jsx(SidebarMenu, {
145
- children: t2
44
+ children: group.items.map(item => /*#__PURE__*/_jsx(SidebarMenuItem, {
45
+ children: /*#__PURE__*/_jsx(SidebarMenuButton, {
46
+ asChild: true,
47
+ isActive: isActiveHref(item.href, activeHref),
48
+ tooltip: item.title,
49
+ children: /*#__PURE__*/_jsx(NavItemLink, {
50
+ item: item,
51
+ Link: Link
52
+ })
53
+ })
54
+ }, item.href))
146
55
  })
147
- });
148
- $[9] = t2;
149
- $[10] = t3;
150
- } else {
151
- t3 = $[10];
152
- }
153
- let t4;
154
- if ($[11] !== className || $[12] !== t1 || $[13] !== t3) {
155
- t4 = /*#__PURE__*/_jsxs(SidebarGroup, {
156
- className: className,
157
- children: [t1, t3]
158
- });
159
- $[11] = className;
160
- $[12] = t1;
161
- $[13] = t3;
162
- $[14] = t4;
163
- } else {
164
- t4 = $[14];
165
- }
166
- return t4;
56
+ })]
57
+ });
167
58
  }
168
59
  export { isActiveHref, NavGroup };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@locusgraph/components",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Radix and shadcn based React components, shells and theme for LocusGraph apps.",
5
5
  "license": "MIT",
6
6
  "repository": {