@akira-io/ui 1.3.0 → 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 (76) hide show
  1. package/README.md +2 -2
  2. package/dist/blocks.d.ts +100 -10
  3. package/dist/blocks.js +547 -270
  4. package/dist/blocks.js.map +1 -1
  5. package/dist/{chunk-IE6VWUSB.js → chunk-2V6HUWST.js} +19 -6
  6. package/dist/chunk-2V6HUWST.js.map +1 -0
  7. package/dist/{chunk-UTSTTTH5.js → chunk-3Z2VGVPI.js} +18 -8
  8. package/dist/chunk-3Z2VGVPI.js.map +1 -0
  9. package/dist/{chunk-PSJGAZIS.js → chunk-B3L6PRLX.js} +208 -100
  10. package/dist/chunk-B3L6PRLX.js.map +1 -0
  11. package/dist/chunk-DE2AJ54R.js +458 -0
  12. package/dist/chunk-DE2AJ54R.js.map +1 -0
  13. package/dist/{chunk-QNF4LJVT.js → chunk-E26KKMGS.js} +8 -6
  14. package/dist/chunk-E26KKMGS.js.map +1 -0
  15. package/dist/{chunk-O5DZTX7D.js → chunk-EYPM6IMS.js} +30 -34
  16. package/dist/chunk-EYPM6IMS.js.map +1 -0
  17. package/dist/chunk-IQMRJXEO.js +5 -4
  18. package/dist/chunk-IQMRJXEO.js.map +1 -1
  19. package/dist/{chunk-I5UZAJB4.js → chunk-KHOA4TEI.js} +85 -30
  20. package/dist/chunk-KHOA4TEI.js.map +1 -0
  21. package/dist/chunk-L2H5GIF7.js +5 -4
  22. package/dist/chunk-L2H5GIF7.js.map +1 -1
  23. package/dist/{chunk-NA33PNQO.js → chunk-SZUXATOF.js} +170 -76
  24. package/dist/chunk-SZUXATOF.js.map +1 -0
  25. package/dist/chunk-TM5MN3MI.js +29 -0
  26. package/dist/chunk-TM5MN3MI.js.map +1 -0
  27. package/dist/{chunk-7LBWPBVE.js → chunk-UCJTM3UM.js} +259 -248
  28. package/dist/chunk-UCJTM3UM.js.map +1 -0
  29. package/dist/{chunk-MCMBS2SB.js → chunk-UXVI326F.js} +15 -8
  30. package/dist/chunk-UXVI326F.js.map +1 -0
  31. package/dist/chunk-VA6A4HZ2.js +394 -0
  32. package/dist/chunk-VA6A4HZ2.js.map +1 -0
  33. package/dist/{chunk-SBLZ6T3D.js → chunk-YBXRJSR3.js} +15 -7
  34. package/dist/chunk-YBXRJSR3.js.map +1 -0
  35. package/dist/code.d.ts +2 -2
  36. package/dist/code.js +96 -52
  37. package/dist/code.js.map +1 -1
  38. package/dist/{context-OwSoVEri.d.ts → context-Soro3B1I.d.ts} +5 -4
  39. package/dist/editor.d.ts +1 -1
  40. package/dist/editor.js +135 -52
  41. package/dist/editor.js.map +1 -1
  42. package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
  43. package/dist/index.d.ts +14 -11
  44. package/dist/index.js +1107 -635
  45. package/dist/index.js.map +1 -1
  46. package/dist/inertia.d.ts +11 -3
  47. package/dist/inertia.js +66 -12
  48. package/dist/inertia.js.map +1 -1
  49. package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
  50. package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
  51. package/dist/locales/pt.d.ts +9 -8
  52. package/dist/locales/pt.js +40 -3
  53. package/dist/locales/pt.js.map +1 -1
  54. package/dist/shells.d.ts +46 -5
  55. package/dist/shells.js +211 -71
  56. package/dist/shells.js.map +1 -1
  57. package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
  58. package/dist/types-1LUmNJf_.d.ts +41 -0
  59. package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
  60. package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
  61. package/package.json +4 -2
  62. package/theme.css +3 -0
  63. package/themes/nosferry.css +2 -2
  64. package/dist/chunk-7LBWPBVE.js.map +0 -1
  65. package/dist/chunk-I5UZAJB4.js.map +0 -1
  66. package/dist/chunk-IE6VWUSB.js.map +0 -1
  67. package/dist/chunk-MCMBS2SB.js.map +0 -1
  68. package/dist/chunk-NA33PNQO.js.map +0 -1
  69. package/dist/chunk-NGMG2UWX.js +0 -172
  70. package/dist/chunk-NGMG2UWX.js.map +0 -1
  71. package/dist/chunk-O5DZTX7D.js.map +0 -1
  72. package/dist/chunk-PSJGAZIS.js.map +0 -1
  73. package/dist/chunk-QNF4LJVT.js.map +0 -1
  74. package/dist/chunk-SBLZ6T3D.js.map +0 -1
  75. package/dist/chunk-UTSTTTH5.js.map +0 -1
  76. package/dist/types-u1qfmJQi.d.ts +0 -28
package/dist/shells.js CHANGED
@@ -1,13 +1,43 @@
1
- export { initializeTheme, useAppearance } from './chunk-IQMRJXEO.js';
2
- import { Card } from './chunk-IE6VWUSB.js';
3
- export { AppSidebar, AppSidebarHeader, Breadcrumbs, Heading, NavFooter, NavMain, NavUser, SIDEBAR_COLLAPSED_GROUPS_KEY, SettingsLayout, UserInfo, UserMenuContent, useCollapsedGroup, useInitials } from './chunk-NA33PNQO.js';
4
- import { SidebarInset, SidebarProvider } from './chunk-PSJGAZIS.js';
5
- export { useIsMobile } from './chunk-PSJGAZIS.js';
6
- export { hrefToString } from './chunk-L2H5GIF7.js';
7
- import './chunk-UTSTTTH5.js';
8
- import { cn } from './chunk-I5UZAJB4.js';
9
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ 'use client';
10
2
 
3
+ "use client";
4
+ import {
5
+ initializeTheme,
6
+ useAppearance
7
+ } from "./chunk-IQMRJXEO.js";
8
+ import {
9
+ Card
10
+ } from "./chunk-2V6HUWST.js";
11
+ import {
12
+ AppSidebar,
13
+ AppSidebarHeader,
14
+ Breadcrumbs,
15
+ Heading,
16
+ NavFooter,
17
+ NavMain,
18
+ NavUser,
19
+ SIDEBAR_COLLAPSED_GROUPS_KEY,
20
+ SettingsLayout,
21
+ UserInfo,
22
+ UserMenuContent,
23
+ useCollapsedGroup,
24
+ useInitials
25
+ } from "./chunk-SZUXATOF.js";
26
+ import {
27
+ SidebarInset,
28
+ SidebarProvider,
29
+ useIsMobile
30
+ } from "./chunk-B3L6PRLX.js";
31
+ import {
32
+ hrefToString
33
+ } from "./chunk-L2H5GIF7.js";
34
+ import "./chunk-3Z2VGVPI.js";
35
+ import {
36
+ cn
37
+ } from "./chunk-KHOA4TEI.js";
38
+
39
+ // src/shells/app-content.tsx
40
+ import { jsx } from "react/jsx-runtime";
11
41
  function AppContent({
12
42
  variant = "header",
13
43
  children,
@@ -25,6 +55,9 @@ function AppContent({
25
55
  }
26
56
  );
27
57
  }
58
+
59
+ // src/shells/app-shell.tsx
60
+ import { jsx as jsx2 } from "react/jsx-runtime";
28
61
  function AppShell({
29
62
  children,
30
63
  variant = "header",
@@ -33,9 +66,9 @@ function AppShell({
33
66
  defaultOpen = true
34
67
  }) {
35
68
  if (variant === "header") {
36
- return /* @__PURE__ */ jsx("div", { className: "flex min-h-screen w-full flex-col", children });
69
+ return /* @__PURE__ */ jsx2("div", { className: "flex min-h-screen w-full flex-col", children });
37
70
  }
38
- return /* @__PURE__ */ jsx(
71
+ return /* @__PURE__ */ jsx2(
39
72
  SidebarProvider,
40
73
  {
41
74
  open,
@@ -45,52 +78,23 @@ function AppShell({
45
78
  }
46
79
  );
47
80
  }
48
- function AuthShell({
49
- logo,
50
- title,
51
- description,
81
+
82
+ // src/shells/auth-shell.tsx
83
+ import { createContext, useContext } from "react";
84
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
85
+ var ArrangementContext = createContext("centred");
86
+ function useAuthArrangement() {
87
+ return useContext(ArrangementContext);
88
+ }
89
+ function AuthShellRoot({
52
90
  arrangement = "centred",
53
- panel,
54
- panelDecorative = true,
55
- footer,
56
91
  appearanceControl,
57
- surface = true,
58
92
  children,
59
93
  className,
60
94
  slotName = "auth-shell"
61
95
  }) {
62
96
  const split = arrangement === "split";
63
- const form = /* @__PURE__ */ jsxs(
64
- "div",
65
- {
66
- "data-slot": "auth-shell-form",
67
- className: "gap-6 max-w-md flex w-full flex-col",
68
- children: [
69
- logo && /* @__PURE__ */ jsx(
70
- "div",
71
- {
72
- "data-slot": "auth-shell-logo",
73
- className: "flex justify-center",
74
- children: logo
75
- }
76
- ),
77
- /* @__PURE__ */ jsxs("div", { "data-slot": "auth-shell-heading", className: "space-y-2", children: [
78
- /* @__PURE__ */ jsx("h1", { className: "text-xl font-bold tracking-tight text-foreground", children: title }),
79
- description && /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-muted-foreground", children: description })
80
- ] }),
81
- surface ? /* @__PURE__ */ jsx(Card, { className: "p-6", children: /* @__PURE__ */ jsx("div", { "data-slot": "auth-shell-body", children }) }) : /* @__PURE__ */ jsx("div", { "data-slot": "auth-shell-body", children }),
82
- footer && /* @__PURE__ */ jsx(
83
- "footer",
84
- {
85
- "data-slot": "auth-shell-footer",
86
- className: "gap-2 text-sm font-medium flex flex-wrap items-center justify-center text-muted-foreground",
87
- children: footer
88
- }
89
- )
90
- ]
91
- }
92
- );
93
- return /* @__PURE__ */ jsxs(
97
+ return /* @__PURE__ */ jsx3(ArrangementContext.Provider, { value: arrangement, children: /* @__PURE__ */ jsxs(
94
98
  "div",
95
99
  {
96
100
  "data-arrangement": arrangement,
@@ -101,24 +105,8 @@ function AuthShell({
101
105
  ),
102
106
  "data-slot": slotName,
103
107
  children: [
104
- split && panel && /* @__PURE__ */ jsx(
105
- "aside",
106
- {
107
- "data-slot": "auth-shell-panel",
108
- "aria-hidden": panelDecorative || void 0,
109
- className: "p-10 lg:flex hidden flex-col justify-between bg-primary text-primary-foreground",
110
- children: panel
111
- }
112
- ),
113
- /* @__PURE__ */ jsx(
114
- "main",
115
- {
116
- "data-slot": "auth-shell-main",
117
- className: "p-6 flex flex-1 items-center justify-center",
118
- children: form
119
- }
120
- ),
121
- appearanceControl && /* @__PURE__ */ jsx(
108
+ children,
109
+ appearanceControl && /* @__PURE__ */ jsx3(
122
110
  "div",
123
111
  {
124
112
  "data-slot": "auth-shell-appearance",
@@ -128,9 +116,161 @@ function AuthShell({
128
116
  )
129
117
  ]
130
118
  }
119
+ ) });
120
+ }
121
+ function AuthShellMain({
122
+ children,
123
+ slotName = "auth-shell-main"
124
+ }) {
125
+ return /* @__PURE__ */ jsx3(
126
+ "main",
127
+ {
128
+ "data-slot": slotName,
129
+ className: "p-6 flex flex-1 items-center justify-center",
130
+ children: /* @__PURE__ */ jsx3(
131
+ "div",
132
+ {
133
+ "data-slot": "auth-shell-form",
134
+ className: "gap-6 max-w-md flex w-full flex-col",
135
+ children
136
+ }
137
+ )
138
+ }
131
139
  );
132
140
  }
133
-
134
- export { AppContent, AppShell, AuthShell };
135
- //# sourceMappingURL=shells.js.map
141
+ function AuthShellPanel({
142
+ decorative = true,
143
+ arrangement,
144
+ children,
145
+ slotName = "auth-shell-panel"
146
+ }) {
147
+ const contextArrangement = useAuthArrangement();
148
+ if ((arrangement ?? contextArrangement) !== "split") {
149
+ return null;
150
+ }
151
+ return /* @__PURE__ */ jsx3(
152
+ "aside",
153
+ {
154
+ "data-slot": slotName,
155
+ "aria-hidden": decorative || void 0,
156
+ className: "p-10 lg:flex hidden flex-col justify-between bg-primary text-primary-foreground",
157
+ children
158
+ }
159
+ );
160
+ }
161
+ function AuthShellSurface({
162
+ children,
163
+ className,
164
+ slotName = "card"
165
+ }) {
166
+ return /* @__PURE__ */ jsx3(Card, { className: cn("p-6", className), slotName, children });
167
+ }
168
+ function AuthShellLogo({
169
+ children,
170
+ slotName = "auth-shell-logo"
171
+ }) {
172
+ return /* @__PURE__ */ jsx3("div", { "data-slot": slotName, className: "flex justify-center", children });
173
+ }
174
+ function AuthShellHeading({
175
+ title,
176
+ description,
177
+ align = "start",
178
+ slotName = "auth-shell-heading"
179
+ }) {
180
+ return /* @__PURE__ */ jsxs(
181
+ "div",
182
+ {
183
+ "data-slot": slotName,
184
+ className: cn("space-y-2", align === "center" && "text-center"),
185
+ children: [
186
+ /* @__PURE__ */ jsx3("h1", { className: "text-xl font-bold tracking-tight text-foreground", children: title }),
187
+ description && /* @__PURE__ */ jsx3("p", { className: "text-sm font-medium text-muted-foreground", children: description })
188
+ ]
189
+ }
190
+ );
191
+ }
192
+ function AuthShellBody({
193
+ children,
194
+ slotName = "auth-shell-body"
195
+ }) {
196
+ return /* @__PURE__ */ jsx3("div", { "data-slot": slotName, children });
197
+ }
198
+ function AuthShellFooter({
199
+ children,
200
+ slotName = "auth-shell-footer"
201
+ }) {
202
+ return /* @__PURE__ */ jsx3(
203
+ "footer",
204
+ {
205
+ "data-slot": slotName,
206
+ className: "gap-2 text-sm font-medium flex flex-wrap items-center justify-center text-muted-foreground",
207
+ children
208
+ }
209
+ );
210
+ }
211
+ function AuthShell({
212
+ logo,
213
+ title,
214
+ description,
215
+ arrangement = "centred",
216
+ panel,
217
+ panelDecorative = true,
218
+ footer,
219
+ appearanceControl,
220
+ surface = true,
221
+ children,
222
+ className,
223
+ slotName = "auth-shell"
224
+ }) {
225
+ const body = /* @__PURE__ */ jsx3(AuthShellBody, { children });
226
+ return /* @__PURE__ */ jsxs(
227
+ AuthShellRoot,
228
+ {
229
+ arrangement,
230
+ appearanceControl,
231
+ className,
232
+ slotName,
233
+ children: [
234
+ panel && /* @__PURE__ */ jsx3(AuthShellPanel, { decorative: panelDecorative, children: panel }),
235
+ /* @__PURE__ */ jsxs(AuthShellMain, { children: [
236
+ logo && /* @__PURE__ */ jsx3(AuthShellLogo, { children: logo }),
237
+ /* @__PURE__ */ jsx3(AuthShellHeading, { title, description }),
238
+ surface ? /* @__PURE__ */ jsx3(AuthShellSurface, { children: body }) : body,
239
+ footer && /* @__PURE__ */ jsx3(AuthShellFooter, { children: footer })
240
+ ] })
241
+ ]
242
+ }
243
+ );
244
+ }
245
+ export {
246
+ AppContent,
247
+ AppShell,
248
+ AppSidebar,
249
+ AppSidebarHeader,
250
+ AuthShell,
251
+ AuthShellBody,
252
+ AuthShellFooter,
253
+ AuthShellHeading,
254
+ AuthShellLogo,
255
+ AuthShellMain,
256
+ AuthShellPanel,
257
+ AuthShellRoot,
258
+ AuthShellSurface,
259
+ Breadcrumbs,
260
+ Heading,
261
+ NavFooter,
262
+ NavMain,
263
+ NavUser,
264
+ SIDEBAR_COLLAPSED_GROUPS_KEY,
265
+ SettingsLayout,
266
+ UserInfo,
267
+ UserMenuContent,
268
+ hrefToString,
269
+ initializeTheme,
270
+ useAppearance,
271
+ useAuthArrangement,
272
+ useCollapsedGroup,
273
+ useInitials,
274
+ useIsMobile
275
+ };
136
276
  //# sourceMappingURL=shells.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/shells/app-content.tsx","../src/shells/app-shell.tsx","../src/shells/auth-shell.tsx"],"names":["jsx"],"mappings":";;;;;;;;;;AAQO,SAAS,UAAA,CAAW;AAAA,EACvB,OAAA,GAAU,QAAA;AAAA,EACV,QAAA;AAAA,EACA,GAAG;AACP,CAAA,EAAoB;AAChB,EAAA,IAAI,YAAY,SAAA,EAAW;AACvB,IAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAc,GAAG,KAAA,EAAQ,QAAA,EAAS,CAAA;AAAA,EAC9C;AAEA,EAAA,uBACI,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACG,SAAA,EAAU,uEAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACL;AAER;ACbO,SAAS,QAAA,CAAS;AAAA,EACrB,QAAA;AAAA,EACA,OAAA,GAAU,QAAA;AAAA,EACV,IAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA,GAAc;AAClB,CAAA,EAAkB;AACd,EAAA,IAAI,YAAY,QAAA,EAAU;AACtB,IAAA,uBACIA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qCAAqC,QAAA,EAAS,CAAA;AAAA,EAErE;AAEA,EAAA,uBACIA,GAAAA;AAAA,IAAC,eAAA;AAAA,IAAA;AAAA,MACG,IAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MAEC;AAAA;AAAA,GACL;AAER;ACbO,SAAS,SAAA,CAAU;AAAA,EACtB,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA,GAAc,SAAA;AAAA,EACd,KAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,MAAA;AAAA,EACA,iBAAA;AAAA,EACA,OAAA,GAAU,IAAA;AAAA,EACV,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA,GAAW;AACf,CAAA,EAAmC;AAC/B,EAAA,MAAM,QAAQ,WAAA,KAAgB,OAAA;AAE9B,EAAA,MAAM,IAAA,mBACF,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAU,qCAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,oBACGA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACG,WAAA,EAAU,iBAAA;AAAA,YACV,SAAA,EAAU,qBAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACL;AAAA,wBAGJ,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,oBAAA,EAAqB,WAAU,WAAA,EAC1C,QAAA,EAAA;AAAA,0BAAAA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kDAAA,EACT,QAAA,EAAA,KAAA,EACL,CAAA;AAAA,UACC,+BACGA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6CACR,QAAA,EAAA,WAAA,EACL;AAAA,SAAA,EAER,CAAA;AAAA,QAEC,0BACGA,GAAAA,CAAC,QAAK,SAAA,EAAU,KAAA,EACZ,0BAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,aAAU,iBAAA,EAAmB,QAAA,EAAS,GAC/C,CAAA,mBAEAA,IAAC,KAAA,EAAA,EAAI,WAAA,EAAU,mBAAmB,QAAA,EAAS,CAAA;AAAA,QAG9C,0BACGA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACG,WAAA,EAAU,mBAAA;AAAA,YACV,SAAA,EAAU,4FAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA;AACL;AAAA;AAAA,GAER;AAGJ,EAAA,uBACI,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACG,kBAAA,EAAkB,WAAA;AAAA,MAClB,SAAA,EAAW,EAAA;AAAA,QACP,mCAAA;AAAA,QACA,KAAA,IAAS,wBAAA;AAAA,QACT;AAAA,OACJ;AAAA,MACA,WAAA,EAAW,QAAA;AAAA,MAEV,QAAA,EAAA;AAAA,QAAA,KAAA,IAAS,yBACNA,GAAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACG,WAAA,EAAU,kBAAA;AAAA,YACV,eAAa,eAAA,IAAmB,MAAA;AAAA,YAChC,SAAA,EAAU,iFAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACL;AAAA,wBAGJA,GAAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACG,WAAA,EAAU,iBAAA;AAAA,YACV,SAAA,EAAU,6CAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACL;AAAA,QAEC,qCACGA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACG,WAAA,EAAU,uBAAA;AAAA,YACV,SAAA,EAAU,wBAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA;AACL;AAAA;AAAA,GAER;AAER","file":"shells.js","sourcesContent":["import * as React from 'react';\n\nimport { SidebarInset } from '@/components/ui/sidebar';\n\ninterface AppContentProps extends React.ComponentProps<'main'> {\n variant?: 'header' | 'sidebar';\n}\n\nexport function AppContent({\n variant = 'header',\n children,\n ...props\n}: AppContentProps) {\n if (variant === 'sidebar') {\n return <SidebarInset {...props}>{children}</SidebarInset>;\n }\n\n return (\n <main\n className=\"max-w-7xl gap-4 rounded-xl mx-auto flex h-full w-full flex-1 flex-col\"\n {...props}\n >\n {children}\n </main>\n );\n}\n","import * as React from 'react';\n\nimport { SidebarProvider } from '@/components/ui/sidebar';\n\ninterface AppShellProps {\n children: React.ReactNode;\n variant?: 'header' | 'sidebar';\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n}\n\nexport function AppShell({\n children,\n variant = 'header',\n open,\n onOpenChange,\n defaultOpen = true,\n}: AppShellProps) {\n if (variant === 'header') {\n return (\n <div className=\"flex min-h-screen w-full flex-col\">{children}</div>\n );\n }\n\n return (\n <SidebarProvider\n open={open}\n onOpenChange={onOpenChange}\n defaultOpen={defaultOpen}\n >\n {children}\n </SidebarProvider>\n );\n}\n","import { Card } from '@/components/ui/card';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\nimport { type ReactNode } from 'react';\n\nexport type AuthArrangement = 'centred' | 'split';\n\nexport interface AuthShellProps {\n logo?: ReactNode;\n title: string;\n description?: string;\n arrangement?: AuthArrangement;\n panel?: ReactNode;\n panelDecorative?: boolean;\n footer?: ReactNode;\n appearanceControl?: ReactNode;\n surface?: boolean;\n children: ReactNode;\n className?: string;\n}\n\nexport function AuthShell({\n logo,\n title,\n description,\n arrangement = 'centred',\n panel,\n panelDecorative = true,\n footer,\n appearanceControl,\n surface = true,\n children,\n className,\n slotName = 'auth-shell',\n}: AuthShellProps & SlotNameProps) {\n const split = arrangement === 'split';\n\n const form = (\n <div\n data-slot=\"auth-shell-form\"\n className=\"gap-6 max-w-md flex w-full flex-col\"\n >\n {logo && (\n <div\n data-slot=\"auth-shell-logo\"\n className=\"flex justify-center\"\n >\n {logo}\n </div>\n )}\n\n <div data-slot=\"auth-shell-heading\" className=\"space-y-2\">\n <h1 className=\"text-xl font-bold tracking-tight text-foreground\">\n {title}\n </h1>\n {description && (\n <p className=\"text-sm font-medium text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n\n {surface ? (\n <Card className=\"p-6\">\n <div data-slot=\"auth-shell-body\">{children}</div>\n </Card>\n ) : (\n <div data-slot=\"auth-shell-body\">{children}</div>\n )}\n\n {footer && (\n <footer\n data-slot=\"auth-shell-footer\"\n className=\"gap-2 text-sm font-medium flex flex-wrap items-center justify-center text-muted-foreground\"\n >\n {footer}\n </footer>\n )}\n </div>\n );\n\n return (\n <div\n data-arrangement={arrangement}\n className={cn(\n 'relative flex min-h-screen w-full',\n split && 'lg:grid lg:grid-cols-2',\n className,\n )}\n data-slot={slotName}\n >\n {split && panel && (\n <aside\n data-slot=\"auth-shell-panel\"\n aria-hidden={panelDecorative || undefined}\n className=\"p-10 lg:flex hidden flex-col justify-between bg-primary text-primary-foreground\"\n >\n {panel}\n </aside>\n )}\n\n <main\n data-slot=\"auth-shell-main\"\n className=\"p-6 flex flex-1 items-center justify-center\"\n >\n {form}\n </main>\n\n {appearanceControl && (\n <div\n data-slot=\"auth-shell-appearance\"\n className=\"top-4 right-4 absolute\"\n >\n {appearanceControl}\n </div>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/shells/app-content.tsx","../src/shells/app-shell.tsx","../src/shells/auth-shell.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { SidebarInset } from '@/components/ui/sidebar';\n\ninterface AppContentProps extends React.ComponentProps<'main'> {\n variant?: 'header' | 'sidebar';\n}\n\nexport function AppContent({\n variant = 'header',\n children,\n ...props\n}: AppContentProps) {\n if (variant === 'sidebar') {\n return <SidebarInset {...props}>{children}</SidebarInset>;\n }\n\n return (\n <main\n className=\"max-w-7xl gap-4 rounded-xl mx-auto flex h-full w-full flex-1 flex-col\"\n {...props}\n >\n {children}\n </main>\n );\n}\n","import * as React from 'react';\n\nimport { SidebarProvider } from '@/components/ui/sidebar';\n\ninterface AppShellProps {\n children: React.ReactNode;\n variant?: 'header' | 'sidebar';\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n}\n\nexport function AppShell({\n children,\n variant = 'header',\n open,\n onOpenChange,\n defaultOpen = true,\n}: AppShellProps) {\n if (variant === 'header') {\n return (\n <div className=\"flex min-h-screen w-full flex-col\">{children}</div>\n );\n }\n\n return (\n <SidebarProvider\n open={open}\n onOpenChange={onOpenChange}\n defaultOpen={defaultOpen}\n >\n {children}\n </SidebarProvider>\n );\n}\n","import { Card } from '@/components/ui/card';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\nimport { createContext, useContext, type ReactNode } from 'react';\n\nexport type AuthArrangement = 'centred' | 'split';\n\nconst ArrangementContext = createContext<AuthArrangement>('centred');\n\nexport function useAuthArrangement(): AuthArrangement {\n return useContext(ArrangementContext);\n}\n\nexport interface AuthShellRootProps {\n arrangement?: AuthArrangement;\n appearanceControl?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function AuthShellRoot({\n arrangement = 'centred',\n appearanceControl,\n children,\n className,\n slotName = 'auth-shell',\n}: AuthShellRootProps & SlotNameProps) {\n const split = arrangement === 'split';\n\n return (\n <ArrangementContext.Provider value={arrangement}>\n <div\n data-arrangement={arrangement}\n className={cn(\n 'relative flex min-h-screen w-full',\n split && 'lg:grid lg:grid-cols-2',\n className,\n )}\n data-slot={slotName}\n >\n {children}\n\n {appearanceControl && (\n <div\n data-slot=\"auth-shell-appearance\"\n className=\"top-4 right-4 absolute\"\n >\n {appearanceControl}\n </div>\n )}\n </div>\n </ArrangementContext.Provider>\n );\n}\n\nexport interface AuthShellMainProps {\n children: ReactNode;\n}\n\nexport function AuthShellMain({\n children,\n slotName = 'auth-shell-main',\n}: AuthShellMainProps & SlotNameProps) {\n return (\n <main\n data-slot={slotName}\n className=\"p-6 flex flex-1 items-center justify-center\"\n >\n <div\n data-slot=\"auth-shell-form\"\n className=\"gap-6 max-w-md flex w-full flex-col\"\n >\n {children}\n </div>\n </main>\n );\n}\n\nexport interface AuthShellPanelProps {\n decorative?: boolean;\n arrangement?: AuthArrangement;\n children: ReactNode;\n}\n\nexport function AuthShellPanel({\n decorative = true,\n arrangement,\n children,\n slotName = 'auth-shell-panel',\n}: AuthShellPanelProps & SlotNameProps) {\n const contextArrangement = useAuthArrangement();\n\n if ((arrangement ?? contextArrangement) !== 'split') {\n return null;\n }\n\n return (\n <aside\n data-slot={slotName}\n aria-hidden={decorative || undefined}\n className=\"p-10 lg:flex hidden flex-col justify-between bg-primary text-primary-foreground\"\n >\n {children}\n </aside>\n );\n}\n\nexport interface AuthShellSurfaceProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function AuthShellSurface({\n children,\n className,\n slotName = 'card',\n}: AuthShellSurfaceProps & SlotNameProps) {\n return (\n <Card className={cn('p-6', className)} slotName={slotName}>\n {children}\n </Card>\n );\n}\n\nexport interface AuthShellLogoProps {\n children: ReactNode;\n}\n\nexport function AuthShellLogo({\n children,\n slotName = 'auth-shell-logo',\n}: AuthShellLogoProps & SlotNameProps) {\n return (\n <div data-slot={slotName} className=\"flex justify-center\">\n {children}\n </div>\n );\n}\n\nexport interface AuthShellHeadingProps {\n title: string;\n description?: string;\n align?: 'start' | 'center';\n}\n\nexport function AuthShellHeading({\n title,\n description,\n align = 'start',\n slotName = 'auth-shell-heading',\n}: AuthShellHeadingProps & SlotNameProps) {\n return (\n <div\n data-slot={slotName}\n className={cn('space-y-2', align === 'center' && 'text-center')}\n >\n <h1 className=\"text-xl font-bold tracking-tight text-foreground\">\n {title}\n </h1>\n {description && (\n <p className=\"text-sm font-medium text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n );\n}\n\nexport interface AuthShellBodyProps {\n children: ReactNode;\n}\n\nexport function AuthShellBody({\n children,\n slotName = 'auth-shell-body',\n}: AuthShellBodyProps & SlotNameProps) {\n return <div data-slot={slotName}>{children}</div>;\n}\n\nexport interface AuthShellFooterProps {\n children: ReactNode;\n}\n\nexport function AuthShellFooter({\n children,\n slotName = 'auth-shell-footer',\n}: AuthShellFooterProps & SlotNameProps) {\n return (\n <footer\n data-slot={slotName}\n className=\"gap-2 text-sm font-medium flex flex-wrap items-center justify-center text-muted-foreground\"\n >\n {children}\n </footer>\n );\n}\n\nexport interface AuthShellProps {\n logo?: ReactNode;\n title: string;\n description?: string;\n arrangement?: AuthArrangement;\n panel?: ReactNode;\n panelDecorative?: boolean;\n footer?: ReactNode;\n appearanceControl?: ReactNode;\n surface?: boolean;\n children: ReactNode;\n className?: string;\n}\n\nexport function AuthShell({\n logo,\n title,\n description,\n arrangement = 'centred',\n panel,\n panelDecorative = true,\n footer,\n appearanceControl,\n surface = true,\n children,\n className,\n slotName = 'auth-shell',\n}: AuthShellProps & SlotNameProps) {\n const body = <AuthShellBody>{children}</AuthShellBody>;\n\n return (\n <AuthShellRoot\n arrangement={arrangement}\n appearanceControl={appearanceControl}\n className={className}\n slotName={slotName}\n >\n {panel && (\n <AuthShellPanel decorative={panelDecorative}>\n {panel}\n </AuthShellPanel>\n )}\n <AuthShellMain>\n {logo && <AuthShellLogo>{logo}</AuthShellLogo>}\n <AuthShellHeading title={title} description={description} />\n {surface ? <AuthShellSurface>{body}</AuthShellSurface> : body}\n {footer && <AuthShellFooter>{footer}</AuthShellFooter>}\n </AuthShellMain>\n </AuthShellRoot>\n );\n}\n"],"mappings":"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","names":["jsx","jsx"]}
@@ -1,9 +1,9 @@
1
1
  import * as class_variance_authority_types from 'class-variance-authority/types';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
- import { I as Input, B as Button } from './input-Dxnsxi-f.js';
4
+ import { I as Input, B as Button } from './input-B4uEClxB.js';
5
5
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
6
- import { S as SlotNameProps } from './types-cmBL8zOc.js';
6
+ import { S as SlotNameProps } from './types-CMZRvMV5.js';
7
7
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
8
8
 
9
9
  declare function Separator({ className, orientation, decorative, slotName, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root> & SlotNameProps): React.JSX.Element;
@@ -0,0 +1,41 @@
1
+ interface LoginFormLabels {
2
+ emailLabel: string;
3
+ emailPlaceholder: string;
4
+ passwordLabel: string;
5
+ passwordPlaceholder: string;
6
+ forgotPasswordLabel: string;
7
+ rememberLabel: string;
8
+ submitLabel: string;
9
+ submittingLabel: string;
10
+ }
11
+ declare const loginFormLabels: LoginFormLabels;
12
+ type LoginFormErrors = Record<string, string | string[] | undefined>;
13
+
14
+ type TourBreakpoint = 'mobile' | 'desktop';
15
+ type TourOutcome = 'completed' | 'skipped' | 'dismissed';
16
+ interface TourStep {
17
+ target: string;
18
+ title: string;
19
+ description: string;
20
+ breakpoints?: TourBreakpoint[];
21
+ }
22
+ interface TourDefinition {
23
+ id: string;
24
+ version: number;
25
+ steps: TourStep[];
26
+ }
27
+ interface TourProgress {
28
+ tour: string;
29
+ version: number;
30
+ lastStep: number;
31
+ outcome: TourOutcome;
32
+ }
33
+ interface TourLabels {
34
+ next: string;
35
+ previous: string;
36
+ done: string;
37
+ progress: string;
38
+ }
39
+ declare const DEFAULT_TOUR_LABELS: TourLabels;
40
+
41
+ export { DEFAULT_TOUR_LABELS as D, type LoginFormErrors as L, type TourStep as T, type LoginFormLabels as a, type TourDefinition as b, type TourBreakpoint as c, type TourProgress as d, type TourLabels as e, type TourOutcome as f, loginFormLabels as l };
@@ -48,4 +48,4 @@ interface LinkProps {
48
48
  }
49
49
  type LinkComponent = ComponentType<LinkProps>;
50
50
 
51
- export type { BreadcrumbItem as B, Column as C, FilterFn as F, IconComponent as I, LucideIcon as L, NavGroup as N, Row as R, SlotNameProps as S, TableInstance as T, UrlLike as U, ColumnDef as a, NavItem as b, SharedUser as c, LinkComponent as d, LinkProps as e };
51
+ export type { BreadcrumbItem as B, Column as C, FilterFn as F, IconComponent as I, LinkComponent as L, NavGroup as N, Row as R, SlotNameProps as S, TableInstance as T, UrlLike as U, ColumnDef as a, LucideIcon as b, NavItem as c, SharedUser as d, LinkProps as e };
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { S as SlotNameProps } from './types-cmBL8zOc.js';
3
+ import { S as SlotNameProps } from './types-CMZRvMV5.js';
4
4
 
5
5
  interface DangerZoneLabels {
6
6
  title: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akira-io/ui",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "Open-source React component library: the full shadcn/ui set on an OKLCH design-token system with swappable brand palettes.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -114,7 +114,7 @@
114
114
  "vaul": "^1.1.2"
115
115
  },
116
116
  "peerDependencies": {
117
- "@inertiajs/react": "^1.0.0 || ^2.0.0 || ^3.0.0",
117
+ "@inertiajs/react": "^2.1.2 || ^3.0.0",
118
118
  "@tanstack/react-table": "^8.21.3",
119
119
  "@tiptap/core": "^3.29.2",
120
120
  "@tiptap/pm": "^3.29.2",
@@ -157,6 +157,7 @@
157
157
  }
158
158
  },
159
159
  "devDependencies": {
160
+ "@inertiajs/react": "3.6.1",
160
161
  "@tanstack/react-table": "^8.21.3",
161
162
  "@testing-library/jest-dom": "^7.0.0",
162
163
  "@testing-library/react": "^16.3.2",
@@ -167,6 +168,7 @@
167
168
  "@tiptap/starter-kit": "3.29.2",
168
169
  "@types/react": "^19.2.10",
169
170
  "@types/react-dom": "^19.2.3",
171
+ "esbuild-plugin-preserve-directives": "^0.0.11",
170
172
  "jsdom": "^30.0.1",
171
173
  "prettier": "^3.8.1",
172
174
  "prettier-plugin-organize-imports": "^4.3.0",
package/theme.css CHANGED
@@ -71,6 +71,7 @@
71
71
  --color-sidebar-accent: var(--sidebar-accent);
72
72
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
73
73
  --color-sidebar-accent-hover: var(--sidebar-accent-hover);
74
+ --color-tab-active: var(--tab-active);
74
75
  --color-sidebar-border: var(--sidebar-border);
75
76
  --color-sidebar-ring: var(--sidebar-ring);
76
77
  }
@@ -122,6 +123,7 @@
122
123
  --sidebar-accent: oklch(0.97 0 0);
123
124
  --sidebar-accent-foreground: oklch(0.205 0 0);
124
125
  --sidebar-accent-hover: oklch(0.955 0 0);
126
+ --tab-active: oklch(1 0 0);
125
127
  --sidebar-border: oklch(0.922 0 0);
126
128
  --sidebar-ring: oklch(0.87 0 0);
127
129
  }
@@ -171,6 +173,7 @@
171
173
  --sidebar-accent: oklch(0.269 0 0);
172
174
  --sidebar-accent-foreground: oklch(0.985 0 0);
173
175
  --sidebar-accent-hover: oklch(0.3 0 0);
176
+ --tab-active: oklch(0.32 0 0);
174
177
  --sidebar-border: oklch(0.269 0 0);
175
178
  --sidebar-ring: oklch(0.439 0 0);
176
179
  }
@@ -6,8 +6,8 @@
6
6
  }
7
7
 
8
8
  [data-brand='nosferry'].dark {
9
- --primary: oklch(0.704 0.191 22.216); /* red-400 */
10
- --primary-foreground: oklch(0.161 0.027 294);
9
+ --primary: oklch(0.637 0.237 25.331); /* red-500 */
10
+ --primary-foreground: oklch(0.985 0 0);
11
11
  --destructive: oklch(0.72 0.18 38);
12
12
  --destructive-foreground: oklch(0.161 0.027 294);
13
13
  }