@simplysm/solid 13.0.41 → 13.0.43

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.
@@ -1,14 +1,8 @@
1
1
  import type { JSX } from "solid-js";
2
2
  import { type Component } from "solid-js";
3
- export interface PermissionItem<TModule = string> {
4
- title: string;
5
- href?: string;
6
- modules?: TModule[];
7
- perms?: string[];
8
- children?: PermissionItem<TModule>[];
9
- }
3
+ import type { AppPerm } from "../../../helpers/createAppStructure";
10
4
  export interface PermissionTableProps<TModule = string> {
11
- items?: PermissionItem<TModule>[];
5
+ items?: AppPerm<TModule>[];
12
6
  value?: Record<string, boolean>;
13
7
  onValueChange?: (value: Record<string, boolean>) => void;
14
8
  modules?: TModule[];
@@ -17,10 +11,10 @@ export interface PermissionTableProps<TModule = string> {
17
11
  style?: JSX.CSSProperties;
18
12
  }
19
13
  /** 트리에서 모든 고유 perm 타입을 수집 */
20
- export declare function collectAllPerms<TModule>(items: PermissionItem<TModule>[]): string[];
14
+ export declare function collectAllPerms<TModule>(items: AppPerm<TModule>[]): string[];
21
15
  /** modules 필터: 활성 모듈과 교차가 있는 아이템만 남김 */
22
- export declare function filterByModules<TModule>(items: PermissionItem<TModule>[], modules: TModule[] | undefined): PermissionItem<TModule>[];
16
+ export declare function filterByModules<TModule>(items: AppPerm<TModule>[], modules: TModule[] | undefined): AppPerm<TModule>[];
23
17
  /** 체크 변경 시 cascading 처리 */
24
- export declare function changePermCheck<TModule>(value: Record<string, boolean>, item: PermissionItem<TModule>, perm: string, checked: boolean): Record<string, boolean>;
18
+ export declare function changePermCheck<TModule>(value: Record<string, boolean>, item: AppPerm<TModule>, perm: string, checked: boolean): Record<string, boolean>;
25
19
  export declare const PermissionTable: Component<PermissionTableProps>;
26
20
  //# sourceMappingURL=PermissionTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionTable.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\permission-table\\PermissionTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,UAAU,CAAC;AAalB,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,MAAM;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB,CAAC,OAAO,GAAG,MAAM;IACpD,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAID,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAYnF;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,EAChC,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,GAC7B,cAAc,CAAC,OAAO,CAAC,EAAE,CAiB3B;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AAiGD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAqG3D,CAAC"}
1
+ {"version":3,"file":"PermissionTable.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\permission-table\\PermissionTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,UAAU,CAAC;AAMlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAQnE,MAAM,WAAW,oBAAoB,CAAC,OAAO,GAAG,MAAM;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAID,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAY5E;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACzB,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,GAC7B,OAAO,CAAC,OAAO,CAAC,EAAE,CAiBpB;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AA8FD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAqG3D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/data/permission-table/PermissionTable.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["createEffect", "createMemo", "createSignal", "For", "on", "Show", "splitProps", "clsx", "twMerge", "DataSheet", "Checkbox", "borderDefault", "titleCellClass", "indentGuideWrapperClass", "indentGuideLineClass", "collectAllPerms", "items", "set", "Set", "walk", "list", "item", "perms", "p", "add", "children", "filterByModules", "modules", "length", "result", "some", "m", "includes", "undefined", "push", "changePermCheck", "value", "perm", "checked", "apply", "target", "href", "permIndex", "indexOf", "basePerm", "baseOff", "i", "child", "isItemVisible", "collectVisiblePerms", "isGroupPermChecked", "hasPermInTree", "isPermDisabled", "collectExpandable", "getChildren", "PermissionTable", "props", "local", "visibleItems", "filter", "filtered", "allPerms", "currentValue", "getAllExpandable", "expandedItems", "setExpandedItems", "defer", "handlePermChange", "newValue", "onValueChange", "_el$", "_tmpl$", "_$insert", "_$createComponent", "onExpandedItemsChange", "hideConfigBar", "Column", "key", "header", "sortable", "resizable", "ctx", "_el$2", "_tmpl$2", "_el$3", "firstChild", "_$className", "each", "Array", "from", "depth", "_el$4", "_tmpl$3", "_el$5", "title", "when", "disabled", "inset", "_$effect", "_p$", "_v$", "class", "_v$2", "style", "e", "t", "_$style"]
6
6
  }
@@ -3,7 +3,7 @@ import { SidebarContainer } from "./SidebarContainer";
3
3
  import { SidebarMenu } from "./SidebarMenu";
4
4
  import { SidebarUser } from "./SidebarUser";
5
5
  export type { SidebarContainerProps } from "./SidebarContainer";
6
- export type { SidebarMenuItem, SidebarMenuProps } from "./SidebarMenu";
6
+ export type { SidebarMenuProps } from "./SidebarMenu";
7
7
  export type { SidebarUserMenu, SidebarUserProps } from "./SidebarUser";
8
8
  export interface SidebarProps extends JSX.HTMLAttributes<HTMLElement> {
9
9
  children: JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAA0B,MAAM,UAAU,CAAC;AAMlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAuBvE,MAAM,WAAW,YAAa,SAAQ,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;IACnE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,UAAU,gBAAiB,SAAQ,eAAe,CAAC,YAAY,CAAC;IAC9D,SAAS,EAAE,OAAO,gBAAgB,CAAC;IACnC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,IAAI,EAAE,OAAO,WAAW,CAAC;CAC1B;AAwCD,eAAO,MAAM,OAAO,EAAkB,gBAAgB,CAAC"}
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAA0B,MAAM,UAAU,CAAC;AAMlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAuBvE,MAAM,WAAW,YAAa,SAAQ,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;IACnE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,UAAU,gBAAiB,SAAQ,eAAe,CAAC,YAAY,CAAC;IAC9D,SAAS,EAAE,OAAO,gBAAgB,CAAC;IACnC,IAAI,EAAE,OAAO,WAAW,CAAC;IACzB,IAAI,EAAE,OAAO,WAAW,CAAC;CAC1B;AAwCD,eAAO,MAAM,OAAO,EAAkB,gBAAgB,CAAC"}
@@ -1,16 +1,10 @@
1
1
  import { type Component, type JSX } from "solid-js";
2
- import type { IconProps } from "@tabler/icons-solidjs";
3
- export interface SidebarMenuItem {
4
- title: string;
5
- href?: string;
6
- icon?: Component<IconProps>;
7
- children?: SidebarMenuItem[];
8
- }
2
+ import type { AppMenu } from "../../../helpers/createAppStructure";
9
3
  export interface SidebarMenuProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> {
10
4
  /**
11
5
  * 메뉴 아이템 배열
12
6
  */
13
- menus: SidebarMenuItem[];
7
+ menus: AppMenu[];
14
8
  }
15
9
  /**
16
10
  * 사이드바 메뉴 컴포넌트
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,GAAG,EAUT,MAAM,UAAU,CAAC;AAIlB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAiBvD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F;;OAEG;IACH,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CA4CnD,CAAC"}
1
+ {"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,GAAG,EAUT,MAAM,UAAU,CAAC;AAKlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAgBnE,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5F;;OAEG;IACH,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,CAAC,gBAAgB,CA4CnD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/layout/sidebar/SidebarMenu.tsx"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;AAAA,SAGEA,KACAC,MACAC,YACAC,cACAC,YACAC,cACAC,eACAC,kBAEK;AACP,SAASC,aAAaC,mBAAmB;AACzC,OAAOC,UAAU;AACjB,SAASC,eAAe;AAGxB,SAASC,YAAY;AACrB,SAASC,YAAY;AACrB,SAASC,gBAAgB;AAEzB,MAAMC,cAAcL,KAClB,QACA,QACA,WACA,aACA,iBACA,sBACA,aACA,gBACF;AAcA,MAAMM,cAAcV,cAAgC;AA2B7C,MAAMW,cAA4CC,WAAU;AACjE,QAAM,CAACC,OAAOC,IAAI,IAAIlB,WAAWgB,OAAO,CAAC,SAAS,OAAO,CAAC;AAE1D,QAAMG,WAAWb,YAAY;AAG7B,QAAMc,mBAAmBA,CACvBC,OACAC,UACAC,OAAkB,CAAA,MACG;AACrB,eAAWC,QAAQH,OAAO;AACxB,YAAMI,cAAc,CAAC,GAAGF,MAAMC,IAAI;AAClC,UAAIA,KAAKE,SAASJ,UAAU;AAC1B,eAAOG;MACT;AACA,UAAID,KAAKG,UAAU;AACjB,cAAMC,QAAQR,iBAAiBI,KAAKG,UAAUL,UAAUG,WAAW;AACnE,YAAIG,MAAO,QAAOA;MACpB;IACF;AACA,WAAO;EACT;AAGA,QAAMC,mBAAmB3B,WAAW,MAAM;AACxC,UAAM4B,eAAeV,iBAAiBH,MAAMI,OAAOF,SAASG,QAAQ;AACpE,WAAOQ,eACH,IAAIC,IAAID,aAAaE,MAAM,GAAG,EAAE,CAAC,IACjC,oBAAID,IAAa;EACvB,CAAC;AAED,QAAME,eAAeA,MAAMxB,QAAQ,0BAA0BQ,MAAMiB,KAAK;AAExE,SAAAC,kBACGrB,YAAYsB,UAAQ;IAACC,OAAO;MAAER;IAAiB;IAAC,IAAAF,WAAA;AAAA,UAAAW,OAAAC,OAAA,GAAAC,QAAAF,KAAAG;AAAAC,eAAAJ,MAAAK,aACtCzB,MAAI;QAAA,qBAAA;QAAA,KAAA,OAAA,IAAA;AAAA,iBAA2Be,aAAa;QAAC;MAAA,CAAA,GAAA,OAAA,IAAA;AAAAW,kBAAAJ,OACxC3B,WAAW;AAAAgC,eAAAP,MAAAH,kBACtBxB,MAAI;QAACmC,OAAK;QAAA,IAAAnB,WAAA;AAAA,iBAAAQ,kBACRrC,KAAG;YAAA,IAACiD,OAAI;AAAA,qBAAE9B,MAAMI;YAAK;YAAAM,UAAIH,UAAIW,kBAAMa,UAAQ;cAACxB;cAAYyB,MAAI;YAAA,CAAA;UAAQ,CAAA;QAAA;MAAA,CAAA,GAAA,IAAA;AAAA,aAAAX;IAAA;EAAA,CAAA;AAK/E;AAOA,MAAMU,WAAsChC,WAAU;AACpD,QAAMG,WAAWb,YAAY;AAC7B,QAAM4C,WAAW3C,YAAY;AAC7B,QAAM4C,cAAc9C,WAAWS,WAAW;AAE1C,QAAMsC,cAAcA,MAAMpC,MAAMQ,KAAKG,aAAa0B,UAAarC,MAAMQ,KAAKG,SAAS2B,SAAS;AAG5F,QAAMC,iBAAiBA,MAAA;;AAAMvC,wBAAMQ,KAAKE,SAAXV,mBAAiBwC,SAAS,WAAU;;AAGjE,QAAMC,aAAaA,MAAMzC,MAAMQ,KAAKE,SAASP,SAASG;AAGtD,QAAMoC,eAAeA,MAAMP,YAAYtB,iBAAiB,EAAE8B,IAAI3C,MAAMQ,IAAI;AAExE,QAAM,CAACoC,MAAMC,OAAO,IAAI5D,aAAa,KAAK;AAG1CE,eAAa,MAAM;AACjB,QAAIuD,aAAa,GAAG;AAClBG,cAAQ,IAAI;IACd;EACF,CAAC;AAED,QAAMC,cAAcA,MAAM;AACxB,QAAIV,YAAY,GAAG;AACjBS,cAASE,OAAM,CAACA,CAAC;IACnB,WAAW/C,MAAMQ,KAAKE,SAAS2B,QAAW;AACxC,UAAIE,eAAe,GAAG;AACpBS,eAAOJ,KAAK5C,MAAMQ,KAAKE,MAAM,UAAU,qBAAqB;MAC9D,OAAO;AACLwB,iBAASlC,MAAMQ,KAAKE,IAAI;MAC1B;IACF;EACF;AAEA,SAAAS,kBACGvB,UAAQ;IAAA,IACPqD,WAAQ;AAAA,aAAER,WAAW;IAAC;IAAA,IACtBG,OAAI;AAAA,aAAEA,KAAK;IAAC;IACZM,cAAcL;IACdM,SAASL;IAAW,IACpBb,OAAI;AAAA,aAAEjC,MAAMiC;IAAI;IAAA,IAAAtB,WAAA;AAAA,aAAA,CAAAQ,kBAEfpC,MAAI;QAAA,IAACqE,OAAI;AAAA,iBAAEpD,MAAMQ,KAAK6C;QAAI;QAAA,IAAA1C,WAAA;AAAA,iBAAAQ,kBACxBzB,MAAI;YAAA,IAAC2D,OAAI;AAAA,qBAAErD,MAAMQ,KAAK6C;YAAI;UAAA,CAAA;QAAA;MAAA,CAAA,IAAA,MAAA;AAAA,YAAAC,QAAAC,QAAA;AAAA1B,iBAAAyB,OAAA,MAELtD,MAAMQ,KAAKgD,KAAK;AAAA,eAAAF;MAAA,GAAA,GAAAnC,kBACvCpC,MAAI;QAAA,IAACqE,OAAI;AAAA,iBAAEhB,YAAY;QAAC;QAAA,IAAAzB,WAAA;AAAA,iBAAAQ,kBACtBvB,SAAS6D,UAAQ;YAAA,IAAA9C,WAAA;AAAA,qBAAAQ,kBACfrC,KAAG;gBAAA,IAACiD,OAAI;AAAA,yBAAE/B,MAAMQ,KAAKG;gBAAQ;gBAAAA,UAAI+C,WAAKvC,kBAAMa,UAAQ;kBAACxB,MAAMkD;gBAAK,CAAA;cAAI,CAAA;YAAA;UAAA,CAAA;QAAA;MAAA,CAAA,CAAA;IAAA;EAAA,CAAA;AAK/E;",
5
5
  "names": ["For", "Show", "splitProps", "createSignal", "createMemo", "createEffect", "createContext", "useContext", "useLocation", "useNavigate", "clsx", "twMerge", "Icon", "List", "ListItem", "headerClass", "MenuContext", "SidebarMenu", "props", "local", "rest", "location", "findSelectedPath", "menus", "pathname", "path", "menu", "currentPath", "href", "children", "found", "initialOpenItems", "selectedPath", "Set", "slice", "getClassName", "class", "_$createComponent", "Provider", "value", "_el$", "_tmpl$", "_el$2", "firstChild", "_$spread", "_$mergeProps", "_$className", "_$insert", "inset", "each", "MenuItem", "size", "navigate", "menuContext", "hasChildren", "undefined", "length", "isExternalLink", "includes", "isSelected", "shouldBeOpen", "has", "open", "setOpen", "handleClick", "v", "window", "selected", "onOpenChange", "onClick", "when", "icon", "_el$3", "_tmpl$2", "title", "Children", "child"]
6
6
  }
@@ -1,7 +1,6 @@
1
1
  import { type Accessor } from "solid-js";
2
2
  import type { Component } from "solid-js";
3
3
  import type { IconProps } from "@tabler/icons-solidjs";
4
- import type { SidebarMenuItem } from "../components/layout/sidebar/SidebarMenu";
5
4
  export interface AppStructureGroupItem<TModule> {
6
5
  code: string;
7
6
  title: string;
@@ -29,6 +28,24 @@ export interface AppStructureSubPerm<TModule> {
29
28
  requiredModules?: TModule[];
30
29
  perms: ("use" | "edit")[];
31
30
  }
31
+ export interface AppMenu {
32
+ title: string;
33
+ href?: string;
34
+ icon?: Component<IconProps>;
35
+ children?: AppMenu[];
36
+ }
37
+ export interface AppPerm<TModule = string> {
38
+ title: string;
39
+ href?: string;
40
+ modules?: TModule[];
41
+ perms?: string[];
42
+ children?: AppPerm<TModule>[];
43
+ }
44
+ export interface AppFlatPerm<TModule = string> {
45
+ titleChain: string[];
46
+ code: string;
47
+ modulesChain: TModule[][];
48
+ }
32
49
  export interface AppRoute {
33
50
  path: string;
34
51
  component: Component;
@@ -39,10 +56,11 @@ export interface AppFlatMenu {
39
56
  }
40
57
  export interface AppStructure<TModule> {
41
58
  items: AppStructureItem<TModule>[];
42
- routes: AppRoute[];
43
- usableMenus: Accessor<SidebarMenuItem[]>;
59
+ usableRoutes: Accessor<AppRoute[]>;
60
+ usableMenus: Accessor<AppMenu[]>;
44
61
  usableFlatMenus: Accessor<AppFlatMenu[]>;
45
- permRecord: Accessor<Record<string, boolean>>;
62
+ usablePerms: Accessor<AppPerm<TModule>[]>;
63
+ flatPerms: AppFlatPerm<TModule>[];
46
64
  getTitleChainByHref(href: string): string[];
47
65
  }
48
66
  export declare function createAppStructure<TModule>(opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"createAppStructure.d.ts","sourceRoot":"","sources":["..\\..\\src\\helpers\\createAppStructure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAIhF,MAAM,WAAW,qBAAqB,CAAC,OAAO;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB,CAAC,OAAO;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAChC,qBAAqB,CAAC,OAAO,CAAC,GAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAElC,MAAM,WAAW,mBAAmB,CAAC,OAAO;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,KAAK,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3B;AAID,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,WAAW,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IACzC,eAAe,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACzC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9C,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC7C;AAyHD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE;IAChD,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD,GAAG,YAAY,CAAC,OAAO,CAAC,CAkCxB"}
1
+ {"version":3,"file":"createAppStructure.d.ts","sourceRoot":"","sources":["..\\..\\src\\helpers\\createAppStructure.ts"],"names":[],"mappings":"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"}
@@ -12,27 +12,24 @@ function checkModules(modules, requiredModules, usableModules) {
12
12
  }
13
13
  return true;
14
14
  }
15
- function collectRoutes(items, parentCodes, routes) {
15
+ function buildUsableRoutes(items, routeBasePath, permBasePath, usableModules, permRecord) {
16
+ var _a;
17
+ const result = [];
16
18
  for (const item of items) {
17
- const codes = [...parentCodes, item.code];
19
+ if (!checkModules(item.modules, item.requiredModules, usableModules)) continue;
20
+ const routePath = routeBasePath + "/" + item.code;
21
+ const permPath = permBasePath + "/" + item.code;
18
22
  if (isGroupItem(item)) {
19
- collectRoutes(item.children, codes, routes);
23
+ result.push(
24
+ ...buildUsableRoutes(item.children, routePath, permPath, usableModules, permRecord)
25
+ );
20
26
  } else if (item.component !== void 0) {
21
- routes.push({
22
- path: "/" + codes.join("/"),
23
- component: item.component
24
- });
27
+ if (permRecord !== void 0 && ((_a = item.perms) == null ? void 0 : _a.includes("use")) && !permRecord[permPath + "/use"])
28
+ continue;
29
+ result.push({ path: routePath, component: item.component });
25
30
  }
26
31
  }
27
- }
28
- function extractRoutes(items) {
29
- const routes = [];
30
- for (const top of items) {
31
- if (isGroupItem(top)) {
32
- collectRoutes(top.children, [], routes);
33
- }
34
- }
35
- return routes;
32
+ return result;
36
33
  }
37
34
  function buildMenus(items, basePath, usableModules, permRecord) {
38
35
  var _a;
@@ -47,7 +44,7 @@ function buildMenus(items, basePath, usableModules, permRecord) {
47
44
  }
48
45
  } else {
49
46
  if (item.isNotMenu) continue;
50
- if (((_a = item.perms) == null ? void 0 : _a.includes("use")) && !permRecord[href + "/use"]) continue;
47
+ if (((_a = item.perms) == null ? void 0 : _a.includes("use")) && !(permRecord == null ? void 0 : permRecord[href + "/use"])) continue;
51
48
  result.push({ title: item.title, href, icon: item.icon });
52
49
  }
53
50
  }
@@ -65,6 +62,84 @@ function flattenMenus(menus, titleChain = []) {
65
62
  }
66
63
  return result;
67
64
  }
65
+ function buildPerms(items, basePath, usableModules) {
66
+ var _a;
67
+ const result = [];
68
+ for (const item of items) {
69
+ if (!checkModules(item.modules, item.requiredModules, usableModules)) continue;
70
+ const href = basePath + "/" + item.code;
71
+ if (isGroupItem(item)) {
72
+ const children = buildPerms(item.children, href, usableModules);
73
+ result.push({
74
+ title: item.title,
75
+ modules: item.modules,
76
+ children
77
+ });
78
+ } else {
79
+ result.push({
80
+ title: item.title,
81
+ href,
82
+ modules: item.modules,
83
+ perms: item.perms,
84
+ children: (_a = item.subPerms) == null ? void 0 : _a.filter((sp) => checkModules(sp.modules, sp.requiredModules, usableModules)).map((sp) => ({
85
+ title: sp.title,
86
+ href: href + "/" + sp.code,
87
+ modules: sp.modules,
88
+ perms: sp.perms
89
+ }))
90
+ });
91
+ }
92
+ }
93
+ return result;
94
+ }
95
+ function collectFlatPerms(items) {
96
+ const results = [];
97
+ const queue = items.map((item) => ({
98
+ item,
99
+ titleChain: [],
100
+ codePath: "",
101
+ modulesChain: []
102
+ }));
103
+ while (queue.length > 0) {
104
+ const { item, titleChain, codePath, modulesChain } = queue.shift();
105
+ const currTitleChain = [...titleChain, item.title];
106
+ const currCodePath = codePath + "/" + item.code;
107
+ const currModulesChain = item.modules ? [...modulesChain, item.modules] : modulesChain;
108
+ if (isGroupItem(item)) {
109
+ for (const child of item.children) {
110
+ queue.push({
111
+ item: child,
112
+ titleChain: currTitleChain,
113
+ codePath: currCodePath,
114
+ modulesChain: currModulesChain
115
+ });
116
+ }
117
+ } else {
118
+ if (item.perms) {
119
+ for (const perm of item.perms) {
120
+ results.push({
121
+ titleChain: currTitleChain,
122
+ code: currCodePath + "/" + perm,
123
+ modulesChain: currModulesChain
124
+ });
125
+ }
126
+ }
127
+ if (item.subPerms) {
128
+ for (const subPerm of item.subPerms) {
129
+ const subModulesChain = subPerm.modules ? [...currModulesChain, subPerm.modules] : currModulesChain;
130
+ for (const perm of subPerm.perms) {
131
+ results.push({
132
+ titleChain: currTitleChain,
133
+ code: currCodePath + "/" + subPerm.code + "/" + perm,
134
+ modulesChain: subModulesChain
135
+ });
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+ return results;
142
+ }
68
143
  function findItemChainByCodes(items, codes) {
69
144
  const result = [];
70
145
  let currentItems = items;
@@ -77,33 +152,57 @@ function findItemChainByCodes(items, codes) {
77
152
  return result;
78
153
  }
79
154
  function createAppStructure(opts) {
80
- const permRecord = () => {
81
- var _a;
82
- return ((_a = opts.permRecord) == null ? void 0 : _a.call(opts)) ?? {};
83
- };
84
- const routes = extractRoutes(opts.items);
155
+ const flatPerms = collectFlatPerms(opts.items);
85
156
  const memos = createRoot(() => {
157
+ const usableRoutes = createMemo(() => {
158
+ var _a, _b;
159
+ const routes = [];
160
+ for (const top of opts.items) {
161
+ if (isGroupItem(top)) {
162
+ routes.push(
163
+ ...buildUsableRoutes(
164
+ top.children,
165
+ "",
166
+ "/" + top.code,
167
+ (_a = opts.usableModules) == null ? void 0 : _a.call(opts),
168
+ (_b = opts.permRecord) == null ? void 0 : _b.call(opts)
169
+ )
170
+ );
171
+ }
172
+ }
173
+ return routes;
174
+ });
86
175
  const usableMenus = createMemo(() => {
87
- var _a;
176
+ var _a, _b;
88
177
  const menus = [];
89
178
  for (const top of opts.items) {
90
179
  if (isGroupItem(top)) {
91
180
  menus.push(
92
- ...buildMenus(top.children, "/" + top.code, (_a = opts.usableModules) == null ? void 0 : _a.call(opts), permRecord())
181
+ ...buildMenus(
182
+ top.children,
183
+ "/" + top.code,
184
+ (_a = opts.usableModules) == null ? void 0 : _a.call(opts),
185
+ (_b = opts.permRecord) == null ? void 0 : _b.call(opts)
186
+ )
93
187
  );
94
188
  }
95
189
  }
96
190
  return menus;
97
191
  });
98
192
  const usableFlatMenus = createMemo(() => flattenMenus(usableMenus()));
99
- return { usableMenus, usableFlatMenus };
193
+ const usablePerms = createMemo(() => {
194
+ var _a;
195
+ return buildPerms(opts.items, "", (_a = opts.usableModules) == null ? void 0 : _a.call(opts));
196
+ });
197
+ return { usableRoutes, usableMenus, usableFlatMenus, usablePerms };
100
198
  });
101
199
  return {
102
200
  items: opts.items,
103
- routes,
201
+ usableRoutes: memos.usableRoutes,
104
202
  usableMenus: memos.usableMenus,
105
203
  usableFlatMenus: memos.usableFlatMenus,
106
- permRecord,
204
+ usablePerms: memos.usablePerms,
205
+ flatPerms,
107
206
  getTitleChainByHref(href) {
108
207
  const codes = href.split("/").filter(Boolean);
109
208
  return findItemChainByCodes(opts.items, codes).map((item) => item.title);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/helpers/createAppStructure.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/dist/index.d.ts CHANGED
@@ -84,5 +84,5 @@ export { ripple } from "./directives/ripple";
84
84
  export { mergeStyles } from "./helpers/mergeStyles";
85
85
  export { splitSlots } from "./helpers/splitSlots";
86
86
  export { createAppStructure } from "./helpers/createAppStructure";
87
- export type { AppStructureItem, AppStructureGroupItem, AppStructureLeafItem, AppStructureSubPerm, AppRoute, AppFlatMenu, AppStructure, } from "./helpers/createAppStructure";
87
+ export type { AppStructureItem, AppStructureGroupItem, AppStructureLeafItem, AppStructureSubPerm, AppRoute, AppFlatMenu, AppMenu, AppPerm, AppFlatPerm, AppStructure, } from "./helpers/createAppStructure";
88
88
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["..\\src\\index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["..\\src\\index.ts"],"names":[],"mappings":"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"}
package/docs/helpers.md CHANGED
@@ -14,18 +14,41 @@ const style = mergeStyles("color: red", { fontSize: "14px" }, props.style);
14
14
 
15
15
  ## splitSlots
16
16
 
17
- Utility for splitting children into named slots based on component type.
17
+ Utility for splitting resolved children into named slots based on `data-*` attributes. Returns a tuple of `[slots accessor, content accessor]`.
18
+
19
+ Slot keys are matched against the element's `dataset` (camelCase). Sub-components that set a matching data attribute (e.g., `data-select-header`) are separated into the named slot; all other children remain in `content`.
18
20
 
19
21
  ```typescript
20
22
  import { splitSlots } from "@simplysm/solid";
23
+ import { children } from "solid-js";
24
+
25
+ // Inside a component:
26
+ const resolved = children(() => props.children);
27
+ const [slots, content] = splitSlots(resolved, ["selectHeader", "selectAction"] as const);
28
+
29
+ // Access inside JSX (within a reactive context)
30
+ <div>{slots().selectHeader}</div> // HTMLElement[] matching data-select-header
31
+ <div>{content()}</div> // JSX.Element[] – remaining children
32
+ ```
21
33
 
22
- const slots = splitSlots(props.children, {
23
- header: HeaderComponent,
24
- footer: FooterComponent,
25
- });
26
- // slots.header, slots.footer, slots.rest
34
+ **Signature:**
35
+
36
+ ```typescript
37
+ function splitSlots<K extends string>(
38
+ resolved: { toArray: () => unknown[] },
39
+ keys: readonly K[],
40
+ ): [Accessor<Record<K, HTMLElement[]>>, Accessor<JSX.Element[]>]
27
41
  ```
28
42
 
43
+ | Parameter | Type | Description |
44
+ |-----------|------|-------------|
45
+ | `resolved` | `{ toArray: () => unknown[] }` | Resolved children from SolidJS `children()` |
46
+ | `keys` | `readonly K[]` | Slot key names (camelCase, matched against `element.dataset`) |
47
+
48
+ Returns a tuple:
49
+ - `slots` — `Accessor<Record<K, HTMLElement[]>>` — named slot elements per key
50
+ - `content` — `Accessor<JSX.Element[]>` — remaining children not matched by any key
51
+
29
52
  ---
30
53
 
31
54
  ## ripple directive
package/docs/hooks.md CHANGED
@@ -238,13 +238,14 @@ const items: AppStructureItem<string>[] = [
238
238
  const structure = createAppStructure({
239
239
  items,
240
240
  usableModules: () => activeModules(), // optional: filter by active modules
241
- permRecord: () => userPermissions(), // optional: user permission state
241
+ permRecord: () => userPermissions(), // optional: Record<string, boolean> permission state
242
242
  });
243
243
 
244
- // structure.routes -- Route array (pass to @solidjs/router)
245
- // structure.usableMenus() -- SidebarMenuItem[] for Sidebar.Menu
246
- // structure.usableFlatMenus() -- Flat menu list
247
- // structure.permRecord() -- Record<string, boolean> permission state
244
+ // structure.usableRoutes() -- Accessor<AppRoute[]> - filtered route array (pass to @solidjs/router)
245
+ // structure.usableMenus() -- Accessor<AppMenu[]> - filtered menu array for Sidebar.Menu
246
+ // structure.usableFlatMenus() -- Accessor<AppFlatMenu[]> - flat filtered menu list
247
+ // structure.usablePerms() -- Accessor<AppPerm[]> - filtered permission tree
248
+ // structure.flatPerms -- AppFlatPerm[] - all flat perm entries (static, not reactive)
248
249
  ```
249
250
 
250
251
  **Routing integration with `@solidjs/router`:**
@@ -261,7 +262,7 @@ render(
261
262
  <Route path="/" component={App}>
262
263
  <Route path="/home" component={Home}>
263
264
  <Route path="/" component={() => <Navigate href="/home/main" />} />
264
- <For each={appStructure.routes}>
265
+ <For each={appStructure.usableRoutes()}>
265
266
  {(r) => <Route path={r.path} component={r.component} />}
266
267
  </For>
267
268
  <Route path="/*" component={NotFoundPage} />
@@ -274,7 +275,52 @@ render(
274
275
  );
275
276
  ```
276
277
 
277
- Each route object in `structure.routes` has `path` (derived from nested `code` values) and `component` properties, ready to pass directly to `<Route>`.
278
+ Each route object in `structure.usableRoutes()` has `path` (derived from nested `code` values) and `component` properties, ready to pass directly to `<Route>`. Note that `usableRoutes` is a reactive accessor — it re-evaluates when `usableModules` or `permRecord` signals change.
279
+
280
+ **AppStructure return type:**
281
+
282
+ ```typescript
283
+ interface AppStructure<TModule> {
284
+ items: AppStructureItem<TModule>[];
285
+ usableRoutes: Accessor<AppRoute[]>; // reactive, filtered by modules + permRecord
286
+ usableMenus: Accessor<AppMenu[]>; // reactive, filtered by modules + permRecord
287
+ usableFlatMenus: Accessor<AppFlatMenu[]>; // reactive, flat version of usableMenus
288
+ usablePerms: Accessor<AppPerm<TModule>[]>; // reactive, filtered permission tree
289
+ flatPerms: AppFlatPerm<TModule>[]; // static, all perm entries (not reactive)
290
+ getTitleChainByHref(href: string): string[];
291
+ }
292
+
293
+ interface AppRoute {
294
+ path: string;
295
+ component: Component;
296
+ }
297
+
298
+ interface AppMenu {
299
+ title: string;
300
+ href?: string;
301
+ icon?: Component<IconProps>;
302
+ children?: AppMenu[];
303
+ }
304
+
305
+ interface AppFlatMenu {
306
+ titleChain: string[];
307
+ href: string;
308
+ }
309
+
310
+ interface AppPerm<TModule = string> {
311
+ title: string;
312
+ href?: string;
313
+ modules?: TModule[];
314
+ perms?: string[];
315
+ children?: AppPerm<TModule>[];
316
+ }
317
+
318
+ interface AppFlatPerm<TModule = string> {
319
+ titleChain: string[];
320
+ code: string;
321
+ modulesChain: TModule[][];
322
+ }
323
+ ```
278
324
 
279
325
  **AppStructureItem types:**
280
326
 
@@ -302,6 +348,15 @@ interface AppStructureLeafItem<TModule> {
302
348
  isNotMenu?: boolean; // exclude from menu but include in routing
303
349
  }
304
350
 
351
+ // Sub-permission item
352
+ interface AppStructureSubPerm<TModule> {
353
+ code: string;
354
+ title: string;
355
+ modules?: TModule[];
356
+ requiredModules?: TModule[];
357
+ perms: ("use" | "edit")[];
358
+ }
359
+
305
360
  type AppStructureItem<TModule> = AppStructureGroupItem<TModule> | AppStructureLeafItem<TModule>;
306
361
  ```
307
362