@devalok/shilp-sutra 0.6.2 → 0.8.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 (108) hide show
  1. package/dist/_virtual/client.js +5 -0
  2. package/dist/_virtual/index.js +5 -0
  3. package/dist/_virtual/react-dom-client.development.js +5 -0
  4. package/dist/_virtual/react-dom-client.production.js +5 -0
  5. package/dist/_virtual/scheduler.development.js +5 -0
  6. package/dist/_virtual/scheduler.production.js +5 -0
  7. package/dist/composed/command-palette.d.ts.map +1 -1
  8. package/dist/composed/command-palette.js +84 -73
  9. package/dist/composed/confirm-dialog.d.ts +27 -0
  10. package/dist/composed/confirm-dialog.d.ts.map +1 -0
  11. package/dist/composed/confirm-dialog.js +45 -0
  12. package/dist/composed/extensions/emoji-suggestion.d.ts +9 -0
  13. package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -0
  14. package/dist/composed/extensions/emoji-suggestion.js +119 -0
  15. package/dist/composed/extensions/file-attachment.d.ts +4 -0
  16. package/dist/composed/extensions/file-attachment.d.ts.map +1 -0
  17. package/dist/composed/extensions/file-attachment.js +55 -0
  18. package/dist/composed/extensions/mention-suggestion.d.ts +10 -0
  19. package/dist/composed/extensions/mention-suggestion.d.ts.map +1 -0
  20. package/dist/composed/extensions/mention-suggestion.js +79 -0
  21. package/dist/composed/index.d.ts +3 -1
  22. package/dist/composed/index.d.ts.map +1 -1
  23. package/dist/composed/index.js +28 -26
  24. package/dist/composed/rich-text-editor.d.ts +19 -0
  25. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  26. package/dist/composed/rich-text-editor.js +347 -176
  27. package/dist/composed/status-badge.d.ts +11 -1
  28. package/dist/composed/status-badge.d.ts.map +1 -1
  29. package/dist/composed/status-badge.js +48 -20
  30. package/dist/hooks/use-color-mode.d.ts.map +1 -1
  31. package/dist/hooks/use-color-mode.js +8 -4
  32. package/dist/hooks/use-mobile.d.ts +5 -0
  33. package/dist/hooks/use-mobile.d.ts.map +1 -1
  34. package/dist/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.js +40141 -0
  35. package/dist/node_modules/.pnpm/@emoji-mart_react@1.1.1_emoji-mart@5.6.0_react@19.2.4/node_modules/@emoji-mart/react/dist/module.js +17 -0
  36. package/dist/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.js +2958 -0
  37. package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.development.js +17062 -0
  38. package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/cjs/react-dom-client.production.js +9790 -0
  39. package/dist/node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js +20 -0
  40. package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js +237 -0
  41. package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.production.js +234 -0
  42. package/dist/node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js +11 -0
  43. package/dist/primitives/_internal/react-arrow.js +8 -19
  44. package/dist/primitives/_internal/react-compose-refs.js +14 -14
  45. package/dist/primitives/_internal/react-context.js +41 -39
  46. package/dist/primitives/_internal/react-dismissable-layer.js +62 -90
  47. package/dist/primitives/_internal/react-popper.js +107 -169
  48. package/dist/primitives/_internal/react-portal.js +1 -1
  49. package/dist/primitives/_internal/react-primitive.js +1 -1
  50. package/dist/primitives/_internal/react-use-size.js +8 -8
  51. package/dist/primitives/react-slot.js +12 -12
  52. package/dist/shell/app-command-palette.d.ts +3 -1
  53. package/dist/shell/app-command-palette.d.ts.map +1 -1
  54. package/dist/shell/app-command-palette.js +35 -34
  55. package/dist/shell/bottom-navbar.d.ts.map +1 -1
  56. package/dist/shell/bottom-navbar.js +31 -31
  57. package/dist/shell/index.d.ts +1 -1
  58. package/dist/shell/index.d.ts.map +1 -1
  59. package/dist/shell/notification-center.d.ts +10 -0
  60. package/dist/shell/notification-center.d.ts.map +1 -1
  61. package/dist/shell/notification-center.js +129 -117
  62. package/dist/shell/top-bar.d.ts +20 -0
  63. package/dist/shell/top-bar.d.ts.map +1 -1
  64. package/dist/shell/top-bar.js +100 -70
  65. package/dist/tailwind/index.cjs +3 -0
  66. package/dist/tailwind/preset.d.ts.map +1 -1
  67. package/dist/tailwind/preset.js +3 -0
  68. package/dist/tokens/semantic.css +10 -1
  69. package/dist/ui/alert.js +42 -63
  70. package/dist/ui/avatar.js +20 -62
  71. package/dist/ui/badge.d.ts +1 -1
  72. package/dist/ui/badge.d.ts.map +1 -1
  73. package/dist/ui/badge.js +89 -112
  74. package/dist/ui/banner.js +12 -12
  75. package/dist/ui/button-group.js +14 -29
  76. package/dist/ui/button.js +64 -108
  77. package/dist/ui/card.js +18 -62
  78. package/dist/ui/checkbox.js +1 -21
  79. package/dist/ui/chip.d.ts.map +1 -1
  80. package/dist/ui/chip.js +1 -1
  81. package/dist/ui/color-input.d.ts +17 -0
  82. package/dist/ui/color-input.d.ts.map +1 -0
  83. package/dist/ui/color-input.js +88 -0
  84. package/dist/ui/combobox.d.ts +20 -11
  85. package/dist/ui/combobox.d.ts.map +1 -1
  86. package/dist/ui/dialog.js +9 -9
  87. package/dist/ui/form.js +14 -35
  88. package/dist/ui/index.d.ts +1 -0
  89. package/dist/ui/index.d.ts.map +1 -1
  90. package/dist/ui/index.js +314 -312
  91. package/dist/ui/input.d.ts.map +1 -1
  92. package/dist/ui/input.js +31 -56
  93. package/dist/ui/label.js +1 -15
  94. package/dist/ui/number-input.d.ts.map +1 -1
  95. package/dist/ui/number-input.js +39 -35
  96. package/dist/ui/popover.js +6 -6
  97. package/dist/ui/separator.js +4 -19
  98. package/dist/ui/sheet.js +21 -21
  99. package/dist/ui/spinner.js +1 -36
  100. package/dist/ui/switch.js +1 -20
  101. package/dist/ui/tabs.js +20 -47
  102. package/dist/ui/textarea.d.ts.map +1 -1
  103. package/dist/ui/textarea.js +30 -24
  104. package/dist/ui/toast.js +18 -18
  105. package/dist/ui/tooltip.js +6 -17
  106. package/llms-full.txt +123 -13
  107. package/llms.txt +9 -6
  108. package/package.json +80 -11
@@ -1 +1 @@
1
- {"version":3,"file":"app-command-palette.d.ts","sourceRoot":"","sources":["../../src/shell/app-command-palette.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAAkB,KAAK,YAAY,EAAoB,MAAM,6BAA6B,CAAA;AAMjG,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,IAAI,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACnC,wCAAwC;IACxC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAA;IAC5B,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CACtD;AA0HD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,WAAgB,EAChB,UAAU,EACV,QAAQ,EACR,aAAkB,EAClB,WAAmB,EACnB,oBAAoB,GACrB,EAAE,sBAAsB,2CAqHxB;yBA7He,iBAAiB"}
1
+ {"version":3,"file":"app-command-palette.d.ts","sourceRoot":"","sources":["../../src/shell/app-command-palette.tsx"],"names":[],"mappings":"AAkCA,OAAO,EAAkB,KAAK,YAAY,EAAoB,MAAM,6BAA6B,CAAA;AAMjG,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,IAAI,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACnC,iHAAiH;IACjH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wCAAwC;IACxC,WAAW,CAAC,EAAE,YAAY,EAAE,CAAA;IAC5B,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,uDAAuD;IACvD,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mDAAmD;IACnD,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CACtD;AA0HD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EAAE,WAAW,EACpB,WAAgB,EAChB,UAAU,EACV,QAAQ,EACR,aAAkB,EAClB,WAAmB,EACnB,oBAAoB,GACrB,EAAE,sBAAsB,2CAqHxB;yBA9He,iBAAiB"}
@@ -1,23 +1,23 @@
1
1
  "use client";
2
2
  import { jsx as e } from "react/jsx-runtime";
3
3
  import { useCallback as u, useMemo as l } from "react";
4
- import { IconFileText as g, IconLayoutDashboard as S, IconCalendarCheck as E, IconUmbrella as y, IconLayoutKanban as T, IconListCheck as A, IconBook as L, IconAdjustmentsHorizontal as M, IconUserCircle as P, IconShieldCheck as $, IconClipboardList as D, IconUserPlus as O, IconSettings as U, IconPackage as B, IconLink as K, IconVideo as N, IconMessage as w, IconUsers as G } from "@tabler/icons-react";
5
- import { CommandPalette as V } from "../composed/command-palette.js";
6
- const v = {
7
- TASK: /* @__PURE__ */ e(A, {}),
8
- PROJECT: /* @__PURE__ */ e(T, {}),
9
- USER: /* @__PURE__ */ e(G, {}),
10
- COMMENT: /* @__PURE__ */ e(w, {}),
11
- MEETING: /* @__PURE__ */ e(N, {}),
12
- LINK: /* @__PURE__ */ e(K, {}),
13
- DELIVERABLE: /* @__PURE__ */ e(B, {})
4
+ import { IconFileText as S, IconLayoutDashboard as L, IconCalendarCheck as E, IconUmbrella as y, IconLayoutKanban as A, IconListCheck as T, IconBook as M, IconAdjustmentsHorizontal as P, IconUserCircle as $, IconShieldCheck as D, IconClipboardList as O, IconUserPlus as U, IconSettings as B, IconPackage as K, IconLink as N, IconVideo as w, IconMessage as G, IconUsers as V } from "@tabler/icons-react";
5
+ import { CommandPalette as v } from "../composed/command-palette.js";
6
+ const x = {
7
+ TASK: /* @__PURE__ */ e(T, {}),
8
+ PROJECT: /* @__PURE__ */ e(A, {}),
9
+ USER: /* @__PURE__ */ e(V, {}),
10
+ COMMENT: /* @__PURE__ */ e(G, {}),
11
+ MEETING: /* @__PURE__ */ e(w, {}),
12
+ LINK: /* @__PURE__ */ e(N, {}),
13
+ DELIVERABLE: /* @__PURE__ */ e(K, {})
14
14
  };
15
- function x(a) {
15
+ function J(a) {
16
16
  return [
17
17
  {
18
18
  id: "nav-dashboard",
19
19
  label: "Dashboard",
20
- icon: /* @__PURE__ */ e(S, {}),
20
+ icon: /* @__PURE__ */ e(L, {}),
21
21
  onSelect: () => a("/")
22
22
  },
23
23
  {
@@ -35,41 +35,41 @@ function x(a) {
35
35
  {
36
36
  id: "nav-projects",
37
37
  label: "Projects",
38
- icon: /* @__PURE__ */ e(T, {}),
38
+ icon: /* @__PURE__ */ e(A, {}),
39
39
  onSelect: () => a("/projects")
40
40
  },
41
41
  {
42
42
  id: "nav-my-tasks",
43
43
  label: "My Tasks",
44
- icon: /* @__PURE__ */ e(A, {}),
44
+ icon: /* @__PURE__ */ e(T, {}),
45
45
  onSelect: () => a("/my-tasks")
46
46
  },
47
47
  {
48
48
  id: "nav-devsabha",
49
49
  label: "Devsabha",
50
- icon: /* @__PURE__ */ e(L, {}),
50
+ icon: /* @__PURE__ */ e(M, {}),
51
51
  onSelect: () => a("/devsabha")
52
52
  },
53
53
  {
54
54
  id: "nav-adjustments",
55
55
  label: "Adjustments",
56
- icon: /* @__PURE__ */ e(M, {}),
56
+ icon: /* @__PURE__ */ e(P, {}),
57
57
  onSelect: () => a("/adjustments")
58
58
  },
59
59
  {
60
60
  id: "nav-profile",
61
61
  label: "Profile",
62
- icon: /* @__PURE__ */ e(P, {}),
62
+ icon: /* @__PURE__ */ e($, {}),
63
63
  onSelect: () => a("/profile")
64
64
  }
65
65
  ];
66
66
  }
67
- function J(a) {
67
+ function Y(a) {
68
68
  return [
69
69
  {
70
70
  id: "nav-admin-dashboard",
71
71
  label: "Admin Dashboard",
72
- icon: /* @__PURE__ */ e($, {}),
72
+ icon: /* @__PURE__ */ e(D, {}),
73
73
  onSelect: () => a("/admin")
74
74
  },
75
75
  {
@@ -87,25 +87,26 @@ function J(a) {
87
87
  {
88
88
  id: "nav-admin-lokwasi",
89
89
  label: "Lokwasi",
90
- icon: /* @__PURE__ */ e(D, {}),
90
+ icon: /* @__PURE__ */ e(O, {}),
91
91
  onSelect: () => a("/admin/lokwasi")
92
92
  },
93
93
  {
94
94
  id: "nav-admin-onboarding",
95
95
  label: "Onboarding",
96
- icon: /* @__PURE__ */ e(O, {}),
96
+ icon: /* @__PURE__ */ e(U, {}),
97
97
  onSelect: () => a("/admin/onboarding")
98
98
  },
99
99
  {
100
100
  id: "nav-admin-config",
101
101
  label: "System Config",
102
- icon: /* @__PURE__ */ e(U, {}),
102
+ icon: /* @__PURE__ */ e(B, {}),
103
103
  onSelect: () => a("/admin/system-config")
104
104
  }
105
105
  ];
106
106
  }
107
- function Y({
107
+ function _({
108
108
  user: a,
109
+ isAdmin: C,
109
110
  extraGroups: b = [],
110
111
  onNavigate: c,
111
112
  onSearch: d,
@@ -113,7 +114,7 @@ function Y({
113
114
  isSearching: p = !1,
114
115
  onSearchResultSelect: s
115
116
  }) {
116
- const I = (a == null ? void 0 : a.role) === "Admin" || (a == null ? void 0 : a.role) === "SuperAdmin", i = u(
117
+ const I = C ?? ((a == null ? void 0 : a.role) === "Admin" || (a == null ? void 0 : a.role) === "SuperAdmin"), i = u(
117
118
  (t) => {
118
119
  c == null || c(t);
119
120
  },
@@ -121,13 +122,13 @@ function Y({
121
122
  ), k = l(
122
123
  () => ({
123
124
  label: "Pages",
124
- items: x(i)
125
+ items: J(i)
125
126
  }),
126
127
  [i]
127
128
  ), j = l(
128
129
  () => ({
129
130
  label: "Admin",
130
- items: J(i)
131
+ items: Y(i)
131
132
  }),
132
133
  [i]
133
134
  ), r = l(() => {
@@ -162,7 +163,7 @@ function Y({
162
163
  id: `search-${n.entityType}-${n.id}`,
163
164
  label: n.title,
164
165
  description: n.snippet,
165
- icon: v[n.entityType] ?? /* @__PURE__ */ e(g, {}),
166
+ icon: x[n.entityType] ?? /* @__PURE__ */ e(S, {}),
166
167
  onSelect: () => {
167
168
  s == null || s(n), i(o);
168
169
  }
@@ -172,26 +173,26 @@ function Y({
172
173
  label: p ? "Searching..." : "Search Results",
173
174
  items: t
174
175
  };
175
- }, [m, p, i, s]), C = l(() => {
176
+ }, [m, p, i, s]), h = l(() => {
176
177
  const t = [];
177
178
  return r && t.push(r), t.push(k), I && t.push(j), t.push(...b), t;
178
- }, [r, k, I, j, b]), h = u(
179
+ }, [r, k, I, j, b]), g = u(
179
180
  (t) => {
180
181
  d == null || d(t);
181
182
  },
182
183
  [d]
183
184
  );
184
185
  return /* @__PURE__ */ e(
185
- V,
186
+ v,
186
187
  {
187
- groups: C,
188
+ groups: h,
188
189
  placeholder: "Search or jump to...",
189
- onSearch: h,
190
+ onSearch: g,
190
191
  emptyMessage: "No results found. Try a different search term."
191
192
  }
192
193
  );
193
194
  }
194
- Y.displayName = "AppCommandPalette";
195
+ _.displayName = "AppCommandPalette";
195
196
  export {
196
- Y as AppCommandPalette
197
+ _ as AppCommandPalette
197
198
  };
@@ -1 +1 @@
1
- {"version":3,"file":"bottom-navbar.d.ts","sourceRoot":"","sources":["../../src/shell/bottom-navbar.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACzC,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;IAC9B,yDAAyD;IACzD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAkDD,QAAA,MAAM,YAAY,uFA2IjB,CAAA;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"bottom-navbar.d.ts","sourceRoot":"","sources":["../../src/shell/bottom-navbar.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,iBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACzC,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC9B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,aAAa,EAAE,CAAA;IAC9B,yDAAyD;IACzD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAkDD,QAAA,MAAM,YAAY,uFAyIjB,CAAA;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,93 +1,93 @@
1
1
  "use client";
2
- import { jsxs as a, Fragment as v, jsx as t } from "react/jsx-runtime";
2
+ import { jsxs as s, Fragment as v, jsx as t } from "react/jsx-runtime";
3
3
  import * as g from "react";
4
4
  import { useState as N } from "react";
5
5
  import { useLink as p } from "./link-context.js";
6
6
  import { IconX as y, IconDots as w } from "@tabler/icons-react";
7
7
  import { cn as r } from "../ui/lib/utils.js";
8
8
  function k({
9
- item: s,
10
- isActive: i,
9
+ item: a,
10
+ isActive: n,
11
11
  onClick: d
12
12
  }) {
13
- const l = p();
13
+ const i = p();
14
14
  return /* @__PURE__ */ t(
15
- l,
15
+ i,
16
16
  {
17
- href: s.href,
17
+ href: a.href,
18
18
  onClick: d,
19
- "aria-label": s.title,
20
- "aria-current": i ? "page" : void 0,
19
+ "aria-label": a.title,
20
+ "aria-current": n ? "page" : void 0,
21
21
  className: r(
22
22
  "flex h-16 max-w-[70px] flex-1 cursor-pointer flex-col items-center gap-ds-02 p-ds-02 pt-0 text-ds-sm",
23
- i ? "font-semibold text-interactive" : "text-text-helper"
23
+ n ? "font-semibold text-interactive" : "text-text-helper"
24
24
  ),
25
- children: /* @__PURE__ */ a("div", { className: "relative flex w-full flex-col items-center gap-ds-02", children: [
25
+ children: /* @__PURE__ */ s("div", { className: "relative flex w-full flex-col items-center gap-ds-02", children: [
26
26
  /* @__PURE__ */ t(
27
27
  "div",
28
28
  {
29
29
  className: r(
30
30
  "absolute top-0 h-[3px] w-full rounded-b-ds-sm bg-interactive p-0 transition-opacity duration-slow-01",
31
- i ? "opacity-100" : "opacity-0"
31
+ n ? "opacity-100" : "opacity-0"
32
32
  ),
33
33
  "aria-hidden": "true"
34
34
  }
35
35
  ),
36
- /* @__PURE__ */ t("div", { className: "p-ds-03", children: /* @__PURE__ */ t("span", { className: "[&>svg]:h-ico-md [&>svg]:w-ico-md", "aria-hidden": "true", children: s.icon }) }),
37
- /* @__PURE__ */ t("span", { className: "text-center", children: s.title })
36
+ /* @__PURE__ */ t("div", { className: "p-ds-03", children: /* @__PURE__ */ t("span", { className: "[&>svg]:h-ico-md [&>svg]:w-ico-md", "aria-hidden": "true", children: a.icon }) }),
37
+ /* @__PURE__ */ t("span", { className: "text-center", children: a.title })
38
38
  ] })
39
39
  }
40
40
  );
41
41
  }
42
42
  const M = g.forwardRef(
43
43
  ({
44
- currentPath: s = "/",
45
- user: i,
44
+ currentPath: a = "/",
45
+ user: n,
46
46
  primaryItems: d = [],
47
- moreItems: l = [],
47
+ moreItems: i = [],
48
48
  className: f,
49
49
  ...x
50
50
  }, h) => {
51
- const b = p(), [o, n] = N(!1), c = (e, u = !1) => u || e === "/" ? s === e : s.startsWith(e), m = l.some(
51
+ const b = p(), [o, l] = N(!1), c = (e, u = !1) => u || e === "/" ? a === e : a.startsWith(e), m = i.some(
52
52
  (e) => c(e.href, e.exact)
53
53
  );
54
- return i ? /* @__PURE__ */ a(v, { children: [
55
- o && /* @__PURE__ */ a(
54
+ return /* @__PURE__ */ s(v, { children: [
55
+ o && /* @__PURE__ */ s(
56
56
  "div",
57
57
  {
58
58
  role: "button",
59
59
  tabIndex: 0,
60
60
  className: "fixed inset-0 z-overlay md:hidden",
61
- onClick: () => n(!1),
61
+ onClick: () => l(!1),
62
62
  onKeyDown: (e) => {
63
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), n(!1));
63
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), l(!1));
64
64
  },
65
65
  children: [
66
66
  /* @__PURE__ */ t("div", { className: "absolute inset-0 bg-overlay" }),
67
- /* @__PURE__ */ a(
67
+ /* @__PURE__ */ s(
68
68
  "div",
69
69
  {
70
70
  className: "absolute bottom-[72px] left-0 right-0 rounded-t-ds-2xl border-t border-border bg-layer-01 p-ds-05 pb-ds-03",
71
71
  onClick: (e) => e.stopPropagation(),
72
72
  onKeyDown: (e) => e.stopPropagation(),
73
73
  children: [
74
- /* @__PURE__ */ a("div", { className: "mb-ds-04 flex items-center justify-between", children: [
74
+ /* @__PURE__ */ s("div", { className: "mb-ds-04 flex items-center justify-between", children: [
75
75
  /* @__PURE__ */ t("span", { className: "text-ds-md font-semibold text-text-primary", children: "More" }),
76
76
  /* @__PURE__ */ t(
77
77
  "button",
78
78
  {
79
- onClick: () => n(!1),
79
+ onClick: () => l(!1),
80
80
  "aria-label": "Close more menu",
81
81
  className: "flex h-ds-sm w-ds-sm items-center justify-center rounded-ds-full hover:bg-layer-02",
82
82
  children: /* @__PURE__ */ t(y, { className: "h-ico-sm w-ico-sm text-text-secondary", "aria-hidden": "true" })
83
83
  }
84
84
  )
85
85
  ] }),
86
- /* @__PURE__ */ t("div", { className: "grid grid-cols-4 gap-ds-03", children: l.map((e) => /* @__PURE__ */ a(
86
+ /* @__PURE__ */ t("div", { className: "grid grid-cols-4 gap-ds-03", children: i.map((e) => /* @__PURE__ */ s(
87
87
  b,
88
88
  {
89
89
  href: e.href,
90
- onClick: () => n(!1),
90
+ onClick: () => l(!1),
91
91
  className: r(
92
92
  "flex flex-col items-center gap-ds-02b rounded-ds-xl p-ds-04 text-ds-sm transition-colors",
93
93
  c(e.href, e.exact) ? "bg-layer-02 text-interactive" : "text-text-helper hover:bg-layer-02"
@@ -105,7 +105,7 @@ const M = g.forwardRef(
105
105
  ]
106
106
  }
107
107
  ),
108
- /* @__PURE__ */ a(
108
+ /* @__PURE__ */ s(
109
109
  "nav",
110
110
  {
111
111
  ...x,
@@ -124,18 +124,18 @@ const M = g.forwardRef(
124
124
  },
125
125
  e.href
126
126
  )),
127
- l.length > 0 && /* @__PURE__ */ t(
127
+ i.length > 0 && /* @__PURE__ */ t(
128
128
  "button",
129
129
  {
130
130
  type: "button",
131
- onClick: () => n(!o),
131
+ onClick: () => l(!o),
132
132
  "aria-label": "More navigation options",
133
133
  "aria-expanded": o,
134
134
  className: r(
135
135
  "flex h-16 max-w-[70px] flex-1 cursor-pointer flex-col items-center gap-ds-02 p-ds-02 pt-0 text-ds-sm",
136
136
  o || m ? "font-semibold text-interactive" : "text-text-helper"
137
137
  ),
138
- children: /* @__PURE__ */ a("div", { className: "relative flex w-full flex-col items-center gap-ds-02", children: [
138
+ children: /* @__PURE__ */ s("div", { className: "relative flex w-full flex-col items-center gap-ds-02", children: [
139
139
  /* @__PURE__ */ t(
140
140
  "div",
141
141
  {
@@ -154,7 +154,7 @@ const M = g.forwardRef(
154
154
  ]
155
155
  }
156
156
  )
157
- ] }) : null;
157
+ ] });
158
158
  }
159
159
  );
160
160
  M.displayName = "BottomNavbar";
@@ -11,7 +11,7 @@
11
11
  */
12
12
  export { LinkProvider, useLink } from './link-context';
13
13
  export { AppSidebar, type NavItem, type NavGroup, type SidebarUser, type AppSidebarProps, } from './sidebar';
14
- export { TopBar, type TopBarUser, type TopBarProps, } from './top-bar';
14
+ export { TopBar, type TopBarUser, type UserMenuItem, type TopBarProps, } from './top-bar';
15
15
  export { BottomNavbar, type BottomNavItem, type BottomNavbarUser, type BottomNavbarProps, } from './bottom-navbar';
16
16
  export { NotificationCenter, type Notification, type NotificationCenterProps, } from './notification-center';
17
17
  export { NotificationPreferences, type NotificationPreference, type NotificationProject, type NotificationPreferencesProps, } from './notification-preferences';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEtD,OAAO,EACL,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,MAAM,EACN,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEtD,OAAO,EACL,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,MAAM,EACN,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,GAClC,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAA"}
@@ -43,6 +43,16 @@ export interface NotificationCenterProps extends React.ButtonHTMLAttributes<HTML
43
43
  onNavigate?: (path: string) => void;
44
44
  /** Resolve a notification to a navigation path. Return null if no navigation. */
45
45
  getNotificationRoute?: (notification: Notification) => string | null;
46
+ /** Additional actions rendered in the header (e.g., settings button) */
47
+ headerActions?: React.ReactNode;
48
+ /** Custom empty state to display when there are no notifications */
49
+ emptyState?: React.ReactNode;
50
+ /** Content rendered below the notification list as a footer */
51
+ footerSlot?: React.ReactNode;
52
+ /** Called when the user dismisses a notification. Renders an X button per row when provided. */
53
+ onDismiss?: (id: string) => void;
54
+ /** Additional className for the popover content container */
55
+ popoverClassName?: string;
46
56
  /** Additional className */
47
57
  className?: string;
48
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notification-center.d.ts","sourceRoot":"","sources":["../../src/shell/notification-center.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmB9B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IACvC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,uBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,uCAAuC;IACvC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,GAAG,IAAI,CAAA;IACpE,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAgLD,QAAA,MAAM,kBAAkB,mGA4KvB,CAAA;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"notification-center.d.ts","sourceRoot":"","sources":["../../src/shell/notification-center.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAmB9B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAA;IACvC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CACnC;AAED,MAAM,WAAW,uBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,uCAAuC;IACvC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,MAAM,GAAG,IAAI,CAAA;IACpE,wEAAwE;IACxE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,oEAAoE;IACpE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,gGAAgG;IAChG,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA0KD,QAAA,MAAM,kBAAkB,mGA+LvB,CAAA;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}