@manafishrov/ui 1.1.0 → 1.2.1

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.
package/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # @manafishrov/ui
2
+
3
+ A very opinionated component library for Manafish interfaces.
4
+
5
+ ## Dependencies
6
+
7
+ The consumer project requires these peer dependencies:
8
+
9
+ - `solid-js`
10
+ - `tailwindcss`
11
+ - `@tanstack/solid-router`
12
+ - `@tanstack/solid-form`
13
+ - `unplugin-icons`
14
+ - `@iconify-json/material-symbols`
15
+
16
+ ## Usage
17
+
18
+ ### 1. Import the theme in your CSS
19
+
20
+ ```css
21
+ @import 'tailwindcss';
22
+ @import '@manafishrov/ui/theme';
23
+ ```
24
+
25
+ ### 2. Wrap your app with providers
26
+
27
+ ```tsx
28
+ import { LocaleProvider, ThemeProvider } from '@manafishrov/ui';
29
+
30
+ function App() {
31
+ return (
32
+ <ThemeProvider>
33
+ <LocaleProvider locale='en'>{/* your app */}</LocaleProvider>
34
+ </ThemeProvider>
35
+ );
36
+ }
37
+ ```
38
+
39
+ ## License
40
+
41
+ AGPL-3.0-or-later
@@ -1,10 +1,10 @@
1
1
  import { template as e, spread as r } from "solid-js/web";
2
- var m = /* @__PURE__ */ e('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M12 14q-.425 0-.712-.288T11 13t.288-.712T12 12t.713.288T13 13t-.288.713T12 14m-4 0q-.425 0-.712-.288T7 13t.288-.712T8 12t.713.288T9 13t-.288.713T8 14m8 0q-.425 0-.712-.288T15 13t.288-.712T16 12t.713.288T17 13t-.288.713T16 14m-4 4q-.425 0-.712-.288T11 17t.288-.712T12 16t.713.288T13 17t-.288.713T12 18m-4 0q-.425 0-.712-.288T7 17t.288-.712T8 16t.713.288T9 17t-.288.713T8 18m8 0q-.425 0-.712-.288T15 17t.288-.712T16 16t.713.288T17 17t-.288.713T16 18M5 22q-.825 0-1.412-.587T3 20V6q0-.825.588-1.412T5 4h1V2h2v2h8V2h2v2h1q.825 0 1.413.588T21 6v14q0 .825-.587 1.413T19 22zm0-2h14V10H5z">');
3
- const q = (T = {}) => (() => {
4
- var t = m();
2
+ var h = /* @__PURE__ */ e('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M12 14q-.425 0-.712-.288T11 13t.288-.712T12 12t.713.288T13 13t-.288.713T12 14m-4.712-.288Q7 13.426 7 13t.288-.712T8 12t.713.288T9 13t-.288.713T8 14t-.712-.288M16 14q-.425 0-.712-.288T15 13t.288-.712T16 12t.713.288T17 13t-.288.713T16 14m-4 4q-.425 0-.712-.288T11 17t.288-.712T12 16t.713.288T13 17t-.288.713T12 18m-4.712-.288Q7 17.426 7 17t.288-.712T8 16t.713.288T9 17t-.288.713T8 18t-.712-.288M16 18q-.425 0-.712-.288T15 17t.288-.712T16 16t.713.288T17 17t-.288.713T16 18M5 22q-.825 0-1.412-.587T3 20V6q0-.825.588-1.412T5 4h1V2h2v2h8V2h2v2h1q.825 0 1.413.588T21 6v14q0 .825-.587 1.413T19 22zm0-2h14V10H5z">');
3
+ const a = (T = {}) => (() => {
4
+ var t = h();
5
5
  return r(t, T, !0, !0), t;
6
6
  })();
7
7
  export {
8
- q as default
8
+ a as default
9
9
  };
10
10
  //# sourceMappingURL=calendar-month.js.map
@@ -1,10 +1,10 @@
1
1
  import { template as e, spread as T } from "solid-js/web";
2
- var o = /* @__PURE__ */ e('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M12 17q.425 0 .713-.288T13 16t-.288-.712T12 15t-.712.288T11 16t.288.713T12 17m-1-4h2V7h-2zm1 9q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22">');
3
- const a = (r = {}) => (() => {
2
+ var o = /* @__PURE__ */ e('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M12.713 16.713Q13 16.425 13 16t-.288-.712T12 15t-.712.288T11 16t.288.713T12 17t.713-.288M11 13h2V7h-2zm1 9q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22">');
3
+ const l = (r = {}) => (() => {
4
4
  var t = o();
5
5
  return T(t, r, !0, !0), t;
6
6
  })();
7
7
  export {
8
- a as default
8
+ l as default
9
9
  };
10
10
  //# sourceMappingURL=error.js.map
@@ -1,10 +1,10 @@
1
1
  import { template as r, spread as T } from "solid-js/web";
2
- var o = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M11 17h2v-6h-2zm1-8q.425 0 .713-.288T13 8t-.288-.712T12 7t-.712.288T11 8t.288.713T12 9m0 13q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22">');
3
- const a = (e = {}) => (() => {
2
+ var o = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M11 17h2v-6h-2zm1.713-8.287Q13 8.425 13 8t-.288-.712T12 7t-.712.288T11 8t.288.713T12 9t.713-.288M12 22q-2.075 0-3.9-.788t-3.175-2.137T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22">');
3
+ const l = (e = {}) => (() => {
4
4
  var t = o();
5
5
  return T(t, e, !0, !0), t;
6
6
  })();
7
7
  export {
8
- a as default
8
+ l as default
9
9
  };
10
10
  //# sourceMappingURL=info.js.map
@@ -1,8 +1,8 @@
1
- import { template as r, spread as T } from "solid-js/web";
2
- var o = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M12 22q-2.05 0-3.875-.788t-3.187-2.15t-2.15-3.187T2 12q0-2.075.788-3.887t2.15-3.175t3.187-2.15T12 2q.425 0 .713.288T13 3t-.288.713T12 4Q8.675 4 6.337 6.338T4 12t2.338 5.663T12 20t5.663-2.337T20 12q0-.425.288-.712T21 11t.713.288T22 12q0 2.05-.788 3.875t-2.15 3.188t-3.175 2.15T12 22">');
1
+ import { template as r, spread as o } from "solid-js/web";
2
+ var T = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12 2q.425 0 .713.288T13 3t-.288.713T12 4Q8.675 4 6.337 6.338T4 12t2.338 5.663T12 20t5.663-2.337T20 12q0-.425.288-.712T21 11t.713.288T22 12q0 2.05-.788 3.875t-2.15 3.188t-3.175 2.15t-3.875.787t-3.887-.787">');
3
3
  const i = (e = {}) => (() => {
4
- var t = o();
5
- return T(t, e, !0, !0), t;
4
+ var t = T();
5
+ return o(t, e, !0, !0), t;
6
6
  })();
7
7
  export {
8
8
  i as default
@@ -1,8 +1,8 @@
1
- import { template as r, spread as T } from "solid-js/web";
2
- var i = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M12 16q1.875 0 3.188-1.312T16.5 11.5t-1.312-3.187T12 7T8.813 8.313T7.5 11.5t1.313 3.188T12 16m0-1.8q-1.125 0-1.912-.788T9.3 11.5t.788-1.912T12 8.8t1.913.788t.787 1.912t-.787 1.913T12 14.2m0 4.8q-3.65 0-6.65-2.037T1 11.5q1.35-3.425 4.35-5.462T12 4t6.65 2.038T23 11.5q-1.35 3.425-4.35 5.463T12 19">');
1
+ import { template as r, spread as i } from "solid-js/web";
2
+ var T = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M15.188 14.688Q16.5 13.375 16.5 11.5t-1.312-3.187T12 7T8.813 8.313T7.5 11.5t1.313 3.188T12 16t3.188-1.312m-5.1-1.276Q9.3 12.625 9.3 11.5t.788-1.912T12 8.8t1.913.788t.787 1.912t-.787 1.913T12 14.2t-1.912-.787m-4.738 3.55Q2.35 14.925 1 11.5q1.35-3.425 4.35-5.462T12 4t6.65 2.038T23 11.5q-1.35 3.425-4.35 5.463T12 19t-6.65-2.037">');
3
3
  const m = (e = {}) => (() => {
4
- var t = i();
5
- return T(t, e, !0, !0), t;
4
+ var t = T();
5
+ return i(t, e, !0, !0), t;
6
6
  })();
7
7
  export {
8
8
  m as default
@@ -1,10 +1,10 @@
1
1
  import { template as r, spread as a } from "solid-js/web";
2
- var l = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M1 21L12 2l11 19zm11-3q.425 0 .713-.288T13 17t-.288-.712T12 16t-.712.288T11 17t.288.713T12 18m-1-3h2v-5h-2z">');
3
- const o = (e = {}) => (() => {
2
+ var l = /* @__PURE__ */ r('<svg viewBox="0 0 24 24"width=1.2em height=1.2em><path fill=currentColor d="M1 21L12 2l11 19zm11.713-3.287Q13 17.425 13 17t-.288-.712T12 16t-.712.288T11 17t.288.713T12 18t.713-.288M11 15h2v-5h-2z">');
3
+ const m = (e = {}) => (() => {
4
4
  var t = l();
5
5
  return a(t, e, !0, !0), t;
6
6
  })();
7
7
  export {
8
- o as default
8
+ m as default
9
9
  };
10
10
  //# sourceMappingURL=warning.js.map
@@ -1,5 +1,5 @@
1
1
  import { Component, ComponentProps } from 'solid-js';
2
- export type SidebarProps = ComponentProps<'div'> & {
2
+ export type SidebarProps = ComponentProps<'aside'> & {
3
3
  side?: 'left' | 'right';
4
4
  variant?: 'sidebar' | 'floating' | 'inset';
5
5
  collapsible?: 'offcanvas' | 'icon' | 'none';
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sources":["../../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["import { type Component, type ComponentProps, createEffect, onCleanup } from 'solid-js';\n\nimport { createMediaQuery } from '@/primitives/createMediaQuery';\n\nimport { useSidebar } from './context';\nimport { SidebarDesktop } from './SidebarDesktop';\nimport { SidebarMobile } from './SidebarMobile';\n\nexport type SidebarProps = ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n disableMobileSidebar?: boolean;\n};\n\nexport const Sidebar: Component<SidebarProps> = (props) => {\n const { isMobile, setMobileDisabled, setOpen, setSide } = useSidebar();\n const isViewportMobile = createMediaQuery('(max-width: 768px)');\n\n onCleanup(() => {\n setMobileDisabled(false);\n });\n\n createEffect(() => {\n const currentSide = props.side ?? 'left';\n const mobileDisabled = props.disableMobileSidebar ?? false;\n setSide(currentSide);\n setMobileDisabled(mobileDisabled);\n });\n\n createEffect(() => {\n if (props.disableMobileSidebar === true && props.collapsible === 'icon') {\n setOpen(!isViewportMobile());\n }\n });\n\n return (\n <Show\n when={!isMobile()}\n fallback={\n <Show when={(props.collapsible ?? 'offcanvas') !== 'none'}>\n <SidebarMobile {...props} />\n </Show>\n }\n >\n <SidebarDesktop {...props} />\n </Show>\n );\n};\n"],"names":["Sidebar","props","isMobile","setMobileDisabled","setOpen","setSide","useSidebar","isViewportMobile","createMediaQuery","onCleanup","createEffect","currentSide","side","mobileDisabled","disableMobileSidebar","collapsible","_$createComponent","_$Show","when","fallback","children","SidebarMobile","SidebarDesktop"],"mappings":";;;;;;AAeO,MAAMA,IAAoCC,CAAAA,MAAU;AACzD,QAAM;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,mBAAAA;AAAAA,IAAmBC,SAAAA;AAAAA,IAASC,SAAAA;AAAAA,EAAAA,IAAYC,EAAAA,GACpDC,IAAmBC,EAAiB,oBAAoB;AAE9DC,SAAAA,EAAU,MAAM;AACdN,IAAAA,EAAkB,EAAK;AAAA,EACzB,CAAC,GAEDO,EAAa,MAAM;AACjB,UAAMC,IAAcV,EAAMW,QAAQ,QAC5BC,IAAiBZ,EAAMa,wBAAwB;AACrDT,IAAAA,EAAQM,CAAW,GACnBR,EAAkBU,CAAc;AAAA,EAClC,CAAC,GAEDH,EAAa,MAAM;AACjB,IAAIT,EAAMa,yBAAyB,MAAQb,EAAMc,gBAAgB,UAC/DX,EAAQ,CAACG,GAAkB;AAAA,EAE/B,CAAC,GAEDS,EACGC,GAAI;AAAA,IAAA,IACHC,OAAI;AAAA,aAAE,CAAChB,EAAAA;AAAAA,IAAU;AAAA,IAAA,IACjBiB,WAAQ;AAAA,aAAAH,EACLC,GAAI;AAAA,QAAA,IAACC,OAAI;AAAA,kBAAGjB,EAAMc,eAAe,iBAAiB;AAAA,QAAM;AAAA,QAAA,IAAAK,WAAA;AAAA,iBAAAJ,EACtDK,GAAkBpB,CAAK;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,IAAA,IAAAmB,WAAA;AAAA,aAAAJ,EAI3BM,GAAmBrB,CAAK;AAAA,IAAA;AAAA,EAAA,CAAA;AAG/B;"}
1
+ {"version":3,"file":"Sidebar.js","sources":["../../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["import { type Component, type ComponentProps, createEffect, onCleanup } from 'solid-js';\n\nimport { createMediaQuery } from '@/primitives/createMediaQuery';\n\nimport { useSidebar } from './context';\nimport { SidebarDesktop } from './SidebarDesktop';\nimport { SidebarMobile } from './SidebarMobile';\n\nexport type SidebarProps = ComponentProps<'aside'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n disableMobileSidebar?: boolean;\n};\n\nexport const Sidebar: Component<SidebarProps> = (props) => {\n const { isMobile, setMobileDisabled, setOpen, setSide } = useSidebar();\n const isViewportMobile = createMediaQuery('(max-width: 768px)');\n\n onCleanup(() => {\n setMobileDisabled(false);\n });\n\n createEffect(() => {\n const currentSide = props.side ?? 'left';\n const mobileDisabled = props.disableMobileSidebar ?? false;\n setSide(currentSide);\n setMobileDisabled(mobileDisabled);\n });\n\n createEffect(() => {\n if (props.disableMobileSidebar === true && props.collapsible === 'icon') {\n setOpen(!isViewportMobile());\n }\n });\n\n return (\n <Show\n when={!isMobile()}\n fallback={\n <Show when={(props.collapsible ?? 'offcanvas') !== 'none'}>\n <SidebarMobile {...props} />\n </Show>\n }\n >\n <SidebarDesktop {...props} />\n </Show>\n );\n};\n"],"names":["Sidebar","props","isMobile","setMobileDisabled","setOpen","setSide","useSidebar","isViewportMobile","createMediaQuery","onCleanup","createEffect","currentSide","side","mobileDisabled","disableMobileSidebar","collapsible","_$createComponent","_$Show","when","fallback","children","SidebarMobile","SidebarDesktop"],"mappings":";;;;;;AAeO,MAAMA,IAAoCC,CAAAA,MAAU;AACzD,QAAM;AAAA,IAAEC,UAAAA;AAAAA,IAAUC,mBAAAA;AAAAA,IAAmBC,SAAAA;AAAAA,IAASC,SAAAA;AAAAA,EAAAA,IAAYC,EAAAA,GACpDC,IAAmBC,EAAiB,oBAAoB;AAE9DC,SAAAA,EAAU,MAAM;AACdN,IAAAA,EAAkB,EAAK;AAAA,EACzB,CAAC,GAEDO,EAAa,MAAM;AACjB,UAAMC,IAAcV,EAAMW,QAAQ,QAC5BC,IAAiBZ,EAAMa,wBAAwB;AACrDT,IAAAA,EAAQM,CAAW,GACnBR,EAAkBU,CAAc;AAAA,EAClC,CAAC,GAEDH,EAAa,MAAM;AACjB,IAAIT,EAAMa,yBAAyB,MAAQb,EAAMc,gBAAgB,UAC/DX,EAAQ,CAACG,GAAkB;AAAA,EAE/B,CAAC,GAEDS,EACGC,GAAI;AAAA,IAAA,IACHC,OAAI;AAAA,aAAE,CAAChB,EAAAA;AAAAA,IAAU;AAAA,IAAA,IACjBiB,WAAQ;AAAA,aAAAH,EACLC,GAAI;AAAA,QAAA,IAACC,OAAI;AAAA,kBAAGjB,EAAMc,eAAe,iBAAiB;AAAA,QAAM;AAAA,QAAA,IAAAK,WAAA;AAAA,iBAAAJ,EACtDK,GAAkBpB,CAAK;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,IAAA,IAAAmB,WAAA;AAAA,aAAAJ,EAI3BM,GAAmBrB,CAAK;AAAA,IAAA;AAAA,EAAA,CAAA;AAG/B;"}
@@ -1,52 +1,63 @@
1
- import { template as u, insert as p, createComponent as x, mergeProps as h, effect as S, className as f, setAttribute as d, spread as k } from "solid-js/web";
2
- import { cn as l } from "../../node_modules/.bun/tailwind-variants@3.2.2_e7cab99c1b720a38/node_modules/tailwind-variants/dist/index.js";
3
- import { useSidebar as C } from "./context.js";
4
- import { splitProps as m } from "solid-js";
5
- var M = /* @__PURE__ */ u('<div data-slot=sidebar-container><div data-sidebar=sidebar data-slot=sidebar-inner class="group-data-[variant=floating]:shadow-sm flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border">'), z = /* @__PURE__ */ u("<div data-slot=sidebar><div data-slot=sidebar-gap>");
6
- const D = (o) => {
7
- const [i, a] = m(o, ["variant", "side", "class", "children"]);
1
+ import { template as p, insert as h, createComponent as C, mergeProps as m, effect as D, style as k, className as u, setAttribute as s, spread as I } from "solid-js/web";
2
+ import { splitProps as w, createMemo as y } from "solid-js";
3
+ import { cn as d } from "../../node_modules/.bun/tailwind-variants@3.2.2_e7cab99c1b720a38/node_modules/tailwind-variants/dist/index.js";
4
+ import { SIDEBAR_WIDTH_ICON as M, SIDEBAR_WIDTH as A } from "./constants.js";
5
+ import { useSidebar as R } from "./context.js";
6
+ var z = /* @__PURE__ */ p('<aside data-slot=sidebar-container><div data-sidebar=sidebar data-slot=sidebar-inner class="group-data-[variant=floating]:shadow-sm flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border">'), B = /* @__PURE__ */ p("<div data-slot=sidebar><div data-slot=sidebar-gap>");
7
+ const E = (t) => d(t === !0 ? "group peer min-h-0 relative block self-stretch text-sidebar-foreground" : "group peer md:block min-h-0 relative hidden self-stretch text-sidebar-foreground"), H = (t) => d("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", t === "floating" || t === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"), N = (t) => {
8
+ const r = {
9
+ "--sidebar-width": A,
10
+ "--sidebar-width-icon": M
11
+ };
12
+ return typeof t == "object" && t !== null ? {
13
+ ...r,
14
+ ...t
15
+ } : r;
16
+ }, P = (t) => {
17
+ const [r, e] = w(t, ["variant", "side", "class", "children"]);
8
18
  return (() => {
9
- var t = M(), r = t.firstChild;
10
- return k(t, h({
19
+ var o = z(), l = o.firstChild;
20
+ return I(o, m({
11
21
  get class() {
12
- return l("inset-y-0 md:flex fixed z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear", i.side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", i.variant === "floating" || i.variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", i.class);
22
+ return d("top-0 bottom-0 md:flex absolute z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear", r.side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", r.variant === "floating" || r.variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", r.class);
13
23
  }
14
- }, a), !1, !0), p(r, () => i.children), t;
24
+ }, e), !1, !0), h(l, () => r.children), o;
15
25
  })();
16
- }, j = (o) => {
26
+ }, O = (t) => {
17
27
  const {
18
- state: i
19
- } = C(), [a, t] = m(o, ["side", "variant", "collapsible", "disableMobileSidebar", "class", "children"]);
28
+ state: r
29
+ } = R(), [e, o] = w(t, ["side", "variant", "collapsible", "disableMobileSidebar", "style", "class", "children"]), l = y(() => N(e.style));
20
30
  return (() => {
21
- var r = z(), w = r.firstChild;
22
- return p(r, x(D, h({
31
+ var i = B(), S = i.firstChild;
32
+ return h(i, C(P, m({
23
33
  get variant() {
24
- return a.variant ?? "sidebar";
34
+ return e.variant ?? "sidebar";
25
35
  },
26
36
  get side() {
27
- return a.side ?? "left";
37
+ return e.side ?? "left";
28
38
  },
29
39
  get class() {
30
- return l(a.disableMobileSidebar === !0 ? "flex" : "md:flex hidden", a.class);
40
+ return d(e.disableMobileSidebar === !0 ? "flex" : "md:flex hidden", e.class);
31
41
  }
32
- }, t, {
42
+ }, o, {
33
43
  get children() {
34
- return a.children;
44
+ return e.children;
35
45
  }
36
- })), null), S((e) => {
37
- var s = l(a.disableMobileSidebar === !0 ? "group peer block text-sidebar-foreground" : "group peer md:block hidden text-sidebar-foreground"), n = i(), c = i() === "collapsed" ? a.collapsible ?? "offcanvas" : "", b = a.variant ?? "sidebar", v = a.side ?? "left", g = l("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", a.variant === "floating" || a.variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)");
38
- return s !== e.e && f(r, e.e = s), n !== e.t && d(r, "data-state", e.t = n), c !== e.a && d(r, "data-collapsible", e.a = c), b !== e.o && d(r, "data-variant", e.o = b), v !== e.i && d(r, "data-side", e.i = v), g !== e.n && f(w, e.n = g), e;
46
+ })), null), D((a) => {
47
+ var x = l(), n = E(e.disableMobileSidebar), c = r(), b = r() === "collapsed" ? e.collapsible ?? "offcanvas" : "", g = e.variant ?? "sidebar", v = e.side ?? "left", f = H(e.variant);
48
+ return a.e = k(i, x, a.e), n !== a.t && u(i, a.t = n), c !== a.a && s(i, "data-state", a.a = c), b !== a.o && s(i, "data-collapsible", a.o = b), g !== a.i && s(i, "data-variant", a.i = g), v !== a.n && s(i, "data-side", a.n = v), f !== a.s && u(S, a.s = f), a;
39
49
  }, {
40
50
  e: void 0,
41
51
  t: void 0,
42
52
  a: void 0,
43
53
  o: void 0,
44
54
  i: void 0,
45
- n: void 0
46
- }), r;
55
+ n: void 0,
56
+ s: void 0
57
+ }), i;
47
58
  })();
48
59
  };
49
60
  export {
50
- j as SidebarDesktop
61
+ O as SidebarDesktop
51
62
  };
52
63
  //# sourceMappingURL=SidebarDesktop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarDesktop.js","sources":["../../../src/components/sidebar/SidebarDesktop.tsx"],"sourcesContent":["import type { Component, ComponentProps, JSXElement } from 'solid-js';\n\nimport { cn } from 'tailwind-variants';\n\nimport type { SidebarProps } from './Sidebar';\n\nimport { useSidebar } from './context';\n\ntype SidebarDesktopContainerProps = ComponentProps<'div'> & {\n variant: string;\n side: string;\n children: JSXElement;\n};\n\nconst SidebarDesktopContainer: Component<SidebarDesktopContainerProps> = (props) => {\n const [local, others] = splitProps(props, ['variant', 'side', 'class', 'children']);\n return (\n <div\n data-slot='sidebar-container'\n class={cn(\n 'inset-y-0 md:flex fixed z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear',\n local.side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n local.variant === 'floating' || local.variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n local.class,\n )}\n {...others}\n >\n <div\n data-sidebar='sidebar'\n data-slot='sidebar-inner'\n class='group-data-[variant=floating]:shadow-sm flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border'\n >\n {local.children}\n </div>\n </div>\n );\n};\n\nexport const SidebarDesktop: Component<SidebarProps> = (props) => {\n const { state } = useSidebar();\n const [local, others] = splitProps(props, [\n 'side',\n 'variant',\n 'collapsible',\n 'disableMobileSidebar',\n 'class',\n 'children',\n ]);\n\n return (\n <div\n class={cn(\n local.disableMobileSidebar === true\n ? 'group peer block text-sidebar-foreground'\n : 'group peer md:block hidden text-sidebar-foreground',\n )}\n data-state={state()}\n data-collapsible={state() === 'collapsed' ? (local.collapsible ?? 'offcanvas') : ''}\n data-variant={local.variant ?? 'sidebar'}\n data-side={local.side ?? 'left'}\n data-slot='sidebar'\n >\n <div\n data-slot='sidebar-gap'\n class={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n local.variant === 'floating' || local.variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <SidebarDesktopContainer\n variant={local.variant ?? 'sidebar'}\n side={local.side ?? 'left'}\n class={cn(local.disableMobileSidebar === true ? 'flex' : 'md:flex hidden', local.class)}\n {...others}\n >\n {local.children}\n </SidebarDesktopContainer>\n </div>\n );\n};\n"],"names":["SidebarDesktopContainer","props","local","others","splitProps","_el$","_tmpl$","_el$2","firstChild","_$spread","_$mergeProps","cn","side","variant","class","_$insert","children","SidebarDesktop","state","useSidebar","_el$3","_tmpl$2","_el$4","_$createComponent","disableMobileSidebar","_$effect","_p$","_v$","_v$2","_v$3","collapsible","_v$4","_v$5","_v$6","e","_$className","t","_$setAttribute","a","o","i","n","undefined"],"mappings":";;;;;AAcA,MAAMA,IAAoEC,CAAAA,MAAU;AAClF,QAAM,CAACC,GAAOC,CAAM,IAAIC,EAAWH,GAAO,CAAC,WAAW,QAAQ,SAAS,UAAU,CAAC;AAClF,UAAA,MAAA;AAAA,QAAAI,IAAAC,EAAAA,GAAAC,IAAAF,EAAAG;AAAAC,WAAAA,EAAAJ,GAAAK,EAAA;AAAA,MAAA,IAAA,QAAA;AAAA,eAGWC,EACL,wHACAT,EAAMU,SAAS,SACX,mFACA,oFACJV,EAAMW,YAAY,cAAcX,EAAMW,YAAY,UAC9C,mFACA,2HACJX,EAAMY,KACR;AAAA,MAAC;AAAA,IAAA,GACGX,CAAM,GAAA,IAAA,EAAA,GAAAY,EAAAR,GAAA,MAOPL,EAAMc,QAAQ,GAAAX;AAAAA,EAAA,GAAA;AAIvB,GAEaY,IAA2ChB,CAAAA,MAAU;AAChE,QAAM;AAAA,IAAEiB,OAAAA;AAAAA,EAAAA,IAAUC,EAAAA,GACZ,CAACjB,GAAOC,CAAM,IAAIC,EAAWH,GAAO,CACxC,QACA,WACA,eACA,wBACA,SACA,UAAU,CACX;AAED,UAAA,MAAA;AAAA,QAAAmB,IAAAC,EAAAA,GAAAC,IAAAF,EAAAZ;AAAAO,WAAAA,EAAAK,GAAAG,EAwBKvB,GAAuBU,EAAA;AAAA,MAAA,IACtBG,UAAO;AAAA,eAAEX,EAAMW,WAAW;AAAA,MAAS;AAAA,MAAA,IACnCD,OAAI;AAAA,eAAEV,EAAMU,QAAQ;AAAA,MAAM;AAAA,MAAA,IAAA,QAAA;AAAA,eACnBD,EAAGT,EAAMsB,yBAAyB,KAAO,SAAS,kBAAkBtB,EAAMY,KAAK;AAAA,MAAC;AAAA,IAAA,GACnFX,GAAM;AAAA,MAAA,IAAAa,WAAA;AAAA,eAETd,EAAMc;AAAAA,MAAQ;AAAA,IAAA,CAAA,CAAA,GAAA,IAAA,GAAAS,EAAAC,CAAAA,MAAA;AAAA,UAAAC,IA5BVhB,EACLT,EAAMsB,yBAAyB,KAC3B,6CACA,oDACN,GAACI,IACWV,EAAAA,GAAOW,IACDX,EAAAA,MAAY,cAAehB,EAAM4B,eAAe,cAAe,IAAEC,IACrE7B,EAAMW,WAAW,WAASmB,IAC7B9B,EAAMU,QAAQ,QAAMqB,IAKtBtB,EACL,2FACA,0CACA,sCACAT,EAAMW,YAAY,cAAcX,EAAMW,YAAY,UAC9C,2EACA,wDACN;AAACc,aAAAA,MAAAD,EAAAQ,KAAAC,EAAAf,GAAAM,EAAAQ,IAAAP,CAAA,GAAAC,MAAAF,EAAAU,KAAAC,EAAAjB,GAAA,cAAAM,EAAAU,IAAAR,CAAA,GAAAC,MAAAH,EAAAY,KAAAD,EAAAjB,GAAA,oBAAAM,EAAAY,IAAAT,CAAA,GAAAE,MAAAL,EAAAa,KAAAF,EAAAjB,GAAA,gBAAAM,EAAAa,IAAAR,CAAA,GAAAC,MAAAN,EAAAc,KAAAH,EAAAjB,GAAA,aAAAM,EAAAc,IAAAR,CAAA,GAAAC,MAAAP,EAAAe,KAAAN,EAAAb,GAAAI,EAAAe,IAAAR,CAAA,GAAAP;AAAAA,IAAA,GAAA;AAAA,MAAAQ,GAAAQ;AAAAA,MAAAN,GAAAM;AAAAA,MAAAJ,GAAAI;AAAAA,MAAAH,GAAAG;AAAAA,MAAAF,GAAAE;AAAAA,MAAAD,GAAAC;AAAAA,IAAAA,CAAA,GAAAtB;AAAAA,EAAA,GAAA;AAYT;"}
1
+ {"version":3,"file":"SidebarDesktop.js","sources":["../../../src/components/sidebar/SidebarDesktop.tsx"],"sourcesContent":["import {\n createMemo,\n type Component,\n type ComponentProps,\n type JSX,\n type JSXElement,\n} from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport type { SidebarProps } from './Sidebar';\n\nimport { SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON } from './constants';\nimport { useSidebar } from './context';\n\ntype SidebarDesktopContainerProps = ComponentProps<'aside'> & {\n variant: string;\n side: string;\n children: JSXElement;\n};\n\nconst getSidebarDesktopRootClass = (\n disableMobileSidebar: boolean | undefined,\n): ComponentProps<'div'>['class'] =>\n cn(\n disableMobileSidebar === true\n ? 'group peer min-h-0 relative block self-stretch text-sidebar-foreground'\n : 'group peer md:block min-h-0 relative hidden self-stretch text-sidebar-foreground',\n );\n\nconst getSidebarGapClass = (variant: SidebarProps['variant']): ComponentProps<'div'>['class'] =>\n cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n );\n\nconst getSidebarStyle = (style: SidebarProps['style']): JSX.CSSProperties => {\n const base: JSX.CSSProperties = {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n };\n return typeof style === 'object' && style !== null ? { ...base, ...style } : base;\n};\n\nconst SidebarDesktopContainer: Component<SidebarDesktopContainerProps> = (props) => {\n const [local, others] = splitProps(props, ['variant', 'side', 'class', 'children']);\n return (\n <aside\n data-slot='sidebar-container'\n class={cn(\n 'top-0 bottom-0 md:flex absolute z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear',\n local.side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n local.variant === 'floating' || local.variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+1rem+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n local.class,\n )}\n {...others}\n >\n <div\n data-sidebar='sidebar'\n data-slot='sidebar-inner'\n class='group-data-[variant=floating]:shadow-sm flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border'\n >\n {local.children}\n </div>\n </aside>\n );\n};\n\nexport const SidebarDesktop: Component<SidebarProps> = (props) => {\n const { state } = useSidebar();\n const [local, others] = splitProps(props, [\n 'side',\n 'variant',\n 'collapsible',\n 'disableMobileSidebar',\n 'style',\n 'class',\n 'children',\n ]);\n\n const style = createMemo(() => getSidebarStyle(local.style));\n\n return (\n <div\n style={style()}\n class={getSidebarDesktopRootClass(local.disableMobileSidebar)}\n data-state={state()}\n data-collapsible={state() === 'collapsed' ? (local.collapsible ?? 'offcanvas') : ''}\n data-variant={local.variant ?? 'sidebar'}\n data-side={local.side ?? 'left'}\n data-slot='sidebar'\n >\n <div data-slot='sidebar-gap' class={getSidebarGapClass(local.variant)} />\n <SidebarDesktopContainer\n variant={local.variant ?? 'sidebar'}\n side={local.side ?? 'left'}\n class={cn(local.disableMobileSidebar === true ? 'flex' : 'md:flex hidden', local.class)}\n {...others}\n >\n {local.children}\n </SidebarDesktopContainer>\n </div>\n );\n};\n"],"names":["getSidebarDesktopRootClass","disableMobileSidebar","cn","getSidebarGapClass","variant","getSidebarStyle","style","base","SIDEBAR_WIDTH","SIDEBAR_WIDTH_ICON","SidebarDesktopContainer","props","local","others","splitProps","_el$","_tmpl$","_el$2","firstChild","_$spread","_$mergeProps","side","class","_$insert","children","SidebarDesktop","state","useSidebar","createMemo","_el$3","_tmpl$2","_el$4","_$createComponent","_$effect","_p$","_v$","_v$2","_v$3","_v$4","collapsible","_v$5","_v$6","_v$7","e","_$style","t","_$className","a","_$setAttribute","o","i","n","s","undefined"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
- import { Component, ComponentProps } from 'solid-js';
2
- export type SidebarProviderProps = ComponentProps<'div'> & {
1
+ import { Component, ComponentProps, JSX } from 'solid-js';
2
+ export type SidebarProviderProps = {
3
3
  defaultOpen?: boolean;
4
4
  open?: boolean;
5
5
  onOpenChange?: (openValue: boolean) => void;
6
+ children?: JSX.Element;
6
7
  };
8
+ export type SidebarLayoutProps = ComponentProps<'div'>;
9
+ export declare const SidebarLayout: Component<SidebarLayoutProps>;
7
10
  export declare const SidebarProvider: Component<SidebarProviderProps>;
@@ -1,35 +1,45 @@
1
- import { createComponent as m, template as f, spread as u, mergeProps as g, insert as O } from "solid-js/web";
2
- import { splitProps as M, createMemo as h, createSignal as r, onMount as y, onCleanup as D } from "solid-js";
3
- import { cn as w } from "../../node_modules/.bun/tailwind-variants@3.2.2_e7cab99c1b720a38/node_modules/tailwind-variants/dist/index.js";
4
- import { createMediaQuery as C } from "../../primitives/createMediaQuery.js";
5
- import { SIDEBAR_WIDTH_ICON as v, SIDEBAR_WIDTH as x, SIDEBAR_KEYBOARD_SHORTCUT as E } from "./constants.js";
6
- import { SidebarContext as I } from "./context.js";
7
- import { setSidebarCookie as _ } from "./utils.js";
8
- var S = /* @__PURE__ */ f("<div data-slot=sidebar-wrapper>");
9
- const T = (e) => {
10
- const o = C("(max-width: 768px)"), [t, n] = r(!1), s = () => o() && !t(), [l, i] = r(!1), [p, d] = r(e.defaultOpen ?? !0), [b, c] = r("left");
1
+ import { template as m, spread as f, mergeProps as u, createComponent as M } from "solid-js/web";
2
+ import { splitProps as g, createSignal as r, onMount as O, onCleanup as h } from "solid-js";
3
+ import { cn as y } from "../../node_modules/.bun/tailwind-variants@3.2.2_e7cab99c1b720a38/node_modules/tailwind-variants/dist/index.js";
4
+ import { createMediaQuery as v } from "../../primitives/createMediaQuery.js";
5
+ import { SIDEBAR_KEYBOARD_SHORTCUT as C } from "./constants.js";
6
+ import { SidebarContext as D } from "./context.js";
7
+ import { setSidebarCookie as w } from "./utils.js";
8
+ var x = /* @__PURE__ */ m("<div data-slot=sidebar-wrapper>");
9
+ const V = (e) => {
10
+ const [o, n] = g(e, ["class"]);
11
+ return (() => {
12
+ var i = x();
13
+ return f(i, u({
14
+ get class() {
15
+ return y("relative flex h-full min-h-full w-full has-data-[variant=inset]:bg-sidebar", o.class);
16
+ }
17
+ }, n), !1, !1), i;
18
+ })();
19
+ }, E = (e) => {
20
+ const o = v("(max-width: 768px)"), [n, i] = r(!1), l = () => o() && !n(), [s, a] = r(!1), [d, p] = r(e.defaultOpen ?? !0), [b, c] = r("left");
11
21
  return {
12
- isMobile: s,
13
- setMobileDisabled: n,
14
- openMobile: l,
15
- setOpenMobile: i,
16
- open: () => typeof e.open == "boolean" ? e.open : p(),
17
- setOpen: (a) => {
18
- e.onOpenChange ? e.onOpenChange(a) : d(a), _(a);
22
+ isMobile: l,
23
+ setMobileDisabled: i,
24
+ openMobile: s,
25
+ setOpenMobile: a,
26
+ open: () => typeof e.open == "boolean" ? e.open : d(),
27
+ setOpen: (t) => {
28
+ e.onOpenChange ? e.onOpenChange(t) : p(t), w(t);
19
29
  },
20
30
  side: b,
21
31
  setSide: c
22
32
  };
23
- }, R = (e) => {
33
+ }, S = (e) => {
24
34
  const o = () => {
25
- e.isMobile() ? e.setOpenMobile((t) => !t) : e.setOpen(!e.open());
35
+ e.isMobile() ? e.setOpenMobile((n) => !n) : e.setOpen(!e.open());
26
36
  };
27
- return y(() => {
28
- const t = (n) => {
29
- n.key === E && (n.metaKey || n.ctrlKey) && (n.preventDefault(), o());
37
+ return O(() => {
38
+ const n = (i) => {
39
+ i.key === C && (i.metaKey || i.ctrlKey) && (i.preventDefault(), o());
30
40
  };
31
- globalThis.addEventListener("keydown", t), D(() => {
32
- globalThis.removeEventListener("keydown", t);
41
+ globalThis.addEventListener("keydown", n), h(() => {
42
+ globalThis.removeEventListener("keydown", n);
33
43
  });
34
44
  }), {
35
45
  toggle: o
@@ -45,37 +55,21 @@ const T = (e) => {
45
55
  toggleSidebar: o,
46
56
  side: e.side,
47
57
  setSide: e.setSide
48
- }), j = (e) => {
49
- const [o, t] = M(e, ["defaultOpen", "open", "onOpenChange", "class", "style", "children"]), n = T(o), {
50
- toggle: s
51
- } = R(n), l = h(() => {
52
- const i = {
53
- "--sidebar-width": x,
54
- "--sidebar-width-icon": v
55
- };
56
- return typeof o.style == "object" && o.style !== null ? {
57
- ...i,
58
- ...o.style
59
- } : i;
60
- });
61
- return m(I.Provider, {
58
+ }), $ = (e) => {
59
+ const o = E(e), {
60
+ toggle: n
61
+ } = S(o);
62
+ return M(D.Provider, {
62
63
  get value() {
63
- return k(n, s);
64
+ return k(o, n);
64
65
  },
65
66
  get children() {
66
- var i = S();
67
- return u(i, g({
68
- get style() {
69
- return l();
70
- },
71
- get class() {
72
- return w("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", o.class);
73
- }
74
- }, t), !1, !0), O(i, () => o.children), i;
67
+ return e.children;
75
68
  }
76
69
  });
77
70
  };
78
71
  export {
79
- j as SidebarProvider
72
+ V as SidebarLayout,
73
+ $ as SidebarProvider
80
74
  };
81
75
  //# sourceMappingURL=SidebarProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarProvider.js","sources":["../../../src/components/sidebar/SidebarProvider.tsx"],"sourcesContent":["import {\n type Component,\n type ComponentProps,\n createMemo,\n createSignal,\n onCleanup,\n onMount,\n splitProps,\n type JSX,\n} from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport { createMediaQuery } from '@/primitives/createMediaQuery';\n\nimport { SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON } from './constants';\nimport { SidebarContext, type SidebarContextProps } from './context';\nimport { setSidebarCookie } from './utils';\n\nexport type SidebarProviderProps = ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (openValue: boolean) => void;\n};\n\nconst useSidebarState = (\n props: SidebarProviderProps,\n): {\n isMobile: () => boolean;\n setMobileDisabled: (value: boolean) => void;\n openMobile: () => boolean;\n setOpenMobile: (value: boolean | ((prev: boolean) => boolean)) => void;\n open: () => boolean;\n setOpen: (value: boolean) => void;\n side: () => 'left' | 'right';\n setSide: (value: 'left' | 'right') => void;\n} => {\n const isViewportMobile = createMediaQuery('(max-width: 768px)');\n const [mobileDisabled, setMobileDisabled] = createSignal(false);\n const isMobile = (): boolean => isViewportMobile() && !mobileDisabled();\n const [openMobile, setOpenMobile] = createSignal(false);\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? true);\n const [side, setSide] = createSignal<'left' | 'right'>('left');\n\n const open = (): boolean => (typeof props.open === 'boolean' ? props.open : internalOpen());\n\n const setOpen = (value: boolean): void => {\n if (props.onOpenChange) {\n props.onOpenChange(value);\n } else {\n setInternalOpen(value);\n }\n setSidebarCookie(value);\n };\n\n return {\n isMobile,\n setMobileDisabled,\n openMobile,\n setOpenMobile,\n open,\n setOpen,\n side,\n setSide,\n };\n};\nconst useSidebarEvents = (stateSet: ReturnType<typeof useSidebarState>): { toggle: () => void } => {\n const toggle = (): void => {\n if (stateSet.isMobile()) {\n stateSet.setOpenMobile((prev) => !prev);\n } else {\n stateSet.setOpen(!stateSet.open());\n }\n };\n\n onMount(() => {\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggle();\n }\n };\n globalThis.addEventListener('keydown', handleKeyDown);\n onCleanup(() => {\n globalThis.removeEventListener('keydown', handleKeyDown);\n });\n });\n\n return { toggle };\n};\n\nconst createSidebarContextValue = (\n stateSet: ReturnType<typeof useSidebarState>,\n toggle: () => void,\n): SidebarContextProps => ({\n state: (): 'expanded' | 'collapsed' => (stateSet.open() ? 'expanded' : 'collapsed'),\n open: stateSet.open,\n setOpen: stateSet.setOpen,\n isMobile: stateSet.isMobile,\n setMobileDisabled: stateSet.setMobileDisabled,\n openMobile: stateSet.openMobile,\n setOpenMobile: stateSet.setOpenMobile,\n toggleSidebar: toggle,\n side: stateSet.side,\n setSide: stateSet.setSide,\n});\n\nexport const SidebarProvider: Component<SidebarProviderProps> = (props) => {\n const [local, others] = splitProps(props, [\n 'defaultOpen',\n 'open',\n 'onOpenChange',\n 'class',\n 'style',\n 'children',\n ]);\n const stateSet = useSidebarState(local);\n const { toggle } = useSidebarEvents(stateSet);\n\n const style = createMemo((): JSX.CSSProperties => {\n const base: JSX.CSSProperties = {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n };\n return typeof local.style === 'object' && local.style !== null\n ? { ...base, ...local.style }\n : base;\n });\n\n return (\n <SidebarContext.Provider value={createSidebarContextValue(stateSet, toggle)}>\n <div\n data-slot='sidebar-wrapper'\n style={style()}\n class={cn(\n 'group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar',\n local.class,\n )}\n {...others}\n >\n {local.children}\n </div>\n </SidebarContext.Provider>\n );\n};\n"],"names":["useSidebarState","props","isViewportMobile","createMediaQuery","mobileDisabled","setMobileDisabled","createSignal","isMobile","openMobile","setOpenMobile","internalOpen","setInternalOpen","defaultOpen","side","setSide","open","setOpen","value","onOpenChange","setSidebarCookie","useSidebarEvents","stateSet","toggle","prev","onMount","handleKeyDown","event","key","SIDEBAR_KEYBOARD_SHORTCUT","metaKey","ctrlKey","preventDefault","globalThis","addEventListener","onCleanup","removeEventListener","createSidebarContextValue","state","toggleSidebar","SidebarProvider","local","others","splitProps","style","createMemo","base","SIDEBAR_WIDTH","SIDEBAR_WIDTH_ICON","_$createComponent","SidebarContext","Provider","children","_el$","_tmpl$","_$spread","_$mergeProps","cn","class","_$insert"],"mappings":";;;;;;;;AAwBA,MAAMA,IAAkBA,CACtBC,MAUG;AACH,QAAMC,IAAmBC,EAAiB,oBAAoB,GACxD,CAACC,GAAgBC,CAAiB,IAAIC,EAAa,EAAK,GACxDC,IAAWA,MAAeL,EAAAA,KAAsB,CAACE,EAAAA,GACjD,CAACI,GAAYC,CAAa,IAAIH,EAAa,EAAK,GAChD,CAACI,GAAcC,CAAe,IAAIL,EAAaL,EAAMW,eAAe,EAAI,GACxE,CAACC,GAAMC,CAAO,IAAIR,EAA+B,MAAM;AAa7D,SAAO;AAAA,IACLC,UAAAA;AAAAA,IACAF,mBAAAA;AAAAA,IACAG,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAM,MAhBWA,MAAgB,OAAOd,EAAMc,QAAS,YAAYd,EAAMc,OAAOL,EAAAA;AAAAA,IAiB1EM,SAfcA,CAACC,MAAyB;AACxC,MAAIhB,EAAMiB,eACRjB,EAAMiB,aAAaD,CAAK,IAExBN,EAAgBM,CAAK,GAEvBE,EAAiBF,CAAK;AAAA,IACxB;AAAA,IASEJ,MAAAA;AAAAA,IACAC,SAAAA;AAAAA,EAAAA;AAEJ,GACMM,IAAmBA,CAACC,MAAyE;AACjG,QAAMC,IAASA,MAAY;AACzB,IAAID,EAASd,aACXc,EAASZ,cAAec,CAAAA,MAAS,CAACA,CAAI,IAEtCF,EAASL,QAAQ,CAACK,EAASN,KAAAA,CAAM;AAAA,EAErC;AAEAS,SAAAA,EAAQ,MAAM;AACZ,UAAMC,IAAgBA,CAACC,MAA+B;AACpD,MAAIA,EAAMC,QAAQC,MAA8BF,EAAMG,WAAWH,EAAMI,aACrEJ,EAAMK,eAAAA,GACNT,EAAAA;AAAAA,IAEJ;AACAU,eAAWC,iBAAiB,WAAWR,CAAa,GACpDS,EAAU,MAAM;AACdF,iBAAWG,oBAAoB,WAAWV,CAAa;AAAA,IACzD,CAAC;AAAA,EACH,CAAC,GAEM;AAAA,IAAEH,QAAAA;AAAAA,EAAAA;AACX,GAEMc,IAA4BA,CAChCf,GACAC,OACyB;AAAA,EACzBe,OAAOA,MAAiChB,EAASN,KAAAA,IAAS,aAAa;AAAA,EACvEA,MAAMM,EAASN;AAAAA,EACfC,SAASK,EAASL;AAAAA,EAClBT,UAAUc,EAASd;AAAAA,EACnBF,mBAAmBgB,EAAShB;AAAAA,EAC5BG,YAAYa,EAASb;AAAAA,EACrBC,eAAeY,EAASZ;AAAAA,EACxB6B,eAAehB;AAAAA,EACfT,MAAMQ,EAASR;AAAAA,EACfC,SAASO,EAASP;AACpB,IAEayB,IAAoDtC,CAAAA,MAAU;AACzE,QAAM,CAACuC,GAAOC,CAAM,IAAIC,EAAWzC,GAAO,CACxC,eACA,QACA,gBACA,SACA,SACA,UAAU,CACX,GACKoB,IAAWrB,EAAgBwC,CAAK,GAChC;AAAA,IAAElB,QAAAA;AAAAA,EAAAA,IAAWF,EAAiBC,CAAQ,GAEtCsB,IAAQC,EAAW,MAAyB;AAChD,UAAMC,IAA0B;AAAA,MAC9B,mBAAmBC;AAAAA,MACnB,wBAAwBC;AAAAA,IAAAA;AAE1B,WAAO,OAAOP,EAAMG,SAAU,YAAYH,EAAMG,UAAU,OACtD;AAAA,MAAE,GAAGE;AAAAA,MAAM,GAAGL,EAAMG;AAAAA,IAAAA,IACpBE;AAAAA,EACN,CAAC;AAED,SAAAG,EACGC,EAAeC,UAAQ;AAAA,IAAA,IAACjC,QAAK;AAAA,aAAEmB,EAA0Bf,GAAUC,CAAM;AAAA,IAAC;AAAA,IAAA,IAAA6B,WAAA;AAAA,UAAAC,IAAAC,EAAAA;AAAAC,aAAAA,EAAAF,GAAAG,EAAA;AAAA,QAAA,IAGvEZ,QAAK;AAAA,iBAAEA,EAAAA;AAAAA,QAAO;AAAA,QAAA,IAAA,QAAA;AAAA,iBACPa,EACL,mFACAhB,EAAMiB,KACR;AAAA,QAAC;AAAA,MAAA,GACGhB,CAAM,GAAA,IAAA,EAAA,GAAAiB,EAAAN,GAAA,MAETZ,EAAMW,QAAQ,GAAAC;AAAAA,IAAA;AAAA,EAAA,CAAA;AAIvB;"}
1
+ {"version":3,"file":"SidebarProvider.js","sources":["../../../src/components/sidebar/SidebarProvider.tsx"],"sourcesContent":["import {\n type Component,\n type ComponentProps,\n createSignal,\n onCleanup,\n onMount,\n splitProps,\n type JSX,\n} from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport { createMediaQuery } from '@/primitives/createMediaQuery';\n\nimport { SIDEBAR_KEYBOARD_SHORTCUT } from './constants';\nimport { SidebarContext, type SidebarContextProps } from './context';\nimport { setSidebarCookie } from './utils';\n\nexport type SidebarProviderProps = {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (openValue: boolean) => void;\n children?: JSX.Element;\n};\n\nexport type SidebarLayoutProps = ComponentProps<'div'>;\n\nexport const SidebarLayout: Component<SidebarLayoutProps> = (props) => {\n const [local, others] = splitProps(props, ['class']);\n return (\n <div\n data-slot='sidebar-wrapper'\n class={cn(\n 'relative flex h-full min-h-full w-full has-data-[variant=inset]:bg-sidebar',\n local.class,\n )}\n {...others}\n />\n );\n};\n\nconst useSidebarState = (\n props: SidebarProviderProps,\n): {\n isMobile: () => boolean;\n setMobileDisabled: (value: boolean) => void;\n openMobile: () => boolean;\n setOpenMobile: (value: boolean | ((prev: boolean) => boolean)) => void;\n open: () => boolean;\n setOpen: (value: boolean) => void;\n side: () => 'left' | 'right';\n setSide: (value: 'left' | 'right') => void;\n} => {\n const isViewportMobile = createMediaQuery('(max-width: 768px)');\n const [mobileDisabled, setMobileDisabled] = createSignal(false);\n const isMobile = (): boolean => isViewportMobile() && !mobileDisabled();\n const [openMobile, setOpenMobile] = createSignal(false);\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? true);\n const [side, setSide] = createSignal<'left' | 'right'>('left');\n\n const open = (): boolean => (typeof props.open === 'boolean' ? props.open : internalOpen());\n\n const setOpen = (value: boolean): void => {\n if (props.onOpenChange) {\n props.onOpenChange(value);\n } else {\n setInternalOpen(value);\n }\n setSidebarCookie(value);\n };\n\n return {\n isMobile,\n setMobileDisabled,\n openMobile,\n setOpenMobile,\n open,\n setOpen,\n side,\n setSide,\n };\n};\nconst useSidebarEvents = (stateSet: ReturnType<typeof useSidebarState>): { toggle: () => void } => {\n const toggle = (): void => {\n if (stateSet.isMobile()) {\n stateSet.setOpenMobile((prev) => !prev);\n } else {\n stateSet.setOpen(!stateSet.open());\n }\n };\n\n onMount(() => {\n const handleKeyDown = (event: KeyboardEvent): void => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggle();\n }\n };\n globalThis.addEventListener('keydown', handleKeyDown);\n onCleanup(() => {\n globalThis.removeEventListener('keydown', handleKeyDown);\n });\n });\n\n return { toggle };\n};\n\nconst createSidebarContextValue = (\n stateSet: ReturnType<typeof useSidebarState>,\n toggle: () => void,\n): SidebarContextProps => ({\n state: (): 'expanded' | 'collapsed' => (stateSet.open() ? 'expanded' : 'collapsed'),\n open: stateSet.open,\n setOpen: stateSet.setOpen,\n isMobile: stateSet.isMobile,\n setMobileDisabled: stateSet.setMobileDisabled,\n openMobile: stateSet.openMobile,\n setOpenMobile: stateSet.setOpenMobile,\n toggleSidebar: toggle,\n side: stateSet.side,\n setSide: stateSet.setSide,\n});\n\nexport const SidebarProvider: Component<SidebarProviderProps> = (props) => {\n const stateSet = useSidebarState(props);\n const { toggle } = useSidebarEvents(stateSet);\n\n return (\n <SidebarContext.Provider value={createSidebarContextValue(stateSet, toggle)}>\n {props.children}\n </SidebarContext.Provider>\n );\n};\n"],"names":["SidebarLayout","props","local","others","splitProps","_el$","_tmpl$","_$spread","_$mergeProps","cn","class","useSidebarState","isViewportMobile","createMediaQuery","mobileDisabled","setMobileDisabled","createSignal","isMobile","openMobile","setOpenMobile","internalOpen","setInternalOpen","defaultOpen","side","setSide","open","setOpen","value","onOpenChange","setSidebarCookie","useSidebarEvents","stateSet","toggle","prev","onMount","handleKeyDown","event","key","SIDEBAR_KEYBOARD_SHORTCUT","metaKey","ctrlKey","preventDefault","globalThis","addEventListener","onCleanup","removeEventListener","createSidebarContextValue","state","toggleSidebar","SidebarProvider","_$createComponent","SidebarContext","Provider","children"],"mappings":";;;;;;;;AA0BO,MAAMA,IAAgDC,CAAAA,MAAU;AACrE,QAAM,CAACC,GAAOC,CAAM,IAAIC,EAAWH,GAAO,CAAC,OAAO,CAAC;AACnD,UAAA,MAAA;AAAA,QAAAI,IAAAC,EAAAA;AAAAC,WAAAA,EAAAF,GAAAG,EAAA;AAAA,MAAA,IAAA,QAAA;AAAA,eAGWC,EACL,8EACAP,EAAMQ,KACR;AAAA,MAAC;AAAA,IAAA,GACGP,CAAM,GAAA,IAAA,EAAA,GAAAE;AAAAA,EAAA,GAAA;AAGhB,GAEMM,IAAkBA,CACtBV,MAUG;AACH,QAAMW,IAAmBC,EAAiB,oBAAoB,GACxD,CAACC,GAAgBC,CAAiB,IAAIC,EAAa,EAAK,GACxDC,IAAWA,MAAeL,EAAAA,KAAsB,CAACE,EAAAA,GACjD,CAACI,GAAYC,CAAa,IAAIH,EAAa,EAAK,GAChD,CAACI,GAAcC,CAAe,IAAIL,EAAaf,EAAMqB,eAAe,EAAI,GACxE,CAACC,GAAMC,CAAO,IAAIR,EAA+B,MAAM;AAa7D,SAAO;AAAA,IACLC,UAAAA;AAAAA,IACAF,mBAAAA;AAAAA,IACAG,YAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAM,MAhBWA,MAAgB,OAAOxB,EAAMwB,QAAS,YAAYxB,EAAMwB,OAAOL,EAAAA;AAAAA,IAiB1EM,SAfcA,CAACC,MAAyB;AACxC,MAAI1B,EAAM2B,eACR3B,EAAM2B,aAAaD,CAAK,IAExBN,EAAgBM,CAAK,GAEvBE,EAAiBF,CAAK;AAAA,IACxB;AAAA,IASEJ,MAAAA;AAAAA,IACAC,SAAAA;AAAAA,EAAAA;AAEJ,GACMM,IAAmBA,CAACC,MAAyE;AACjG,QAAMC,IAASA,MAAY;AACzB,IAAID,EAASd,aACXc,EAASZ,cAAec,CAAAA,MAAS,CAACA,CAAI,IAEtCF,EAASL,QAAQ,CAACK,EAASN,KAAAA,CAAM;AAAA,EAErC;AAEAS,SAAAA,EAAQ,MAAM;AACZ,UAAMC,IAAgBA,CAACC,MAA+B;AACpD,MAAIA,EAAMC,QAAQC,MAA8BF,EAAMG,WAAWH,EAAMI,aACrEJ,EAAMK,eAAAA,GACNT,EAAAA;AAAAA,IAEJ;AACAU,eAAWC,iBAAiB,WAAWR,CAAa,GACpDS,EAAU,MAAM;AACdF,iBAAWG,oBAAoB,WAAWV,CAAa;AAAA,IACzD,CAAC;AAAA,EACH,CAAC,GAEM;AAAA,IAAEH,QAAAA;AAAAA,EAAAA;AACX,GAEMc,IAA4BA,CAChCf,GACAC,OACyB;AAAA,EACzBe,OAAOA,MAAiChB,EAASN,KAAAA,IAAS,aAAa;AAAA,EACvEA,MAAMM,EAASN;AAAAA,EACfC,SAASK,EAASL;AAAAA,EAClBT,UAAUc,EAASd;AAAAA,EACnBF,mBAAmBgB,EAAShB;AAAAA,EAC5BG,YAAYa,EAASb;AAAAA,EACrBC,eAAeY,EAASZ;AAAAA,EACxB6B,eAAehB;AAAAA,EACfT,MAAMQ,EAASR;AAAAA,EACfC,SAASO,EAASP;AACpB,IAEayB,IAAoDhD,CAAAA,MAAU;AACzE,QAAM8B,IAAWpB,EAAgBV,CAAK,GAChC;AAAA,IAAE+B,QAAAA;AAAAA,EAAAA,IAAWF,EAAiBC,CAAQ;AAE5C,SAAAmB,EACGC,EAAeC,UAAQ;AAAA,IAAA,IAACzB,QAAK;AAAA,aAAEmB,EAA0Bf,GAAUC,CAAM;AAAA,IAAC;AAAA,IAAA,IAAAqB,WAAA;AAAA,aACxEpD,EAAMoD;AAAAA,IAAQ;AAAA,EAAA,CAAA;AAGrB;"}