@jameskabz/nextcraft-ui 0.6.6 → 0.6.7

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 (309) hide show
  1. package/dist/components/craft-alert.cjs +69 -0
  2. package/dist/components/craft-alert.cjs.map +1 -0
  3. package/dist/components/craft-alert.d.cts +16 -0
  4. package/dist/components/craft-alert.d.ts +16 -0
  5. package/dist/components/craft-alert.js +45 -0
  6. package/dist/components/craft-alert.js.map +1 -0
  7. package/dist/components/craft-badge.cjs +54 -0
  8. package/dist/components/craft-badge.cjs.map +1 -0
  9. package/dist/components/craft-badge.d.cts +12 -0
  10. package/dist/components/craft-badge.d.ts +12 -0
  11. package/dist/components/craft-badge.js +30 -0
  12. package/dist/components/craft-badge.js.map +1 -0
  13. package/dist/components/craft-button.cjs +66 -0
  14. package/dist/components/craft-button.cjs.map +1 -0
  15. package/dist/components/craft-button.d.cts +15 -0
  16. package/dist/components/craft-button.d.ts +15 -0
  17. package/dist/components/craft-button.js +42 -0
  18. package/dist/components/craft-button.js.map +1 -0
  19. package/dist/components/craft-card.cjs +63 -0
  20. package/dist/components/craft-card.cjs.map +1 -0
  21. package/dist/components/craft-card.d.cts +13 -0
  22. package/dist/components/craft-card.d.ts +13 -0
  23. package/dist/components/craft-card.js +39 -0
  24. package/dist/components/craft-card.js.map +1 -0
  25. package/dist/components/craft-checkbox.cjs +103 -0
  26. package/dist/components/craft-checkbox.cjs.map +1 -0
  27. package/dist/components/craft-checkbox.d.cts +16 -0
  28. package/dist/components/craft-checkbox.d.ts +16 -0
  29. package/dist/components/craft-checkbox.js +69 -0
  30. package/dist/components/craft-checkbox.js.map +1 -0
  31. package/dist/components/craft-command-palette.cjs +134 -0
  32. package/dist/components/craft-command-palette.cjs.map +1 -0
  33. package/dist/components/craft-command-palette.d.cts +28 -0
  34. package/dist/components/craft-command-palette.d.ts +28 -0
  35. package/dist/components/craft-command-palette.js +100 -0
  36. package/dist/components/craft-command-palette.js.map +1 -0
  37. package/dist/components/craft-confirm-dialog.cjs +114 -0
  38. package/dist/components/craft-confirm-dialog.cjs.map +1 -0
  39. package/dist/components/craft-confirm-dialog.d.cts +21 -0
  40. package/dist/components/craft-confirm-dialog.d.ts +21 -0
  41. package/dist/components/craft-confirm-dialog.js +80 -0
  42. package/dist/components/craft-confirm-dialog.js.map +1 -0
  43. package/dist/components/craft-create-edit-drawer.cjs +112 -0
  44. package/dist/components/craft-create-edit-drawer.cjs.map +1 -0
  45. package/dist/components/craft-create-edit-drawer.d.cts +28 -0
  46. package/dist/components/craft-create-edit-drawer.d.ts +28 -0
  47. package/dist/components/craft-create-edit-drawer.js +78 -0
  48. package/dist/components/craft-create-edit-drawer.js.map +1 -0
  49. package/dist/components/craft-currency-input.cjs +68 -0
  50. package/dist/components/craft-currency-input.cjs.map +1 -0
  51. package/dist/components/craft-currency-input.d.cts +14 -0
  52. package/dist/components/craft-currency-input.d.ts +14 -0
  53. package/dist/components/craft-currency-input.js +34 -0
  54. package/dist/components/craft-currency-input.js.map +1 -0
  55. package/dist/components/craft-data-table.cjs +407 -0
  56. package/dist/components/craft-data-table.cjs.map +1 -0
  57. package/dist/components/craft-data-table.d.cts +58 -0
  58. package/dist/components/craft-data-table.d.ts +58 -0
  59. package/dist/components/craft-data-table.js +373 -0
  60. package/dist/components/craft-data-table.js.map +1 -0
  61. package/dist/components/craft-date-picker.cjs +226 -0
  62. package/dist/components/craft-date-picker.cjs.map +1 -0
  63. package/dist/components/craft-date-picker.d.cts +17 -0
  64. package/dist/components/craft-date-picker.d.ts +17 -0
  65. package/dist/components/craft-date-picker.js +192 -0
  66. package/dist/components/craft-date-picker.js.map +1 -0
  67. package/dist/components/craft-drawer.cjs +126 -0
  68. package/dist/components/craft-drawer.cjs.map +1 -0
  69. package/dist/components/craft-drawer.d.cts +19 -0
  70. package/dist/components/craft-drawer.d.ts +19 -0
  71. package/dist/components/craft-drawer.js +92 -0
  72. package/dist/components/craft-drawer.js.map +1 -0
  73. package/dist/components/craft-dropdown-menu.cjs +127 -0
  74. package/dist/components/craft-dropdown-menu.cjs.map +1 -0
  75. package/dist/components/craft-dropdown-menu.d.cts +28 -0
  76. package/dist/components/craft-dropdown-menu.d.ts +28 -0
  77. package/dist/components/craft-dropdown-menu.js +93 -0
  78. package/dist/components/craft-dropdown-menu.js.map +1 -0
  79. package/dist/components/craft-empty-state.cjs +58 -0
  80. package/dist/components/craft-empty-state.cjs.map +1 -0
  81. package/dist/components/craft-empty-state.d.cts +14 -0
  82. package/dist/components/craft-empty-state.d.ts +14 -0
  83. package/dist/components/craft-empty-state.js +34 -0
  84. package/dist/components/craft-empty-state.js.map +1 -0
  85. package/dist/components/craft-error-state.cjs +60 -0
  86. package/dist/components/craft-error-state.cjs.map +1 -0
  87. package/dist/components/craft-error-state.d.cts +15 -0
  88. package/dist/components/craft-error-state.d.ts +15 -0
  89. package/dist/components/craft-error-state.js +36 -0
  90. package/dist/components/craft-error-state.js.map +1 -0
  91. package/dist/components/craft-filter-bar.cjs +76 -0
  92. package/dist/components/craft-filter-bar.cjs.map +1 -0
  93. package/dist/components/craft-filter-bar.d.cts +18 -0
  94. package/dist/components/craft-filter-bar.d.ts +18 -0
  95. package/dist/components/craft-filter-bar.js +52 -0
  96. package/dist/components/craft-filter-bar.js.map +1 -0
  97. package/dist/components/craft-form-builder.cjs +330 -0
  98. package/dist/components/craft-form-builder.cjs.map +1 -0
  99. package/dist/components/craft-form-builder.d.cts +57 -0
  100. package/dist/components/craft-form-builder.d.ts +57 -0
  101. package/dist/components/craft-form-builder.js +301 -0
  102. package/dist/components/craft-form-builder.js.map +1 -0
  103. package/dist/components/craft-form-field.cjs +301 -0
  104. package/dist/components/craft-form-field.cjs.map +1 -0
  105. package/dist/components/craft-form-field.d.cts +30 -0
  106. package/dist/components/craft-form-field.d.ts +30 -0
  107. package/dist/components/craft-form-field.js +280 -0
  108. package/dist/components/craft-form-field.js.map +1 -0
  109. package/dist/components/craft-form.cjs +114 -0
  110. package/dist/components/craft-form.cjs.map +1 -0
  111. package/dist/components/craft-form.d.cts +27 -0
  112. package/dist/components/craft-form.d.ts +27 -0
  113. package/dist/components/craft-form.js +80 -0
  114. package/dist/components/craft-form.js.map +1 -0
  115. package/dist/components/craft-icon.cjs +102 -0
  116. package/dist/components/craft-icon.cjs.map +1 -0
  117. package/dist/components/craft-icon.d.cts +19 -0
  118. package/dist/components/craft-icon.d.ts +19 -0
  119. package/dist/components/craft-icon.js +67 -0
  120. package/dist/components/craft-icon.js.map +1 -0
  121. package/dist/components/craft-input.cjs +78 -0
  122. package/dist/components/craft-input.cjs.map +1 -0
  123. package/dist/components/craft-input.d.cts +19 -0
  124. package/dist/components/craft-input.d.ts +19 -0
  125. package/dist/components/craft-input.js +44 -0
  126. package/dist/components/craft-input.js.map +1 -0
  127. package/dist/components/craft-link.cjs +70 -0
  128. package/dist/components/craft-link.cjs.map +1 -0
  129. package/dist/components/craft-link.d.cts +14 -0
  130. package/dist/components/craft-link.d.ts +14 -0
  131. package/dist/components/craft-link.js +36 -0
  132. package/dist/components/craft-link.js.map +1 -0
  133. package/dist/components/craft-loading-state.cjs +64 -0
  134. package/dist/components/craft-loading-state.cjs.map +1 -0
  135. package/dist/components/craft-loading-state.d.cts +13 -0
  136. package/dist/components/craft-loading-state.d.ts +13 -0
  137. package/dist/components/craft-loading-state.js +40 -0
  138. package/dist/components/craft-loading-state.js.map +1 -0
  139. package/dist/components/craft-modal.cjs +174 -0
  140. package/dist/components/craft-modal.cjs.map +1 -0
  141. package/dist/components/craft-modal.d.cts +19 -0
  142. package/dist/components/craft-modal.d.ts +19 -0
  143. package/dist/components/craft-modal.js +140 -0
  144. package/dist/components/craft-modal.js.map +1 -0
  145. package/dist/components/craft-number-input.cjs +63 -0
  146. package/dist/components/craft-number-input.cjs.map +1 -0
  147. package/dist/components/craft-number-input.d.cts +12 -0
  148. package/dist/components/craft-number-input.d.ts +12 -0
  149. package/dist/components/craft-number-input.js +29 -0
  150. package/dist/components/craft-number-input.js.map +1 -0
  151. package/dist/components/craft-pagination.cjs +130 -0
  152. package/dist/components/craft-pagination.cjs.map +1 -0
  153. package/dist/components/craft-pagination.d.cts +19 -0
  154. package/dist/components/craft-pagination.d.ts +19 -0
  155. package/dist/components/craft-pagination.js +106 -0
  156. package/dist/components/craft-pagination.js.map +1 -0
  157. package/dist/components/craft-popover.cjs +123 -0
  158. package/dist/components/craft-popover.cjs.map +1 -0
  159. package/dist/components/craft-popover.d.cts +20 -0
  160. package/dist/components/craft-popover.d.ts +20 -0
  161. package/dist/components/craft-popover.js +89 -0
  162. package/dist/components/craft-popover.js.map +1 -0
  163. package/dist/components/craft-select.cjs +84 -0
  164. package/dist/components/craft-select.cjs.map +1 -0
  165. package/dist/components/craft-select.d.cts +12 -0
  166. package/dist/components/craft-select.d.ts +12 -0
  167. package/dist/components/craft-select.js +50 -0
  168. package/dist/components/craft-select.js.map +1 -0
  169. package/dist/components/craft-skeleton.cjs +45 -0
  170. package/dist/components/craft-skeleton.cjs.map +1 -0
  171. package/dist/components/craft-skeleton.d.cts +10 -0
  172. package/dist/components/craft-skeleton.d.ts +10 -0
  173. package/dist/components/craft-skeleton.js +21 -0
  174. package/dist/components/craft-skeleton.js.map +1 -0
  175. package/dist/components/craft-stat-card.cjs +67 -0
  176. package/dist/components/craft-stat-card.cjs.map +1 -0
  177. package/dist/components/craft-stat-card.d.cts +17 -0
  178. package/dist/components/craft-stat-card.d.ts +17 -0
  179. package/dist/components/craft-stat-card.js +43 -0
  180. package/dist/components/craft-stat-card.js.map +1 -0
  181. package/dist/components/craft-submit-button.cjs +71 -0
  182. package/dist/components/craft-submit-button.cjs.map +1 -0
  183. package/dist/components/craft-submit-button.d.cts +13 -0
  184. package/dist/components/craft-submit-button.d.ts +13 -0
  185. package/dist/components/craft-submit-button.js +47 -0
  186. package/dist/components/craft-submit-button.js.map +1 -0
  187. package/dist/components/craft-switch.cjs +82 -0
  188. package/dist/components/craft-switch.cjs.map +1 -0
  189. package/dist/components/craft-switch.d.cts +14 -0
  190. package/dist/components/craft-switch.d.ts +14 -0
  191. package/dist/components/craft-switch.js +48 -0
  192. package/dist/components/craft-switch.js.map +1 -0
  193. package/dist/components/craft-table-toolbar.cjs +79 -0
  194. package/dist/components/craft-table-toolbar.cjs.map +1 -0
  195. package/dist/components/craft-table-toolbar.d.cts +19 -0
  196. package/dist/components/craft-table-toolbar.d.ts +19 -0
  197. package/dist/components/craft-table-toolbar.js +55 -0
  198. package/dist/components/craft-table-toolbar.js.map +1 -0
  199. package/dist/components/craft-tabs.cjs +105 -0
  200. package/dist/components/craft-tabs.cjs.map +1 -0
  201. package/dist/components/craft-tabs.d.cts +19 -0
  202. package/dist/components/craft-tabs.d.ts +19 -0
  203. package/dist/components/craft-tabs.js +71 -0
  204. package/dist/components/craft-tabs.js.map +1 -0
  205. package/dist/components/craft-textarea.cjs +69 -0
  206. package/dist/components/craft-textarea.cjs.map +1 -0
  207. package/dist/components/craft-textarea.d.cts +12 -0
  208. package/dist/components/craft-textarea.d.ts +12 -0
  209. package/dist/components/craft-textarea.js +35 -0
  210. package/dist/components/craft-textarea.js.map +1 -0
  211. package/dist/components/craft-toast.cjs +98 -0
  212. package/dist/components/craft-toast.cjs.map +1 -0
  213. package/dist/components/craft-toast.d.cts +24 -0
  214. package/dist/components/craft-toast.d.ts +24 -0
  215. package/dist/components/craft-toast.js +63 -0
  216. package/dist/components/craft-toast.js.map +1 -0
  217. package/dist/components/craft-tooltip.cjs +75 -0
  218. package/dist/components/craft-tooltip.cjs.map +1 -0
  219. package/dist/components/craft-tooltip.d.cts +13 -0
  220. package/dist/components/craft-tooltip.d.ts +13 -0
  221. package/dist/components/craft-tooltip.js +41 -0
  222. package/dist/components/craft-tooltip.js.map +1 -0
  223. package/dist/components/glass-card.cjs +64 -0
  224. package/dist/components/glass-card.cjs.map +1 -0
  225. package/dist/components/glass-card.d.cts +12 -0
  226. package/dist/components/glass-card.d.ts +12 -0
  227. package/dist/components/glass-card.js +40 -0
  228. package/dist/components/glass-card.js.map +1 -0
  229. package/dist/components/layout/app-shell.cjs +49 -0
  230. package/dist/components/layout/app-shell.cjs.map +1 -0
  231. package/dist/components/layout/app-shell.d.cts +10 -0
  232. package/dist/components/layout/app-shell.d.ts +10 -0
  233. package/dist/components/layout/app-shell.js +25 -0
  234. package/dist/components/layout/app-shell.js.map +1 -0
  235. package/dist/components/layout/app-template.cjs +104 -0
  236. package/dist/components/layout/app-template.cjs.map +1 -0
  237. package/dist/components/layout/app-template.d.cts +19 -0
  238. package/dist/components/layout/app-template.d.ts +19 -0
  239. package/dist/components/layout/app-template.js +70 -0
  240. package/dist/components/layout/app-template.js.map +1 -0
  241. package/dist/components/layout/auth-layout.cjs +65 -0
  242. package/dist/components/layout/auth-layout.cjs.map +1 -0
  243. package/dist/components/layout/auth-layout.d.cts +12 -0
  244. package/dist/components/layout/auth-layout.d.ts +12 -0
  245. package/dist/components/layout/auth-layout.js +41 -0
  246. package/dist/components/layout/auth-layout.js.map +1 -0
  247. package/dist/components/layout/breadcrumbs.cjs +39 -0
  248. package/dist/components/layout/breadcrumbs.cjs.map +1 -0
  249. package/dist/components/layout/breadcrumbs.d.cts +13 -0
  250. package/dist/components/layout/breadcrumbs.d.ts +13 -0
  251. package/dist/components/layout/breadcrumbs.js +15 -0
  252. package/dist/components/layout/breadcrumbs.js.map +1 -0
  253. package/dist/components/layout/container.cjs +45 -0
  254. package/dist/components/layout/container.cjs.map +1 -0
  255. package/dist/components/layout/container.d.cts +9 -0
  256. package/dist/components/layout/container.d.ts +9 -0
  257. package/dist/components/layout/container.js +21 -0
  258. package/dist/components/layout/container.js.map +1 -0
  259. package/dist/components/layout/grid.cjs +47 -0
  260. package/dist/components/layout/grid.cjs.map +1 -0
  261. package/dist/components/layout/grid.d.cts +10 -0
  262. package/dist/components/layout/grid.d.ts +10 -0
  263. package/dist/components/layout/grid.js +23 -0
  264. package/dist/components/layout/grid.js.map +1 -0
  265. package/dist/components/layout/layout-config.cjs +78 -0
  266. package/dist/components/layout/layout-config.cjs.map +1 -0
  267. package/dist/components/layout/layout-config.d.cts +92 -0
  268. package/dist/components/layout/layout-config.d.ts +92 -0
  269. package/dist/components/layout/layout-config.js +54 -0
  270. package/dist/components/layout/layout-config.js.map +1 -0
  271. package/dist/components/layout/page-header.cjs +52 -0
  272. package/dist/components/layout/page-header.cjs.map +1 -0
  273. package/dist/components/layout/page-header.d.cts +11 -0
  274. package/dist/components/layout/page-header.d.ts +11 -0
  275. package/dist/components/layout/page-header.js +28 -0
  276. package/dist/components/layout/page-header.js.map +1 -0
  277. package/dist/components/layout/sidebar.cjs +64 -0
  278. package/dist/components/layout/sidebar.cjs.map +1 -0
  279. package/dist/components/layout/sidebar.d.cts +17 -0
  280. package/dist/components/layout/sidebar.d.ts +17 -0
  281. package/dist/components/layout/sidebar.js +40 -0
  282. package/dist/components/layout/sidebar.js.map +1 -0
  283. package/dist/components/layout/top-nav.cjs +49 -0
  284. package/dist/components/layout/top-nav.cjs.map +1 -0
  285. package/dist/components/layout/top-nav.d.cts +11 -0
  286. package/dist/components/layout/top-nav.d.ts +11 -0
  287. package/dist/components/layout/top-nav.js +25 -0
  288. package/dist/components/layout/top-nav.js.map +1 -0
  289. package/dist/components/theme-switcher.cjs +72 -0
  290. package/dist/components/theme-switcher.cjs.map +1 -0
  291. package/dist/components/theme-switcher.d.cts +9 -0
  292. package/dist/components/theme-switcher.d.ts +9 -0
  293. package/dist/components/theme-switcher.js +48 -0
  294. package/dist/components/theme-switcher.js.map +1 -0
  295. package/dist/index.cjs +103 -3448
  296. package/dist/index.cjs.map +1 -1
  297. package/dist/index.d.cts +54 -746
  298. package/dist/index.d.ts +54 -746
  299. package/dist/index.js +50 -3388
  300. package/dist/index.js.map +1 -1
  301. package/dist/theme-context-EVI9PfKv.d.cts +22 -0
  302. package/dist/theme-context-EVI9PfKv.d.ts +22 -0
  303. package/dist/utils/cn.cjs +31 -0
  304. package/dist/utils/cn.cjs.map +1 -0
  305. package/dist/utils/cn.d.cts +3 -0
  306. package/dist/utils/cn.d.ts +3 -0
  307. package/dist/utils/cn.js +7 -0
  308. package/dist/utils/cn.js.map +1 -0
  309. package/package.json +3 -2
@@ -0,0 +1,28 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/cn";
3
+ function PageHeader({
4
+ className,
5
+ title,
6
+ description,
7
+ actions,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsxs(
11
+ "div",
12
+ {
13
+ className: cn("flex flex-wrap items-start justify-between gap-6", className),
14
+ ...props,
15
+ children: [
16
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
17
+ /* @__PURE__ */ jsx("h1", { className: "text-3xl font-bold text-[rgb(var(--nc-fg))]", children: title }),
18
+ description && /* @__PURE__ */ jsx("p", { className: "text-[rgb(var(--nc-fg-muted))]", children: description })
19
+ ] }),
20
+ actions && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3", children: actions })
21
+ ]
22
+ }
23
+ );
24
+ }
25
+ export {
26
+ PageHeader
27
+ };
28
+ //# sourceMappingURL=page-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout/page-header.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport type PageHeaderProps = React.HTMLAttributes<HTMLDivElement> & {\n title: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n};\n\nexport function PageHeader({\n className,\n title,\n description,\n actions,\n ...props\n}: PageHeaderProps) {\n return (\n <div\n className={cn(\"flex flex-wrap items-start justify-between gap-6\", className)}\n {...props}\n >\n <div className=\"space-y-2\">\n <h1 className=\"text-3xl font-bold text-[rgb(var(--nc-fg))]\">{title}</h1>\n {description && <p className=\"text-[rgb(var(--nc-fg-muted))]\">{description}</p>}\n </div>\n {actions && <div className=\"flex flex-wrap gap-3\">{actions}</div>}\n </div>\n );\n}\n"],"mappings":"AAsBM,SACE,KADF;AApBN,SAAS,UAAU;AAQZ,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoB;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,oDAAoD,SAAS;AAAA,MAC1E,GAAG;AAAA,MAEJ;AAAA,6BAAC,SAAI,WAAU,aACb;AAAA,8BAAC,QAAG,WAAU,+CAA+C,iBAAM;AAAA,UAClE,eAAe,oBAAC,OAAE,WAAU,kCAAkC,uBAAY;AAAA,WAC7E;AAAA,QACC,WAAW,oBAAC,SAAI,WAAU,wBAAwB,mBAAQ;AAAA;AAAA;AAAA,EAC7D;AAEJ;","names":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var sidebar_exports = {};
20
+ __export(sidebar_exports, {
21
+ Sidebar: () => Sidebar
22
+ });
23
+ module.exports = __toCommonJS(sidebar_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_cn = require("../../utils/cn");
26
+ function Sidebar({ className, title, items, footer, ...props }) {
27
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
28
+ "aside",
29
+ {
30
+ className: (0, import_cn.cn)(
31
+ "flex h-full w-full flex-col gap-6 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] p-6 text-[rgb(var(--nc-fg))] backdrop-blur-xl",
32
+ className
33
+ ),
34
+ ...props,
35
+ children: [
36
+ title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-lg font-semibold", children: title }),
37
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("nav", { className: "flex flex-col gap-2", children: items.map((item, index) => {
38
+ var _a;
39
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
40
+ "a",
41
+ {
42
+ href: (_a = item.href) != null ? _a : "#",
43
+ className: (0, import_cn.cn)(
44
+ "flex items-center gap-3 rounded-2xl px-3 py-2 text-sm transition",
45
+ item.active ? "bg-[rgb(var(--nc-accent-1)/0.25)] text-[rgb(var(--nc-fg))]" : "text-[rgb(var(--nc-fg-muted))] hover:bg-[rgb(var(--nc-surface)/0.12)] hover:text-[rgb(var(--nc-fg))]"
46
+ ),
47
+ children: [
48
+ item.icon,
49
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: item.label })
50
+ ]
51
+ },
52
+ `${item.label}-${index}`
53
+ );
54
+ }) }),
55
+ footer && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-auto pt-4", children: footer })
56
+ ]
57
+ }
58
+ );
59
+ }
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ Sidebar
63
+ });
64
+ //# sourceMappingURL=sidebar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout/sidebar.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport type SidebarItem = {\n label: React.ReactNode;\n href?: string;\n icon?: React.ReactNode;\n active?: boolean;\n};\n\nexport type SidebarProps = React.HTMLAttributes<HTMLElement> & {\n title?: React.ReactNode;\n items: SidebarItem[];\n footer?: React.ReactNode;\n};\n\nexport function Sidebar({ className, title, items, footer, ...props }: SidebarProps) {\n return (\n <aside\n className={cn(\n \"flex h-full w-full flex-col gap-6 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] p-6 text-[rgb(var(--nc-fg))] backdrop-blur-xl\",\n className\n )}\n {...props}\n >\n {title && <div className=\"text-lg font-semibold\">{title}</div>}\n <nav className=\"flex flex-col gap-2\">\n {items.map((item, index) => (\n <a\n key={`${item.label}-${index}`}\n href={item.href ?? \"#\"}\n className={cn(\n \"flex items-center gap-3 rounded-2xl px-3 py-2 text-sm transition\",\n item.active\n ? \"bg-[rgb(var(--nc-accent-1)/0.25)] text-[rgb(var(--nc-fg))]\"\n : \"text-[rgb(var(--nc-fg-muted))] hover:bg-[rgb(var(--nc-surface)/0.12)] hover:text-[rgb(var(--nc-fg))]\"\n )}\n >\n {item.icon}\n <span>{item.label}</span>\n </a>\n ))}\n </nav>\n {footer && <div className=\"mt-auto pt-4\">{footer}</div>}\n </aside>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA0BgB;AAxBhB,gBAAmB;AAeZ,SAAS,QAAQ,EAAE,WAAW,OAAO,OAAO,QAAQ,GAAG,MAAM,GAAiB;AACnF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,iBAAS,4CAAC,SAAI,WAAU,yBAAyB,iBAAM;AAAA,QACxD,4CAAC,SAAI,WAAU,uBACZ,gBAAM,IAAI,CAAC,MAAM,UAAO;AA5BjC;AA6BU;AAAA,YAAC;AAAA;AAAA,cAEC,OAAM,UAAK,SAAL,YAAa;AAAA,cACnB,eAAW;AAAA,gBACT;AAAA,gBACA,KAAK,SACD,+DACA;AAAA,cACN;AAAA,cAEC;AAAA,qBAAK;AAAA,gBACN,4CAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YAVb,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,UAW7B;AAAA,SACD,GACH;AAAA,QACC,UAAU,4CAAC,SAAI,WAAU,gBAAgB,kBAAO;AAAA;AAAA;AAAA,EACnD;AAEJ;","names":[]}
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type SidebarItem = {
5
+ label: React.ReactNode;
6
+ href?: string;
7
+ icon?: React.ReactNode;
8
+ active?: boolean;
9
+ };
10
+ type SidebarProps = React.HTMLAttributes<HTMLElement> & {
11
+ title?: React.ReactNode;
12
+ items: SidebarItem[];
13
+ footer?: React.ReactNode;
14
+ };
15
+ declare function Sidebar({ className, title, items, footer, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { Sidebar, type SidebarItem, type SidebarProps };
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type SidebarItem = {
5
+ label: React.ReactNode;
6
+ href?: string;
7
+ icon?: React.ReactNode;
8
+ active?: boolean;
9
+ };
10
+ type SidebarProps = React.HTMLAttributes<HTMLElement> & {
11
+ title?: React.ReactNode;
12
+ items: SidebarItem[];
13
+ footer?: React.ReactNode;
14
+ };
15
+ declare function Sidebar({ className, title, items, footer, ...props }: SidebarProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { Sidebar, type SidebarItem, type SidebarProps };
@@ -0,0 +1,40 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/cn";
3
+ function Sidebar({ className, title, items, footer, ...props }) {
4
+ return /* @__PURE__ */ jsxs(
5
+ "aside",
6
+ {
7
+ className: cn(
8
+ "flex h-full w-full flex-col gap-6 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] p-6 text-[rgb(var(--nc-fg))] backdrop-blur-xl",
9
+ className
10
+ ),
11
+ ...props,
12
+ children: [
13
+ title && /* @__PURE__ */ jsx("div", { className: "text-lg font-semibold", children: title }),
14
+ /* @__PURE__ */ jsx("nav", { className: "flex flex-col gap-2", children: items.map((item, index) => {
15
+ var _a;
16
+ return /* @__PURE__ */ jsxs(
17
+ "a",
18
+ {
19
+ href: (_a = item.href) != null ? _a : "#",
20
+ className: cn(
21
+ "flex items-center gap-3 rounded-2xl px-3 py-2 text-sm transition",
22
+ item.active ? "bg-[rgb(var(--nc-accent-1)/0.25)] text-[rgb(var(--nc-fg))]" : "text-[rgb(var(--nc-fg-muted))] hover:bg-[rgb(var(--nc-surface)/0.12)] hover:text-[rgb(var(--nc-fg))]"
23
+ ),
24
+ children: [
25
+ item.icon,
26
+ /* @__PURE__ */ jsx("span", { children: item.label })
27
+ ]
28
+ },
29
+ `${item.label}-${index}`
30
+ );
31
+ }) }),
32
+ footer && /* @__PURE__ */ jsx("div", { className: "mt-auto pt-4", children: footer })
33
+ ]
34
+ }
35
+ );
36
+ }
37
+ export {
38
+ Sidebar
39
+ };
40
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout/sidebar.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport type SidebarItem = {\n label: React.ReactNode;\n href?: string;\n icon?: React.ReactNode;\n active?: boolean;\n};\n\nexport type SidebarProps = React.HTMLAttributes<HTMLElement> & {\n title?: React.ReactNode;\n items: SidebarItem[];\n footer?: React.ReactNode;\n};\n\nexport function Sidebar({ className, title, items, footer, ...props }: SidebarProps) {\n return (\n <aside\n className={cn(\n \"flex h-full w-full flex-col gap-6 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] p-6 text-[rgb(var(--nc-fg))] backdrop-blur-xl\",\n className\n )}\n {...props}\n >\n {title && <div className=\"text-lg font-semibold\">{title}</div>}\n <nav className=\"flex flex-col gap-2\">\n {items.map((item, index) => (\n <a\n key={`${item.label}-${index}`}\n href={item.href ?? \"#\"}\n className={cn(\n \"flex items-center gap-3 rounded-2xl px-3 py-2 text-sm transition\",\n item.active\n ? \"bg-[rgb(var(--nc-accent-1)/0.25)] text-[rgb(var(--nc-fg))]\"\n : \"text-[rgb(var(--nc-fg-muted))] hover:bg-[rgb(var(--nc-surface)/0.12)] hover:text-[rgb(var(--nc-fg))]\"\n )}\n >\n {item.icon}\n <span>{item.label}</span>\n </a>\n ))}\n </nav>\n {footer && <div className=\"mt-auto pt-4\">{footer}</div>}\n </aside>\n );\n}\n"],"mappings":"AA0BgB,cAGN,YAHM;AAxBhB,SAAS,UAAU;AAeZ,SAAS,QAAQ,EAAE,WAAW,OAAO,OAAO,QAAQ,GAAG,MAAM,GAAiB;AACnF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,iBAAS,oBAAC,SAAI,WAAU,yBAAyB,iBAAM;AAAA,QACxD,oBAAC,SAAI,WAAU,uBACZ,gBAAM,IAAI,CAAC,MAAM,UAAO;AA5BjC;AA6BU;AAAA,YAAC;AAAA;AAAA,cAEC,OAAM,UAAK,SAAL,YAAa;AAAA,cACnB,WAAW;AAAA,gBACT;AAAA,gBACA,KAAK,SACD,+DACA;AAAA,cACN;AAAA,cAEC;AAAA,qBAAK;AAAA,gBACN,oBAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YAVb,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,UAW7B;AAAA,SACD,GACH;AAAA,QACC,UAAU,oBAAC,SAAI,WAAU,gBAAgB,kBAAO;AAAA;AAAA;AAAA,EACnD;AAEJ;","names":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var top_nav_exports = {};
20
+ __export(top_nav_exports, {
21
+ TopNav: () => TopNav
22
+ });
23
+ module.exports = __toCommonJS(top_nav_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_cn = require("../../utils/cn");
26
+ function TopNav({ className, title, actions, breadcrumb, ...props }) {
27
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
28
+ "header",
29
+ {
30
+ className: (0, import_cn.cn)(
31
+ "flex flex-wrap items-center justify-between gap-4 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-6 py-4 text-[rgb(var(--nc-fg))] backdrop-blur-xl",
32
+ className
33
+ ),
34
+ ...props,
35
+ children: [
36
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-1", children: [
37
+ breadcrumb,
38
+ title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xl font-semibold", children: title })
39
+ ] }),
40
+ actions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-wrap gap-3", children: actions })
41
+ ]
42
+ }
43
+ );
44
+ }
45
+ // Annotate the CommonJS export names for ESM import in node:
46
+ 0 && (module.exports = {
47
+ TopNav
48
+ });
49
+ //# sourceMappingURL=top-nav.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout/top-nav.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport type TopNavProps = React.HTMLAttributes<HTMLElement> & {\n title?: React.ReactNode;\n actions?: React.ReactNode;\n breadcrumb?: React.ReactNode;\n};\n\nexport function TopNav({ className, title, actions, breadcrumb, ...props }: TopNavProps) {\n return (\n <header\n className={cn(\n \"flex flex-wrap items-center justify-between gap-4 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-6 py-4 text-[rgb(var(--nc-fg))] backdrop-blur-xl\",\n className\n )}\n {...props}\n >\n <div className=\"space-y-1\">\n {breadcrumb}\n {title && <div className=\"text-xl font-semibold\">{title}</div>}\n </div>\n {actions && <div className=\"flex flex-wrap gap-3\">{actions}</div>}\n </header>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBM;AAjBN,gBAAmB;AAQZ,SAAS,OAAO,EAAE,WAAW,OAAO,SAAS,YAAY,GAAG,MAAM,GAAgB;AACvF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,qDAAC,SAAI,WAAU,aACZ;AAAA;AAAA,UACA,SAAS,4CAAC,SAAI,WAAU,yBAAyB,iBAAM;AAAA,WAC1D;AAAA,QACC,WAAW,4CAAC,SAAI,WAAU,wBAAwB,mBAAQ;AAAA;AAAA;AAAA,EAC7D;AAEJ;","names":[]}
@@ -0,0 +1,11 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type TopNavProps = React.HTMLAttributes<HTMLElement> & {
5
+ title?: React.ReactNode;
6
+ actions?: React.ReactNode;
7
+ breadcrumb?: React.ReactNode;
8
+ };
9
+ declare function TopNav({ className, title, actions, breadcrumb, ...props }: TopNavProps): react_jsx_runtime.JSX.Element;
10
+
11
+ export { TopNav, type TopNavProps };
@@ -0,0 +1,11 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type TopNavProps = React.HTMLAttributes<HTMLElement> & {
5
+ title?: React.ReactNode;
6
+ actions?: React.ReactNode;
7
+ breadcrumb?: React.ReactNode;
8
+ };
9
+ declare function TopNav({ className, title, actions, breadcrumb, ...props }: TopNavProps): react_jsx_runtime.JSX.Element;
10
+
11
+ export { TopNav, type TopNavProps };
@@ -0,0 +1,25 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/cn";
3
+ function TopNav({ className, title, actions, breadcrumb, ...props }) {
4
+ return /* @__PURE__ */ jsxs(
5
+ "header",
6
+ {
7
+ className: cn(
8
+ "flex flex-wrap items-center justify-between gap-4 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-6 py-4 text-[rgb(var(--nc-fg))] backdrop-blur-xl",
9
+ className
10
+ ),
11
+ ...props,
12
+ children: [
13
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
14
+ breadcrumb,
15
+ title && /* @__PURE__ */ jsx("div", { className: "text-xl font-semibold", children: title })
16
+ ] }),
17
+ actions && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-3", children: actions })
18
+ ]
19
+ }
20
+ );
21
+ }
22
+ export {
23
+ TopNav
24
+ };
25
+ //# sourceMappingURL=top-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/layout/top-nav.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\n\nexport type TopNavProps = React.HTMLAttributes<HTMLElement> & {\n title?: React.ReactNode;\n actions?: React.ReactNode;\n breadcrumb?: React.ReactNode;\n};\n\nexport function TopNav({ className, title, actions, breadcrumb, ...props }: TopNavProps) {\n return (\n <header\n className={cn(\n \"flex flex-wrap items-center justify-between gap-4 rounded-3xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-6 py-4 text-[rgb(var(--nc-fg))] backdrop-blur-xl\",\n className\n )}\n {...props}\n >\n <div className=\"space-y-1\">\n {breadcrumb}\n {title && <div className=\"text-xl font-semibold\">{title}</div>}\n </div>\n {actions && <div className=\"flex flex-wrap gap-3\">{actions}</div>}\n </header>\n );\n}\n"],"mappings":"AAmBM,SAEY,KAFZ;AAjBN,SAAS,UAAU;AAQZ,SAAS,OAAO,EAAE,WAAW,OAAO,SAAS,YAAY,GAAG,MAAM,GAAgB;AACvF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,6BAAC,SAAI,WAAU,aACZ;AAAA;AAAA,UACA,SAAS,oBAAC,SAAI,WAAU,yBAAyB,iBAAM;AAAA,WAC1D;AAAA,QACC,WAAW,oBAAC,SAAI,WAAU,wBAAwB,mBAAQ;AAAA;AAAA;AAAA,EAC7D;AAEJ;","names":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var theme_switcher_exports = {};
21
+ __export(theme_switcher_exports, {
22
+ ThemeSwitcher: () => ThemeSwitcher
23
+ });
24
+ module.exports = __toCommonJS(theme_switcher_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_cn = require("../utils/cn");
27
+ var import_theme_context = require("@/theme/theme-context");
28
+ const MODE_OPTIONS = ["system", "light", "dark"];
29
+ function ThemeSwitcher({ className, showLabels = true, ...props }) {
30
+ const { theme, mode, setTheme, setMode } = (0, import_theme_context.useTheme)();
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
32
+ "div",
33
+ {
34
+ className: (0, import_cn.cn)(
35
+ "flex flex-wrap items-center gap-3 rounded-2xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-4 py-3 text-sm text-[rgb(var(--nc-fg))] shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]",
36
+ className
37
+ ),
38
+ ...props,
39
+ children: [
40
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { className: "flex items-center gap-2", children: [
41
+ showLabels && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-[rgb(var(--nc-fg-muted))]", children: "Theme" }),
42
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
+ "select",
44
+ {
45
+ className: "rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]",
46
+ value: theme,
47
+ onChange: (event) => setTheme(event.target.value),
48
+ children: import_theme_context.THEME_NAMES.map((name) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: name, className: "text-slate-900", children: name }, name))
49
+ }
50
+ )
51
+ ] }),
52
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { className: "flex items-center gap-2", children: [
53
+ showLabels && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-[rgb(var(--nc-fg-muted))]", children: "Mode" }),
54
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
55
+ "select",
56
+ {
57
+ className: "rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]",
58
+ value: mode,
59
+ onChange: (event) => setMode(event.target.value),
60
+ children: MODE_OPTIONS.map((value) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value, className: "text-slate-900", children: value }, value))
61
+ }
62
+ )
63
+ ] })
64
+ ]
65
+ }
66
+ );
67
+ }
68
+ // Annotate the CommonJS export names for ESM import in node:
69
+ 0 && (module.exports = {
70
+ ThemeSwitcher
71
+ });
72
+ //# sourceMappingURL=theme-switcher.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/theme-switcher.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\nimport { THEME_NAMES, type ThemeMode, type ThemeName, useTheme } from \"@/theme/theme-context\";\n\nconst MODE_OPTIONS: ThemeMode[] = [\"system\", \"light\", \"dark\"];\n\nexport type ThemeSwitcherProps = React.HTMLAttributes<HTMLDivElement> & {\n showLabels?: boolean;\n};\n\nexport function ThemeSwitcher({ className, showLabels = true, ...props }: ThemeSwitcherProps) {\n const { theme, mode, setTheme, setMode } = useTheme();\n\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center gap-3 rounded-2xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-4 py-3 text-sm text-[rgb(var(--nc-fg))] shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]\",\n className\n )}\n {...props}\n >\n <label className=\"flex items-center gap-2\">\n {showLabels && <span className=\"text-[rgb(var(--nc-fg-muted))]\">Theme</span>}\n <select\n className=\"rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]\"\n value={theme}\n onChange={(event) => setTheme(event.target.value as ThemeName)}\n >\n {THEME_NAMES.map((name) => (\n <option key={name} value={name} className=\"text-slate-900\">\n {name}\n </option>\n ))}\n </select>\n </label>\n <label className=\"flex items-center gap-2\">\n {showLabels && <span className=\"text-[rgb(var(--nc-fg-muted))]\">Mode</span>}\n <select\n className=\"rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]\"\n value={mode}\n onChange={(event) => setMode(event.target.value as ThemeMode)}\n >\n {MODE_OPTIONS.map((value) => (\n <option key={value} value={value} className=\"text-slate-900\">\n {value}\n </option>\n ))}\n </select>\n </label>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBM;AApBN,gBAAmB;AACnB,2BAAsE;AAEtE,MAAM,eAA4B,CAAC,UAAU,SAAS,MAAM;AAMrD,SAAS,cAAc,EAAE,WAAW,aAAa,MAAM,GAAG,MAAM,GAAuB;AAC5F,QAAM,EAAE,OAAO,MAAM,UAAU,QAAQ,QAAI,+BAAS;AAEpD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,qDAAC,WAAM,WAAU,2BACd;AAAA,wBAAc,4CAAC,UAAK,WAAU,kCAAiC,mBAAK;AAAA,UACrE;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,SAAS,MAAM,OAAO,KAAkB;AAAA,cAE5D,2CAAY,IAAI,CAAC,SAChB,4CAAC,YAAkB,OAAO,MAAM,WAAU,kBACvC,kBADU,IAEb,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA,QACA,6CAAC,WAAM,WAAU,2BACd;AAAA,wBAAc,4CAAC,UAAK,WAAU,kCAAiC,kBAAI;AAAA,UACpE;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,QAAQ,MAAM,OAAO,KAAkB;AAAA,cAE3D,uBAAa,IAAI,CAAC,UACjB,4CAAC,YAAmB,OAAc,WAAU,kBACzC,mBADU,KAEb,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type ThemeSwitcherProps = React.HTMLAttributes<HTMLDivElement> & {
5
+ showLabels?: boolean;
6
+ };
7
+ declare function ThemeSwitcher({ className, showLabels, ...props }: ThemeSwitcherProps): react_jsx_runtime.JSX.Element;
8
+
9
+ export { ThemeSwitcher, type ThemeSwitcherProps };
@@ -0,0 +1,9 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type ThemeSwitcherProps = React.HTMLAttributes<HTMLDivElement> & {
5
+ showLabels?: boolean;
6
+ };
7
+ declare function ThemeSwitcher({ className, showLabels, ...props }: ThemeSwitcherProps): react_jsx_runtime.JSX.Element;
8
+
9
+ export { ThemeSwitcher, type ThemeSwitcherProps };
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../utils/cn";
4
+ import { THEME_NAMES, useTheme } from "@/theme/theme-context";
5
+ const MODE_OPTIONS = ["system", "light", "dark"];
6
+ function ThemeSwitcher({ className, showLabels = true, ...props }) {
7
+ const { theme, mode, setTheme, setMode } = useTheme();
8
+ return /* @__PURE__ */ jsxs(
9
+ "div",
10
+ {
11
+ className: cn(
12
+ "flex flex-wrap items-center gap-3 rounded-2xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-4 py-3 text-sm text-[rgb(var(--nc-fg))] shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]",
13
+ className
14
+ ),
15
+ ...props,
16
+ children: [
17
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2", children: [
18
+ showLabels && /* @__PURE__ */ jsx("span", { className: "text-[rgb(var(--nc-fg-muted))]", children: "Theme" }),
19
+ /* @__PURE__ */ jsx(
20
+ "select",
21
+ {
22
+ className: "rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]",
23
+ value: theme,
24
+ onChange: (event) => setTheme(event.target.value),
25
+ children: THEME_NAMES.map((name) => /* @__PURE__ */ jsx("option", { value: name, className: "text-slate-900", children: name }, name))
26
+ }
27
+ )
28
+ ] }),
29
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2", children: [
30
+ showLabels && /* @__PURE__ */ jsx("span", { className: "text-[rgb(var(--nc-fg-muted))]", children: "Mode" }),
31
+ /* @__PURE__ */ jsx(
32
+ "select",
33
+ {
34
+ className: "rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]",
35
+ value: mode,
36
+ onChange: (event) => setMode(event.target.value),
37
+ children: MODE_OPTIONS.map((value) => /* @__PURE__ */ jsx("option", { value, className: "text-slate-900", children: value }, value))
38
+ }
39
+ )
40
+ ] })
41
+ ]
42
+ }
43
+ );
44
+ }
45
+ export {
46
+ ThemeSwitcher
47
+ };
48
+ //# sourceMappingURL=theme-switcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/theme-switcher.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/utils/cn\";\nimport { THEME_NAMES, type ThemeMode, type ThemeName, useTheme } from \"@/theme/theme-context\";\n\nconst MODE_OPTIONS: ThemeMode[] = [\"system\", \"light\", \"dark\"];\n\nexport type ThemeSwitcherProps = React.HTMLAttributes<HTMLDivElement> & {\n showLabels?: boolean;\n};\n\nexport function ThemeSwitcher({ className, showLabels = true, ...props }: ThemeSwitcherProps) {\n const { theme, mode, setTheme, setMode } = useTheme();\n\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center gap-3 rounded-2xl border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.08)] px-4 py-3 text-sm text-[rgb(var(--nc-fg))] shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]\",\n className\n )}\n {...props}\n >\n <label className=\"flex items-center gap-2\">\n {showLabels && <span className=\"text-[rgb(var(--nc-fg-muted))]\">Theme</span>}\n <select\n className=\"rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]\"\n value={theme}\n onChange={(event) => setTheme(event.target.value as ThemeName)}\n >\n {THEME_NAMES.map((name) => (\n <option key={name} value={name} className=\"text-slate-900\">\n {name}\n </option>\n ))}\n </select>\n </label>\n <label className=\"flex items-center gap-2\">\n {showLabels && <span className=\"text-[rgb(var(--nc-fg-muted))]\">Mode</span>}\n <select\n className=\"rounded-lg border border-[rgb(var(--nc-border)/0.3)] bg-[rgb(var(--nc-surface)/0.12)] px-3 py-1 text-[rgb(var(--nc-fg))] outline-none focus:ring-2 focus:ring-[rgb(var(--nc-accent-1)/0.5)]\"\n value={mode}\n onChange={(event) => setMode(event.target.value as ThemeMode)}\n >\n {MODE_OPTIONS.map((value) => (\n <option key={value} value={value} className=\"text-slate-900\">\n {value}\n </option>\n ))}\n </select>\n </label>\n </div>\n );\n}\n"],"mappings":";AAwBM,SACiB,KADjB;AApBN,SAAS,UAAU;AACnB,SAAS,aAA6C,gBAAgB;AAEtE,MAAM,eAA4B,CAAC,UAAU,SAAS,MAAM;AAMrD,SAAS,cAAc,EAAE,WAAW,aAAa,MAAM,GAAG,MAAM,GAAuB;AAC5F,QAAM,EAAE,OAAO,MAAM,UAAU,QAAQ,IAAI,SAAS;AAEpD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,6BAAC,WAAM,WAAU,2BACd;AAAA,wBAAc,oBAAC,UAAK,WAAU,kCAAiC,mBAAK;AAAA,UACrE;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,SAAS,MAAM,OAAO,KAAkB;AAAA,cAE5D,sBAAY,IAAI,CAAC,SAChB,oBAAC,YAAkB,OAAO,MAAM,WAAU,kBACvC,kBADU,IAEb,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA,QACA,qBAAC,WAAM,WAAU,2BACd;AAAA,wBAAc,oBAAC,UAAK,WAAU,kCAAiC,kBAAI;AAAA,UACpE;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,QAAQ,MAAM,OAAO,KAAkB;AAAA,cAE3D,uBAAa,IAAI,CAAC,UACjB,oBAAC,YAAmB,OAAc,WAAU,kBACzC,mBADU,KAEb,CACD;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}